/* ==========================================================================
   FSN Elementor Widgets — shared styles
   ========================================================================== */

.fsn-section {
	max-width: 1240px;
	margin: 0 auto;
	padding: 40px 24px;
	font-family: 'Manrope', sans-serif;
	color: #1B2530;
}
.fsn-section--wide {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ---- Hero ---- */
.fsn-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(60px, 8vw, 110px) 0 clamp(30px, 4vw, 50px);
}
.fsn-hero-heading {
	font-family: 'Sora', sans-serif;
	font-weight: 800;
	font-size: clamp(34px, 4.4vw, 56px);
	line-height: 1.04;
	letter-spacing: -2px;
	margin-top: 16px;
}
.fsn-hero-subtext {
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.6;
	color: #51616D;
	margin-top: 20px;
	max-width: 600px;
}
.fsn-hero-blob1, .fsn-hero-blob2 {
	position: absolute;
	border-radius: 50%;
	filter: blur(70px);
	pointer-events: none;
	z-index: 0;
}
.fsn-hero-blob1 { width: 420px; height: 420px; background: rgba(95,176,232,.25); top: -160px; right: -120px; }
.fsn-hero-blob2 { width: 320px; height: 320px; background: rgba(46,120,172,.18); bottom: -140px; left: -100px; }
.fsn-hero-grid {
	position: absolute; inset: 0;
	background-image: linear-gradient(to right, rgba(0,0,0,.03) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,0,0,.03) 1px, transparent 1px);
	background-size: 42px 42px;
	pointer-events: none;
	mask-image: radial-gradient(ellipse 60% 50% at 50% 0%, black 40%, transparent 100%);
}

/* ---- Eyebrow / Pill ---- */
.fsn-eyebrow {
	font-family: 'JetBrains Mono', monospace;
	font-size: 12.5px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #2E78AC;
	font-weight: 500;
}
.fsn-pill {
	display: inline-block;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	letter-spacing: .5px;
	color: #2E78AC;
	background: #EAF2FA;
	border-radius: 30px;
	padding: 8px 16px;
	font-weight: 500;
}

/* ---- Buttons ---- */
.fsn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: 'Manrope', sans-serif;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	border-radius: 12px;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
	cursor: pointer;
}
.fsn-btn-sm { padding: 10px 18px; font-size: 13.5px; border-radius: 9px; }
.fsn-btn-primary {
	background: linear-gradient(135deg,#2E78AC,#5FB0E8);
	color: #fff;
	box-shadow: 0 8px 20px -6px rgba(46,120,172,.55);
}
.fsn-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -6px rgba(46,120,172,.65); }
.fsn-btn-secondary {
	background: #fff;
	color: #2E78AC;
	border: 1.5px solid #CFE1EF;
}
.fsn-btn-secondary:hover { background: #EAF2FA; transform: translateY(-2px); }
.fsn-btn-onDark {
	background: #fff;
	color: #0A3158;
}
.fsn-btn-onDark:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -8px rgba(0,0,0,.35); }

/* ---- Product Cards ---- */
.fsn-card {
	background: #fff;
	border: 1px solid #E7EEF3;
	border-radius: 18px;
	padding: 26px;
	text-decoration: none;
	color: inherit;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.fsn-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 34px -14px rgba(20,50,80,.18);
	border-color: #CFE1EF;
}
.fsn-product-card-title {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: 21px;
	letter-spacing: -.5px;
	margin-top: 16px;
	color: #1B2530;
}

.fsn-badge {
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.fsn-badge--md { width: 44px; height: 44px; }
.fsn-badge svg, .fsn-badge i { width: 22px; height: 22px; font-size: 20px; }

/* ---- Products Grid section ---- */
.fsn-arsenal-header { margin-bottom: 32px; }
.fsn-arsenal-title {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: clamp(26px, 3vw, 38px);
	line-height: 1.12;
	letter-spacing: -1.2px;
	margin-top: 12px;
}
.fsn-arsenal-subtext {
	font-size: 15px;
	line-height: 1.6;
	color: #51616D;
	margin-top: 12px;
	max-width: 560px;
}
.fsn-products-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
	gap: 22px;
}
.fsn-products-grid .fsn-card,
.fsn-products-grid .fsn-cta-slot {
	height: 100%;
}

/* ==========================================================================
   Product Detail page widgets
   ========================================================================== */

.fsn-breadcrumb {
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	color: #7A8893;
	letter-spacing: .3px;
}
.fsn-breadcrumb a { color: #2E78AC; text-decoration: none; }
.fsn-breadcrumb a:hover { text-decoration: underline; }

.fsn-section-title {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: clamp(26px, 3vw, 36px);
	line-height: 1.15;
	letter-spacing: -1px;
	margin-top: 10px;
}

/* Badge size variants (in addition to --md defined earlier) */
.fsn-badge--lg { width: 56px; height: 56px; border-radius: 16px; }
.fsn-badge--lg svg { width: 26px; height: 26px; }
.fsn-badge--xs { width: 30px; height: 30px; border-radius: 9px; }
.fsn-badge--xs svg { width: 16px; height: 16px; }

/* Accent stat variant used in the hero dashboard mockup */
.fsn-mock-stat--accent {
	background: rgba(95,176,232,.14);
	border-color: rgba(95,176,232,.3);
}
.fsn-mock-stat--accent .fsn-mock-stat-value { color: #7CC4FF; }

/* Problem framing block */
.fsn-problem { background: #F6FAFD; border: 1px solid #E7EEF3; border-radius: 18px; padding: 28px; }

/* Key capability cards */
.fsn-feature-card {
	background: #fff;
	border: 1px solid #E7EEF3;
	border-radius: 16px;
	padding: 24px;
	transition: transform .2s ease, box-shadow .2s ease;
}
.fsn-feature-card:hover { transform: translateY(-3px); box-shadow: 0 14px 28px -14px rgba(20,50,80,.16); }
.fsn-feature-title { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 17.5px; color: #1B2530; }
.fsn-feature-desc { font-size: 14px; line-height: 1.6; color: #51616D; margin-top: 8px; }

/* Numbered steps */
.fsn-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}
.fsn-step { background: #fff; border: 1px solid #E7EEF3; border-radius: 16px; padding: 24px; position: relative; }
.fsn-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 10px;
	background: linear-gradient(135deg,#5FB0E8,#2E78AC);
	color: #fff;
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: 15px;
}
.fsn-step-title { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 16.5px; margin-top: 14px; color: #1B2530; }

/* Ecosystem / related-module link pills */
.fsn-explore-item {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 1px solid #E7EEF3;
	border-radius: 14px;
	padding: 10px 16px 10px 10px;
	text-decoration: none;
	color: inherit;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.fsn-explore-item:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(20,50,80,.18); border-color: #CFE1EF; }
.fsn-explore-item-title { display: block; font-family: 'Sora', sans-serif; font-weight: 700; font-size: 14.5px; color: #1B2530; }
.fsn-explore-item-label { display: block; font-size: 12px; color: #7A8893; margin-top: 1px; }

/* CTA banner (full-width, distinct from the small CTA card used in the grid) */
.fsn-cta-banner {
	position: relative;
	overflow: hidden;
	border-radius: 22px;
	background: linear-gradient(150deg,#0A3158,#1E63A8);
	padding: clamp(30px, 4vw, 50px);
}
.fsn-cta-banner::before {
	content: "";
	position: absolute;
	top: -100px; right: -60px;
	width: 340px; height: 340px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(124,196,255,.4), transparent 65%);
	filter: blur(50px);
	pointer-events: none;
}
.fsn-cta-banner-inner {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
}
.fsn-cta-banner .fsn-cta-title {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: clamp(22px, 2.4vw, 28px);
	color: #fff;
	line-height: 1.2;
}
.fsn-cta-banner .fsn-cta-desc {
	font-size: 15px;
	line-height: 1.6;
	color: #C8DCEE;
	margin-top: 10px;
}

/* ---- Ticker mockup (Blacklight hero variant) ---- */
.fsn-mock-ticker { overflow: hidden; position: relative; height: 150px; padding: 0; }
.fsn-mock-ticker::before, .fsn-mock-ticker::after {
	content: ""; position: absolute; left: 0; right: 0; height: 24px; z-index: 2; pointer-events: none;
}
.fsn-mock-ticker::before { top: 0; background: linear-gradient(180deg, rgba(15,42,68,1), rgba(15,42,68,0)); }
.fsn-mock-ticker::after { bottom: 0; background: linear-gradient(0deg, rgba(15,42,68,1), rgba(15,42,68,0)); }
.fsn-mock-ticker-track {
	display: flex;
	flex-direction: column;
	animation: fsnTickerScroll 9s linear infinite;
}
.fsn-mock-ticker-row {
	padding: 10px 14px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	color: #B9D6EE;
	border-bottom: 1px solid rgba(255,255,255,.06);
	white-space: nowrap;
}
@keyframes fsnTickerScroll {
	from { transform: translateY(0); }
	to   { transform: translateY(-50%); }
}
.elementor-editor-active .fsn-mock-ticker-track { animation: none; }

/* ---- Endpoint grid mockup (Sunshine hero variant) ---- */
.fsn-mock-endpoints {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 8px;
}
.fsn-mock-endpoint {
	aspect-ratio: 1;
	border-radius: 5px;
	background: rgba(110,231,168,.18);
	border: 1px solid rgba(110,231,168,.35);
	position: relative;
}
.fsn-mock-endpoint.is-flagged {
	background: rgba(255,107,107,.22);
	border-color: rgba(255,107,107,.55);
	animation: fsnEndpointPulse 1.6s ease-in-out infinite;
}
@keyframes fsnEndpointPulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(255,107,107,.45); }
	50%      { box-shadow: 0 0 0 5px rgba(255,107,107,0); }
}
.elementor-editor-active .fsn-mock-endpoint.is-flagged { animation: none; }

/* ---- Radar sweep mockup (Scanner hero variant) ---- */
.fsn-mock-radar {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	max-width: 220px;
	margin: 4px auto 0;
	border-radius: 50%;
	background:
		radial-gradient(circle, transparent 0 24%, rgba(95,176,232,.12) 24.5% 25%, transparent 25.5% 49%, rgba(95,176,232,.12) 49.5% 50%, transparent 50.5% 74%, rgba(95,176,232,.12) 74.5% 75%, transparent 75.5%),
		radial-gradient(circle, rgba(95,176,232,.06), transparent 70%);
	border: 1px solid rgba(255,255,255,.08);
	overflow: hidden;
}
.fsn-mock-radar-sweep {
	position: absolute;
	inset: 0;
	background: conic-gradient(from 0deg, rgba(95,176,232,.55), transparent 28%);
	animation: fsnRadarSpin 3.4s linear infinite;
	border-radius: 50%;
}
@keyframes fsnRadarSpin {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}
.fsn-mock-radar-dot {
	position: absolute;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #6EE7A8;
	box-shadow: 0 0 8px rgba(110,231,168,.8);
	transform: translate(-50%, -50%);
}
.elementor-editor-active .fsn-mock-radar-sweep { animation: none; }

.fsn-mock-bars > div.is-flagged {
	background: linear-gradient(180deg,#FF9B9B,#E14F4F);
	box-shadow: 0 0 10px rgba(225,79,79,.5);
}

/* ---- File transfer feed (DLP hero variant) ---- */
.fsn-mock-filerow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.07);
	border-radius: 8px;
	padding: 10px 12px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11.5px;
	color: #B9D6EE;
}
.fsn-mock-filerow span:first-child {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fsn-mock-stamp {
	flex: none;
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
	color: #FF9B9B;
	background: rgba(225,79,79,.16);
	border: 1px solid rgba(225,79,79,.4);
	border-radius: 6px;
	padding: 3px 8px;
}

/* ---- Built For chip row ---- */
.fsn-chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.fsn-chip {
	font-family: 'Manrope', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #2E78AC;
	background: #EAF2FA;
	border: 1px solid #CFE1EF;
	border-radius: 30px;
	padding: 9px 18px;
}

/* ==========================================================================
   Prohori SOC extra sections
   ========================================================================== */

/* ---- Sovereign enclave boundary diagram ---- */
.fsn-boundary {
	position: relative;
	margin-top: 32px;
	border: 2px dashed #B9CFE0;
	border-radius: 20px;
	padding: 34px 24px 24px;
}
.fsn-boundary-label {
	position: absolute;
	top: -13px;
	left: 24px;
	background: #F7FAFD;
	padding: 0 10px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #7A8893;
}
.fsn-boundary-inner {
	background: #fff;
	border: 1px solid #E7EEF3;
	border-radius: 16px;
	padding: 24px;
}
.fsn-boundary-header {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
}
.fsn-boundary-header-label {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: 15px;
	color: #1B2530;
}
.fsn-boundary-badge-safe {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: .5px;
	color: #1E8A56;
	background: #E9F9EF;
	border: 1px solid #BFEBD1;
	border-radius: 20px;
	padding: 5px 12px;
}
.fsn-boundary-badge-safe-dot { width: 7px; height: 7px; border-radius: 50%; background: #1E8A56; }
.fsn-boundary-inner .fsn-chip-row { margin-top: 18px; }
.fsn-boundary-connector {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 22px;
}
.fsn-boundary-flow-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: #5FB0E8;
	animation: fsnFlowPulse 2s ease-in-out infinite;
	opacity: .3;
}
@keyframes fsnFlowPulse { 0%, 100% { opacity: .25; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
.elementor-editor-active .fsn-boundary-flow-dot { animation: none; opacity: .7; }
.fsn-boundary-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 14px;
}
.fsn-boundary-footer-text {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11.5px;
	letter-spacing: .5px;
	color: #51616D;
}

/* ---- Comparison table ---- */
.fsn-compare-wrap { overflow-x: auto; border: 1px solid #E7EEF3; border-radius: 16px; }
.fsn-compare-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 720px;
	font-family: 'Manrope', sans-serif;
}
.fsn-compare-table th, .fsn-compare-table td {
	padding: 14px 16px;
	text-align: center;
	font-size: 13.5px;
	border-bottom: 1px solid #E7EEF3;
}
.fsn-compare-table thead th {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: 13px;
	color: #3A4A56;
	background: #F7FAFD;
	white-space: nowrap;
}
.fsn-compare-th--fsn, .fsn-compare-td--fsn {
	background: #EAF2FA !important;
}
.fsn-compare-th--fsn { color: #2E78AC !important; }
.fsn-compare-row-label {
	text-align: left !important;
	font-weight: 600;
	color: #3A4A56;
	white-space: nowrap;
}
.fsn-compare-pill {
	display: inline-block;
	font-size: 12.5px;
	font-weight: 600;
	white-space: nowrap;
}
.fsn-compare-pill--yes { color: #1E8A56; }
.fsn-compare-pill--partial { color: #B8860B; }
.fsn-compare-pill--no { color: #B04A4A; }

/* ---- Explore more products (larger cards) ---- */
.fsn-explore-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 18px;
}
.fsn-explore-card {
	display: block;
	background: #fff;
	border: 1px solid #E7EEF3;
	border-radius: 16px;
	padding: 22px;
	text-decoration: none;
	color: inherit;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.fsn-explore-card:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -14px rgba(20,50,80,.18); border-color: #CFE1EF; }
.fsn-explore-card-desc { font-size: 13.5px; line-height: 1.55; color: #51616D; margin-top: 6px; }
.fsn-explore-card-link { display: inline-block; margin-top: 16px; font-size: 13.5px; font-weight: 700; color: #2E78AC; }
.fsn-badge--sm { width: 38px; height: 38px; border-radius: 11px; }
.fsn-badge--sm svg { width: 19px; height: 19px; }

/* ---- Flagship title ---- */
.fsn-flagship-title {
	font-family: 'Sora', sans-serif;
	font-weight: 700;
	font-size: clamp(28px, 3.2vw, 40px);
	line-height: 1.1;
	letter-spacing: -1.2px;
	margin-top: 16px;
}

/* ---- Dashboard mockup ---- */
.fsn-mock {
	background: #0F2A44;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 30px 60px -20px rgba(10,40,70,.45);
	transform: perspective(1500px) rotateY(-4deg) rotateX(2deg);
}
.fsn-mock-topbar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 14px 18px;
	background: #0A1F35;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.fsn-mock-dot { width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.25); }
.fsn-mock-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10.5px;
	letter-spacing: 1px;
	color: rgba(255,255,255,.55);
	margin-left: 8px;
}
.fsn-mock-live {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 10.5px;
	color: #6EE7A8;
	letter-spacing: 1px;
}
.fsn-mock-live-dot { width: 7px; height: 7px; border-radius: 50%; background: #6EE7A8; box-shadow: 0 0 8px #6EE7A8; }
.fsn-mock-body { padding: 20px; }
.fsn-mock-stat {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.07);
	border-radius: 10px;
	padding: 10px;
	text-align: center;
}
.fsn-mock-stat-label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 9.5px;
	letter-spacing: 1px;
	color: rgba(255,255,255,.4);
}
.fsn-mock-stat-value { color: #fff; font-weight: 700; font-family: 'Sora', sans-serif; margin-top: 4px; }
.fsn-mock-panel {
	margin-top: 16px;
	background: rgba(255,255,255,.03);
	border-radius: 12px;
	padding: 14px;
}
.fsn-mock-bars { display: flex; align-items: flex-end; gap: 6px; }
.fsn-mock-bars > div {
	flex: 1;
	background: linear-gradient(180deg,#5FB0E8,#2E78AC);
	border-radius: 3px;
	animation: fsnBarGrow .9s ease both;
}
@keyframes fsnBarGrow { from { transform: scaleY(0); transform-origin: bottom; } to { transform: scaleY(1); transform-origin: bottom; } }
.fsn-mock-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.fsn-mock-tag {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10.5px;
	color: #B9D6EE;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 20px;
	padding: 5px 11px;
}

/* ---- Reveal-in animation ----
   Pure CSS, no JS trigger required, so it always renders correctly
   in the Elementor editor preview as well as the live site. */
[data-reveal] {
	animation: fsnFadeInUp .7s ease both;
}
@keyframes fsnFadeInUp {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: translateY(0); }
}
/* Never leave content invisible inside the Elementor editor, regardless of animation state */
.elementor-editor-active [data-reveal] {
	animation: none;
	opacity: 1;
	transform: none;
}

/* ---- Footer (kept for reference / optional footer widget reuse) ---- */
.fsn-footer { background: #071B2E; color: #C8DCEE; padding: 60px 24px 24px; }
.fsn-footer-main { max-width: 1240px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 60px; justify-content: space-between; }
.fsn-footer-logo { height: 34px; }
.fsn-footer-tagline { font-size: 14px; line-height: 1.6; color: #96B4CC; margin-top: 16px; max-width: 380px; }
.fsn-footer-badge-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.fsn-footer-badge { font-family:'JetBrains Mono',monospace; font-size: 10.5px; letter-spacing: 1px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 20px; padding: 6px 12px; }
.fsn-footer-cols { display: flex; gap: 60px; flex-wrap: wrap; }
.fsn-footer-heading { font-family:'Sora',sans-serif; font-weight: 700; color: #fff; font-size: 14px; margin-bottom: 14px; }
.fsn-footer-links { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.fsn-footer-links a { color: #B9D6EE; text-decoration: none; }
.fsn-footer-links a:hover { color: #fff; }
.fsn-footer-offices { display: flex; flex-direction: column; gap: 14px; font-size: 13.5px; line-height: 1.6; color: #96B4CC; }
.fsn-footer-bottom { border-top: 1px solid rgba(255,255,255,.08); margin-top: 46px; padding-top: 20px; }
.fsn-footer-bottom-inner { max-width: 1240px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: 12.5px; color: #6E8CA4; }

@media (max-width: 640px) {
	.fsn-mock { transform: none; }
}
