/* ==========================================================================
   Sugilite Services — section styles, graphics & animation layer
   Works with the site's Elementor globals (Nunito Sans, #560287 primary).
   ========================================================================== */
:root {
	--sg-p: var(--e-global-color-primary, #560287);
	--sg-p-dark: #2a0145;
	--sg-p-soft: #f3ecf8;
	--sg-ink: var(--e-global-color-secondary, #000);
	--sg-text: var(--e-global-color-text, #2c2c2c);
	--sg-line: #ebe4f0;
	--sg-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- reading progress bar (service pages) ---------- */
.sg-progress {
	position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 9999;
	background: linear-gradient(90deg, #8a3fc1, var(--sg-p));
	transform-origin: 0 50%; transform: scaleX(0); pointer-events: none;
}

/* ---------- title banner: breadcrumbs + animated line-art graphic ---------- */
.sg-banner { position: relative; overflow: hidden; }
.sg-banner::before {
	content: ""; position: absolute; inset: auto !important; right: -40px !important; top: 50% !important; width: 360px; height: 360px; display: block !important;
	transform: translateY(-50%);
	background:
		radial-gradient(circle at center, rgba(86, 2, 135, .10) 0 2px, transparent 2.5px) 0 0 / 22px 22px;
	-webkit-mask: radial-gradient(circle at 60% 50%, #000 0, transparent 70%);
	mask: radial-gradient(circle at 60% 50%, #000 0, transparent 70%);
	animation: sg-drift 18s linear infinite;
}
.sg-banner::after {
	content: ""; position: absolute; inset: auto !important; right: 70px !important; top: 50% !important; width: 54px; height: 54px; margin-top: -27px;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 54 54'%3E%3Cpath d='M20 4h14v16h16v14H34v16H20V34H4V20h16z' fill='none' stroke='%23560287' stroke-width='2' stroke-linejoin='round' opacity='.35'/%3E%3C/svg%3E");
	animation: sg-float 6s ease-in-out infinite;
}
.sg-crumbs ol { list-style: none; margin: 0 0 6px; padding: 4px 12px; display: inline-flex; flex-wrap: wrap; gap: 4px; background: #fff; border-radius: 4px; font-size: 13px; line-height: 1.6; }
.sg-crumbs li { display: inline-flex; align-items: center; color: #222; }
.sg-crumbs li + li::before { content: "/"; margin: 0 8px 0 4px; color: #b9b9b9; }
.sg-crumbs a { color: #9a9a9a; text-decoration: none; transition: color .25s; }
.sg-crumbs a:hover { color: var(--sg-p); }

/* ---------- shared typography helpers ---------- */
.sg-eyebrow .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: "Nunito Sans", sans-serif; font-size: 12px !important; font-weight: 700 !important;
	letter-spacing: .18em; text-transform: uppercase; color: var(--sg-p) !important; line-height: 1.4 !important;
}
.sg-eyebrow .elementor-heading-title::before { content: ""; width: 26px; height: 2px; background: currentColor; transform-origin: left; animation: sg-grow 1.2s var(--sg-ease) both; }
.sg-eyebrow--light .elementor-heading-title { color: #d7b8f0 !important; }
.elementor-widget-heading.sg-eyebrow[class*="align"] .elementor-heading-title,
.sg-eyebrow .elementor-heading-title[style*="center"] { justify-content: center; }
.sg-h1 .elementor-heading-title { font-size: clamp(28px, 3vw, 36px) !important; line-height: 1.3 !important; }
.sg-h2 .elementor-heading-title { font-size: clamp(24px, 2.4vw, 30px) !important; line-height: 1.35 !important; }
.sg-h2--sm .elementor-heading-title { font-size: 22px !important; }
.sg-lead, .sg-lead p { font-size: 16px !important; line-height: 1.65 !important; }
.sg-sub, .sg-sub p { font-size: 15px !important; color: #6b6b6b !important; }

/* ---------- hero ---------- */
.sg-hero { position: relative; }
.sg-hero-media { position: relative; overflow: visible !important; border-radius: 2px; }
.sg-hero-media::before { /* offset frame */
	content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--sg-p); opacity: .25; z-index: -1;
	transition: transform .6s var(--sg-ease);
}
.sg-hero-media::after { /* dotted graphic */
	content: ""; position: absolute; left: -34px; bottom: -30px; width: 120px; height: 120px; z-index: 2;
	background: radial-gradient(circle, var(--sg-p) 0 2px, transparent 2.6px) 0 0 / 14px 14px; opacity: .55;
	animation: sg-float 7s ease-in-out infinite;
}
.sg-hero:hover .sg-hero-media::before { transform: translate(-6px, -6px); }
.sg-hero .sg-btn { margin-top: 8px; transition: transform .3s var(--sg-ease), box-shadow .3s; }
.sg-hero .sg-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(86, 2, 135, .25); }
.sg-btn .elementor-icon { transition: transform .3s var(--sg-ease); }
.sg-btn:hover .elementor-icon svg, .sg-btn:hover .elementor-icon i { animation: sg-nudge .7s var(--sg-ease) infinite; }

/* ---------- process / approach cards ---------- */
.sg-process { position: relative; overflow: hidden; counter-reset: sgstep; }
.sg-process::before { /* soft corner shape */
	content: ""; position: absolute; width: 420px; height: 420px; right: -170px; top: -170px; border-radius: 50%;
	background: radial-gradient(circle, rgba(86, 2, 135, .08), transparent 65%); animation: sg-pulse 9s ease-in-out infinite;
}
.sg-step, .sg-svc-box, .sg-why-card { height: 100%; }
.sg-step .elementor-widget-container {
	position: relative; height: 100%; background: #fff; padding: 30px 26px 26px; border: 1px solid var(--sg-line);
	box-shadow: 0 10px 30px rgba(42, 1, 69, .04); overflow: hidden;
	transition: transform .45s var(--sg-ease), box-shadow .45s var(--sg-ease), border-color .45s;
}
.sg-step .elementor-widget-container::before { /* accent bar draws in */
	content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%;
	background: linear-gradient(90deg, var(--sg-p), #a45ad8); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--sg-ease);
}
.sg-process--numbered .sg-step { counter-increment: sgstep; }
.sg-process--numbered .sg-step .elementor-widget-container::after { /* big faded step number */
	content: counter(sgstep, decimal-leading-zero); position: absolute; right: 18px; top: 10px;
	font: 800 46px/1 "Nunito Sans", sans-serif; color: var(--sg-p); opacity: .07; transition: opacity .4s, transform .4s var(--sg-ease);
}
.sg-step:hover .elementor-widget-container { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(42, 1, 69, .12); border-color: transparent; }
.sg-step:hover .elementor-widget-container::before,
.sg-in .sg-step .elementor-widget-container::before { transform: scaleX(1); }
.sg-step:hover .elementor-widget-container::after { opacity: .16; transform: scale(1.08); }

/* icon tiles (matches existing purple-square icons) */
.sg-step .elementor-icon, .sg-svc-box .elementor-icon, .sg-why-card .elementor-icon {
	display: inline-flex !important; align-items: center; justify-content: center; width: 54px; height: 54px; padding: 0 !important;
	background: var(--sg-p); border-radius: 2px; position: relative; transition: transform .45s var(--sg-ease), background .45s;
}
.sg-step .elementor-icon svg, .sg-svc-box .elementor-icon svg, .sg-why-card .elementor-icon svg { width: 26px !important; height: 26px !important; }
.sg-step .elementor-icon svg *, .sg-svc-box .elementor-icon svg *, .sg-why-card .elementor-icon svg * { fill: #fff !important; }
.sg-step .elementor-icon::after, .sg-svc-box .elementor-icon::after { /* orbit ring */
	content: ""; position: absolute; inset: -7px; border: 1px dashed rgba(86, 2, 135, .35); border-radius: 50%; opacity: 0; transform: scale(.6) rotate(0);
	transition: opacity .4s, transform .6s var(--sg-ease);
}
.sg-step:hover .elementor-icon, .sg-svc-card:hover .elementor-icon { transform: rotate(-6deg) scale(1.06); }
.sg-step:hover .elementor-icon::after, .sg-svc-card:hover .elementor-icon::after { opacity: 1; transform: scale(1) rotate(90deg); animation: sg-spin 8s linear infinite; }
.sg-step .elementor-icon-box-title, .sg-svc-box .elementor-icon-box-title, .sg-why-card .elementor-icon-box-title { font-size: 18px !important; line-height: 1.35 !important; margin-top: 4px; }
.sg-step .elementor-icon-box-description, .sg-svc-box .elementor-icon-box-description { font-size: 14.5px !important; line-height: 1.6 !important; color: #555 !important; }

/* ---------- hub: clickable service cards ---------- */
.sg-svc-card {
	position: relative; display: flex !important; flex-direction: column; justify-content: space-between; height: 100%;
	background: #fff; border: 1px solid var(--sg-line); text-decoration: none !important; color: inherit !important; overflow: hidden;
	transition: transform .45s var(--sg-ease), box-shadow .45s var(--sg-ease), border-color .45s;
}
.sg-svc-card::before { /* sweeping gradient wash */
	content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(86, 2, 135, .06), transparent 60%);
	opacity: 0; transition: opacity .45s;
}
.sg-svc-card::after { /* corner arrow tile */
	content: ""; position: absolute; right: 0; top: 0; width: 46px; height: 46px; background: var(--sg-p-soft) no-repeat center / 16px
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 12 12 4M6 4h6v6' stroke='%23560287' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	transition: background-color .4s, transform .4s var(--sg-ease);
}
.sg-svc-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(42, 1, 69, .13); border-color: transparent; }
.sg-svc-card:hover::before { opacity: 1; }
.sg-svc-card:hover::after { background-color: #e6d6f2; transform: translate(3px, -3px); }
.sg-svc-box .elementor-widget-container { padding: 30px 28px 10px; position: relative; }
.sg-more .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 8px; padding: 0 28px 26px; font-size: 13px !important; font-weight: 700 !important;
	letter-spacing: .08em; text-transform: uppercase; color: var(--sg-p) !important;
}
.sg-more .elementor-heading-title::after { content: "→"; transition: transform .35s var(--sg-ease); }
.sg-svc-card:hover .sg-more .elementor-heading-title::after { transform: translateX(6px); }

/* ---------- image frames (matters / deliverables) ---------- */
.sg-media-frame { position: relative; overflow: visible !important; }
.sg-media-frame::before { content: ""; position: absolute; inset: -16px 16px 16px -16px; background: var(--sg-p-soft); z-index: -1; }
.sg-media-frame::after {
	content: ""; position: absolute; right: -22px; top: -22px; width: 80px; height: 80px; border-radius: 50%;
	border: 2px solid var(--sg-p); opacity: .2; animation: sg-pulse 6s ease-in-out infinite;
}
.sg-checklist .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.sg-checklist .elementor-icon-list-item { align-items: flex-start !important; padding: 0 !important; margin: 0 !important; }
.sg-checklist .elementor-icon-list-item::after { display: none !important; }
.sg-checklist .elementor-icon-list-icon { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 3px; border-radius: 50%; background: var(--sg-p); display: inline-flex; align-items: center; justify-content: center; }
.sg-checklist .elementor-icon-list-icon i, .sg-checklist .elementor-icon-list-icon svg { color: #fff !important; fill: #fff !important; font-size: 10px !important; width: 10px !important; }
.sg-checklist .elementor-icon-list-text { font-size: 15px !important; line-height: 1.5; padding-left: 10px; }

/* ---------- FAQ ---------- */
.sg-faq { position: relative; }
.sg-faq-art { margin-top: 10px; }
.sg-faq-art .elementor-icon { width: 96px; height: 96px; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 50%; background: var(--sg-p-soft); animation: sg-float 6s ease-in-out infinite; }
.sg-faq-art .elementor-icon svg { width: 46px !important; height: 46px !important; }

.sg-faq-acc .e-n-accordion { display: flex; flex-direction: column; gap: 12px; }
.sg-faq-acc .e-n-accordion-item { background: #fff; border: 1px solid var(--sg-line); transition: box-shadow .35s, border-color .35s; }
.sg-faq-acc .e-n-accordion-item[open] { border-color: rgba(86, 2, 135, .35); box-shadow: 0 14px 34px rgba(42, 1, 69, .08); }
.sg-faq-acc .e-n-accordion-item-title {
	padding: 18px 22px !important; border: 0 !important; background: transparent !important; cursor: pointer; gap: 16px;
	display: flex; justify-content: space-between; align-items: center;
}
.sg-faq-acc .e-n-accordion-item-title-text { font-family: "Nunito Sans", sans-serif; font-size: 16.5px !important; font-weight: 600 !important; color: var(--sg-ink) !important; line-height: 1.45; }
.sg-faq-acc .e-n-accordion-item[open] .e-n-accordion-item-title-text { color: var(--sg-p) !important; }
.sg-faq-acc .e-n-accordion-item-title-icon { order: 2; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background: var(--sg-p-soft); display: inline-flex; align-items: center; justify-content: center; transition: background .3s, transform .4s var(--sg-ease); }
.sg-faq-acc .e-n-accordion-item-title-icon i, .sg-faq-acc .e-n-accordion-item-title-icon svg { color: var(--sg-p) !important; fill: var(--sg-p) !important; font-size: 11px !important; width: 11px !important; }
.sg-faq-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--sg-p); transform: rotate(180deg); }
.sg-faq-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon i, .sg-faq-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg { color: #fff !important; fill: #fff !important; }
.sg-faq-acc .e-n-accordion-item > [role="region"] { border: 0 !important; animation: sg-reveal .45s var(--sg-ease); }
.sg-faq-acc .e-n-accordion-item > [role="region"] p { font-size: 15px !important; line-height: 1.7 !important; color: #555 !important; margin: 0; }

/* ---------- Why Sugilite (dark band) ---------- */
.sg-why { position: relative; overflow: hidden; isolation: isolate; background: linear-gradient(135deg, #2a0145 0%, #42036a 55%, #560287 100%) !important; }
.sg-why::before, .sg-why::after { content: ""; position: absolute; border-radius: 50%; z-index: -1; filter: blur(2px); }
.sg-why::before { width: 380px; height: 380px; left: -120px; bottom: -160px; background: radial-gradient(circle, rgba(164, 90, 216, .45), transparent 70%); animation: sg-blob 14s ease-in-out infinite; }
.sg-why::after {
	width: 300px; height: 300px; right: -60px; top: -80px; border: 1px solid rgba(255, 255, 255, .12);
	background: radial-gradient(circle, rgba(255, 255, 255, .14) 0 1.5px, transparent 2px) 0 0 / 18px 18px; animation: sg-spin 60s linear infinite;
}
.sg-why .sg-h2 .elementor-heading-title { color: #fff !important; }
.sg-why-card .elementor-widget-container {
	height: 100%; padding: 30px 26px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14);
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: transform .45s var(--sg-ease), background .45s, border-color .45s;
}
.sg-why-card:hover .elementor-widget-container { transform: translateY(-6px); background: rgba(255, 255, 255, .11); border-color: rgba(255, 255, 255, .3); }
.sg-why-card .elementor-icon { background: #fff !important; }
.sg-why-card .elementor-icon svg * { fill: var(--sg-p) !important; }
.sg-why-card:hover .elementor-icon { transform: translateY(-3px) rotate(-6deg); }
.sg-why-card .elementor-icon-box-title, .sg-why-card .elementor-icon-box-title a { color: #fff !important; }
.sg-why-card .elementor-icon-box-description { color: rgba(255, 255, 255, .78) !important; font-size: 14.5px !important; line-height: 1.65 !important; }

/* ---------- related services chips ---------- */
.sg-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; }
.sg-chips .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.sg-chips .elementor-icon-list-item::after { display: none !important; }
.sg-chips .elementor-icon-list-item > a {
	display: inline-flex; flex-direction: row-reverse; gap: 10px; align-items: center; padding: 10px 16px; border: 1px solid var(--sg-line); background: #fff;
	font-size: 14px; color: var(--sg-ink); transition: all .35s var(--sg-ease);
}
.sg-chips .elementor-icon-list-icon i, .sg-chips .elementor-icon-list-icon svg { color: var(--sg-p) !important; fill: var(--sg-p) !important; font-size: 11px !important; transition: transform .35s var(--sg-ease); }
.sg-chips .elementor-icon-list-item > a:hover { background: var(--sg-p); border-color: var(--sg-p); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(86, 2, 135, .22); }
.sg-chips .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: #fff !important; }
.sg-chips .elementor-icon-list-item > a:hover i, .sg-chips .elementor-icon-list-item > a:hover svg { color: #fff !important; fill: #fff !important; transform: translateX(4px); }

/* ---------- closing CTA + form ---------- */
.sg-closing .stripBorder { position: relative; }
.sg-closing .elementor-button[type="submit"] { position: relative; overflow: hidden; transition: transform .3s var(--sg-ease), box-shadow .3s; }
.sg-closing .elementor-button[type="submit"]::after {
	content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
	background: linear-gradient(110deg, transparent, rgba(255, 255, 255, .35), transparent); animation: sg-shine 3.8s ease-in-out infinite;
}
.sg-closing .elementor-button[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(86, 2, 135, .3); }
.sg-closing .elementor-field-textual { transition: border-color .3s, box-shadow .3s; }
.sg-closing .elementor-field-textual:focus { border-color: var(--sg-p) !important; box-shadow: 0 0 0 3px rgba(86, 2, 135, .12); }

/* CTA band on existing pages */
.sg-cta-band { position: relative; overflow: hidden; isolation: isolate; background: linear-gradient(120deg, #560287, #3a0260 60%, #2a0145) !important; }
.sg-cta-band::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
	background: radial-gradient(circle, rgba(255, 255, 255, .16) 0 1.5px, transparent 2px) 0 0 / 22px 22px;
	-webkit-mask: linear-gradient(90deg, #000, transparent 45%, transparent 55%, #000); mask: linear-gradient(90deg, #000, transparent 45%, transparent 55%, #000);
	animation: sg-drift 30s linear infinite;
}
.sg-cta-band::after { content: ""; position: absolute; width: 260px; height: 260px; right: -70px; bottom: -110px; border-radius: 50%; border: 40px solid rgba(255, 255, 255, .05); z-index: -1; animation: sg-pulse 8s ease-in-out infinite; }
.sg-cta-band .sg-cta-title { max-width: 720px; }
.sg-cta-text, .sg-cta-text p { color: rgba(255, 255, 255, .82) !important; max-width: 640px; margin: 0 auto; font-size: 16px !important; }
.sg-cta-btn .elementor-button {
	background: #fff !important; color: var(--sg-p) !important; border-radius: 0; padding: 15px 26px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; font-size: 13.5px;
	transition: transform .3s var(--sg-ease), box-shadow .3s;
}
.sg-cta-btn .elementor-button:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(0, 0, 0, .28); }
.sg-cta-btn .elementor-button svg { fill: var(--sg-p) !important; }
.sg-cta-btn .elementor-button:hover .elementor-button-icon { animation: sg-nudge .7s var(--sg-ease) infinite; }

/* ---------- Services page: sub-service directory ---------- */
.sg-dir-card { position: relative; height: 100%; background: #fff; border: 1px solid var(--sg-line); overflow: hidden; transition: transform .45s var(--sg-ease), box-shadow .45s; }
.sg-dir-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--sg-p); transform: scaleY(.25); transform-origin: top; transition: transform .5s var(--sg-ease); }
.sg-dir-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(42, 1, 69, .1); }
.sg-dir-card:hover::before { transform: scaleY(1); }
.sg-dir-num .elementor-heading-title { font: 800 34px/1 "Nunito Sans", sans-serif !important; color: var(--sg-p) !important; opacity: .15; }
.sg-dir-title .elementor-heading-title { font-size: 18px !important; line-height: 1.35 !important; }
.sg-dir-title a { color: var(--sg-ink) !important; transition: color .3s; }
.sg-dir-title a:hover { color: var(--sg-p) !important; }
.sg-dir-list .elementor-icon-list-item { padding: 5px 0 !important; }
.sg-dir-list .elementor-icon-list-item a { transition: transform .3s var(--sg-ease); }
.sg-dir-list .elementor-icon-list-item a:hover { transform: translateX(4px); }
.sg-dir-list .elementor-icon-list-text { font-size: 14.5px !important; color: #444 !important; }
.sg-dir-list a:hover .elementor-icon-list-text { color: var(--sg-p) !important; }
.sg-dir-list .elementor-icon-list-icon i, .sg-dir-list .elementor-icon-list-icon svg { color: var(--sg-p) !important; fill: var(--sg-p) !important; font-size: 12px !important; }
.sg-dir-view .elementor-heading-title { font-size: 13px !important; font-weight: 700 !important; letter-spacing: .08em; text-transform: uppercase; }
.sg-dir-view a { color: var(--sg-p) !important; }
.sg-dir-view a::after { content: " →"; }

/* ---------- Services popup: category → sub-service accordion ---------- */
.sg-pop-menu { max-height: calc(100vh - 110px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.sg-pop-cat { position: relative; }
.sg-pop-cat.sg-has-subs .elementor-icon-box-icon { visibility: hidden; }
.sg-pop-cat.sg-has-subs .elementor-icon-box-wrapper { padding-right: 34px; }
.sg-pop-menu button.sg-toggle {
	position: absolute; right: 4px; top: 50%; width: 26px !important; height: 26px !important; min-width: 0 !important; min-height: 0 !important;
	margin: -13px 0 0 !important; padding: 0 !important; line-height: 0 !important; box-shadow: none !important; outline-offset: 2px;
	border: 1px solid rgba(255, 255, 255, .4) !important; border-radius: 50% !important; background: transparent !important; color: #fff !important;
	cursor: pointer; display: inline-flex !important; align-items: center; justify-content: center; z-index: 3;
	transition: transform .35s var(--sg-ease), background .3s;
}
.sg-pop-menu button.sg-toggle::before { content: ""; width: 7px; height: 7px; border-right: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: translateY(-2px) rotate(45deg); }
.sg-pop-menu button.sg-toggle:hover { background: rgba(255, 255, 255, .15) !important; }
.sg-pop-cat.sg-open button.sg-toggle { transform: rotate(180deg); background: rgba(255, 255, 255, .15) !important; }
.sg-pop-menu .sg-pop-subs { display: none !important; }
.sg-pop-menu .sg-pop-subs.sg-open { display: flex !important; animation: sg-reveal .4s var(--sg-ease); }
.sg-pop-sub { padding-left: 16px !important; border-left: 1px solid rgba(255, 255, 255, .22); margin-left: 4px !important; }
.sg-pop-sub .elementor-icon-box-title, .sg-pop-sub .elementor-icon-box-title a { font-size: 14px !important; opacity: .85; }
.sg-pop-sub:hover .elementor-icon-box-title a { opacity: 1; }
.sg-pop-sub .elementor-icon-box-icon { transform: scale(.8); }
.sg-pop-sub.sg-current .elementor-icon-box-title a, .sg-pop-cat.sg-current .elementor-icon-box-title a { font-weight: 700; }

/* ---------- scroll-driven fades for anything without an Elementor entrance animation ---------- */
.sg-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--sg-ease), transform .8s var(--sg-ease); }
.sg-reveal.sg-in { opacity: 1; transform: none; }

/* ---------- keyframes ---------- */
@keyframes sg-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes sg-drift { from { background-position: 0 0; } to { background-position: 220px 110px; } }
@keyframes sg-pulse { 0%, 100% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.12); opacity: 1; } }
@keyframes sg-spin { to { transform: rotate(360deg); } }
@keyframes sg-blob { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(60px, -30px) scale(1.1); } 66% { transform: translate(-20px, 20px) scale(.95); } }
@keyframes sg-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes sg-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes sg-shine { 0% { left: -60%; } 55%, 100% { left: 130%; } }
@keyframes sg-reveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	.sg-banner::before, .sg-banner::after { opacity: .5; }
}
@media (max-width: 767px) {
	.sg-hero-media::after { left: auto; right: -10px; width: 80px; height: 80px; }
	.sg-hero-media::before { inset: 10px -10px -10px 10px; }
	.sg-checklist .elementor-icon-list-items { grid-template-columns: 1fr; }
	.sg-banner::before, .sg-banner::after { display: none; }
	.sg-media-frame::before { inset: -10px 10px 10px -10px; }
	.sg-faq-art { display: none; }
	.sg-cta-band { margin-top: 40px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.sg-banner::before, .sg-banner::after, .sg-hero-media::after, .sg-why::before, .sg-why::after, .sg-cta-band::before, .sg-cta-band::after,
	.sg-media-frame::after, .sg-faq-art .elementor-icon, .sg-process::before, .sg-closing .elementor-button[type="submit"]::after { animation: none !important; }
	.sg-reveal { opacity: 1; transform: none; }
	.sg-progress { display: none; }
}

.sg-faq-art .elementor-icon { position: relative; }
.sg-faq-art .elementor-icon i, .sg-faq-art .elementor-icon svg { color: var(--sg-p) !important; fill: var(--sg-p) !important; font-size: 34px !important; width: 34px !important; height: 34px !important; }
.sg-faq-art .elementor-icon::after { content: ""; position: absolute; inset: -12px; border-radius: 50%; border: 1px dashed rgba(86, 2, 135, .35); animation: sg-spin 20s linear infinite; }
.sg-dir-desc, .sg-dir-desc p { font-size: 14px !important; line-height: 1.6 !important; color: #666 !important; margin: 0; }
