/*
 * WeldGrid design layer on top of Rinbuild (v2).
 * Content, colours and fonts are edited in Elementor (Site Settings hold the colours and fonts).
 * This file adds what Elementor Free cannot express. Components are switched on in Elementor with a CSS class
 * under Advanced → CSS Classes: wg-dark, wg-soft, wg-hero, wg-tilt, wg-laptop, wg-phone, wg-browser, wg-chip,
 * wg-flow, wg-step, wg-tour, wg-role, wg-spot, wg-cta, wg-footer, wg-btn-*, ...
 * Elementor prints its global and Site Settings CSS after this file, so selectors that override it carry the
 * widget class too (for example .elementor-widget-heading.wg-kicker).
 */

:root {
	--wg-navy: #001a3f;
	--wg-navy-2: #0a2a5c;
	--wg-deep: #00102a;
	--wg-text: #3b4a61;
	--wg-muted: #67768d;
	--wg-orange: #fd5f02;
	--wg-orange-2: #e05300;
	--wg-amber: #ff9a3d;
	--wg-orange-soft: #fff1e7;
	--wg-line: #e4e9f1;
	--wg-soft: #f4f6fa;
	--wg-device: #0b1320;
	--wg-radius: 18px;
	--wg-radius-lg: 28px;
	--wg-shadow-sm: 0 1px 2px rgba(0, 26, 63, .04), 0 4px 12px -8px rgba(0, 26, 63, .12);
	--wg-shadow: 0 1px 2px rgba(0, 26, 63, .04), 0 14px 30px -22px rgba(0, 26, 63, .24);
	--wg-ease: cubic-bezier(.22, .8, .24, 1);
	--wg-green: #16a34a;
	--wg-green-2: #22c55e;
	--wg-green-3: #4ade80;
	--wg-green-soft: #e9f7ef;
	--wg-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.8 6.3 5 8.4 9.3 3.8' fill='none' stroke='%2316a34a' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	--wg-topbar-h: 40px;
	--wg-header-h: 76px;
}

/* ---------- Theme fixes ---------- */

/* The theme hides overflow on its page wrapper, which breaks the sticky header. clip keeps the page from scrolling sideways without that side effect. */
html body .boxed_wrapper { overflow: visible !important; overflow-x: clip !important; }
.preloader { display: none !important; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
/* The theme gives paragraphs their own grey and size; Elementor's text settings should win. */
.elementor p { color: inherit; font-size: inherit; line-height: inherit; margin: 0 0 1em; }
.elementor p:last-child { margin-bottom: 0; }
.elementor img { transition: none; }
.elementor a { transition: color .2s, background-color .2s, border-color .2s, box-shadow .2s; }
::selection { background: #ffe0cc; color: var(--wg-navy); }

/* ---------- Type helpers ---------- */

.elementor-widget-heading.wg-kicker .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; line-height: 1.2;
	letter-spacing: .14em; text-transform: uppercase; color: var(--wg-orange);
}
.elementor-widget-heading.wg-kicker.wg-center .elementor-heading-title { justify-content: center; }

/* Pill badge for dark sections. */
.elementor-widget-heading.wg-badge .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 12px; border-radius: 999px;
	font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; line-height: 1.2; letter-spacing: .02em;
	color: #fff; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}

.elementor-widget-heading.wg-display .elementor-heading-title {
	font-size: clamp(40px, 4.4vw, 64px); line-height: 1.04; letter-spacing: -.035em; font-weight: 800;
}
.elementor-widget-heading.wg-display .elementor-heading-title span,
.elementor-widget-heading.wg-accent .elementor-heading-title span {
	background: linear-gradient(100deg, #ff7a1a 0%, var(--wg-orange) 40%, var(--wg-amber) 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.elementor-widget-heading.wg-title .elementor-heading-title { letter-spacing: -.025em; }
.wg-lead { font-size: clamp(17px, 1.3vw, 20px); line-height: 1.62; }
.wg-small { font-size: 14px; line-height: 1.55; color: var(--wg-muted); }
.wg-measure { max-width: 680px; }
.wg-measure.wg-center { margin-left: auto; margin-right: auto; }

/* ---------- Buttons ----------
 * Every Elementor button gets the WeldGrid treatment: orange gradient, a light sweep on hover and the icon in a circle.
 * Variants: wg-btn-ghost (light backgrounds), wg-btn-glass (dark backgrounds), wg-btn-white (orange backgrounds), wg-link (text link).
 */
.elementor-widget-button .elementor-button {
	position: relative; overflow: hidden; isolation: isolate;
	display: inline-flex; align-items: center;
	border-radius: 14px; font-weight: 600; letter-spacing: .005em;
	background-color: var(--wg-orange);
	background-image: linear-gradient(135deg, #ff7f22 0%, var(--wg-orange) 48%, #e64f00 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 6px 14px -10px rgba(253, 95, 2, .6);
	transition: box-shadow .35s var(--wg-ease), transform .35s var(--wg-ease), background-color .3s, color .3s;
	will-change: transform;
}
.elementor-widget-button .elementor-button::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, .38) 50%, transparent 80%);
	transform: translateX(-130%); transition: transform .8s var(--wg-ease);
}
.elementor-widget-button .elementor-button:hover::before { transform: translateX(130%); }
.elementor-widget-button .elementor-button:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 10px 20px -12px rgba(253, 95, 2, .65); }
.elementor-widget-button .elementor-button .elementor-button-content-wrapper { align-items: center; }
.elementor-widget-button .elementor-button .elementor-button-icon {
	display: grid; place-items: center; width: 26px; height: 26px; margin: -4px -8px -4px 0; border-radius: 50%;
	background: rgba(255, 255, 255, .2); transition: transform .35s var(--wg-ease), background-color .3s;
}
.elementor-widget-button .elementor-button .elementor-button-icon svg { width: 12px; height: 12px; fill: currentColor; }
.elementor-widget-button .elementor-button:hover .elementor-button-icon { transform: translateX(3px); background: rgba(255, 255, 255, .3); }

.elementor-widget-button.wg-btn-ghost .elementor-button {
	color: var(--wg-navy); background: linear-gradient(var(--wg-navy), var(--wg-navy)) no-repeat 0 0 / 0% 100%, #fff;
	box-shadow: inset 0 0 0 1.5px #d3dbe7;
	transition: background-size .45s var(--wg-ease), color .3s, box-shadow .3s, transform .35s var(--wg-ease);
}
.elementor-widget-button.wg-btn-ghost .elementor-button:hover { color: #fff; background-size: 100% 100%; box-shadow: inset 0 0 0 1.5px var(--wg-navy); }
.elementor-widget-button.wg-btn-ghost .elementor-button .elementor-button-icon { background: rgba(0, 26, 63, .07); }
.elementor-widget-button.wg-btn-ghost .elementor-button:hover .elementor-button-icon { background: rgba(255, 255, 255, .16); }
.elementor-widget-button.wg-btn-ghost .elementor-button::before { display: none; }

.elementor-widget-button.wg-btn-glass .elementor-button {
	color: #fff; background: rgba(255, 255, 255, .08); border: 0;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .24);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.elementor-widget-button.wg-btn-glass .elementor-button:hover { color: #fff; background: rgba(255, 255, 255, .15); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45); }
.elementor-widget-button.wg-btn-glass .elementor-button .elementor-button-icon { background: rgba(255, 255, 255, .14); }

.elementor-widget-button.wg-btn-white .elementor-button { color: var(--wg-navy); background: #fff; box-shadow: none; }
.elementor-widget-button.wg-btn-white .elementor-button:hover { color: var(--wg-navy); background: #fff; }
.elementor-widget-button.wg-btn-white .elementor-button .elementor-button-icon { background: var(--wg-orange); color: #fff; }
.elementor-widget-button.wg-btn-white .elementor-button::before { background: linear-gradient(115deg, transparent 20%, rgba(253, 95, 2, .14) 50%, transparent 80%); }

.elementor-widget-button.wg-link .elementor-button {
	padding: 0; color: var(--wg-navy); background: none; box-shadow: none; overflow: visible; font-weight: 600;
}
.elementor-widget-button.wg-link .elementor-button::before { display: none; }
.elementor-widget-button.wg-link .elementor-button:hover { color: var(--wg-orange); box-shadow: none; }
.elementor-widget-button.wg-link .elementor-button .elementor-button-icon { width: 22px; height: 22px; margin: 0; background: var(--wg-orange-soft); color: var(--wg-orange); }
.elementor-widget-button.wg-btn-sm .elementor-button { padding: 12px 18px; font-size: 14px; border-radius: 12px; }

/* ---------- Top bar and header ---------- */

/* The WordPress toolbar of signed-in users is fixed above 600px and scrolls away below, so the sticky parts count it only above. */
html { --wg-adminbar: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) { html { --wg-adminbar: 0px; } }
.elementor:has(> .wg-topbar) { position: sticky; top: calc(var(--wg-adminbar, 0px) - var(--wg-topbar-h)); z-index: 1000; }
.wg-topbar { min-height: var(--wg-topbar-h); background: var(--wg-navy); }
.wg-topbar .elementor-icon-list-text, .wg-topbar .elementor-icon-list-item a { color: rgba(255, 255, 255, .78) !important; font-family: Inter, sans-serif; font-size: 13px !important; }
.wg-topbar .elementor-icon-list-item a:hover .elementor-icon-list-text { color: #fff !important; }
.wg-topbar .elementor-icon-list-icon svg, .wg-topbar .elementor-icon-list-icon i { fill: var(--wg-amber) !important; color: var(--wg-amber) !important; width: 13px; }
.wg-topbar .wg-cloud .elementor-icon-list-text { color: #fff !important; font-weight: 600; }

.wg-header {
	min-height: var(--wg-header-h);
	background: rgba(255, 255, 255, .9);
	-webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px);
	border-bottom: 1px solid var(--wg-line);
	transition: box-shadow .3s, background-color .3s;
}
.wg-header.is-scrolled { background: rgba(255, 255, 255, .96); box-shadow: 0 12px 30px -24px rgba(0, 26, 63, .5); }
.wg-logo img { display: block; width: 158px; height: auto; }
/* Elementor makes the logo link inline-block, which adds a line of space under the image on pages that load its image styles. */
.elementor-widget-image.wg-logo a { display: block; line-height: 0; }
.wg-nav .menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.wg-nav .menu li { list-style: none; margin: 0; }
.wg-nav .menu a {
	position: relative; display: block; padding: 10px 14px; border-radius: 10px;
	font-family: Inter, sans-serif; font-size: 15px; font-weight: 500; line-height: 1.2; color: var(--wg-navy);
}
.wg-nav .menu a::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 5px; height: 2px; border-radius: 2px;
	background: var(--wg-orange); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--wg-ease);
}
.wg-nav .menu a:hover::after, .wg-nav .menu .current-menu-item > a::after { transform: scaleX(1); }
.wg-nav .menu a:hover { color: var(--wg-navy); }
.wg-nav .widget_nav_menu, .wg-nav [class*="menu-"][class*="-container"] { margin: 0; }
.wg-burger { display: none !important; }
.wg-burger .elementor-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--wg-line); color: var(--wg-navy); font-size: 18px; cursor: pointer; }
.wg-burger .elementor-icon svg { width: 18px; height: 18px; }
html.wg-nav-open .wg-burger .elementor-icon svg, html.wg-nav-open .wg-burger .elementor-icon i { display: none; }
html.wg-nav-open .wg-burger .elementor-icon::before { content: "\00d7"; font: 400 30px/1 Inter, sans-serif; color: var(--wg-navy); margin-top: -3px; }

@media (max-width: 1024px) {
	.wg-burger { display: block !important; }
	.wg-header { position: relative; }
	.wg-navwrap {
		position: absolute !important; top: 100%; left: 0; right: 0;
		--flex-direction: column; --align-items: stretch; --gap: 12px; --row-gap: 12px;
		flex-direction: column !important; align-items: stretch !important;
		padding: 14px 20px 24px !important; background: #fff; border-bottom: 1px solid var(--wg-line);
		box-shadow: 0 24px 40px -28px rgba(0, 26, 63, .45);
		opacity: 0; visibility: hidden; transform: translateY(-6px);
		transition: opacity .25s, transform .3s var(--wg-ease), visibility 0s .3s;
	}
	html.wg-nav-open .wg-navwrap { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .3s var(--wg-ease); }
	.wg-nav .menu { flex-direction: column; align-items: stretch; gap: 0; }
	.wg-nav .menu a { padding: 14px 4px; font-size: 17px; border-radius: 0; border-bottom: 1px solid var(--wg-line); }
	.wg-nav .menu a::after { display: none; }
	.wg-navwrap .elementor-widget-button, .wg-navwrap .elementor-button { width: 100%; }
	.wg-navwrap .elementor-button { justify-content: center; }
}
@media (max-width: 767px) {
	:root { --wg-topbar-h: 36px; }
	.wg-topbar .wg-hide-mobile { display: none !important; }
	.wg-logo img { width: 140px; }
}

/* ---------- Sections ---------- */

.wg-soft { background: var(--wg-soft); }
.wg-dark {
	position: relative; isolation: isolate; color: rgba(255, 255, 255, .74);
	background: radial-gradient(900px 500px at 85% 0%, rgba(253, 95, 2, .16), transparent 60%), linear-gradient(180deg, var(--wg-navy) 0%, var(--wg-deep) 100%);
}
.wg-dark .elementor-widget-heading .elementor-heading-title { color: #fff; }
.wg-dark .elementor-widget-heading.wg-kicker .elementor-heading-title { color: #ff8a45; }
.wg-dark .elementor-widget-text-editor, .wg-dark .elementor-icon-list-text { color: rgba(255, 255, 255, .74); }

/* Hero: a dark blueprint with a grid that lights up around the pointer and a slowly moving floor grid. */
.wg-hero {
	position: relative; isolation: isolate; overflow: hidden;
	--mx: 72%; --my: 34%;
	background:
		radial-gradient(900px 560px at 80% 12%, rgba(253, 95, 2, .22), transparent 60%),
		radial-gradient(760px 560px at 0% 100%, rgba(52, 116, 255, .14), transparent 62%),
		linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px) 0 0 / 48px 48px,
		linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px) 0 0 / 48px 48px,
		linear-gradient(180deg, #001a3f 0%, #00112c 100%);
}
.wg-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255, 150, 80, .42) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 150, 80, .42) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(circle 240px at var(--mx) var(--my), #000 0%, transparent 100%);
	mask-image: radial-gradient(circle 240px at var(--mx) var(--my), #000 0%, transparent 100%);
	opacity: .8; transition: opacity .4s;
}
.wg-hero::after {
	content: ""; position: absolute; z-index: 0; pointer-events: none; left: -40%; right: -40%; bottom: -2px; height: 46%;
	background-image: linear-gradient(rgba(255, 255, 255, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .09) 1px, transparent 1px);
	background-size: 64px 64px;
	transform: perspective(520px) rotateX(64deg); transform-origin: 50% 100%;
	-webkit-mask-image: linear-gradient(to top, #000 10%, transparent 90%); mask-image: linear-gradient(to top, #000 10%, transparent 90%);
	animation: wgFloor 7s linear infinite;
}
.wg-hero > .e-con-inner { position: relative; z-index: 1; }
.wg-hero .elementor-widget-heading .elementor-heading-title { color: #fff; }
.wg-hero .wg-lead { color: rgba(255, 255, 255, .76); }
.wg-hero .wg-trust .elementor-icon-list-text { color: rgba(255, 255, 255, .7) !important; font-size: 14px; }
.wg-hero .wg-trust .elementor-icon-list-icon svg { fill: var(--wg-green-3) !important; }

/* Marquee of capabilities under the hero. The script repeats the list so it loops without a seam.
 * On hover the loop pauses and a weld seam runs along the bottom of the label, hot at its tip. */
.wg-marquee { position: relative; z-index: 1; overflow: hidden; padding: 4px 0 6px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.wg-marquee-track { display: flex !important; flex-wrap: nowrap !important; width: max-content !important; animation: wgMarquee 56s linear infinite; }
.wg-marquee:hover .wg-marquee-track { animation-play-state: paused; }
.wg-marquee .elementor-icon-list-items { flex-wrap: nowrap !important; margin: 0 !important; padding: 0 !important; }
.wg-marquee .elementor-icon-list-item {
	position: relative; overflow: hidden; margin: 0 5px !important; padding: 11px 18px !important; border-radius: 12px; white-space: nowrap;
	background: rgba(3, 20, 48, .78); border: 1px solid rgba(255, 255, 255, .12);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	transition: border-color .35s, background-color .35s, translate .35s var(--wg-ease);
}
.wg-marquee .elementor-icon-list-item::after { display: none !important; }
.wg-marquee .elementor-icon-list-item::before {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 2px; border-radius: 2px;
	background: linear-gradient(90deg, rgba(253, 95, 2, .15), var(--wg-orange) 72%, #ffd9a8 94%, #fff);
	box-shadow: 0 0 10px rgba(253, 95, 2, .7);
	transform: scaleX(0); transform-origin: left center; transition: transform .75s var(--wg-ease);
}
.wg-marquee .elementor-icon-list-item:hover { border-color: rgba(253, 95, 2, .5); background: rgba(10, 42, 92, .9); translate: 0 -2px; }
.wg-marquee .elementor-icon-list-item:hover::before { transform: scaleX(1); }
.wg-marquee .elementor-icon-list-icon { display: none !important; }
.wg-marquee .elementor-icon-list-text { padding: 0 !important; color: rgba(255, 255, 255, .84) !important; font-family: Inter, sans-serif; font-size: 14px !important; font-weight: 500; transition: color .3s; }
.wg-marquee .elementor-icon-list-item:hover .elementor-icon-list-text { color: #fff !important; }

/* ---------- Devices ---------- */

.wg-visual { position: relative; }
.wg-tilt {
	transform: perspective(1600px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
	transform-style: preserve-3d; transition: transform .7s var(--wg-ease);
}
.wg-tilt > .wg-phone-wrap { translate: 0 0 70px; }
.wg-tilt > .wg-chip { translate: 0 0 110px; }

.wg-laptop {
	--bezel: clamp(7px, 1.5vw, 14px);
	position: relative; width: 100%;
	padding: var(--bezel) var(--bezel) calc(var(--bezel) * 1.35);
	background: var(--wg-device); border-radius: clamp(10px, 1.5vw, 18px) clamp(10px, 1.5vw, 18px) 4px 4px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 0 30px 50px -36px rgba(0, 0, 0, .6);
	margin-bottom: 5.5%;
}
.wg-laptop img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top left; border-radius: 3px; }
.wg-laptop::before {
	content: ""; position: absolute; top: calc(var(--bezel) / 2 - 2px); left: 50%;
	width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: #253247;
}
.wg-laptop::after {
	content: ""; position: absolute; left: -9%; right: -9%; bottom: -4.6%; height: 4.6%;
	background:
		radial-gradient(ellipse 8% 55% at 50% 0, #9aa4b3 0 96%, transparent 100%),
		linear-gradient(180deg, #f3f5f9 0%, #dde2ea 46%, #b8c0cc 100%);
	border-radius: 3px 3px 22px 22px / 3px 3px 100% 100%;
	box-shadow: 0 16px 24px -18px rgba(0, 0, 0, .45);
}

.wg-phone {
	--frame: clamp(6px, 2.4%, 10px);
	position: relative; width: 100%;
	padding: var(--frame); background: var(--wg-device);
	border-radius: clamp(26px, 15%, 46px);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 0 0 1px rgba(0, 0, 0, .2), 0 24px 40px -26px rgba(0, 0, 0, .6);
}
.wg-phone img { display: block; box-sizing: border-box; width: 100%; height: auto; aspect-ratio: 9 / 18.5; padding-top: 11%; object-fit: cover; object-position: top left; border-radius: clamp(20px, 12%, 36px); background: #fff; }
.wg-phone::before {
	content: ""; position: absolute; z-index: 2; top: calc(var(--frame) + 8px); left: 50%; transform: translateX(-50%);
	width: 30%; height: 20px; border-radius: 20px; background: var(--wg-device);
}
.wg-phone-wrap { position: absolute !important; right: -4%; bottom: -9%; width: 32% !important; z-index: 3; }

.wg-browser {
	position: relative; width: 100%; overflow: hidden;
	padding-top: 38px; background: #fff;
	border: 1px solid var(--wg-line); border-radius: 16px;
	box-shadow: var(--wg-shadow);
}
.wg-browser::before {
	content: ""; position: absolute; inset: 0 0 auto 0; height: 38px;
	border-bottom: 1px solid var(--wg-line);
	background: #f6f8fb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='10'%3E%3Ccircle cx='5' cy='5' r='4.5' fill='%23ff6b5e'/%3E%3Ccircle cx='23' cy='5' r='4.5' fill='%23ffbe3d'/%3E%3Ccircle cx='41' cy='5' r='4.5' fill='%2337c759'/%3E%3C/svg%3E") 16px 50% / 46px 10px no-repeat;
}
.wg-browser::after {
	content: "cloud.weldgrid.gr"; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
	padding: 0 18px; height: 22px; line-height: 22px; border-radius: 7px;
	background: #fff; border: 1px solid var(--wg-line);
	font: 500 11px/22px Inter, sans-serif; color: #7c889b; letter-spacing: .01em; white-space: nowrap;
}
.wg-browser img { display: block; width: 100%; height: auto; }
@media (max-width: 767px) { .wg-browser { padding-top: 28px; border-radius: 12px; } .wg-browser::before { height: 28px; background-position: 10px 50%; background-size: 34px 8px; } .wg-browser::after { display: none; } }

.wg-video { border-radius: var(--wg-radius-lg); overflow: hidden; background: var(--wg-navy); box-shadow: 0 0 0 1px rgba(255, 255, 255, .12); }
.wg-video .elementor-custom-embed-image-overlay { border-radius: inherit; }
.wg-video .elementor-custom-embed-play {
	width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center;
	background: linear-gradient(135deg, #ff7f22, var(--wg-orange)); box-shadow: 0 0 0 10px rgba(253, 95, 2, .18);
	transition: transform .35s var(--wg-ease), box-shadow .35s;
}
.wg-video .elementor-custom-embed-play i, .wg-video .elementor-custom-embed-play svg { color: #fff; fill: #fff; opacity: 1; filter: none; }
.wg-video .elementor-custom-embed-play i { font-size: 28px !important; margin-left: 4px; }
.wg-video .elementor-custom-embed-play svg { width: 28px; height: 28px; margin-left: 4px; }
.wg-video:hover .elementor-custom-embed-play { transform: translate(-50%, -50%) scale(1.07); box-shadow: 0 0 0 14px rgba(253, 95, 2, .16); }

/* Floating cards over the devices. The outer element takes the entrance animation, the inner one floats. */
.wg-chip { position: absolute !important; z-index: 4; width: auto !important; max-width: 260px; margin: 0 !important; }
.wg-chip .elementor-icon-box-wrapper {
	display: flex !important; align-items: center; gap: 11px; text-align: left !important;
	padding: 11px 16px 11px 11px; border-radius: 15px;
	background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, .7); box-shadow: 0 12px 24px -16px rgba(0, 0, 0, .45);
	animation: wgFloat 6.5s ease-in-out infinite;
}
.wg-chip .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.wg-chip .elementor-icon {
	width: 34px; height: 34px; display: grid !important; place-items: center; border-radius: 10px;
	background: var(--wg-orange-soft); color: var(--wg-orange) !important; fill: var(--wg-orange); font-size: 15px !important;
}
.wg-chip .elementor-icon svg { width: 15px; height: 15px; fill: var(--wg-orange); }
.wg-chip .elementor-icon-box-title { margin: 0 !important; font-family: Inter, sans-serif; font-size: 13px !important; font-weight: 700 !important; line-height: 1.25 !important; color: var(--wg-navy) !important; }
.wg-chip .elementor-icon-box-description { margin: 2px 0 0 !important; font-family: Inter, sans-serif; font-size: 12px !important; line-height: 1.3 !important; color: var(--wg-muted) !important; }
.wg-chip--1 { top: 14%; left: -9%; }
.wg-chip--2 { bottom: 16%; left: 12%; }
.wg-chip--3 { top: -3%; right: 16%; }
.wg-chip--2 .elementor-icon-box-wrapper { animation-delay: -2.2s; }
.wg-chip--3 .elementor-icon-box-wrapper { animation-delay: -4.1s; }
@media (max-width: 1024px) {
	.wg-chip--1 { left: 0; top: -4%; }
	.wg-chip--3 { right: 0; }
}
@media (max-width: 767px) {
	.wg-chip { max-width: 190px; }
	.wg-chip .elementor-icon-box-wrapper { padding: 8px 11px 8px 8px; gap: 8px; }
	.wg-chip .elementor-icon { width: 28px; height: 28px; font-size: 13px !important; }
	.wg-chip .elementor-icon-box-title { font-size: 12px !important; }
	.wg-chip .elementor-icon-box-description { display: none; }
	.wg-chip--1 { top: -8%; left: 0; }
	.wg-chip--2 { display: none; }
	.wg-chip--3 { top: auto; bottom: 6%; right: auto; left: 0; }
	.wg-phone-wrap { width: 36% !important; right: -1%; bottom: -10%; }
}

/* ---------- Workflow: numbered steps, the line fills as the section scrolls by ---------- */

.wg-flow { position: relative; counter-reset: wgstep; --p: 0; }
.wg-flow::before, .wg-flow::after {
	content: ""; position: absolute; z-index: 0; left: 6%; right: 6%; top: 27px; height: 2px; border-radius: 2px;
}
.wg-flow::before { background: var(--wg-line); }
.wg-flow::after { background: linear-gradient(90deg, var(--wg-orange), var(--wg-amber)); transform: scaleX(var(--p)); transform-origin: left center; transition: transform .25s linear; }
.wg-step { position: relative; z-index: 1; counter-increment: wgstep; }
.wg-step .elementor-icon-box-icon { margin-bottom: 14px !important; }
.wg-step .elementor-icon {
	width: 56px; height: 56px; display: grid !important; place-items: center; border-radius: 16px;
	background: #fff; border: 1px solid var(--wg-line); box-shadow: none;
	color: var(--wg-navy) !important; fill: var(--wg-navy); font-size: 20px !important;
	transition: color .4s, background-color .4s, border-color .4s, box-shadow .4s, transform .4s var(--wg-ease);
}
.wg-step .elementor-icon svg { width: 20px; height: 20px; }
.wg-step.is-on .elementor-icon { background: var(--wg-navy); border-color: var(--wg-navy); color: #fff !important; fill: #fff; box-shadow: none; }
.wg-step.is-on .elementor-icon svg { fill: #fff; }
.wg-step:hover .elementor-icon { transform: translateY(-3px); }
.wg-step .elementor-icon-box-content::before {
	content: "0" counter(wgstep); display: block; margin-bottom: 6px;
	font: 700 12px/1 Inter, sans-serif; letter-spacing: .12em; color: #a6b1c2; transition: color .4s;
}
.wg-step.is-on .elementor-icon-box-content::before { color: var(--wg-orange); }
.wg-step .elementor-icon-box-title { margin: 0 0 4px !important; font-size: 15px !important; line-height: 1.3 !important; }
.wg-step .elementor-icon-box-description { font-size: 13px !important; line-height: 1.45 !important; color: var(--wg-muted) !important; }
@media (max-width: 1024px) {
	.wg-flow::before, .wg-flow::after { left: 27px; right: auto; top: 28px; bottom: 28px; width: 2px; height: auto; }
	.wg-flow::after { background: linear-gradient(180deg, var(--wg-orange), var(--wg-amber)); transform: scaleY(var(--p)); transform-origin: top center; }
	.wg-step .elementor-icon-box-wrapper { display: flex !important; align-items: center; gap: 18px; text-align: left !important; }
	.wg-step .elementor-icon-box-icon { margin: 0 !important; }
}

/* ---------- Platform tour (Elementor nested tabs) ----------
 * Tabs on the left, the screen of the chosen module on the right. The script moves to the next tab every few
 * seconds until the visitor picks one; the orange bar under the active tab shows the time left.
 */
.wg-tour.elementor-widget-n-tabs {
	--n-tabs-gap: 44px;
	--n-tabs-title-background-color: transparent; --n-tabs-title-background-color-hover: #fff; --n-tabs-title-background-color-active: #fff;
	--n-tabs-title-color: var(--wg-text); --n-tabs-title-color-hover: var(--wg-navy); --n-tabs-title-color-active: var(--wg-navy);
	--n-tabs-icon-color: var(--wg-orange); --n-tabs-icon-color-hover: var(--wg-orange); --n-tabs-icon-color-active: #fff;
	--n-tabs-border-width: 0px; --n-tabs-title-border-radius: 14px;
}
.wg-tour.elementor-element .e-n-tabs { gap: 44px; }
.wg-tour.elementor-element .e-n-tabs-heading { flex: 0 0 300px; flex-direction: column; justify-content: flex-start; align-self: flex-start; gap: 8px; }
.wg-tour.elementor-element .e-n-tab-title {
	position: relative; overflow: hidden; justify-content: flex-start; align-items: center; gap: 14px; text-align: left;
	width: 100%; padding: 14px 16px; border-radius: 14px; border: 1px solid transparent; background: transparent;
	font-family: Manrope, sans-serif; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--wg-text);
	transition: background-color .3s, border-color .3s, color .3s, box-shadow .3s;
}
.wg-tour.elementor-element .e-n-tab-title:hover { background: #fff; color: var(--wg-navy); }
.wg-tour.elementor-element .e-n-tab-title[aria-selected="true"] { background: #fff; border-color: var(--wg-line); color: var(--wg-navy); box-shadow: var(--wg-shadow-sm); }
.wg-tour.elementor-element .e-n-tab-title::after {
	content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0;
	background: linear-gradient(90deg, var(--wg-orange), var(--wg-amber));
}
.wg-tour.is-auto .e-n-tab-title[aria-selected="true"]::after { animation: wgProgress var(--wg-tour-ms, 7000ms) linear forwards; }
.wg-tour.elementor-element .e-n-tab-icon {
	display: grid; place-items: center; width: 38px; height: 38px; flex: none; border-radius: 11px;
	background: var(--wg-orange-soft); color: var(--wg-orange); transition: background-color .3s, color .3s;
}
.wg-tour.elementor-element .e-n-tab-icon svg { width: 16px; height: 16px; fill: currentColor; }
.wg-tour.elementor-element .e-n-tab-icon > * { grid-area: 1 / 1; margin: 0; }
.wg-tour.elementor-element .e-n-tab-title[aria-selected="true"] .e-n-tab-icon { background: var(--wg-orange); color: #fff; }
.wg-tour.elementor-element .e-n-tabs-content > .e-con { border: 0; padding: 0; }
.wg-tour.elementor-element .e-n-tabs-content > .e-con.e-active { animation: wgTab .65s var(--wg-ease) both; }
@media (max-width: 1024px) {
	.wg-tour.elementor-element .e-n-tabs { flex-direction: column !important; gap: 22px; }
	.wg-tour.elementor-element .e-n-tabs-heading {
		flex: none; flex-direction: row !important; flex-wrap: nowrap !important; overflow-x: auto; gap: 8px;
		margin: 0 -20px; padding: 2px 20px 6px; scrollbar-width: none;
	}
	.wg-tour.elementor-element .e-n-tabs-heading::-webkit-scrollbar { display: none; }
	.wg-tour.elementor-element .e-n-tab-title { width: auto; flex: none; white-space: nowrap; padding: 10px 14px; font-size: 14px; background: #fff; border-color: var(--wg-line); }
	.wg-tour.elementor-element .e-n-tab-icon { width: 30px; height: 30px; border-radius: 9px; }
}

/* ---------- Cards ---------- */

.wg-spot { --mx: 50%; --my: 50%; }
.wg-role { height: 100%; }
.wg-role .elementor-icon-box-wrapper {
	position: relative; height: 100%; padding: 28px; border-radius: var(--wg-radius); border: 1px solid var(--wg-line); text-align: left !important;
	background: #fff; transition: border-color .3s;
}
.wg-role:hover .elementor-icon-box-wrapper { border-color: #c9d3e2; }
.wg-role .elementor-icon-box-icon { margin-bottom: 18px !important; }
.wg-role .elementor-icon { width: 48px; height: 48px; display: grid !important; place-items: center; border-radius: 14px; background: var(--wg-navy); color: #fff !important; fill: #fff; font-size: 18px !important; transition: background-color .3s, transform .4s var(--wg-ease); }
.wg-role .elementor-icon svg { width: 19px; height: 19px; fill: #fff; }
.wg-role:hover .elementor-icon { background: var(--wg-orange); }
.wg-role .elementor-icon-box-title { margin: 0 0 8px !important; font-size: 18px !important; }
.wg-role .elementor-icon-box-description { font-size: 15px !important; line-height: 1.55 !important; }

.wg-check .elementor-icon-list-item { align-items: flex-start !important; }
.wg-check .elementor-icon-list-icon { margin-top: 4px; }
.wg-check .elementor-icon-list-icon i, .wg-check .elementor-icon-list-icon svg { color: var(--wg-green) !important; fill: var(--wg-green) !important; }
.wg-cross .elementor-icon-list-icon i, .wg-cross .elementor-icon-list-icon svg { color: #d0605a !important; fill: #d0605a !important; }

.wg-compare-old { background: #fff; border: 1px solid var(--wg-line); border-radius: var(--wg-radius-lg); }
.wg-compare-new {
	position: relative; overflow: hidden; isolation: isolate; border-radius: var(--wg-radius-lg);
	background: radial-gradient(520px 320px at 100% 0%, rgba(253, 95, 2, .32), transparent 65%), linear-gradient(160deg, #0a2a5c, var(--wg-navy) 60%);
	box-shadow: none;
}
.wg-compare-new .elementor-widget-heading .elementor-heading-title { color: #fff; }
.wg-compare-new .elementor-icon-list-text { color: rgba(255, 255, 255, .86) !important; }
.wg-compare-old .elementor-icon-list-text { color: var(--wg-muted) !important; }
.elementor-widget-heading.wg-tag .elementor-heading-title { display: inline-block; padding: 7px 12px; border-radius: 999px; font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; background: var(--wg-soft); color: var(--wg-muted); border: 1px solid var(--wg-line); }
.wg-compare-new .elementor-widget-heading.wg-tag .elementor-heading-title { background: rgba(34, 197, 94, .14); color: #86efac; border-color: rgba(74, 222, 128, .38); }
.wg-compare-new .wg-check .elementor-icon-list-icon { display: grid; place-items: center; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: rgba(34, 197, 94, .18); }
.wg-compare-new .wg-check .elementor-icon-list-icon svg { width: 11px !important; fill: var(--wg-green-3) !important; }
.wg-compare-old .wg-cross .elementor-icon-list-icon { display: grid; place-items: center; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: #fdeceb; }
.wg-compare-old .wg-cross .elementor-icon-list-icon svg { width: 10px !important; }

.wg-stat { background: #fff; border: 1px solid var(--wg-line); border-radius: var(--wg-radius); transition: transform .4s var(--wg-ease), box-shadow .4s; }

.wg-stat .elementor-counter { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 8px; text-align: left; }
.wg-stat .elementor-counter-number-wrapper { justify-content: flex-start !important; font-family: Manrope, sans-serif !important; font-size: clamp(40px, 4.2vw, 56px) !important; font-weight: 800 !important; line-height: 1 !important; letter-spacing: -.03em; color: var(--wg-navy) !important; }
.wg-stat .elementor-counter-number-suffix { color: var(--wg-orange); }
.wg-stat .elementor-counter-title { order: 2; justify-content: flex-start !important; text-align: left !important; font-family: Inter, sans-serif !important; font-size: 15px !important; font-weight: 400 !important; line-height: 1.45 !important; color: var(--wg-muted) !important; }

.elementor-widget-text-editor.wg-quote { position: relative; padding-left: 26px; border-left: 3px solid var(--wg-orange); font-family: Manrope, sans-serif; font-size: clamp(20px, 1.8vw, 24px); font-weight: 700; line-height: 1.35; color: var(--wg-navy); }

/* ---------- Call to action ---------- */

.wg-cta {
	position: relative; isolation: isolate; overflow: hidden; border-radius: var(--wg-radius-lg);
	background: radial-gradient(600px 400px at 90% 10%, rgba(255, 196, 140, .45), transparent 60%), linear-gradient(135deg, #ff7a1a 0%, var(--wg-orange) 45%, #d84800 100%);
	box-shadow: none;
}
.wg-cta::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background-image: linear-gradient(rgba(255, 255, 255, .13) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .13) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(ellipse 70% 100% at 85% 50%, #000 10%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 100% at 85% 50%, #000 10%, transparent 75%);
}
.wg-cta .elementor-widget-heading .elementor-heading-title { color: #fff; }
.wg-cta .elementor-widget-heading.wg-kicker .elementor-heading-title { color: #fff; }
.wg-cta .elementor-widget-text-editor { color: rgba(255, 255, 255, .9); }
.wg-cta .wg-btn-glass .elementor-button { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .12); }

/* ---------- Footer ---------- */

.wg-footer { background: var(--wg-navy); color: rgba(255, 255, 255, .72); }
.wg-footer .elementor-widget-heading .elementor-heading-title { color: #fff; }
.wg-footer .elementor-widget-text-editor { color: rgba(255, 255, 255, .66); }
.wg-footer .elementor-widget-heading.wg-foot-title .elementor-heading-title { font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.wg-footer .elementor-icon-list-item a, .wg-footer .elementor-icon-list-text { color: rgba(255, 255, 255, .8) !important; }
.wg-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: #fff !important; }
.wg-footer .elementor-icon-list-icon i, .wg-footer .elementor-icon-list-icon svg { color: var(--wg-amber) !important; fill: var(--wg-amber) !important; }
.wg-footer .wg-logo img { width: 178px; margin: 0; }
.wg-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.wg-footer-bottom, .wg-footer-bottom p, .wg-footer-bottom .elementor-widget-text-editor { font-size: 14px; color: rgba(255, 255, 255, .6); }
.wg-footer-bottom a { color: #fff; font-weight: 600; }
.wg-footer-bottom a:hover { color: var(--wg-amber); }
.wg-footer-bottom .e-con { --width: auto; width: auto; }
.wg-footer-bottom .elementor-widget { --container-widget-width: auto; width: auto; }
.wg-powered img { display: block; width: 40px !important; height: auto; }
.wg-footer .elementor-social-icon { background: rgba(255, 255, 255, .08) !important; border-radius: 12px !important; }
.wg-footer .elementor-social-icon:hover { background: var(--wg-orange) !important; }

/* ---------- Motion ----------
 * Elementor's Entrance Animation setting stays the switch. These keyframes make Fade In Up, Fade In, Zoom In
 * and the side fades shorter and calmer than Elementor's defaults.
 */
@keyframes wgUp { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
@keyframes wgIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes wgZoom { from { opacity: 0; transform: scale(.96) translate3d(0, 16px, 0); } to { opacity: 1; transform: none; } }
@keyframes wgRight { from { opacity: 0; transform: translate3d(-24px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes wgLeft { from { opacity: 0; transform: translate3d(24px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes wgFloat { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -8px, 0); } }
@keyframes wgPulse { 0% { box-shadow: 0 0 0 0 rgba(253, 95, 2, .55); } 80%, 100% { box-shadow: 0 0 0 10px rgba(253, 95, 2, 0); } }
@keyframes wgFloor { from { background-position: 0 0; } to { background-position: 0 64px; } }
@keyframes wgMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes wgProgress { from { width: 0; } to { width: 100%; } }
@keyframes wgTab { from { opacity: 0; transform: translate3d(0, 14px, 0) scale(.992); } to { opacity: 1; transform: none; } }
.elementor-element.animated { animation-duration: .95s; animation-timing-function: var(--wg-ease); animation-fill-mode: both; }
.elementor-element.animated.animated-fast { animation-duration: .6s; }
.elementor-element.animated.animated-slow { animation-duration: 1.35s; }
.elementor-element.animated.fadeInUp { animation-name: wgUp; }
.elementor-element.animated.fadeIn { animation-name: wgIn; }
.elementor-element.animated.zoomIn { animation-name: wgZoom; }
.elementor-element.animated.fadeInRight { animation-name: wgLeft; }
.elementor-element.animated.fadeInLeft { animation-name: wgRight; }

@media (prefers-reduced-motion: reduce) {
	.elementor-element.animated, .wg-chip .elementor-icon-box-wrapper, .wg-hero::after, .wg-marquee-track,
	.elementor-widget-heading.wg-badge .elementor-heading-title::before { animation: none !important; }
	.elementor-invisible { visibility: visible !important; opacity: 1 !important; }
	.wg-flow::after { transform: none !important; }
	.wg-tilt { transform: none !important; }
	.wg-tour .e-n-tab-title::after { display: none; }
}

/* Mobile: role cards become compact rows (icon beside the title). */
@media (max-width: 767px) {
	.wg-role .elementor-icon-box-wrapper { padding: 20px !important; gap: 16px; align-items: flex-start !important; }
	.wg-role .elementor-icon-box-icon { margin: 0 !important; }
	.wg-role .elementor-icon-box-title { font-size: 17px !important; margin-bottom: 4px !important; }
	.wg-role .elementor-icon-box-description { font-size: 14.5px !important; }
}

/* ---------- Cookie banner ----------
 * The banner comes from the CookieYes account (cdn-cookieyes.com), where its texts and behaviour are set.
 * These rules only match its type and colours to the site. Accept and Reject keep equal weight.
 */
.cky-consent-container .cky-title, .cky-preference-center .cky-preference-title { font-family: Manrope, sans-serif !important; color: var(--wg-navy) !important; }
.cky-consent-container .cky-notice-des, .cky-consent-container .cky-notice-des *, .cky-preference-center .cky-preference-content-wrapper, .cky-preference-center .cky-preference-content-wrapper * { font-family: Inter, sans-serif !important; color: var(--wg-text) !important; }
.cky-consent-container .cky-btn, .cky-preference-center .cky-btn { font-family: Inter, sans-serif !important; font-weight: 600 !important; border-radius: 12px !important; }
.cky-consent-container .cky-btn-accept, .cky-preference-center .cky-btn-accept { background: var(--wg-orange) !important; border-color: var(--wg-orange) !important; color: #fff !important; }
.cky-consent-container .cky-btn-reject, .cky-preference-center .cky-btn-reject { background: var(--wg-navy) !important; border-color: var(--wg-navy) !important; color: #fff !important; }
.cky-consent-container .cky-btn-customize, .cky-preference-center .cky-btn-preferences { background: transparent !important; border-color: var(--wg-navy) !important; color: var(--wg-navy) !important; }
.cky-consent-container a, .cky-preference-center a { color: var(--wg-orange) !important; }
.cky-btn-revisit-wrapper { background: var(--wg-navy) !important; }
.cky-preference-center .cky-switch input[type="checkbox"]:checked { background: var(--wg-orange) !important; }

/* ---------- v3: header layout, interactive cards, statement, sub-navigation, FAQ, legal ---------- */

/* Header: logo and menu together on the left, the main button on the right. */
.wg-hgroup { position: static !important; }
.wg-header .elementor-widget-button { flex-shrink: 0; }
.elementor-button { white-space: nowrap; }
@media (min-width: 1025px) { .wg-navwrap { padding-left: 8px; } }

/* Cards that tilt towards the pointer. The script sets the rotate property, so entrance animations
   (which use transform) and the tilt never fight. */
.wg-tilt-card { transition: rotate .6s var(--wg-ease); will-change: rotate; }
.wg-tilt-card.is-tilting { transition: rotate .12s linear; }

/* Workflow steps link to the matching module in the tour. */
.wg-step a, .wg-step .elementor-icon { cursor: pointer; }
.wg-step .elementor-icon-box-title a { color: inherit; }

/* Big statement whose words light up one after another while it scrolls through the screen. */
.elementor-widget-heading.wg-statement .elementor-heading-title {
	font-size: clamp(34px, 5.2vw, 72px); line-height: 1.08; letter-spacing: -.035em; font-weight: 800; text-wrap: balance;
}
.wg-scrub .wg-w { color: rgba(0, 26, 63, .14); transition: color .5s var(--wg-ease); }
.wg-scrub .wg-w.is-lit { color: var(--wg-navy); }
.wg-scrub span .wg-w.is-lit { color: var(--wg-orange); }
.wg-dark .wg-scrub .wg-w { color: rgba(255, 255, 255, .16); }
.wg-dark .wg-scrub .wg-w.is-lit { color: #fff; }
.wg-dark .wg-scrub span .wg-w.is-lit { color: var(--wg-amber); }
.elementor-widget-heading.wg-statement .elementor-heading-title span { background: none; -webkit-text-fill-color: currentColor; color: inherit; }

/* Inner page hero: the same blueprint as the home page, shorter. */
.wg-hero.wg-page-hero::after { height: 60%; opacity: .7; }

/* Sticky module navigation on the Platform page; the script highlights the module in view. */
.wg-subnav {
	position: sticky !important; top: calc(var(--wg-adminbar, 0px) + var(--wg-header-h)); z-index: 40;
	background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--wg-line);
}
.wg-subnav .elementor-icon-list-items { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; }
.wg-subnav .elementor-icon-list-items::-webkit-scrollbar { display: none; }
.wg-subnav .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.wg-subnav .elementor-icon-list-item::after { display: none !important; }
.wg-subnav .elementor-icon-list-item a {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; white-space: nowrap;
	font-family: Inter, sans-serif; font-size: 14px; font-weight: 400; transition: background-color .25s, color .25s;
}
.wg-subnav .elementor-icon-list-text { color: var(--wg-text) !important; transition: color .25s; }
.wg-subnav .elementor-icon-list-icon svg { fill: var(--wg-orange) !important; width: 14px !important; }
.wg-subnav .elementor-icon-list-item a:hover { background: var(--wg-soft); }
.wg-subnav .elementor-icon-list-item a.is-active { background: var(--wg-navy); }
.wg-subnav .elementor-icon-list-item a.is-active .elementor-icon-list-text { color: #fff !important; }
.wg-subnav .elementor-icon-list-item a.is-active .elementor-icon-list-icon svg { fill: var(--wg-amber) !important; }
/* Anchored sections stop below the sticky header and sub-navigation. */
.wg-anchor { scroll-margin-top: calc(var(--wg-adminbar, 0px) + var(--wg-header-h) + 70px); }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Module sections on the Platform page. */
.elementor-widget-heading.wg-num .elementor-heading-title {
	display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
	font: 800 15px/1 Manrope, sans-serif; color: var(--wg-orange); background: var(--wg-orange-soft);
}
.wg-pills .elementor-icon-list-items { gap: 8px; }
.wg-pills .elementor-icon-list-item { margin: 0 !important; padding: 8px 14px !important; border-radius: 999px; background: #fff; border: 1px solid var(--wg-line); }
.wg-pills .elementor-icon-list-item::after { display: none !important; }
.wg-pills .elementor-icon-list-text { font-family: Inter, sans-serif; font-size: 14px !important; font-weight: 500; color: var(--wg-navy) !important; }
.wg-pills .elementor-icon-list-icon svg { fill: var(--wg-orange) !important; width: 13px !important; }
.wg-panel { background: #fff; border: 1px solid var(--wg-line); border-radius: var(--wg-radius); }
.elementor-widget-heading.wg-label .elementor-heading-title { font-family: Inter, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wg-muted); }
.wg-flowline ol { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 0; margin: 0; padding: 0; list-style: none; counter-reset: wgfl; }
.wg-flowline li {
	position: relative; display: inline-flex; align-items: center; gap: 8px; margin: 0 22px 0 0; padding: 6px 12px 6px 6px; counter-increment: wgfl;
	border-radius: 10px; background: #fff; border: 1px solid var(--wg-line);
	font: 600 13.5px/1.2 Inter, sans-serif; color: var(--wg-navy);
}
.wg-flowline li::before { content: counter(wgfl); display: grid; place-items: center; width: 22px; height: 22px; border-radius: 7px; background: var(--wg-orange-soft); color: var(--wg-orange-2); font: 700 11px/1 Inter, sans-serif; }
.wg-flowline li::after { content: ""; position: absolute; top: 50%; right: -23px; width: 22px; height: 2px; margin-top: -1px; background: repeating-linear-gradient(90deg, #f7a36f 0 4px, transparent 4px 7px); }
.wg-flowline li:last-child { margin-right: 0; }
.wg-flowline li:last-child::after { display: none; }
.wg-flowline li:last-child::before { background: var(--wg-green-soft); color: var(--wg-green); }

/* FAQ (Elementor nested accordion). */
.wg-faq.elementor-widget-n-accordion {
	--n-accordion-title-font-size: 17px; --n-accordion-title-normal-color: var(--wg-navy); --n-accordion-title-hover-color: var(--wg-navy); --n-accordion-title-active-color: var(--wg-navy);
	--n-accordion-icon-normal-color: var(--wg-orange); --n-accordion-icon-hover-color: var(--wg-orange); --n-accordion-icon-active-color: #fff;
	--n-accordion-item-title-space-between: 10px; --n-accordion-border-width: 0px; --n-accordion-padding: 0px;
}
.wg-faq .e-n-accordion { display: flex; flex-direction: column; gap: 10px; }
.wg-faq .e-n-accordion-item { border: 1px solid var(--wg-line) !important; border-radius: 16px; background: #fff; overflow: hidden; transition: border-color .3s, box-shadow .3s; }
.wg-faq .e-n-accordion-item[open] { border-color: #ffd2b6 !important; box-shadow: var(--wg-shadow-sm); }
.wg-faq .e-n-accordion-item-title { padding: 18px 20px !important; background: transparent !important; border: 0 !important; gap: 16px; }
.wg-faq .e-n-accordion-item-title-text { font-family: Manrope, sans-serif !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1.35 !important; color: var(--wg-navy) !important; }
.wg-faq .e-n-accordion-item-title-icon { display: grid !important; place-items: center; width: 30px; height: 30px; flex: none; border-radius: 50%; background: var(--wg-orange-soft); transition: background-color .3s, transform .35s var(--wg-ease); }
.wg-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--wg-orange); transform: rotate(180deg); }
.wg-faq .e-n-accordion-item-title-icon svg { width: 12px; height: 12px; fill: currentColor; }
.wg-faq .e-n-accordion-item-title-icon span { display: grid; place-items: center; }
.wg-faq .e-n-accordion-item > .e-con { padding: 0 20px 20px !important; border: 0 !important; }
.wg-faq .e-n-accordion-item > .e-con .elementor-widget-text-editor { font-size: 16px; line-height: 1.65; color: var(--wg-text); }
.wg-faq .e-n-accordion-item > .e-con p { max-width: 920px; }
.wg-faq .e-n-accordion-item[open] { border-color: #c9d3e2 !important; }
.wg-faq .e-n-accordion-item[open] .e-n-accordion-item-title { box-shadow: inset 3px 0 0 var(--wg-orange); }
.wg-faq ul.wg-points { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.wg-faq ul.wg-points li { position: relative; margin: 0; padding: 14px 16px 14px 46px; border-radius: 12px; background: var(--wg-soft); border: 1px solid var(--wg-line); font-size: 15px; line-height: 1.55; color: var(--wg-text); }
.wg-faq ul.wg-points li::before { content: ""; position: absolute; left: 15px; top: 15px; width: 21px; height: 21px; border-radius: 50%; background: var(--wg-green-soft) var(--wg-check) center / 12px no-repeat; }
.wg-faq ul.wg-points strong { display: block; margin-bottom: 2px; font-family: Manrope, sans-serif; font-size: 15.5px; font-weight: 700; line-height: 1.35; color: var(--wg-navy); }
@media (max-width: 767px) { .wg-faq ul.wg-points { grid-template-columns: 1fr; } }

/* Contact and value cards. */
.wg-contact { height: 100%; }
.wg-contact .elementor-icon-box-wrapper {
	position: relative; height: 100%; padding: 30px; border-radius: var(--wg-radius); border: 1px solid var(--wg-line); text-align: left !important;
	background: #fff; transition: border-color .3s;
}
.wg-contact:hover .elementor-icon-box-wrapper { border-color: #c9d3e2; }
.wg-contact .elementor-icon-box-icon { margin-bottom: 20px !important; }
.wg-contact .elementor-icon { width: 52px; height: 52px; display: grid !important; place-items: center; border-radius: 15px; background: var(--wg-orange); color: #fff !important; fill: #fff; font-size: 20px !important; transition: transform .4s var(--wg-ease); }
.wg-contact .elementor-icon svg { width: 20px; height: 20px; fill: #fff; }

.wg-contact .elementor-icon-box-title { margin: 0 0 6px !important; font-size: 13px !important; font-family: Inter, sans-serif !important; font-weight: 600 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--wg-muted) !important; }
.wg-contact .elementor-icon-box-description { font-family: Manrope, sans-serif !important; font-size: 21px !important; font-weight: 700 !important; line-height: 1.3 !important; color: var(--wg-navy) !important; word-break: break-word; }
.wg-contact .elementor-icon-box-title a { color: inherit; }
.wg-contact .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--wg-radius); }

.wg-value { height: 100%; }
.wg-value .elementor-icon-box-wrapper { height: 100%; padding: 30px; border-radius: var(--wg-radius); background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); text-align: left !important; transition: background-color .3s, border-color .3s; }
.wg-value:hover .elementor-icon-box-wrapper { background: rgba(255, 255, 255, .1); border-color: rgba(253, 95, 2, .45); }
.wg-value .elementor-icon-box-icon { margin-bottom: 18px !important; }
.wg-value .elementor-icon { width: 48px; height: 48px; display: grid !important; place-items: center; border-radius: 14px; background: rgba(253, 95, 2, .16); color: var(--wg-amber) !important; fill: var(--wg-amber); font-size: 19px !important; }
.wg-value .elementor-icon svg { width: 19px; height: 19px; fill: var(--wg-amber); }
.wg-value .elementor-icon-box-title { margin: 0 0 8px !important; font-size: 20px !important; color: #fff !important; }
.wg-value .elementor-icon-box-description { font-size: 15.5px !important; line-height: 1.6 !important; color: rgba(255, 255, 255, .72) !important; }

.wg-steps-demo { counter-reset: wgdemo; }
.wg-demo-step { counter-increment: wgdemo; height: 100%; }
.wg-demo-step .elementor-icon-box-wrapper { height: 100%; padding: 28px; border-radius: var(--wg-radius); background: #fff; border: 1px solid var(--wg-line); text-align: left !important; }
.wg-demo-step .elementor-icon-box-content::before { content: "0" counter(wgdemo); display: block; margin-bottom: 10px; font: 800 13px/1 Inter, sans-serif; letter-spacing: .12em; color: var(--wg-orange); }
.wg-demo-step .elementor-icon-box-icon { margin-bottom: 16px !important; }
.wg-demo-step .elementor-icon { width: 46px; height: 46px; display: grid !important; place-items: center; border-radius: 13px; background: var(--wg-navy); color: #fff !important; fill: #fff; font-size: 18px !important; }
.wg-demo-step .elementor-icon svg { width: 18px; height: 18px; fill: #fff; }
.wg-demo-step .elementor-icon-box-title { margin: 0 0 6px !important; font-size: 18px !important; }

/* Legal pages: readable long-form text. */
.e-con > .elementor-widget.wg-legal, .wg-legal { max-width: 820px; font-size: 16.5px; line-height: 1.75; color: var(--wg-text); }
.wg-legal h2 { margin: 2.2em 0 .6em; font-family: Manrope, sans-serif; font-size: 24px; line-height: 1.3; letter-spacing: -.01em; color: var(--wg-navy); }
.wg-legal h2:first-child { margin-top: 0; }
.wg-legal h3 { margin: 1.6em 0 .4em; font-family: Manrope, sans-serif; font-size: 18px; color: var(--wg-navy); }
.wg-legal ul { margin: 0 0 1.2em; padding-left: 1.2em; }
.wg-legal li { margin: .35em 0; }
.wg-legal a { color: var(--wg-orange-2); text-decoration: underline; text-underline-offset: 3px; }
.wg-legal strong { color: var(--wg-navy); }
.wg-legal table { width: 100%; margin: 1em 0 1.6em; border-collapse: separate; border-spacing: 0; font-size: 15px; border: 1px solid var(--wg-line); border-radius: 14px; overflow: hidden; }
.wg-legal th, .wg-legal td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--wg-line); }
.wg-legal th { background: var(--wg-soft); font-family: Inter, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wg-muted); }
.wg-legal tr:last-child td { border-bottom: 0; }
.wg-legal .wg-ph { padding: 1px 6px; border-radius: 6px; background: #fff3cd; color: #7a5a00; font-weight: 600; }
@media (max-width: 767px) {
	.wg-legal table, .wg-legal thead, .wg-legal tbody, .wg-legal tr, .wg-legal th, .wg-legal td { display: block; }
	.wg-legal thead { display: none; }
	.wg-legal td { border-bottom: 0; padding: 6px 14px; }
	.wg-legal tr { border-bottom: 1px solid var(--wg-line); padding: 8px 0; }
}

/* Platform page: a second screen overlapping the main one, and long lists in two columns. */
.wg-shot { position: relative; }
.wg-overlap { position: absolute !important; width: 48% !important; left: -7%; bottom: -4%; z-index: 2; }
.wg-overlap .wg-browser { box-shadow: 0 1px 2px rgba(0, 26, 63, .05), 0 16px 34px -22px rgba(0, 26, 63, .35); }
.wg-overlap-phone { width: 24% !important; left: auto; right: -5%; bottom: -8%; }
@media (max-width: 1024px) {
	.wg-overlap { position: relative !important; width: 78% !important; left: auto; bottom: auto; margin: -14% 0 0 auto !important; }
	.wg-overlap-phone { width: 34% !important; margin: -30% 4% 0 auto !important; }
}
.wg-cols-2 .elementor-icon-list-items { display: block !important; columns: 2; column-gap: 32px; }
.wg-cols-2 .elementor-icon-list-item { break-inside: avoid; }
@media (max-width: 767px) { .wg-cols-2 .elementor-icon-list-items { columns: 1; } }
.wg-panel .elementor-widget-heading h4.elementor-heading-title { margin-top: 6px; font-size: 16px; }

/* Language switch (GTranslate) in the top bar. */
.wg-lang .gtranslate_wrapper { display: flex; align-items: center; gap: 2px; }
.wg-lang .glink { display: inline-block; padding: 3px 7px; border-radius: 6px; font: 600 12px/1.4 Inter, sans-serif !important; letter-spacing: .06em; color: rgba(255, 255, 255, .7) !important; text-decoration: none !important; }
.wg-lang .glink:hover { color: #fff !important; }
.wg-lang .glink.gt-current-lang { color: #fff !important; background: rgba(255, 255, 255, .14); }
.wg-lang .glink img { display: none; }

/* Mobile: contact cards as compact rows. */
@media (max-width: 767px) {
	.wg-contact .elementor-icon-box-wrapper { padding: 20px !important; gap: 16px; align-items: center !important; }
	.wg-contact .elementor-icon-box-icon { margin: 0 !important; }
	.wg-contact .elementor-icon { width: 46px; height: 46px; }
	.wg-contact .elementor-icon-box-description { font-size: 18px !important; }
}

/* ---------- v4: industrial hover, nameplates, forge band, compact contact, language switch, icons ---------- */

/* Industrial hover for cards (class wg-spot). Under the pointer a fine blueprint grid shows, CAD corner marks snap in
   around the card and a weld seam along the bottom edge glows where the pointer is. --mx and --my come from the
   script. No lift and no shadow. */
.wg-spot { --mx: 50%; --my: 50%; --wg-grid: rgba(0, 26, 63, .09); --wg-corner: var(--wg-navy); position: relative; }
.wg-spot .elementor-icon-box-wrapper { position: relative; isolation: isolate; overflow: hidden; }
.wg-spot .elementor-icon-box-wrapper::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0;
	background-image: linear-gradient(var(--wg-grid) 1px, transparent 1px), linear-gradient(90deg, var(--wg-grid) 1px, transparent 1px);
	background-size: 16px 16px; background-position: -1px -1px;
	-webkit-mask-image: radial-gradient(210px circle at var(--mx) var(--my), #000 0%, transparent 72%);
	mask-image: radial-gradient(210px circle at var(--mx) var(--my), #000 0%, transparent 72%);
	transition: opacity .35s;
}
.wg-spot .elementor-icon-box-wrapper::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; pointer-events: none; opacity: 0;
	background:
		radial-gradient(80px 3px at var(--mx) 100%, #fff 0%, #ffd29c 22%, var(--wg-orange) 50%, transparent 100%),
		linear-gradient(90deg, transparent, rgba(253, 95, 2, .32) 22%, rgba(253, 95, 2, .32) 78%, transparent);
	filter: drop-shadow(0 0 5px rgba(253, 95, 2, .7));
	transition: opacity .35s;
}
.wg-spot::after {
	content: ""; position: absolute; inset: -6px; z-index: 3; pointer-events: none; opacity: 0; scale: 1.035;
	--l: 14px; --t: 2px;
	background:
		linear-gradient(var(--wg-corner), var(--wg-corner)) 0 0 / var(--l) var(--t), linear-gradient(var(--wg-corner), var(--wg-corner)) 0 0 / var(--t) var(--l),
		linear-gradient(var(--wg-corner), var(--wg-corner)) 100% 0 / var(--l) var(--t), linear-gradient(var(--wg-corner), var(--wg-corner)) 100% 0 / var(--t) var(--l),
		linear-gradient(var(--wg-corner), var(--wg-corner)) 0 100% / var(--l) var(--t), linear-gradient(var(--wg-corner), var(--wg-corner)) 0 100% / var(--t) var(--l),
		linear-gradient(var(--wg-corner), var(--wg-corner)) 100% 100% / var(--l) var(--t), linear-gradient(var(--wg-corner), var(--wg-corner)) 100% 100% / var(--t) var(--l);
	background-repeat: no-repeat;
	transition: opacity .3s, scale .45s var(--wg-ease);
}
.wg-spot:hover .elementor-icon-box-wrapper::before, .wg-spot:hover .elementor-icon-box-wrapper::after { opacity: 1; }
.wg-spot:hover::after { opacity: 1; scale: 1; }
.wg-dark .wg-spot, .wg-spot.wg-value { --wg-grid: rgba(255, 255, 255, .08); --wg-corner: var(--wg-amber); }
@media (hover: none) { .wg-spot::after, .wg-spot .elementor-icon-box-wrapper::before, .wg-spot .elementor-icon-box-wrapper::after { display: none; } }

/* Demo steps and value cards follow the same quiet card style. */
.wg-demo-step .elementor-icon-box-wrapper { transition: border-color .3s; }
.wg-demo-step:hover .elementor-icon-box-wrapper { border-color: #c9d3e2; }
.wg-value .elementor-icon-box-wrapper { position: relative; }

/* Icons: the custom WeldGrid set is line art drawn with currentColor; Elementor only colours fills, so the stroke
   follows the icon colour here. */
.elementor-icon svg.wg-ico, .elementor-icon-list-icon svg.wg-ico, .e-n-tab-icon svg.wg-ico, .elementor-button-icon svg.wg-ico { fill: none !important; stroke: currentColor; }
.elementor-icon-list-icon svg.wg-ico { width: 1.15em; height: 1.15em; }

/* Nameplates: the facts on a riveted, brushed steel plate. The pointer moves a highlight across the brushed metal
   and heats the weld seam along the bottom edge. */
.wg-plate {
	--mx: 50%; --my: 50%;
	position: relative; isolation: isolate; overflow: hidden; border-radius: 14px;
	background:
		radial-gradient(circle at 15px 15px, #8f9bb0 0 1.8px, #23324d 2.4px, transparent 3.2px),
		radial-gradient(circle at calc(100% - 15px) 15px, #8f9bb0 0 1.8px, #23324d 2.4px, transparent 3.2px),
		radial-gradient(circle at 15px calc(100% - 15px), #8f9bb0 0 1.8px, #23324d 2.4px, transparent 3.2px),
		radial-gradient(circle at calc(100% - 15px) calc(100% - 15px), #8f9bb0 0 1.8px, #23324d 2.4px, transparent 3.2px),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, .024) 0 1px, transparent 1px 3px),
		linear-gradient(165deg, #1a2e51 0%, #0c1b36 100%);
	border: 1px solid rgba(255, 255, 255, .13);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
	transition: border-color .35s;
}
.wg-plate::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .35s;
	background:
		radial-gradient(80px 3px at var(--mx) 100%, #fff 0%, #ffd29c 22%, var(--wg-orange) 50%, transparent 100%),
		linear-gradient(90deg, transparent calc(var(--mx) - 70px), rgba(255, 255, 255, .075) var(--mx), transparent calc(var(--mx) + 70px)),
		radial-gradient(260px circle at var(--mx) var(--my), rgba(255, 255, 255, .07), transparent 65%);
}
.wg-plate:hover { border-color: rgba(253, 95, 2, .42); }
.wg-plate:hover::after { opacity: 1; }
.elementor-widget-heading.wg-plate-tag .elementor-heading-title { font: 700 11px/1.2 Inter, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #ffa767; }
.elementor-widget-heading.wg-plate-num .elementor-heading-title { font: 800 clamp(32px, 3vw, 42px)/1 Manrope, sans-serif; letter-spacing: -.03em; color: #fff; text-shadow: 0 1px 0 rgba(0, 0, 0, .4); font-variant-numeric: tabular-nums; }
.elementor-widget-heading.wg-plate-num .elementor-heading-title span { color: var(--wg-orange); }
.wg-plate .wg-plate-text { font-size: 14.5px; line-height: 1.45; color: rgba(255, 255, 255, .68); }

/* Forge band: the slogan beside the 3D spool scene, on the dark blueprint. */
.wg-forge {
	position: relative; isolation: isolate; overflow: hidden;
	background:
		radial-gradient(760px 460px at 76% 46%, rgba(253, 95, 2, .13), transparent 62%),
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 48px 48px,
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 48px 48px,
		linear-gradient(180deg, #001a3f 0%, #000f29 100%);
}
.elementor-widget-heading.wg-slogan .elementor-heading-title { font-size: clamp(32px, 3.5vw, 50px); line-height: 1.08; letter-spacing: -.03em; font-weight: 800; text-wrap: balance; }
.wg-forge .wg-scrub .wg-w { color: rgba(255, 255, 255, .16); }
.wg-forge .wg-scrub .wg-w.is-lit { color: #fff; }
.wg-forge .wg-scrub span .wg-w.is-lit { color: var(--wg-amber); }
.wg-forge-stage { position: relative; width: 100%; aspect-ratio: 6 / 5; min-height: 300px; }
.wg-forge-stage > .elementor-widget-image { position: absolute !important; inset: 0; margin: 0 !important; transition: opacity .6s; }
.wg-forge-stage > .elementor-widget-image img { width: 100%; height: 100%; object-fit: contain; }
.wg-forge-stage.is-live > .wg-forge-poster { opacity: 0; }
.wg-forge-canvas {
	position: absolute; inset: 0; width: 100% !important; height: 100% !important; display: block;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(180deg, transparent 0, #000 7%, #000 84%, transparent 100%);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(180deg, transparent 0, #000 7%, #000 84%, transparent 100%);
	mask-composite: intersect;
}
.wg-forge-tag {
	position: absolute; left: 0; top: 0; z-index: 2; translate: -50% -100%; scale: .92; opacity: 0;
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 11px 7px 8px; border-radius: 10px; white-space: nowrap;
	background: rgba(6, 22, 48, .84); border: 1px solid rgba(255, 255, 255, .14); color: #fff;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	font: 600 12px/1 Inter, sans-serif; pointer-events: none;
	transition: opacity .35s, scale .45s var(--wg-ease), border-color .35s, background-color .35s, padding .35s;
}
.wg-forge-tag.is-on { opacity: 1; scale: 1; }
.wg-forge-tag > span { max-width: 220px; overflow: hidden; transition: opacity .25s, max-width .45s var(--wg-ease); }
.wg-forge-tag__id { padding: 4px 6px; border-radius: 6px; background: rgba(253, 95, 2, .18); color: #ffb183; font-weight: 700; letter-spacing: .02em; }
.wg-forge-tag__state { color: rgba(255, 255, 255, .9); }
.wg-forge-tag.is-ok { border-color: rgba(74, 222, 128, .45); background: rgba(5, 46, 30, .8); }
.wg-forge-tag.is-ok .wg-forge-tag__id { background: rgba(74, 222, 128, .18); color: #86efac; }
.wg-forge-tag.is-ok .wg-forge-tag__state::before {
	content: ""; display: inline-block; width: 13px; height: 13px; margin: 0 6px -3px 0; border-radius: 50%;
	background: #22c55e url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2 5 8.2 9 4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.wg-forge-tag--spool { font-size: 13px; padding: 9px 13px 9px 9px; }
.wg-forge-tag.is-done { gap: 0; padding: 3px; border-radius: 50%; translate: -50% -50%; background: #16a34a; border-color: rgba(134, 239, 172, .7); box-shadow: 0 0 0 4px rgba(34, 197, 94, .18); }
.wg-forge-tag.is-done > span { max-width: 0; opacity: 0; padding: 0; }
.wg-forge-tag.is-done::after {
	content: ""; width: 14px; height: 14px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2 5 8.2 9 4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
}
/* Room for 3D figures (welder, inspector) when they are added as images with these classes. */
.wg-forge-stage > .wg-figure { position: absolute !important; bottom: 6%; z-index: 3; width: 28% !important; margin: 0 !important; pointer-events: none; }
.wg-forge-stage > .wg-figure--left { left: 2%; }
.wg-forge-stage > .wg-figure--right { right: 2%; }
@media (max-width: 1024px) { .wg-forge-stage { aspect-ratio: 4 / 3; } }
@media (max-width: 767px) { .wg-forge-stage { aspect-ratio: 1 / 1; min-height: 0; } .wg-forge-tag { font-size: 11px; } }

/* Contact: compact cards under the demo button. */
.wg-contact.wg-contact--mini .elementor-icon-box-wrapper { display: flex !important; align-items: center !important; gap: 14px; padding: 14px 16px !important; border-radius: 14px; }
.wg-contact.wg-contact--mini .elementor-icon-box-icon { margin: 0 !important; }
.wg-contact.wg-contact--mini .elementor-icon { width: 42px; height: 42px; border-radius: 12px; font-size: 16px !important; }
.wg-contact.wg-contact--mini .elementor-icon svg { width: 18px; height: 18px; }
.wg-contact.wg-contact--mini .elementor-icon-box-title { margin: 0 0 3px !important; font-size: 11px !important; letter-spacing: .12em; }
.wg-contact.wg-contact--mini .elementor-icon-box-description { font-size: 16px !important; line-height: 1.25 !important; }
.wg-contact.wg-contact--mini .elementor-icon-box-title a::after { border-radius: 14px; }

/* Language switch: a floating pill at the bottom right (left of the accessibility button), like the shop site.
   The sliding thumb marks the language in use. */
.wg-langfab {
	position: fixed; right: 80px; bottom: 22px; z-index: 499990;
	display: inline-grid; grid-template-columns: 1fr 1fr; align-items: center; padding: 4px; border-radius: 999px;
	background: rgba(255, 255, 255, .94); border: 1px solid var(--wg-line);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	box-shadow: 0 10px 24px -16px rgba(0, 26, 63, .55);
	transition: translate .3s var(--wg-ease);
}
.wg-langfab:hover { translate: 0 -2px; }
.wg-langfab::before {
	content: ""; position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); border-radius: 999px;
	background: var(--wg-navy); transition: transform .4s var(--wg-ease);
}
.wg-langfab[data-active="el"]::before { transform: translateX(100%); }
.wg-langfab .gtranslate_wrapper { display: contents; }
.wg-langfab .glink {
	position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
	padding: 7px 12px 7px 7px; border-radius: 999px; text-decoration: none !important;
	font: 700 13px/1 Inter, sans-serif !important; letter-spacing: .04em; color: var(--wg-muted) !important; transition: color .3s;
}
.wg-langfab .glink img { display: none; }
.wg-langfab .glink::before { content: ""; width: 20px; height: 20px; border-radius: 50%; background: center / cover no-repeat; box-shadow: 0 0 0 1.5px rgba(0, 26, 63, .12); }
.wg-langfab .glink[data-gt-lang="en"]::before { background-image: url("/wp-content/plugins/gtranslate/flags/svg/en.svg"); }
.wg-langfab .glink[data-gt-lang="el"]::before { background-image: url("/wp-content/plugins/gtranslate/flags/svg/el.svg"); }
.wg-langfab[data-active="en"] .glink[data-gt-lang="en"], .wg-langfab[data-active="el"] .glink[data-gt-lang="el"] { color: #fff !important; }
.elementor-editor-active .wg-langfab, html.wg-nav-open .wg-langfab { opacity: 0; pointer-events: none; }
@media (max-width: 767px) {
	.wg-langfab { right: 76px; bottom: 21px; }
	.wg-langfab .glink { padding: 6px 10px 6px 6px; font-size: 12px !important; }
	.wg-langfab .glink::before { width: 18px; height: 18px; }
}

/* Tour links and buttons keep their arrow icon centred in its circle. */
.elementor-widget-button .elementor-button .elementor-button-icon svg.wg-ico { width: 14px; height: 14px; stroke-width: 2; }

/* ---------- v4 fixes: icon colour and size, tabs, nameplates, room for the floating buttons ---------- */

/* The WeldGrid icons are strokes in currentColor, so every place that colours list icons sets color as well. */
.wg-topbar .elementor-icon-list-icon svg.wg-ico { color: var(--wg-amber) !important; }
.wg-hero .wg-trust .elementor-icon-list-icon svg.wg-ico { color: var(--wg-green-3) !important; width: 18px !important; height: 18px !important; }
.wg-pills .elementor-icon-list-icon svg.wg-ico { color: var(--wg-orange) !important; width: 15px !important; height: 15px !important; }
.wg-cross .elementor-icon-list-icon svg.wg-ico { color: #d0605a !important; }
.wg-compare-new .wg-check .elementor-icon-list-icon svg.wg-ico { color: var(--wg-green-3) !important; width: 13px !important; height: 13px !important; }
.wg-compare-old .wg-cross .elementor-icon-list-icon svg.wg-ico { width: 12px !important; height: 12px !important; }
.wg-check .elementor-icon-list-icon svg.wg-ico { width: 17px !important; height: 17px !important; }
.wg-footer .elementor-icon-list-icon svg.wg-ico { width: 17px !important; height: 17px !important; }

/* Icon boxes: the line icons need a little more size than the old solid ones to carry the same weight. */
.wg-role .elementor-icon svg.wg-ico, .wg-value .elementor-icon svg.wg-ico, .wg-demo-step .elementor-icon svg.wg-ico { width: 25px !important; height: 25px !important; }
.wg-contact .elementor-icon svg.wg-ico { width: 24px !important; height: 24px !important; }
.wg-contact.wg-contact--mini .elementor-icon svg.wg-ico { width: 21px !important; height: 21px !important; }
.wg-step .elementor-icon svg.wg-ico { width: 25px !important; height: 25px !important; }
.wg-chip .elementor-icon svg.wg-ico { width: 19px !important; height: 19px !important; stroke: var(--wg-orange); }
.wg-tour.elementor-element .e-n-tab-icon svg.wg-ico { width: 20px !important; height: 20px !important; }
.wg-tour.elementor-element .e-n-tab-title-text { text-align: left; }
.wg-tour.elementor-element .e-n-tab-title { justify-content: flex-start !important; }
.elementor-widget-button .elementor-button .elementor-button-icon svg.wg-ico { width: 15px !important; height: 15px !important; }
.wg-video .elementor-custom-embed-play svg.wg-ico { width: 32px !important; height: 32px !important; margin-left: 5px; fill: #fff !important; stroke: none; color: #fff; }
.wg-burger .elementor-icon svg.wg-ico { width: 22px !important; height: 22px !important; color: var(--wg-navy); }

/* FAQ plus and minus. */
.wg-faq .e-n-accordion-item-title-icon { color: var(--wg-orange); }
.wg-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon { color: #fff; }
.wg-faq .e-n-accordion-item-title-icon svg.wg-ico { width: 15px !important; height: 15px !important; stroke-width: 2.2; }

/* Nameplates: the figure fits the plate at every width. */
.wg-plate { padding: 22px 20px 20px !important; }
.elementor-widget-heading.wg-plate-num .elementor-heading-title { font-size: clamp(28px, 2.4vw, 36px); white-space: nowrap; }
.wg-plate .wg-plate-text { font-size: 14px; }

/* Demo steps: icon beside the text, so the right column stays as compact as the cards on the left. */
.wg-demo-step .elementor-icon-box-wrapper { display: flex !important; align-items: flex-start !important; gap: 18px; padding: 22px 24px !important; }
.wg-demo-step .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.wg-demo-step .elementor-icon-box-content::before { margin-bottom: 6px; }

/* The floating language pill and accessibility button never cover the last row of the footer. */
.wg-footer { padding-bottom: 92px !important; }
@media (max-width: 767px) { .wg-footer { padding-bottom: 96px !important; } }

/* ---------- 3D scenes on the Platform modules and in the call to action ----------
 * A scene container (wg-scene wg-scene-ndt and so on) gets its canvas from wg-scenes.js. On a module it floats over
 * the outer top corner of the screenshot, in the call to action it fills the empty right side of the card. */
.wg-scene { position: relative; pointer-events: none; }
.wg-scene > .elementor-widget-image { position: absolute !important; inset: 0; margin: 0 !important; transition: opacity .6s; }
.wg-scene > .elementor-widget-image img { width: 100%; height: 100%; object-fit: contain; }
.wg-scene.is-live > .wg-forge-poster { opacity: 0; }
.wg-scene .wg-forge-tag { font-size: 11px; padding: 6px 9px 6px 7px; }
.wg-scene .wg-forge-tag__id { padding: 3px 5px; }
.wg-scene .wg-forge-canvas {
	-webkit-mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
	mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
	-webkit-mask-composite: source-over; mask-composite: add;
}
.wg-shot > .wg-scene { position: absolute !important; z-index: 3; top: -16%; right: -9%; width: 54% !important; aspect-ratio: 1.15; }
.wg-soft .wg-shot > .wg-scene { right: auto; left: -9%; }
.wg-shot:has(> .wg-scene) { padding-top: 28px !important; }
@media (max-width: 1024px) {
	.wg-shot > .wg-scene, .wg-soft .wg-shot > .wg-scene { position: relative !important; top: auto; right: auto; left: auto; width: 74% !important; margin: -6% auto -10% !important; order: -1; }
}
@media (max-width: 767px) { .wg-shot > .wg-scene, .wg-soft .wg-shot > .wg-scene { width: 92% !important; } }

.wg-cta > .wg-scene { position: absolute !important; z-index: 1; right: 1%; top: 50%; translate: 0 -50%; width: 44% !important; aspect-ratio: 1.2; }
.wg-cta > .wg-scene .wg-forge-canvas { -webkit-mask-image: none; mask-image: none; }
@media (min-width: 1025px) { .wg-cta > .elementor-element:not(.wg-scene) { position: relative; z-index: 2; max-width: 56%; } }
@media (max-width: 1024px) { .wg-cta > .wg-scene { position: relative !important; translate: none; top: auto; right: auto; width: 100% !important; aspect-ratio: 1.5; margin: 4px 0 -24px !important; } }

/* Labels with a progress bar (projects) and the amber warning (offcut). */
.wg-forge-tag--progress { display: inline-grid; grid-template-columns: auto auto; align-items: center; column-gap: 8px; row-gap: 6px; }
.wg-forge-tag__bar { grid-column: 1 / -1; display: block; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .14); overflow: hidden; max-width: none !important; }
.wg-forge-tag__bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--wg-orange), var(--wg-amber)); }
.wg-forge-tag.is-ok .wg-forge-tag__bar i { background: #22c55e; }
.wg-forge-tag.is-warn { border-color: rgba(255, 154, 61, .6); background: rgba(70, 30, 6, .86); }
.wg-forge-tag.is-warn .wg-forge-tag__state { color: #ffcf9e; }

/* ---------- Platform: each module opens with a dark banner and its 3D scene ---------- */
.wg-module-banner {
	position: relative; isolation: isolate; overflow: hidden; border-radius: 26px;
	background:
		radial-gradient(640px 420px at 80% 52%, rgba(253, 95, 2, .15), transparent 62%),
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 44px 44px,
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px) 0 0 / 44px 44px,
		linear-gradient(160deg, #0a2a5c 0%, #001a3f 55%, #000f29 100%);
}
.wg-module-banner .elementor-widget-heading.wg-num .elementor-heading-title { background: rgba(253, 95, 2, .16); color: #ffb183; }
.wg-module-banner .wg-lead { color: rgba(255, 255, 255, .78); }
.wg-scene.wg-scene--band { width: 100%; aspect-ratio: 1.5; }
.wg-scene.wg-scene--band .wg-forge-canvas {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%), linear-gradient(180deg, transparent 0, #000 6%, #000 88%, transparent 100%);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%), linear-gradient(180deg, transparent 0, #000 6%, #000 88%, transparent 100%);
	mask-composite: intersect;
}
.wg-scene.wg-scene--band .wg-forge-tag { font-size: 12px; padding: 7px 11px 7px 8px; }
@media (max-width: 1024px) { .wg-scene.wg-scene--band { aspect-ratio: 1.35; } }
@media (max-width: 767px) { .wg-scene.wg-scene--band { aspect-ratio: 1.1; } .wg-scene.wg-scene--band .wg-forge-tag { font-size: 11px; } }

/* Call to action: the text keeps clear of the tablet. Progress labels never wrap. */
@media (min-width: 1025px) { .wg-cta > .elementor-element:not(.wg-scene) { max-width: 54% !important; } }
.wg-forge-tag--progress .wg-forge-tag__state { white-space: nowrap; overflow: visible; max-width: none; }
.wg-forge-tag--progress { min-width: 132px; }

/* ---------- Final touches ---------- */

/* Comparison: bigger marks, centred in their circles. */
.wg-compare-new .wg-check .elementor-icon-list-icon, .wg-compare-old .wg-cross .elementor-icon-list-icon { width: 26px !important; height: 26px !important; min-width: 26px; padding: 0 !important; margin-top: 0 !important; display: grid !important; place-items: center; line-height: 0; }
.wg-compare-new .wg-check .elementor-icon-list-icon svg.wg-ico, .wg-compare-old .wg-cross .elementor-icon-list-icon svg.wg-ico { display: block; position: static !important; margin: 0 !important; top: auto !important; width: 15px !important; height: 15px !important; }
.wg-compare-old .wg-cross .elementor-icon-list-icon svg.wg-ico { width: 13px !important; height: 13px !important; }
.wg-compare-new .wg-check .elementor-icon-list-item, .wg-compare-old .wg-cross .elementor-icon-list-item { align-items: center !important; }
.wg-compare-new .wg-check .elementor-icon-list-text, .wg-compare-old .wg-cross .elementor-icon-list-text { padding-left: 12px !important; }

/* Ticks are drawn when their list comes into view. */
.wg-draw .elementor-icon-list-icon svg.wg-ico path { stroke-dasharray: 32; stroke-dashoffset: 32; transition: stroke-dashoffset .7s var(--wg-ease); transition-delay: calc(var(--wg-d, 0s) + .15s); }
.wg-draw.is-drawn .elementor-icon-list-icon svg.wg-ico path { stroke-dashoffset: 0; }
.wg-draw .elementor-icon-list-icon { scale: .55; opacity: 0; transition: scale .5s var(--wg-ease), opacity .35s; transition-delay: var(--wg-d, 0s); }
.wg-draw.is-drawn .elementor-icon-list-icon { scale: 1; opacity: 1; }

/* Footer: normal space at the bottom. The language pill and the accessibility button stay on one line at the bottom right,
   so on laptops the legal links move left until they clear both (252px from the right edge of the window). */
.wg-footer { padding-bottom: 30px !important; }
@media (max-width: 767px) { .wg-footer { padding-bottom: 84px !important; } }
@media (min-width: 768px) { .wg-footer-bottom { padding-right: max(0px, calc(252px - max(24px, (100vw - 1240px) / 2))) !important; } }

/* Flow steps light up one after another. */
.wg-flowline li { transition: border-color .35s, box-shadow .35s, translate .35s var(--wg-ease); }
.wg-flowline li::before { transition: background-color .35s, color .35s; }
.wg-flowline li::after { background: linear-gradient(var(--wg-orange), var(--wg-orange)) no-repeat 0 0 / 0% 100%, repeating-linear-gradient(90deg, #f7a36f 0 4px, transparent 4px 7px) !important; transition: background-size .45s var(--wg-ease); }
.wg-flowline li.is-past::after { background-size: 100% 100%, auto !important; }
.wg-flowline li.is-on { border-color: rgba(253, 95, 2, .55); box-shadow: 0 8px 18px -14px rgba(253, 95, 2, .8); }
.wg-flowline li.is-on::before { background: var(--wg-orange); color: #fff; }
.wg-flowline li.is-current { translate: 0 -2px; }
.wg-flowline li.is-on:last-child { border-color: rgba(34, 197, 94, .55); box-shadow: 0 8px 18px -14px rgba(34, 197, 94, .8); }
.wg-flowline li.is-on:last-child::before { background: var(--wg-green); color: #fff; }

/* ---------- Legal pages ---------- */

/* Contents beside the text on desktop. It stays in view while the text scrolls and marks the section being read.
   On tablets it sits above the text, and on phones it starts closed. */
.elementor-widget.wg-toc { align-self: start; position: sticky; top: calc(var(--wg-adminbar, 0px) + var(--wg-header-h) + 28px); }
.wg-toc details { padding: 18px 14px 12px; border: 1px solid var(--wg-line); border-radius: 16px; background: #fff; box-shadow: 0 18px 36px -32px rgba(0, 26, 63, .5); }
.wg-toc summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 8px 10px; font: 700 12px/1.4 Inter, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--wg-muted); }
.wg-toc summary::-webkit-details-marker { display: none; }
.wg-toc summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; rotate: 45deg; translate: 0 -3px; transition: rotate .25s var(--wg-ease), translate .25s var(--wg-ease); }
.wg-toc details[open] summary::after { rotate: 225deg; translate: 0 2px; }
.wg-toc details:not([open]) { padding-bottom: 8px; }
.wg-toc details:not([open]) summary { padding-bottom: 8px; }
.wg-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.wg-toc li { margin: 0; counter-increment: toc; }
.wg-toc a { display: flex; gap: 10px; padding: 7px 10px; border-radius: 10px; font: 500 14.5px/1.4 Inter, sans-serif; color: var(--wg-text); text-decoration: none; transition: background-color .2s, color .2s; }
.wg-toc a::before { content: counter(toc, decimal-leading-zero); flex: none; min-width: 20px; font: 700 12px/1.7 Inter, sans-serif; color: var(--wg-orange); transition: color .2s; }
.wg-toc a:hover { background: var(--wg-soft); color: var(--wg-navy); }
.wg-toc a.is-active { background: var(--wg-navy); color: #fff; }
.wg-toc a.is-active::before { color: var(--wg-amber); }
@media (max-width: 1024px) {
	.elementor-widget.wg-toc { position: static; }
	.wg-toc ol { columns: 2; column-gap: 12px; }
	.wg-toc li { break-inside: avoid; }
}
@media (max-width: 767px) { .wg-toc ol { columns: 1; } }
.wg-legal h2 { scroll-margin-top: calc(var(--wg-adminbar, 0px) + var(--wg-header-h) + 24px); }

/* Summary cards at the top of each page. */
.wg-legal ul.wg-glance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 2.8em; padding: 0; list-style: none; }
.wg-legal ul.wg-glance li { position: relative; margin: 0; padding: 14px 16px 14px 46px; border-radius: 12px; background: var(--wg-soft); border: 1px solid var(--wg-line); font-size: 15px; line-height: 1.55; }
.wg-legal ul.wg-glance li::before { content: ""; position: absolute; left: 15px; top: 15px; width: 21px; height: 21px; border-radius: 50%; background: var(--wg-green-soft) var(--wg-check) center / 12px no-repeat; }
.wg-legal ul.wg-glance strong { display: block; margin-bottom: 2px; font-family: Manrope, sans-serif; font-size: 15.5px; line-height: 1.35; }
@media (max-width: 767px) { .wg-legal ul.wg-glance { grid-template-columns: 1fr; } }

/* Identity details: label and value side by side. */
.wg-legal dl.wg-id { display: grid; grid-template-columns: minmax(170px, max-content) minmax(0, 1fr); margin: 0 0 1.4em; border: 1px solid var(--wg-line); border-radius: 14px; overflow: hidden; font-size: 15.5px; line-height: 1.55; }
.wg-legal dl.wg-id dt, .wg-legal dl.wg-id dd { margin: 0; padding: 11px 16px; border-bottom: 1px solid var(--wg-line); }
.wg-legal dl.wg-id dt { background: var(--wg-soft); font: 700 12px/1.9 Inter, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--wg-muted); }
.wg-legal dl.wg-id dt:last-of-type, .wg-legal dl.wg-id dd:last-of-type { border-bottom: 0; }
@media (max-width: 767px) {
	.wg-legal dl.wg-id { grid-template-columns: 1fr; }
	.wg-legal dl.wg-id dt { padding-bottom: 0; border-bottom: 0; background: none; }
}

/* Tables: names in code style, the kind of storage below the name, labels above each value on phones. */
.wg-legal code { display: inline-block; padding: 2px 7px; border-radius: 6px; background: var(--wg-soft); border: 1px solid var(--wg-line); font: 600 13px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--wg-navy); word-break: break-all; }
.wg-legal td code { margin: 0 4px 4px 0; }
.wg-legal td small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.45; color: var(--wg-muted); }
.wg-legal td:first-child { font-weight: 600; color: var(--wg-navy); }
@media (max-width: 767px) {
	.wg-legal td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font: 700 11px/1.5 Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--wg-muted); }
	.wg-legal td { padding: 6px 16px; }
	.wg-legal tr { padding: 10px 0; }
}
/* Elementor caps widgets at 100% with a stronger selector, so the reading width needs the same weight. */
.elementor.elementor .e-con > .elementor-widget.wg-legal { max-width: 860px; }
/* A long contents list scrolls inside its card instead of running below the window on short laptop screens. */
@media (min-width: 1025px) {
	.elementor-widget.wg-toc details { max-height: calc(100vh - var(--wg-adminbar, 0px) - var(--wg-header-h) - 56px); overflow-y: auto; scrollbar-width: thin; }
}
.wg-toc a { padding: 6px 10px; font-size: 14px; }
/* Names in tables stay on one line. */
.wg-legal td code { white-space: nowrap; word-break: normal; }
/* Lists in the text are marked with a short line, not a dot. */
.wg-legal ul:not(.wg-glance) { list-style: none; padding-left: 0; }
.wg-legal ul:not(.wg-glance) > li { position: relative; padding-left: 24px; }
.wg-legal ul:not(.wg-glance) > li::before { content: ""; position: absolute; left: 2px; top: .86em; width: 12px; height: 2px; border-radius: 2px; background: var(--wg-orange); }

/* ---------- First screen without waiting for scripts ----------
 * The opening section of each page plays its entrance as soon as the page is drawn, with the same keyframes and
 * delays as Elementor uses. When Elementor starts, it swaps the class for its own one with the same keyframes, so
 * nothing plays twice, and the first screen is never empty while the scripts load.
 */
.wg-hero .elementor-invisible { visibility: visible; animation: wgUp .95s var(--wg-ease) both; }
.wg-hero .elementor-invisible[data-settings*='nimation":"fadeIn"'] { animation-name: wgIn; }
.wg-hero .elementor-invisible[data-settings*='nimation":"zoomIn"'] { animation-name: wgZoom; }
.wg-hero .elementor-invisible[data-settings*='nimation":"fadeInRight"'] { animation-name: wgLeft; }
.wg-hero .elementor-invisible[data-settings*='nimation":"fadeInLeft"'] { animation-name: wgRight; }
.wg-hero .elementor-invisible[data-settings*='_delay":80}'], .wg-hero .elementor-invisible[data-settings*='_delay":80,'] { animation-delay: 0.08s; }
.wg-hero .elementor-invisible[data-settings*='_delay":150}'], .wg-hero .elementor-invisible[data-settings*='_delay":150,'] { animation-delay: 0.15s; }
.wg-hero .elementor-invisible[data-settings*='_delay":160}'], .wg-hero .elementor-invisible[data-settings*='_delay":160,'] { animation-delay: 0.16s; }
.wg-hero .elementor-invisible[data-settings*='_delay":240}'], .wg-hero .elementor-invisible[data-settings*='_delay":240,'] { animation-delay: 0.24s; }
.wg-hero .elementor-invisible[data-settings*='_delay":400}'], .wg-hero .elementor-invisible[data-settings*='_delay":400,'] { animation-delay: 0.4s; }
.wg-hero .elementor-invisible[data-settings*='_delay":500}'], .wg-hero .elementor-invisible[data-settings*='_delay":500,'] { animation-delay: 0.5s; }
.wg-hero .elementor-invisible[data-settings*='_delay":600}'], .wg-hero .elementor-invisible[data-settings*='_delay":600,'] { animation-delay: 0.6s; }
.wg-hero .elementor-invisible[data-settings*='_delay":850}'], .wg-hero .elementor-invisible[data-settings*='_delay":850,'] { animation-delay: 0.85s; }
.wg-hero .elementor-invisible[data-settings*='_delay":1050}'], .wg-hero .elementor-invisible[data-settings*='_delay":1050,'] { animation-delay: 1.05s; }
.wg-hero .elementor-invisible[data-settings*='_delay":1250}'], .wg-hero .elementor-invisible[data-settings*='_delay":1250,'] { animation-delay: 1.25s; }
@media (prefers-reduced-motion: reduce) { .wg-hero .elementor-invisible { animation: none; } }
