/* Magenta SENSE Site — design tokens and components (matches sense-core's dark UI). */

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/Inter-400.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/Inter-600.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/Inter-700.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/Inter-800.woff2') format('woff2'); }

:root {
	--ms-bg: #111317;
	--ms-surface: #181b21;
	--ms-surface-2: #20242c;
	--ms-border: #2a2f39;
	--ms-text: #e7e9ee;
	--ms-heading: #f3f4f6;
	--ms-muted: #9aa2b1;
	--ms-amber: #ffc107;
	--ms-amber-ink: #1a1a1a;
	--ms-red: #b41f23;
	--ms-red-text: #f0646a;
	--ms-online: #2fb344;
	--ms-radius: 14px;
	--ms-radius-sm: 10px;
	--ms-wrap: 1200px;
	--ms-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--ms-ring: 0 0 0 3px rgba(255, 193, 7, .45);
	color-scheme: dark;
}

html { scroll-behavior: smooth; scroll-padding-top: 88px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body, body.elementor-page, html body .elementor-kit-body { background: var(--ms-bg); color: var(--ms-text); font-family: var(--ms-font); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html body a { color: var(--ms-amber); }
html body a:hover { color: #ffd65a; }
html body :focus-visible { outline: none; box-shadow: var(--ms-ring); border-radius: 6px; }
::selection { background: rgba(255, 193, 7, .35); color: #fff; }

/* Hello Elementor resets */
html body .site-main, html body .page-content { max-width: none; }
body:not([class*=elementor-page-]) .site-main { padding-inline: 16px; }

/* Skip link */
html body .ms-skip { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
html body .ms-skip:focus { position: fixed !important; left: 12px; top: 12px; z-index: 1000; width: auto; height: auto; margin: 0; padding: 10px 16px; clip: auto; overflow: visible; background: var(--ms-amber); color: var(--ms-amber-ink); font-weight: 700; border-radius: var(--ms-radius-sm); text-decoration: none; }

/* ── Buttons ─────────────────────────────────────────────────────────── */
html body .ms-btn, html body .ms-elbtn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	padding: .8em 1.35em; border-radius: var(--ms-radius-sm); border: 1px solid transparent;
	font: 600 1rem/1.2 var(--ms-font); text-decoration: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s, transform .15s;
}
html body .ms-btn--primary, html body .ms-elbtn--primary .elementor-button { background: var(--ms-amber); color: var(--ms-amber-ink); }
html body .ms-btn--primary:hover, html body .ms-elbtn--primary .elementor-button:hover { background: #ffd65a; color: var(--ms-amber-ink); }
html body .ms-btn--ghost, html body .ms-elbtn--ghost .elementor-button { background: transparent; color: var(--ms-text); border-color: #3a404c; }
html body .ms-btn--ghost:hover, html body .ms-elbtn--ghost .elementor-button:hover { border-color: var(--ms-amber); color: #fff; }
html body .ms-btn--sm { padding: .55em 1em; font-size: .9rem; }
html body .ms-elbtn .elementor-button-text { font-weight: 600; }

/* ── Header ──────────────────────────────────────────────────────────── */
html body .elementor-location-header, html body .ms-header-wrap { position: sticky; top: 0; z-index: 100; }
html body .admin-bar .elementor-location-header, html body .admin-bar .ms-header-wrap { top: 32px; }
html body .ms-header-wrap, html body .elementor-location-header > .e-con, html body .elementor-location-header .ms-header-bar {
	background: rgba(17, 19, 23, .86); -webkit-backdrop-filter: saturate(140%) blur(12px); backdrop-filter: saturate(140%) blur(12px);
	border-bottom: 1px solid var(--ms-border); width: 100%;
}
/* The header spans the full viewport width (logo far left, menu far right), even though page
   content stays boxed: override Elementor's boxed inner wrapper for the header location only. */
html body .elementor-location-header > .e-con, html body .elementor-location-header .e-con-inner,
html body .ms-header-bar, html body .ms-header-bar > .e-con-inner { max-width: none; width: 100%; }
/* The [magenta_header] widget must fill the full-width bar, not shrink to its content. */
html body .ms-header-bar > .elementor-element, html body .ms-header-bar .elementor-widget-shortcode { width: 100%; max-width: 100%; flex: 1 1 100%; }
/* Full-width header bar: logo pinned left, menu + language + CTA pinned right. */
html body .ms-hdr { width: 100%; max-width: none; margin-inline: 0; padding-inline: clamp(16px, 4vw, 56px); display: flex; align-items: center; gap: 24px; min-height: 68px; box-sizing: border-box; }
html body .ms-brand { display: inline-flex; flex: 0 0 auto; }
html body img.ms-logo { display: block; height: 38px; width: auto; }
html body .ms-nav { flex: 0 1 auto; min-width: 0; margin-left: auto; }
html body .ms-nav__list { list-style: none; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 18px; margin: 0; padding: 0; }
html body .ms-nav__list a, html body .ms-burger__list a { color: var(--ms-text); text-decoration: none; font-size: .95rem; font-weight: 500; padding: 6px 2px; }
html body .ms-nav__list a:hover, html body .ms-nav__list a[aria-current], html body .ms-burger__list a:hover, html body .ms-burger__list a[aria-current] { color: var(--ms-amber); }
html body .ms-hdr__end { display: flex; align-items: center; gap: 14px; }
html body .ms-lang ul { list-style: none; display: inline-flex; gap: 2px; margin: 0; padding: 3px; background: var(--ms-surface-2); border: 1px solid var(--ms-border); border-radius: 999px; }
html body .ms-lang a { display: block; padding: 4px 9px; border-radius: 999px; color: var(--ms-muted); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; }
html body .ms-lang a:hover { color: var(--ms-text); }
html body .ms-lang a[aria-current] { background: var(--ms-amber); color: var(--ms-amber-ink); }

html body .ms-burger { display: none; position: relative; }
html body .ms-burger > summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; padding: 9px 12px; border: 1px solid var(--ms-border); border-radius: var(--ms-radius-sm); color: var(--ms-text); font-weight: 600; font-size: .9rem; }
html body .ms-burger > summary::-webkit-details-marker { display: none; }
html body .ms-burger__icon, html body .ms-burger__icon::before, html body .ms-burger__icon::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; content: ''; }
html body .ms-burger__icon::before { position: absolute; top: -6px; } html body .ms-burger__icon::after { position: absolute; top: 6px; }
html body .ms-burger[open] .ms-burger__icon { background: transparent; }
html body .ms-burger[open] .ms-burger__icon::before { top: 0; transform: rotate(45deg); }
html body .ms-burger[open] .ms-burger__icon::after { top: 0; transform: rotate(-45deg); }
html body .ms-burger__panel { position: absolute; right: 0; top: calc(100% + 10px); width: min(320px, calc(100vw - 32px)); padding: 16px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); box-shadow: 0 18px 50px rgba(0, 0, 0, .5); }
html body .ms-burger__list { list-style: none; margin: 0 0 14px; padding: 0; }
html body .ms-burger__list a { display: block; padding: 11px 6px; border-bottom: 1px solid var(--ms-border); }
html body .ms-burger__panel .ms-btn { width: 100%; }

@media (max-width: 1100px) {
	html body .ms-nav, html body .ms-hdr__cta { display: none; }
	html body .ms-burger { display: block; }
}
@media (max-width: 480px) {
	html body img.ms-logo { height: 30px; }
	html body .ms-burger__label { display: none; }
	html body .ms-hdr { gap: 12px; }
}

/* ── Sections ────────────────────────────────────────────────────────── */
html body .ms-section { --padding-top: 96px; --padding-bottom: 96px; }
html body .ms-section--alt { background-color: var(--ms-surface); border-block: 1px solid var(--ms-border); }
@media (max-width: 767px) { html body .ms-section { --padding-top: 64px; --padding-bottom: 64px; } }

html body .ms-kicker .elementor-heading-title { color: var(--ms-red-text); font: 700 .8rem/1.3 var(--ms-font); letter-spacing: .14em; text-transform: uppercase; }
html body .ms-kicker--amber .elementor-heading-title { color: var(--ms-amber); }
html body .ms-h1 .elementor-heading-title { color: #fff; font: 800 clamp(2.3rem, 5.2vw, 4rem)/1.06 var(--ms-font); letter-spacing: -.025em; text-wrap: balance; }
html body .ms-h2 .elementor-heading-title { color: var(--ms-heading); font: 800 clamp(1.75rem, 3.4vw, 2.6rem)/1.15 var(--ms-font); letter-spacing: -.018em; text-wrap: balance; }
html body .ms-h3 .elementor-heading-title { color: var(--ms-heading); font: 700 1.2rem/1.3 var(--ms-font); }
html body .ms-lead, html body .ms-lead p { color: var(--ms-muted); font-size: 1.125rem; line-height: 1.65; max-width: 68ch; }
html body .ms-hero .ms-lead, html body .ms-hero .ms-lead p { font-size: 1.2rem; color: #c2c8d3; }
html body .ms-text, html body .ms-text p { color: var(--ms-text); font-size: 1rem; line-height: 1.7; }
html body .ms-text p:last-child, html body .ms-lead p:last-child { margin-bottom: 0; }
html body .ms-muted, html body .ms-muted p { color: var(--ms-muted); }
html body .ms-head { max-width: 760px; }
html body .ms-head--center { margin-inline: auto; text-align: center; }
html body .ms-head--center .ms-lead, html body .ms-head--center .ms-lead p { margin-inline: auto; }

/* Hero */
html body .ms-hero { position: relative; overflow: hidden; }
/* Magenta glow behind the home hero: top-right accent plus one on the left (behind the text). */
html body .ms-hero::before { content: ''; position: absolute; inset: 0; pointer-events: none; background:
	radial-gradient(680px 680px at 108% -12%, rgba(180, 31, 35, .28), transparent 62%),
	radial-gradient(620px 620px at -12% 34%, rgba(180, 31, 35, .22), transparent 62%); }
html body .ms-hero__media img, html body .ms-hero-map { display: block; width: 100%; height: auto; max-height: 640px; object-fit: cover; object-position: 50% 30%; border-radius: 22px; border: 1px solid var(--ms-border); box-shadow: 0 30px 80px rgba(0, 0, 0, .55); }
html body .ms-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--ms-border); border-radius: 999px; background: var(--ms-surface); color: var(--ms-muted); font-size: .85rem; font-weight: 600; }
html body .ms-pill::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--ms-online); box-shadow: 0 0 0 3px rgba(47, 179, 68, .2); }

/* Stats */
html body .ms-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
html body .ms-stats li { padding: 18px 16px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-stats strong { display: block; color: #fff; font: 800 clamp(1.4rem, 2.6vw, 2rem)/1.1 var(--ms-font); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
html body .ms-stats span { display: block; margin-top: 6px; color: var(--ms-muted); font-size: .88rem; line-height: 1.35; }
@media (max-width: 1024px) { html body .ms-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { html body .ms-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } html body .ms-stats li:last-child { grid-column: 1 / -1; } }

/* Cards (Elementor Icon Box widget with class ms-card) */
html body .ms-card { height: 100%; }
html body .ms-card > .elementor-widget-container, html body .ms-card.elementor-widget-icon-box .elementor-icon-box-wrapper { height: 100%; }
html body .ms-card.elementor-widget-icon-box .elementor-icon-box-wrapper { display: flex; align-items: flex-start; text-align: start; gap: 14px; padding: 24px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); transition: border-color .2s, transform .2s; }
html body .ms-section--alt .ms-card .elementor-icon-box-wrapper { background: var(--ms-surface-2); }
html body .ms-card .elementor-icon-box-wrapper:hover { border-color: #3a404c; }
html body .ms-card .elementor-icon-box-icon { margin: 0 !important; }
html body .ms-card .elementor-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 11px; background: rgba(180, 31, 35, .16); color: var(--ms-red-text); font-size: 20px; }
html body .ms-card .elementor-icon svg { width: 20px; height: 20px; fill: currentColor; }
html body .ms-card--amber .elementor-icon { background: rgba(255, 193, 7, .12); color: var(--ms-amber); }
html body .ms-card--tile .elementor-icon { background: #0b0c0f; color: var(--ms-amber); border: 1px solid var(--ms-border); }
html body .ms-card .elementor-icon-box-title { margin: 0 0 6px; color: var(--ms-heading); font: 700 1.1rem/1.3 var(--ms-font); }
html body .ms-card .elementor-icon-box-title a { color: inherit; }
html body .ms-card .elementor-icon-box-description { margin: 0; color: var(--ms-muted); font-size: .97rem; line-height: 1.6; }
html body .ms-card--row.elementor-widget-icon-box .elementor-icon-box-wrapper { gap: 16px; padding: 20px; }
html body .ms-card--plain .elementor-icon-box-wrapper { background: transparent !important; border-color: transparent; padding: 8px 0; flex-direction: row; gap: 16px; }

/* Architecture strip */
html body .ms-arch .ms-card .elementor-icon-box-title { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; font-size: 1.02rem; letter-spacing: -.01em; }

/* Steps */
html body .ms-steps { list-style: none; counter-reset: ms-step; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; }
html body .ms-steps li { counter-increment: ms-step; position: relative; padding: 22px 18px 20px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-section--alt .ms-steps li { background: var(--ms-surface-2); }
html body .ms-steps li::before { content: counter(ms-step, decimal-leading-zero); display: block; margin-bottom: 14px; color: var(--ms-amber); font: 800 .85rem/1 var(--ms-font); letter-spacing: .1em; }
html body .ms-steps h3 { margin: 0 0 8px; color: var(--ms-heading); font: 700 1.05rem/1.3 var(--ms-font); }
html body .ms-steps p { margin: 0; color: var(--ms-muted); font-size: .94rem; line-height: 1.55; }
@media (max-width: 1024px) { html body .ms-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { html body .ms-steps { grid-template-columns: 1fr; } }

/* Screenshots: every shot the same height so the grid cells never stretch tall
   around a smaller image. The box is a fixed 16/10 frame and the capture fills it
   (top-anchored, so headers/toolbars stay visible); the lightbox shows it whole. */
html body .ms-figure { margin: 0; }
html body .ms-shot { align-self: start; }
html body .ms-shot img { aspect-ratio: 16 / 10; height: auto; object-fit: cover; object-position: top center; }
html body .ms-shot figcaption { font-weight: 500; color: var(--ms-text); }
html body .ms-figure img, html body .ms-shot img { display: block; width: 100%; border-radius: var(--ms-radius); border: 1px solid var(--ms-border); background: #0b0c0f; }
html body .ms-figure img { height: auto; }
html body .ms-figure figcaption { margin-top: 10px; color: var(--ms-muted); font-size: .9rem; line-height: 1.45; }

/* Page hero (sub-pages): a touch tighter than the home hero. */
html body .ms-hero--page .ms-head { max-width: 760px; }

/* Explore cards on the home page (links to the sub-pages). */
html body .ms-explore { height: 100%; padding: 24px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-explore .ms-card--explore { background: transparent; border: 0; padding: 0; }
html body .ms-explore .ms-card--explore .elementor-icon { color: var(--ms-amber); }
/* Column cards must not wrap into a second column (Elementor flex default is wrap). */
html body .ms-explore { flex-wrap: nowrap; }
html body .ms-explore .ms-btn { align-self: flex-start; margin-top: 4px; max-width: 100%; }

/* Compact stats, used in the home case teaser. */
html body .ms-stats--mini { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 600px) { html body .ms-stats--mini { grid-template-columns: repeat(3, minmax(0, 1fr)); } html body .ms-stats--mini li:last-child { grid-column: auto; } }
html body .ms-stats--mini li { padding: 14px 14px; }

/* Chips */
html body .ms-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; }
html body .ms-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: 999px; color: var(--ms-text); font-weight: 600; font-size: .95rem; }
html body .ms-chips li::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ms-online); }

/* Case study */
html body .ms-case-photos { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: auto auto; gap: 12px; }
html body .ms-case-photos .ms-figure:first-child { grid-row: span 2; }
html body .ms-case-photos img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--ms-radius); border: 1px solid var(--ms-border); }
html body .ms-case-photos .ms-figure:first-child img { aspect-ratio: 4 / 3.6; }
html body .ms-case-photos .ms-figure:not(:first-child) img { aspect-ratio: 16 / 10; }
@media (max-width: 767px) { html body .ms-case-photos { grid-template-columns: 1fr 1fr; } html body .ms-case-photos .ms-figure:first-child { grid-column: 1 / -1; grid-row: auto; } }
html body .ms-box { height: 100%; padding: 26px; background: var(--ms-surface-2); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-box h3 { margin: 0 0 14px; color: var(--ms-heading); font: 700 1.1rem/1.3 var(--ms-font); }
html body .ms-box ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
html body .ms-box li { position: relative; padding-left: 26px; color: var(--ms-text); line-height: 1.55; }
html body .ms-box li::before { content: ''; position: absolute; left: 2px; top: .45em; width: 12px; height: 7px; border-left: 2px solid var(--ms-online); border-bottom: 2px solid var(--ms-online); transform: rotate(-45deg); }
html body .ms-box--facts li::before { width: 8px; height: 8px; top: .5em; border: 0; border-radius: 2px; background: var(--ms-amber); transform: none; }
html body .ms-box p { margin: 0; color: var(--ms-muted); line-height: 1.65; }
html body .ms-box--honest { background: rgba(180, 31, 35, .08); border-color: rgba(240, 100, 106, .35); }
html body .ms-box--honest h3 { color: var(--ms-red-text); }
html body .ms-note, html body .ms-note p { color: var(--ms-muted); font-size: .95rem; }

/* FAQ */
html body .ms-faq { display: grid; gap: 10px; max-width: 880px; margin-inline: auto; }
html body .ms-faq details { background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-faq details[open] { border-color: #3a404c; }
html body .ms-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none; color: var(--ms-heading); font-weight: 700; font-size: 1.05rem; }
html body .ms-faq summary::-webkit-details-marker { display: none; }
html body .ms-faq summary::after { content: '+'; flex: 0 0 auto; color: var(--ms-amber); font-size: 1.4rem; font-weight: 400; line-height: 1; transition: transform .2s; }
html body .ms-faq details[open] summary::after { transform: rotate(45deg); }
html body .ms-faq h3 { margin: 0; font: inherit; color: inherit; }
html body .ms-faq .ms-faq__a { padding: 0 22px 20px; color: var(--ms-muted); line-height: 1.7; }
html body .ms-faq .ms-faq__a p { margin: 0; }

/* About */
html body .ms-team { list-style: none; display: grid; gap: 12px; margin: 0; padding: 0; }
html body .ms-team li { padding: 16px 18px; background: var(--ms-surface-2); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-team strong { display: block; color: var(--ms-heading); font-size: 1.05rem; }
html body .ms-team span { color: var(--ms-muted); font-size: .95rem; }
html body .ms-creds { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; }
html body .ms-creds li { padding: 12px 14px; border: 1px dashed #3a404c; border-radius: var(--ms-radius-sm); color: var(--ms-text); font-size: .93rem; line-height: 1.45; }
@media (max-width: 600px) { html body .ms-creds { grid-template-columns: 1fr; } }

/* Contact */
html body .ms-contact { list-style: none; display: grid; gap: 18px; margin: 0; padding: 0; }
html body .ms-contact li { display: grid; gap: 4px; }
html body .ms-contact__k { color: var(--ms-muted); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
html body .ms-contact a { color: var(--ms-heading); font-weight: 600; font-size: 1.05rem; text-decoration: none; }
html body .ms-contact a:hover { color: var(--ms-amber); }
html body .ms-contact address { color: var(--ms-text); font-style: normal; line-height: 1.55; }
html body .ms-contact address + address { margin-top: 8px; }
html body .ms-formbox { padding: 28px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: 18px; }

/* Elementor Pro form */
html body .ms-form .elementor-field-group > label, html body .ms-form .elementor-field-label { color: var(--ms-text); font-weight: 600; font-size: .92rem; margin-bottom: 6px; }
html body .ms-form .elementor-field-textual, html body .ms-form select.elementor-field {
	background: var(--ms-bg) !important; color: var(--ms-text) !important; border: 1px solid #343a46 !important; border-radius: var(--ms-radius-sm) !important;
	min-height: 46px; padding: 10px 14px !important; font: 400 1rem/1.4 var(--ms-font) !important;
}
html body .ms-form .elementor-field-textual::placeholder { color: #6f7787; }
html body .ms-form .elementor-field-textual:focus, html body .ms-form select.elementor-field:focus { border-color: var(--ms-amber) !important; box-shadow: var(--ms-ring) !important; outline: none; }
html body .ms-form .elementor-select-wrapper::before { color: var(--ms-muted); }
html body .ms-form .elementor-field-type-acceptance label { color: var(--ms-muted); font-weight: 400; font-size: .9rem; line-height: 1.5; }
html body .ms-form .elementor-field-type-acceptance input { accent-color: var(--ms-amber); width: 18px; height: 18px; }
html body .ms-form .elementor-button { background: var(--ms-amber) !important; color: var(--ms-amber-ink) !important; border-radius: var(--ms-radius-sm) !important; font: 700 1rem/1.2 var(--ms-font) !important; min-height: 48px; }
html body .ms-form .elementor-button:hover { background: #ffd65a !important; }
html body .ms-form .elementor-message { font-size: .95rem; }
html body .ms-form .elementor-message-success { color: #6fdc85; }
html body .ms-form .elementor-message-danger, html body .ms-form .elementor-error .elementor-field-textual { color: var(--ms-red-text); }
html body .ms-form .elementor-mark-required .elementor-field-label::after { color: var(--ms-red-text); }

/* Press */
html body .ms-press { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; list-style: none; margin: 0; padding: 0; }
html body .ms-press article { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 26px; background: var(--ms-surface); border: 1px solid var(--ms-border); border-radius: var(--ms-radius); }
html body .ms-press article:hover { border-color: #3a404c; }
html body .ms-press__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; color: var(--ms-muted); font-size: .85rem; }
html body .ms-press__kind { padding: 3px 9px; border-radius: 999px; background: rgba(255, 193, 7, .12); color: var(--ms-amber); font-weight: 700; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
html body .ms-press h2 { margin: 0; color: var(--ms-heading); font: 700 1.25rem/1.3 var(--ms-font); text-wrap: balance; }
html body .ms-press h2 a { color: inherit; text-decoration: none; }
html body .ms-press h2 a:hover { color: var(--ms-amber); }
html body .ms-press p { margin: 0; color: var(--ms-muted); line-height: 1.6; }
html body .ms-press__author { color: var(--ms-text) !important; font-size: .92rem; }
html body .ms-press__more { margin-top: auto; padding-top: 6px; font-weight: 600; text-decoration: none; }
html body .ms-press__more::after { content: ' →'; }
@media (max-width: 767px) { html body .ms-press { grid-template-columns: 1fr; } }
html body .ms-presskit { display: grid; gap: 12px; justify-items: start; }
html body .ms-presskit p { margin: 0; color: var(--ms-muted); }

/* Footer */
html body .elementor-location-footer, html body .ms-footer-wrap { background: #0c0d10; border-top: 1px solid var(--ms-border); }
html body .ms-footer-tag, html body .ms-footer-tag p { color: var(--ms-muted); font-size: .95rem; line-height: 1.6; max-width: 46ch; }
html body .ms-foot-h .elementor-heading-title { color: var(--ms-heading); font: 700 .8rem/1.3 var(--ms-font); letter-spacing: .14em; text-transform: uppercase; }
html body .ms-footlinks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
html body .ms-footlinks a { color: var(--ms-text); text-decoration: none; }
html body .ms-footlinks a:hover { color: var(--ms-amber); }
html body .ms-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; color: #7c8494; font-size: .85rem; }
html body .ms-legal p { margin: 0; }
html body .ms-legal a { color: #a8afbc; text-decoration: none; }
html body .ms-legal a:hover { color: var(--ms-amber); }
html body .ms-footer .ms-contact a { font-size: 1rem; }
html body .ms-footer .ms-lang { margin-top: 4px; }

/* Utilities */
html body .ms-divider { height: 1px; background: var(--ms-border); }
html body .ms-center { text-align: center; }
html body .ms-center .elementor-button-wrapper { text-align: center; }
html body .e-con.ms-section > .e-con-inner { gap: var(--ms-stack, 40px); }

/* ── Lightbox for the platform screenshots ─────────────────────────────── */
html body .ms-shot img { cursor: zoom-in; transition: filter .15s, transform .15s; }
html body .ms-shot img:hover { filter: brightness(1.06); }
.ms-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; }
.ms-lightbox[hidden] { display: none; }
.ms-lightbox__backdrop { position: absolute; inset: 0; background: rgba(8, 9, 12, .92); }
.ms-lightbox__dialog {
	position: relative; margin: auto; display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center; gap: 8px; width: 100%; max-width: min(1680px, 94vw);
	padding: max(16px, env(safe-area-inset-top, 0)) max(16px, env(safe-area-inset-right, 0)) max(16px, env(safe-area-inset-bottom, 0)) max(16px, env(safe-area-inset-left, 0));
}
.ms-lightbox__fig { grid-column: 2; margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }
.ms-lightbox__img { max-width: 100%; max-height: 84vh; width: auto; height: auto; object-fit: contain; border-radius: 10px; border: 1px solid #2a2f39; background: #0b0c0f; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.ms-lightbox__cap { color: #e7e9ee; font: 500 .95rem/1.45 var(--ms-font, system-ui, sans-serif); text-align: center; max-width: 70ch; }
.ms-lightbox__btn {
	appearance: none; cursor: pointer; border: 1px solid rgba(255,255,255,.22); background: rgba(20,22,28,.72);
	color: #fff; border-radius: 999px; font-size: 1.9rem; line-height: 1; width: 52px; height: 52px;
	display: inline-flex; align-items: center; justify-content: center; transition: background-color .15s, border-color .15s;
}
.ms-lightbox__btn:hover { background: rgba(255,193,7,.9); color: #1a1a1a; border-color: #ffc107; }
.ms-lightbox__prev { grid-column: 1; }
.ms-lightbox__next { grid-column: 3; }
.ms-lightbox__close { position: absolute; top: 10px; right: 12px; width: 44px; height: 44px; font-size: 1.6rem; z-index: 2; }
.ms-lightbox.is-solo .ms-lightbox__prev, .ms-lightbox.is-solo .ms-lightbox__next, .ms-lightbox.is-solo .ms-lightbox__count { display: none; }
.ms-lightbox__count { text-align: center; color: #9aa2b1; font: 600 .85rem/1 var(--ms-font, system-ui, sans-serif); letter-spacing: .04em; }
@media (max-width: 700px) {
	.ms-lightbox__dialog { grid-template-columns: 1fr; }
	.ms-lightbox__fig { grid-column: 1; grid-row: 1; }
	.ms-lightbox__img { max-height: 72vh; }
	.ms-lightbox__prev, .ms-lightbox__next { position: absolute; top: 50%; transform: translateY(-50%); }
	.ms-lightbox__prev { left: 10px; } .ms-lightbox__next { right: 10px; }
}

/* ── Awards page ────────────────────────────────────────────────────────── */
html body .ms-creds--wide { columns: 2; column-gap: 40px; }
@media (max-width: 700px) { html body .ms-creds--wide { columns: 1; } }

/* ── Legal page ─────────────────────────────────────────────────────────── */
html body .ms-legal-page { max-width: 880px; }
html body .ms-legalbody p { color: var(--ms-text); line-height: 1.7; margin: 0 0 .9em; }
html body .ms-legalbody ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
html body .ms-legalbody li { color: var(--ms-text); line-height: 1.6; padding-left: 18px; position: relative; }
html body .ms-legalbody li::before { content: ''; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; border-radius: 2px; background: var(--ms-amber); }
html body .ms-legalbody a { color: var(--ms-amber); text-decoration: underline; }
