/* Sivad Experience — presentation layer for sivadentllc.com
   Brand: 2695C #2E1A47 · on-dark accent #8B6FC0 · Cool Grey 8C #888B8D · bone #E6E6E6
   Everything here is additive; deactivating the plugin returns plain Elementor output. */

:root {
	--sx-purple: #2E1A47;
	--sx-accent: #8B6FC0;
	--sx-accent-hi: #A890DA;
	--sx-grey: #888B8D;
	--sx-bone: #E6E6E6;
	--sx-ink: #0A090D;
	--sx-ease: cubic-bezier(.2, .7, .2, 1);
	--sx-head: 'Mohave', 'Arial Narrow', sans-serif;
}

html { scroll-behavior: smooth; }
::selection { background: var(--sx-accent); color: #000; }

/* ---------- Header: sticky, condenses on scroll ---------- */
#masthead, body.ehf-header #masthead {
	position: sticky !important;
	top: 0;
	z-index: 1000;
}
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 46px; } }
#masthead .elementor-929 > .e-con,
#masthead .elementor-929 > .elementor-element {
	transition: padding .35s var(--sx-ease), background-color .35s var(--sx-ease), box-shadow .35s var(--sx-ease);
}
body.sx-scrolled #masthead .elementor-929 > .e-con,
body.sx-scrolled #masthead .elementor-929 > .elementor-element {
	padding-top: 12px !important;
	padding-bottom: 12px !important;
	background-color: rgba(0, 0, 0, .86) !important;
	-webkit-backdrop-filter: saturate(140%) blur(12px);
	backdrop-filter: saturate(140%) blur(12px);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 18px 40px -24px rgba(0, 0, 0, .9);
}
#masthead .elementor-widget-site-logo img { transition: max-width .35s var(--sx-ease), width .35s var(--sx-ease); }
body.sx-scrolled #masthead .elementor-widget-site-logo img { max-width: 210px !important; }

/* Header call to action */
.sx-header-cta .elementor-button {
	background: transparent !important;
	color: #fff !important;
	border: 1px solid var(--sx-accent) !important;
	padding: 10px 20px !important;
	font-size: 14px !important;
	letter-spacing: .02em;
}
.sx-header-cta .elementor-button:hover {
	background: var(--sx-accent) !important;
	color: #000 !important;
}
@media (max-width: 767px) {
	#masthead .elementor-929 > .e-con, #masthead .elementor-929 .e-con-inner { flex-wrap: nowrap !important; gap: 10px !important; }
	#masthead .elementor-929 .elementor-widget-navigation-menu { width: 44px !important; min-width: 44px !important; max-width: none !important; flex: 0 0 auto !important; }
	#masthead .elementor-929 .elementor-widget-site-logo { flex: 0 0 auto !important; }
	#masthead .elementor-widget-site-logo img, body.sx-scrolled #masthead .elementor-widget-site-logo img { max-width: 178px !important; width: 178px !important; }
	.sx-header-cta .elementor-button-text { font-size: 0 !important; }
	.sx-header-cta .elementor-button-text::after { content: "Let\2019s talk"; font-size: 13px; }
	#masthead .elementor-929 .sx-header-cta { order: 2; margin-left: auto !important; }
	#masthead .elementor-929 .elementor-widget-navigation-menu { order: 3; margin-left: 0; flex: 0 0 auto; }
	.sx-header-cta .elementor-button { padding: 8px 11px !important; font-size: 12.5px !important; white-space: nowrap; }
}
@media (max-width: 360px) { .sx-header-cta { display: none !important; } }

#masthead .elementor-929 .elementor-widget-navigation-menu { margin-left: auto; }

/* Reading progress on long pages */
.sx-progress {
	position: fixed; left: 0; top: 0; height: 3px; width: 100%;
	transform-origin: 0 50%; transform: scaleX(0);
	background: linear-gradient(90deg, var(--sx-purple), var(--sx-accent));
	z-index: 1001; pointer-events: none;
}
.admin-bar .sx-progress { top: 32px; }

/* ---------- Buttons and links ---------- */
.elementor-button {
	transition: transform .22s var(--sx-ease), box-shadow .22s var(--sx-ease), background-color .22s, color .22s, border-color .22s;
	font-weight: 600;
}
.elementor-button:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(139, 111, 192, .75); }
.elementor-button:active { transform: translateY(0); }
.elementor-widget-text-editor a:not(.elementor-button) {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 100%;
	transition: background-size .3s var(--sx-ease), color .2s;
}
.elementor-widget-text-editor a:not(.elementor-button):hover { background-size: 0 1px; background-position: 100% 100%; }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 2px solid var(--sx-accent); outline-offset: 3px;
}

/* ---------- Section rhythm: accent rule over section headings (JS adds .sx-rule) ---------- */
.sx-rule::before {
	content: ""; display: block; width: 44px; height: 3px;
	background: var(--sx-accent); margin: 0 0 .55em; border-radius: 2px;
}
.sx-rule.sx-h-center::before { margin-left: auto; margin-right: auto; }

/* Comfortable reading measure for long prose (JS adds .sx-measure) */
.sx-measure { max-width: 74ch; }
.sx-measure.sx-measure-center { margin-left: auto; margin-right: auto; }

/* ---------- Scroll reveal ---------- */
.sx-js .sx-r { opacity: 0; transform: translate3d(0, 26px, 0); transition: opacity .8s var(--sx-ease), transform .8s var(--sx-ease); will-change: opacity, transform; }
.sx-js .sx-r.sx-in { opacity: 1; transform: none; }
/* Motion is deliberate on this site and runs for every visitor; the hero carries its own pause control. */

/* ---------- Cards: icon grids across the site (JS adds .sx-cardrow/.sx-card) ---------- */
.sx-cardrow.sx-dark { --sx-cb: rgba(255, 255, 255, .09); --sx-cbg: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012)); --sx-csh: 0 24px 50px -28px rgba(0,0,0,.9); }
.sx-cardrow.sx-light { --sx-cb: rgba(46, 26, 71, .12); --sx-cbg: #fff; --sx-csh: 0 22px 44px -26px rgba(46,26,71,.45); }
.sx-card > .elementor-widget-wrap {
	margin: 9px !important;
	padding: 28px 26px 24px !important;
	border: 1px solid var(--sx-cb);
	border-radius: 8px;
	background: var(--sx-cbg);
	transition: transform .35s var(--sx-ease), border-color .35s, box-shadow .35s;
	position: relative;
	align-content: flex-start;
}
.sx-card.sx-card--link > .elementor-widget-wrap { cursor: pointer; }
.sx-card:hover > .elementor-widget-wrap { transform: translateY(-4px); border-color: rgba(139, 111, 192, .7); box-shadow: var(--sx-csh); }
.sx-card .elementor-widget-image { text-align: left !important; }
.sx-card .elementor-widget-image .elementor-widget-container {
	display: inline-flex; padding: 13px; border-radius: 12px;
	background: rgba(139, 111, 192, .13);
	transition: background-color .35s, transform .35s var(--sx-ease);
}
.sx-card:hover .elementor-widget-image .elementor-widget-container { background: rgba(139, 111, 192, .24); transform: rotate(-4deg) scale(1.05); }
.sx-card .elementor-widget-image img { width: 46px !important; height: 46px !important; object-fit: contain; }
.sx-card.sx-card--link > .elementor-widget-wrap::after {
	content: "→"; position: absolute; right: 22px; top: 26px; color: var(--sx-accent);
	font-size: 20px; opacity: 0; transform: translateX(-6px); transition: opacity .3s, transform .3s var(--sx-ease);
}
.sx-card.sx-card--link:hover > .elementor-widget-wrap::after { opacity: 1; transform: none; }

/* Numbered steps */
.sx-steps { counter-reset: sxstep; }
.sx-steps .sx-card { counter-increment: sxstep; }
.sx-steps .sx-card .elementor-widget-heading .elementor-heading-title::before {
	content: counter(sxstep, decimal-leading-zero);
	display: block; font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 600;
	letter-spacing: .22em; color: var(--sx-accent); margin-bottom: 8px;
}

/* ---------- Hero ---------- */
.sx-hero { position: relative; overflow: hidden; }
.sx-hero > .elementor-container { position: relative; z-index: 3; }
.sx-hero canvas.sx-net { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.sx-hero::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 140px; z-index: 2; pointer-events: none;
	background: linear-gradient(180deg, rgba(0,0,0,0), rgba(46,26,71,.55));
}
.sx-hero h1.elementor-heading-title { text-wrap: balance; }
.sx-js .sx-hero .sx-hero-in { opacity: 0; transform: translateY(18px); }
.sx-hero .sx-hero-in { transition: opacity 1s var(--sx-ease), transform 1s var(--sx-ease); }
.sx-hero.sx-hero-ready .sx-hero-in { opacity: 1; transform: none; }

/* ---------- Proof band: CPSR + figures ---------- */
.sx-proof { position: relative; overflow: hidden; }
.sx-proof::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
	background:
		radial-gradient(60% 120% at 85% 0%, rgba(139,111,192,.35), rgba(139,111,192,0) 60%),
		repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 80px);
}
.sx-proof > .elementor-container { position: relative; z-index: 1; }
body .sx-proof .sx-cpsr .elementor-widget-container,
body .sx-proof .sx-cpsr p {
	font-family: var(--sx-head); font-size: clamp(26px, 3.1vw, 42px) !important; line-height: 1.12 !important;
	color: #fff !important; max-width: 940px; margin: 0 auto !important; text-align: center; letter-spacing: .005em;
}
body .sx-proof .sx-cpsr .elementor-widget-container::before {
	content: "✓"; display: block; width: 46px; height: 46px; line-height: 46px; margin: 0 auto 18px;
	border-radius: 50%; border: 1px solid var(--sx-accent); color: var(--sx-accent); font-size: 20px; font-family: 'Inter', sans-serif;
}
.sx-proof .sx-stats { margin-top: 46px; background: none !important; }
.sx-proof .sx-stats > .elementor-container { border-top: 1px solid rgba(255,255,255,.14); padding-top: 38px; }
.sx-proof .sx-stats .elementor-column + .elementor-column { border-left: 1px solid rgba(255,255,255,.12); }
body .sx-proof .sx-stats .elementor-widget-heading .elementor-heading-title {
	font-family: var(--sx-head) !important; font-size: clamp(60px, 8.5vw, 124px) !important; line-height: .92 !important;
	color: #fff !important; letter-spacing: -.01em; text-align: center;
}
body .sx-proof .sx-stats .elementor-widget-text-editor, body .sx-proof .sx-stats .elementor-widget-text-editor p {
	color: rgba(230,230,230,.78) !important; text-transform: uppercase; letter-spacing: .16em; font-size: 12.5px !important; text-align: center; margin-top: 10px;
}
.sx-proof .sx-stats .elementor-background-overlay { display: none !important; }
@media (max-width: 767px) {
	.sx-proof .sx-stats .elementor-column + .elementor-column { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); padding-top: 22px; margin-top: 22px; }
}

/* ---------- Problem cards (icon list routed to practices) ---------- */
.sx-problems .elementor-icon-list-items { display: grid; gap: 12px; }
.sx-problems .elementor-icon-list-item {
	margin: 0 !important; padding: 0 !important; border: 1px solid rgba(46, 26, 71, .14); border-radius: 8px;
	background: #fff; transition: transform .3s var(--sx-ease), border-color .3s, box-shadow .3s;
}
.sx-problems .elementor-icon-list-item::after { display: none !important; }
.sx-problems .elementor-icon-list-item > a { display: flex !important; align-items: flex-start; gap: 14px; padding: 16px 48px 16px 16px; position: relative; color: inherit; width: 100%; }
.sx-problems .elementor-icon-list-item > a::after {
	content: "→"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); color: var(--sx-accent);
	font-size: 18px; transition: transform .3s var(--sx-ease);
}
.sx-problems .elementor-icon-list-item:hover { transform: translateY(-2px); border-color: var(--sx-accent); box-shadow: 0 16px 34px -20px rgba(46, 26, 71, .55); }
.sx-problems .elementor-icon-list-item:hover > a::after { transform: translate(5px, -50%); }
.sx-problems a, .sx-problems a:hover, .sx-card .elementor-heading-title a { text-decoration: none !important; background-image: none !important; }
.sx-problems .elementor-icon-list-text { color: #1b1722 !important; }
.sx-card .elementor-heading-title a { color: inherit !important; transition: color .25s; }
.sx-card:hover .elementor-heading-title a { color: var(--sx-accent) !important; }
.sx-cardrow.sx-dark .sx-card:hover .elementor-heading-title a { color: var(--sx-accent-hi) !important; }
.sx-problems .elementor-icon-list-icon { flex: 0 0 auto; width: 34px !important; height: 34px; border-radius: 8px; background: rgba(139,111,192,.13); display: inline-flex !important; align-items: center; justify-content: center; }
.sx-problems .elementor-icon-list-icon img, .sx-problems .elementor-icon-list-icon svg { width: 20px !important; height: 20px !important; }
.sx-problems .elementor-icon-list-text { padding-left: 0 !important; line-height: 1.45; }

/* ---------- Client engagement cards ---------- */
.sx-eng { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sx-eng-card {
	display: flex; flex-direction: column; text-decoration: none !important; color: #fff !important;
	border: 1px solid rgba(255,255,255,.1); border-radius: 10px; overflow: hidden;
	background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
	transition: transform .4s var(--sx-ease), border-color .4s, box-shadow .4s; background-image: none;
}
.sx-eng-card:hover { transform: translateY(-5px); border-color: rgba(139,111,192,.75); box-shadow: 0 30px 60px -34px rgba(0,0,0,1); }
.sx-eng-card .sx-eng-img { aspect-ratio: 3 / 2; overflow: hidden; background: #111; }
.sx-eng-card .sx-eng-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--sx-ease); }
.sx-eng-card:hover .sx-eng-img img { transform: scale(1.05); }
.sx-eng-card .sx-eng-body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.sx-eng-tag { font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--sx-accent); font-weight: 600; }
.sx-eng-title { font-family: var(--sx-head); font-size: 24px; line-height: 1.12; margin: 0; color: #fff; }
.sx-eng-line { font-size: 15px; line-height: 1.55; color: rgba(230,230,230,.82); margin: 0; }
.sx-eng-more { margin-top: auto; padding-top: 6px; font-size: 14px; font-weight: 600; color: #fff; }
.sx-eng-more span { display: inline-block; transition: transform .3s var(--sx-ease); color: var(--sx-accent); }
.sx-eng-card:hover .sx-eng-more span { transform: translateX(5px); }
.sx-eng-card.sx-eng-cta { background: linear-gradient(150deg, #3a2160, var(--sx-purple) 60%); border-color: rgba(139,111,192,.5); }
.sx-eng-card.sx-eng-cta .sx-eng-body { justify-content: center; padding: 34px 30px; }
.sx-eng-card.sx-eng-cta .sx-eng-title { font-size: 26px; }
.sx-eng-card.sx-eng-cta .sx-eng-tag { color: var(--sx-accent-hi); }
.sx-eng-card.sx-eng-wide { grid-column: span 3; flex-direction: row; }

/* Hero motion toggle: small and quiet, there for anyone who needs it */
.sx-motion {
	position: absolute; right: 16px; bottom: 14px; z-index: 4;
	width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
	color: rgba(255,255,255,.55); background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.14); border-radius: 50%; cursor: pointer;
	opacity: .55; transition: opacity .2s, color .2s, border-color .2s;
}
.sx-motion:hover, .sx-motion:focus-visible { opacity: 1; color: #fff; border-color: var(--sx-accent); }
.sx-motion i { font-style: normal; font-size: 10px; line-height: 1; }

/* ---------- Home: the three practices ---------- */
.sx-pillars-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 8px; }
.sx-pillar {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px;
	padding: 34px 30px 30px; border-radius: 14px; text-decoration: none !important; background-image: none !important;
	color: #fff !important; background-color: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14);
	transition: transform .4s var(--sx-ease), border-color .4s, background-color .4s, box-shadow .4s;
}
.sx-pillar::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
	background: linear-gradient(90deg, var(--sx-accent), var(--sx-accent-hi)); transform: scaleX(0); transform-origin: 0 50%;
	transition: transform .5s var(--sx-ease);
}
.sx-pillar:hover { transform: translateY(-6px); border-color: rgba(168,144,218,.7); background-color: rgba(255,255,255,.08); box-shadow: 0 34px 60px -36px rgba(0,0,0,.95); }
.sx-pillar:hover::before { transform: scaleX(1); }
.sx-pillar-num { position: absolute; right: 24px; top: 14px; font-family: var(--sx-head); font-size: 72px; line-height: 1; color: rgba(255,255,255,.09); }
.sx-pillar-icon { width: 64px; height: 64px; border-radius: 16px; background: #F4F2F7; display: inline-flex; align-items: center; justify-content: center; transition: transform .4s var(--sx-ease); }
.sx-pillar:hover .sx-pillar-icon { transform: rotate(-5deg) scale(1.06); }
.sx-pillar-icon img { width: 38px; height: 38px; object-fit: contain; }
.sx-pillar h3 { font-family: var(--sx-head); font-size: 36px; line-height: 1.02; margin: 8px 0 0; color: #fff; font-weight: 500; }
.sx-pillar p { font-size: 15.5px; line-height: 1.62; color: rgba(255,255,255,.84); margin: 0; }
.sx-pillar-more { margin-top: auto; padding-top: 8px; font-weight: 600; font-size: 14.5px; color: #fff; }
.sx-pillar-more span { display: inline-block; color: var(--sx-accent-hi); transition: transform .3s var(--sx-ease); }
.sx-pillar:hover .sx-pillar-more span { transform: translateX(6px); }
.sx-spec { margin-top: 34px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 10px; }
.sx-spec-label { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: rgba(255,255,255,.62); margin-right: 8px; }
.sx-spec a {
	display: inline-flex; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22);
	color: rgba(255,255,255,.88) !important; font-size: 13.5px; text-decoration: none !important; background-image: none !important;
	transition: border-color .2s, background-color .2s, color .2s;
}
.sx-spec a:hover { border-color: var(--sx-accent-hi); background: rgba(139,111,192,.18); color: #fff !important; }
.sx-spec a.sx-spec-all { border-color: transparent; font-weight: 600; }
@media (max-width: 1024px) { .sx-pillars-grid { grid-template-columns: 1fr; } .sx-pillar { padding: 28px 24px 26px; } }
@media (max-width: 767px) { .sx-pillar h3 { font-size: 30px; } .sx-pillar-num { font-size: 56px; } }
.sx-eng-card.sx-eng-wide .sx-eng-img { flex: 0 0 42%; aspect-ratio: auto; }
.sx-eng-card.sx-eng-wide .sx-eng-body { justify-content: center; padding: 30px 34px; }
@media (max-width: 1024px) {
	.sx-eng { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sx-eng-card.sx-eng-wide { grid-column: span 2; }
}
@media (max-width: 767px) {
	.sx-eng { grid-template-columns: 1fr; gap: 16px; }
	.sx-eng-card.sx-eng-wide { grid-column: auto; flex-direction: column; }
	.sx-eng-card.sx-eng-wide .sx-eng-img { aspect-ratio: 3 / 2; }
	.sx-eng-card.sx-eng-wide .sx-eng-body { padding: 22px; }
}

/* ---------- Contact: two ways in + form ---------- */
.sx-ways { display: grid; grid-template-columns: 1.35fr 1fr; gap: 28px; align-items: start; }
@media (max-width: 1024px) { .sx-ways { grid-template-columns: 1fr; } }
.sx-panel { border: 1px solid rgba(46,26,71,.14); border-radius: 12px; background: #fff; padding: 34px; box-shadow: 0 30px 60px -40px rgba(46,26,71,.5); }
.sx-panel.sx-panel-dark { background: var(--sx-purple); border-color: var(--sx-purple); color: #fff; box-shadow: none; }
.sx-panel h3 { font-family: var(--sx-head); font-size: 30px; line-height: 1.05; margin: 0 0 10px; color: inherit; }
.sx-panel .sx-kicker { font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--sx-accent); margin-bottom: 10px; display: block; }
.sx-panel-dark .sx-kicker { color: var(--sx-accent-hi); }
.sx-panel p { margin: 0 0 14px; line-height: 1.6; }
.sx-panel-dark p { color: rgba(255,255,255,.86); }
.sx-panel-dark .sx-facts { list-style: none; margin: 18px 0 24px; padding: 0; display: grid; gap: 10px; }
.sx-panel-dark .sx-facts li { display: flex; gap: 12px; align-items: baseline; color: #fff; font-size: 15px; }
.sx-panel-dark .sx-facts li::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: 50%; background: var(--sx-accent-hi); transform: translateY(-1px); }
.sx-btn {
	display: inline-flex; align-items: center; gap: 10px; padding: 14px 26px; border-radius: 3px;
	background: var(--sx-accent); color: #000 !important; font-weight: 600; font-size: 15px; text-decoration: none !important;
	border: 1px solid var(--sx-accent); cursor: pointer; background-image: none !important;
	transition: transform .22s var(--sx-ease), box-shadow .22s, background-color .2s;
}
.sx-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(139,111,192,.85); background-color: var(--sx-accent-hi); }
.sx-btn.sx-btn-ghost { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.55); }
.sx-btn.sx-btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.06); }
.sx-btn[disabled] { opacity: .6; pointer-events: none; }

.sx-form form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 18px; margin: 22px 0 0; }
.sx-form .sx-f { display: flex; flex-direction: column; gap: 7px; }
.sx-form .sx-f.sx-full { grid-column: 1 / -1; }
.sx-form label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: #3b2d52; }
.sx-form label .sx-opt { text-transform: none; letter-spacing: 0; font-weight: 400; color: #6d6874; }
.sx-form input, .sx-form select, .sx-form textarea {
	width: 100%; font: inherit; font-size: 16px; color: #111; background: #FAFAFB;
	border: 1px solid rgba(46,26,71,.2); border-radius: 6px; padding: 13px 14px;
	transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.sx-form textarea { min-height: 150px; resize: vertical; line-height: 1.55; }
.sx-form input:focus, .sx-form select:focus, .sx-form textarea:focus { outline: none; border-color: var(--sx-accent); background: #fff; box-shadow: 0 0 0 4px rgba(139,111,192,.18); }
.sx-form .sx-invalid { border-color: #b3261e !important; box-shadow: 0 0 0 4px rgba(179,38,30,.12) !important; }
.sx-form .sx-note { grid-column: 1 / -1; font-size: 13.5px; line-height: 1.55; color: #5c5763; margin: 0; }
.sx-form .sx-note a { color: var(--sx-purple); }
.sx-form .sx-submit { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.sx-form .sx-err { color: #b3261e; font-size: 14px; display: none; }
.sx-form .sx-err.sx-show { display: block; }
.sx-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 767px) {
	.sx-panel { padding: 24px 20px; }
	.sx-form form { grid-template-columns: 1fr; }
}

/* FAQ */
.sx-faq details { border-top: 1px solid rgba(46,26,71,.15); }
.sx-faq details:last-child { border-bottom: 1px solid rgba(46,26,71,.15); }
.sx-faq summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px;
	padding: 22px 0; font-family: var(--sx-head); font-size: 24px; line-height: 1.15; color: #111;
}
.sx-faq summary::-webkit-details-marker { display: none; }
.sx-faq summary::after { content: "+"; font-family: 'Inter', sans-serif; font-size: 26px; color: var(--sx-accent); transition: transform .3s var(--sx-ease); flex: 0 0 auto; }
.sx-faq details[open] summary::after { transform: rotate(45deg); }
.sx-faq details > div { padding: 0 0 22px; max-width: 74ch; line-height: 1.65; }
.sx-faq details > div p { margin: 0 0 12px; }

/* ---------- CPSR readiness self-check ---------- */
.sx-tool { color: #fff; }
.sx-tool .sx-tool-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; margin-bottom: 26px; }
.sx-tool .sx-meter { min-width: 260px; flex: 0 1 360px; }
.sx-tool .sx-meter-bar { height: 8px; background: rgba(255,255,255,.12); border-radius: 8px; overflow: hidden; }
.sx-tool .sx-meter-fill { height: 100%; width: 0; background: linear-gradient(90deg, #6B4FA6, var(--sx-accent-hi)); transition: width .5s var(--sx-ease); }
.sx-tool .sx-meter-label { display: flex; justify-content: space-between; font-size: 13px; color: rgba(255,255,255,.72); margin-top: 8px; letter-spacing: .04em; }
.sx-tool ol.sx-qs { list-style: none; counter-reset: q; margin: 0; padding: 0; display: grid; gap: 12px; }
.sx-tool .sx-q { counter-increment: q; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; padding: 18px 20px; background: rgba(255,255,255,.03); display: grid; grid-template-columns: 1fr auto; gap: 14px 24px; align-items: center; transition: border-color .3s, background-color .3s; }
.sx-tool .sx-q.sx-answered { border-color: rgba(139,111,192,.45); }
.sx-tool .sx-q-text { line-height: 1.5; }
.sx-tool .sx-q-text strong { display: block; font-family: var(--sx-head); font-size: 20px; font-weight: 500; margin-bottom: 2px; }
.sx-tool .sx-q-text strong::before { content: counter(q, decimal-leading-zero) "  "; color: var(--sx-accent-hi); font-family: 'Inter', sans-serif; font-size: 12px; letter-spacing: .2em; font-weight: 600; vertical-align: 3px; }
.sx-tool .sx-q-text span { font-size: 14.5px; color: rgba(255,255,255,.78); }
.sx-tool .sx-q-text em { display: block; font-style: normal; font-size: 12px; color: rgba(255,255,255,.45); margin-top: 4px; letter-spacing: .04em; }
.sx-tool .sx-opts { display: inline-flex; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; overflow: hidden; }
.sx-tool .sx-opts label { cursor: pointer; }
.sx-tool .sx-opts input { position: absolute; opacity: 0; pointer-events: none; }
.sx-tool .sx-opts span { display: block; padding: 9px 16px; font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.8); transition: background-color .2s, color .2s; }
.sx-tool .sx-opts label + label span { border-left: 1px solid rgba(255,255,255,.14); }
.sx-tool .sx-opts input:checked + span { background: var(--sx-accent); color: #000; }
.sx-tool .sx-opts input:focus-visible + span { outline: 2px solid #fff; outline-offset: -3px; }
.sx-tool .sx-result { margin-top: 28px; border-radius: 12px; padding: 30px; background: linear-gradient(135deg, rgba(139,111,192,.28), rgba(46,26,71,.6)); border: 1px solid rgba(139,111,192,.5); display: none; }
.sx-tool .sx-result.sx-show { display: block; animation: sxpop .6s var(--sx-ease); }
.sx-tool .sx-result h3 { font-family: var(--sx-head); font-size: 34px; margin: 0 0 8px; color: #fff; }
.sx-tool .sx-result p { color: rgba(255,255,255,.88); line-height: 1.6; margin: 0 0 14px; max-width: 72ch; }
.sx-tool .sx-result ul { margin: 0 0 20px; padding-left: 18px; color: #fff; }
.sx-tool .sx-result li { margin: 4px 0; }
@keyframes sxpop { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
	.sx-tool .sx-q { grid-template-columns: 1fr; }
	.sx-tool .sx-opts { width: 100%; }
	.sx-tool .sx-opts label { flex: 1; text-align: center; }
	.sx-tool .sx-result { padding: 22px; }
}

/* ---------- Practice pages: floating conversation card ---------- */
.sx-aside {
	position: fixed; z-index: 900; top: 160px; width: 300px;
	right: max(24px, calc((100vw - 1140px) / 2 + 10px));
	padding: 24px 24px 22px; border-radius: 12px;
	background: rgba(18, 12, 28, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border: 1px solid rgba(139,111,192,.45); color: #fff;
	box-shadow: 0 30px 60px -30px rgba(0,0,0,.9);
	opacity: 0; transform: translateY(12px); pointer-events: none;
	transition: opacity .35s var(--sx-ease), transform .35s var(--sx-ease);
}
.sx-aside.sx-show { opacity: 1; transform: none; pointer-events: auto; }
.sx-aside .sx-kicker { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--sx-accent-hi); display: block; margin-bottom: 8px; }
.sx-aside .sx-aside-title { font-family: var(--sx-head); font-size: 24px; line-height: 1.1; margin: 0 0 10px; color: #fff; }
.sx-aside p { font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.8); margin: 0 0 16px; }
.sx-aside .sx-btn { width: 100%; justify-content: center; }
.sx-aside .sx-aside-link { display: block; margin-top: 12px; font-size: 13.5px; color: rgba(255,255,255,.85) !important; text-decoration: none !important; background-image: none !important; }
.sx-aside .sx-aside-link:hover { color: #fff !important; }
@media (max-width: 1279px) { .sx-aside { display: none; } }
@media (prefers-reduced-motion: reduce) { .sx-aside { transform: none !important; } }

/* ---------- Footer ---------- */
.sx-foot { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 36px; text-align: left; width: 100%; padding: 10px 0 34px; border-bottom: 1px solid rgba(255,255,255,.1); margin-bottom: 22px; }
.sx-foot h4 { font-family: var(--sx-head); font-size: 15px; letter-spacing: .18em; text-transform: uppercase; color: var(--sx-accent-hi); margin: 0 0 14px; font-weight: 500; }
.sx-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.sx-foot a { color: rgba(255,255,255,.82) !important; text-decoration: none !important; font-size: 14.5px; background-image: none !important; transition: color .2s; }
.sx-foot a:hover { color: #fff !important; }
.sx-foot p { color: rgba(255,255,255,.66); font-size: 14px; line-height: 1.6; margin: 0 0 16px; }
.sx-foot .sx-foot-cta p { color: rgba(255,255,255,.8); }
.sx-foot .sx-foot-tag { font-family: var(--sx-head); letter-spacing: .2em; text-transform: uppercase; font-size: 13px; color: var(--sx-accent-hi); }
.sx-panel .sx-small { font-size: 13.5px; opacity: .82; margin: 16px 0 0; }
.sx-contact-ways .elementor-widget-html { width: 100%; }
.sx-foot .sx-btn { font-size: 14px; padding: 12px 20px; }
@media (max-width: 1024px) { .sx-foot { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
	.sx-foot { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
	.sx-foot > div:first-child, .sx-foot > .sx-foot-cta { grid-column: 1 / -1; }
}
