/* ==========================================================================
   Swara responsive refinements (tablet + mobile), Oct 2026
   Layout and type scale only. No content changes. Desktop (>1024px) untouched.
   Section paddings/gaps were reduced natively in Elementor (tablet/mobile
   values); this file handles type scale and a few grid structures that
   Elementor's containers can't express on their own.
   ========================================================================== */

/* ---------- Tablet (768px - 1024px) ---------- */
@media (max-width: 1024px) {
	/* Section headings (dual colour headings) */
	.ue-dual-color-heading > :not(style),
	.ue-dual-color-heading .ue-title-one,
	.ue-dual-color-heading .ue-title-two {
		font-size: clamp(34px, 5vw, 42px) !important;
		line-height: 1.15 !important;
	}
	/* Page hero headings keep a little more presence */
	[data-elementor-type] > .e-con:first-child .ue-dual-color-heading > :not(style),
	[data-elementor-type] > .e-con:first-child .ue-dual-color-heading .ue-title-one,
	[data-elementor-type] > .e-con:first-child .ue-dual-color-heading .ue-title-two {
		font-size: clamp(40px, 6vw, 50px) !important;
		line-height: 1.12 !important;
	}
	/* stat circle captions stay inside the circle */
	.e-con.sw-m-grid2:not(.sw-m-logos) .elementor-counter-title {
		font-size: 11px !important;
		line-height: 1.3 !important;
		padding: 0 12px;
	}
}

/* ---------- Mobile (up to 767px) ---------- */
@media (max-width: 767px) {
	.ue-dual-color-heading > :not(style),
	.ue-dual-color-heading .ue-title-one,
	.ue-dual-color-heading .ue-title-two {
		font-size: clamp(27px, 8vw, 32px) !important;
		line-height: 1.15 !important;
	}
	[data-elementor-type] > .e-con:first-child .ue-dual-color-heading > :not(style),
	[data-elementor-type] > .e-con:first-child .ue-dual-color-heading .ue-title-one,
	[data-elementor-type] > .e-con:first-child .ue-dual-color-heading .ue-title-two {
		font-size: clamp(32px, 9.4vw, 38px) !important;
		line-height: 1.12 !important;
	}

	/* Two-up grids: stat circles, client logos, award logos */
	.e-con.sw-m-grid2:not(:has(> .e-con-inner)),
	.e-con.sw-m-grid2 > .e-con-inner {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px !important;
		align-items: stretch;
	}
	.e-con.sw-m-grid2 > .e-con,
	.e-con.sw-m-grid2 > .e-con-inner > .e-con,
	.e-con.sw-m-grid2 > .elementor-element,
	.e-con.sw-m-grid2 > .e-con-inner > .elementor-element {
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		margin: 0 !important;
		--width: auto;
	}
	/* grid containers had a fixed stacked height from Elementor; let the grid size itself */
	.e-con.sw-m-grid2 {
		min-height: 0 !important;
		height: auto !important;
		--min-height: 0;
	}
	/* stat circles stay circles at half width */
	.e-con.sw-m-grid2:not(.sw-m-logos) > .e-con,
	.e-con.sw-m-grid2:not(.sw-m-logos) > .e-con-inner > .e-con {
		aspect-ratio: 1 / 1;
		height: auto !important;
		min-height: 0 !important;
		--min-height: 0;
		justify-content: center !important;
		align-items: center !important;
		padding: 12px !important;
	}
	.e-con.sw-m-grid2:not(.sw-m-logos) .elementor-counter-number-wrapper {
		font-size: 26px !important;
		line-height: 1.1 !important;
	}
	.e-con.sw-m-grid2:not(.sw-m-logos) .elementor-counter-title {
		font-size: 12px !important;
		line-height: 1.35 !important;
	}

	/* impact figures on Sustainability are plain text, not circles */
	.elementor-element-fedccb4.sw-m-grid2 > .e-con,
	.elementor-element-fedccb4.sw-m-grid2 > .e-con-inner > .e-con {
		aspect-ratio: auto;
		padding: 0 !important;
		justify-content: flex-start !important;
	}

	/* expanding image cards (CSR): shorter stacked cards */
	.elementor-widget-ucaddon_expanding_content_cards .ue_option {
		height: 380px !important;
	}

	/* About: certification marks at one consistent height */
	.elementor-element-ee182f7.sw-m-grid2 {
		justify-items: center;
		align-items: center !important;
		gap: 20px 16px !important;
	}
	.elementor-element-ee182f7 img {
		width: auto !important;
		height: 64px !important;
		max-width: 100% !important;
		object-fit: contain;
	}

	/* odd item out sits centred on its own row */
	.e-con.sw-m-grid2 > :last-child:nth-child(odd),
	.e-con.sw-m-grid2 > .e-con-inner > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc(50% - 8px) !important;
	}

	/* Side-by-side metric cards (Manufacturing Infrastructure) */
	.e-con.sw-m-row2:not(:has(> .e-con-inner)),
	.e-con.sw-m-row2 > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 12px !important;
	}
	.e-con.sw-m-row2 > .e-con,
	.e-con.sw-m-row2 > .e-con-inner > .e-con {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0 !important;
		--width: auto;
	}

	.e-con.sw-m-row2 > .e-con,
	.e-con.sw-m-row2 > .e-con-inner > .e-con {
		padding: 18px !important;
	}
	.e-con.sw-m-row2 h2.elementor-heading-title {
		font-size: 26px !important;
		line-height: 1.1 !important;
		white-space: nowrap;
	}
	.e-con.sw-m-row2 :is(h3, h4, h5, h6).elementor-heading-title {
		font-size: 16px !important;
		line-height: 1.25 !important;
	}
	.e-con.sw-m-row2 .elementor-widget-text-editor {
		font-size: 13px !important;
		line-height: 1.45 !important;
	}

	/* Footer: brand block full width, menus two-up */
	.e-con.sw-m-footer-cols:not(:has(> .e-con-inner)),
	.e-con.sw-m-footer-cols > .e-con-inner {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 32px 24px !important;
	}
	.e-con.sw-m-footer-cols > .e-con:first-child,
	.e-con.sw-m-footer-cols > .e-con-inner > .e-con:first-child {
		width: 100% !important;
		--width: 100%;
	}
	.e-con.sw-m-footer-cols > .e-con:not(:first-child),
	.e-con.sw-m-footer-cols > .e-con-inner > .e-con:not(:first-child) {
		width: calc(50% - 12px) !important;
		--width: calc(50% - 12px);
		min-width: 0 !important;
	}
	.e-con.sw-m-footer-cols > .e-con:not(:first-child),
	.e-con.sw-m-footer-cols > .e-con-inner > .e-con:not(:first-child) {
		padding-top: 0 !important;
	}
	/* footer bottom bar: copyright + tagline centred */
	.elementor-element-e10e390 {
		flex-direction: column !important;
		align-items: center !important;
		gap: 8px !important;
	}
	.elementor-element-e10e390 .e-con,
	.elementor-element-e10e390 .elementor-widget {
		width: 100% !important;
		--width: 100%;
	}
	.elementor-element-e10e390 .elementor-widget,
	.elementor-element-e10e390 .elementor-widget * {
		text-align: center !important;
		justify-content: center !important;
	}
}

/* ---------- Blog, news and media cards + single article ---------- */
@media (max-width: 1024px) {
	.elementor-element-2633a99 .elementor-heading-title,
	.elementor-element-0f41825 .elementor-heading-title {
		font-size: 26px !important;
		line-height: 1.2 !important;
	}
	.elementor-element-1699c7b .elementor-heading-title {
		font-size: 36px !important;
		line-height: 1.15 !important;
	}
}
@media (max-width: 767px) {
	/* featured cards on Media */
	.elementor-element-2633a99 .elementor-heading-title,
	.elementor-element-0f41825 .elementor-heading-title {
		font-size: 21px !important;
		line-height: 1.25 !important;
	}
	/* blog + news loop card titles: one size for both */
	.elementor-element-920b26f .elementor-heading-title,
	.elementor-element-ae109b0 .elementor-heading-title {
		font-size: 18px !important;
		line-height: 1.3 !important;
	}
	/* single article */
	.elementor-element-1699c7b .elementor-heading-title {
		font-size: 28px !important;
		line-height: 1.18 !important;
	}
	.elementor-widget-theme-post-content :is(p, li) {
		font-size: 15px !important;
		line-height: 1.7 !important;
	}
	.elementor-widget-theme-post-content h2,
	.elementor-widget-theme-post-content h2 * {
		font-size: 26px !important;
		line-height: 1.2 !important;
	}
	.elementor-widget-theme-post-content :is(h3, h4),
	.elementor-widget-theme-post-content :is(h3, h4) * {
		font-size: 20px !important;
		line-height: 1.25 !important;
	}
}

/* ---------- Legal pages (Privacy Policy, Terms & Conditions): content headings ---------- */
:is(.page-id-991330, .page-id-991350) .elementor-widget-text-editor :is(h2, h3, h4) {
	font-size: 34px !important;
	line-height: 1.2 !important;
	margin: 44px 0 14px !important;
}
:is(.page-id-991330, .page-id-991350) .elementor-widget-text-editor :is(h2, h3, h4):first-child {
	margin-top: 0 !important;
}
:is(.page-id-991330, .page-id-991350) .elementor-widget-text-editor :is(ul, ol) {
	margin-bottom: 12px;
}
@media (max-width: 1024px) {
	:is(.page-id-991330, .page-id-991350) .elementor-widget-text-editor :is(h2, h3, h4) {
		font-size: 28px !important;
		margin: 36px 0 12px !important;
	}
}
@media (max-width: 767px) {
	:is(.page-id-991330, .page-id-991350) .elementor-widget-text-editor :is(h2, h3, h4) {
		font-size: 23px !important;
		line-height: 1.25 !important;
		margin: 30px 0 10px !important;
	}
}

/* Contact Us lives in the mobile/tablet menu only; desktop has its own button */
.elementor-nav-menu--main .sw-menu-contact { display: none !important; }

/* ---------- Round 3 (Oct 29) ---------- */
/* never let the grid helpers override Elementor's per-device visibility */
@media (max-width: 767px) {
	.elementor-hidden-mobile:not(#sw-x):not(#sw-y) { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-hidden-tablet:not(#sw-x):not(#sw-y) { display: none !important; }
}
@media (max-width: 767px) {
	/* About: group company cards */
	.elementor-element-62aee33 .uc_hover_switcher_content,
	.elementor-element-5190241 .uc_hover_switcher_content { padding: 22px !important; }
	/* Manufacturing: facts list, icon and label centred on one line */
	.elementor-element-deb1849 .elementor-icon-box-wrapper { align-items: center !important; }
	.elementor-element-deb1849 .elementor-icon-box-title { margin: 0 !important; }
}

/* Sustainability: Our Impact backdrop. 'cover' on a tall phone section blew the
   2045px panorama up ~2x (blurry); show it at a sane scale along the bottom */
@media (max-width: 1024px) {
	.elementor-element-51cd802 {
		background-position: center bottom !important;
		background-size: 150% auto !important;
	}
}
@media (max-width: 767px) {
	.elementor-element-51cd802 { background-size: 230% auto !important; }
	.elementor-element-fedccb4 .elementor-counter,
	.elementor-element-fedccb4 .elementor-counter-number-wrapper,
	.elementor-element-fedccb4 .elementor-counter-title {
		text-align: center !important;
		justify-content: center !important;
		align-items: center !important;
	}
	.elementor-element-fedccb4 > .e-con { align-items: center !important; }
	/* ESG approach: seedling circle sits on the top edge of the arch, clear of the ECO lettering */
	.elementor-element-f141e74 { position: relative !important; min-height: 340px !important; }
	.elementor-element-7bc1413 {
		position: absolute !important;
		top: -26px;
		right: 4px;
		width: auto !important;
		min-height: 0 !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		transform: none !important;
		z-index: 2;
		--min-height: 0px;
	}
	.elementor-element-17f46e4 { margin: 0 !important; }
	.elementor-element-17f46e4 img { width: 120px !important; height: 120px !important; object-fit: cover; }
}

/* Job Opportunity cards: body text starts at the card's left edge on phones */
@media (max-width: 767px) {
	.elementor-991459 .elementor-widget-text-editor ul,
	.elementor-991459 .elementor-widget-text-editor ol {
		margin-left: 0 !important;
		padding-left: 18px !important;
	}
	.elementor-991459 .elementor-widget-icon-box .elementor-icon-box-wrapper {
		display: grid !important;
		grid-template-columns: auto 1fr;
		column-gap: 12px;
		align-items: center;
	}
	.elementor-991459 .elementor-widget-icon-box .elementor-icon-box-icon { margin: 0 !important; grid-column: 1; grid-row: 1; }
	.elementor-991459 .elementor-widget-icon-box .elementor-icon-box-content { display: contents; }
	.elementor-991459 .elementor-widget-icon-box .elementor-icon-box-title { grid-column: 2; grid-row: 1; margin: 0 !important; }
	.elementor-991459 .elementor-widget-icon-box .elementor-icon-box-description { grid-column: 1 / -1; grid-row: 2; margin-top: 8px; }
}

/* Media / News / Blog cards on phones */
@media (max-width: 767px) {
	/* featured cards use the same inner padding as the regular news cards (30px) */
	.elementor-990080 .elementor-element-57cad07 { padding: 30px !important; }
	.elementor-990080 .elementor-element-ce96a99 { padding: 0 !important; }
	.elementor-990031 .elementor-element-378066b { padding: 30px !important; min-height: 420px !important; }
	/* publication logos keep their own proportions instead of stretching to the card width */
	.elementor-990132 .elementor-element-d4c0930 img {
		width: auto !important;
		max-width: 70% !important;
		height: auto !important;
		max-height: 56px !important;
		object-fit: contain;
	}
	.elementor-990132 .elementor-element-82f3351 { height: auto !important; min-height: 0 !important; }
	/* breathing room under the logo on featured news */
	.elementor-990080 .elementor-element-7548044 { margin-bottom: 16px !important; }
}

/* Hamburger menu (tablet + mobile): the dropdown opens flush under the header in
   both states: it is positioned against the header bar itself, not the toggle. */
@media (max-width: 1024px) {
	html body .elementor-element.elementor-element-cd62e1e { position: static !important; }
	html body .elementor-element.elementor-element-cd62e1e .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		top: 100% !important;
		margin-top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
	}
	/* sub-menu items sit on a deeper orange so they read as children */
	.elementor-element-cd62e1e .elementor-nav-menu--dropdown .sub-menu {
		background-color: #D97A00 !important;
	}
	.elementor-element-cd62e1e .elementor-nav-menu--dropdown .sub-menu a:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted) {
		background-color: transparent !important;
	}
	.elementor-element-cd62e1e .elementor-nav-menu--dropdown .sub-menu a {
		padding-left: 46px !important;
		font-size: 0.92em;
	}
}

/* Job application popup: size to the *visible* viewport (dvh) so the browser's
   address/tab bars can't hide the bottom of the form, and keep it scrollable */
@media (max-width: 1024px) {
	#elementor-popup-modal-991555 .dialog-widget-content,
	#elementor-popup-modal-991555 .dialog-message {
		height: 100vh !important;
		max-height: 100vh !important;
	}
	@supports (height: 100dvh) {
		#elementor-popup-modal-991555 .dialog-widget-content,
		#elementor-popup-modal-991555 .dialog-message {
			height: 100dvh !important;
			max-height: 100dvh !important;
		}
	}
	#elementor-popup-modal-991555 .dialog-message {
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}
	#elementor-popup-modal-991555 .dialog-message > .elementor {
		padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 32px);
	}
}
