/* ============ BASE / GLOBAL ============ */
:root {
  --color-navy: #081527;
  --color-navy-alt: #0E2138;
  --color-navy-deep: #040D1C;
  --color-blue: #2F80ED;
  --color-green: #22A06B;
  --color-panel: #12294A;
  --color-ink: #FFFFFF;
  --color-silver: #C7D0DF;
  --color-silver-light: #F6F9FB;
  --font-heading: 'Archivo', ui-sans-serif, system-ui, sans-serif;
  --font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-display: 'Space Grotesk', 'Archivo', ui-sans-serif, system-ui, sans-serif;
  --radius: 0.5rem;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  background: var(--color-navy);
  color: var(--color-ink);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}

::selection {
  background: #2F80ED;
  color: #081527;
}

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #081527; }
::-webkit-scrollbar-thumb { background: #12294A; }
::-webkit-scrollbar-thumb:hover { background: #1b3a63; }

.micro {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(199, 208, 223, 0.7);
}

.blueprint-grid {
  background-image:
    linear-gradient(to right, rgba(198, 207, 216, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(198, 207, 216, 0.06) 1px, transparent 1px);
  background-size: 48px 48px;
}

.text-silver-grad {
  background: linear-gradient(135deg, #FFFFFF 0%, #C7D0DF 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.scan-line { position: relative; overflow: hidden; }
.scan-line::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  height: 90px;
  top: -90px;
  background: linear-gradient(to bottom, transparent, rgba(47, 128, 237, 0.08), transparent);
  animation: scanMove 5.5s linear infinite;
  pointer-events: none;
  z-index: 1;
}
@keyframes scanMove {
  0% { top: -90px; }
  100% { top: 100%; }
}

.min-h-screen { min-height: 100vh; }
.bg-navy { background-color: var(--color-navy); }

/* Scroll-triggered reveal (below-the-fold sections, via IntersectionObserver) */
.spc-scroll-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.spc-scroll-reveal.spc-scroll-reveal-in {
    opacity: 1;
    transform: translateY(0);
}

/* ============ HEADER ============ */
.site-header {
  position: fixed;
  left: 50%;
  top: 24px;
  z-index: 50;
  display: flex;
  width: calc(100% - 2rem);
  max-width: 900px;
  transform: translateX(-50%);
  justify-content: center;
}
@media (min-width: 1024px) {
  .site-header { top: 34px; }
}

.site-nav {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(14,27,48,0.55);
  border: 1px solid rgba(90,110,140,0.28);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  transition: box-shadow 0.3s ease;
}
@media (min-width: 1024px) {
  .site-nav { gap: 40px; padding: 14px 26px; }
}
.site-nav.header-scrolled {
  box-shadow: 0 8px 30px -12px rgba(0,0,0,0.6);
}

.site-logo { display: flex; align-items: center; }
.site-logo-img { height: 22px; width: auto; }
@media (min-width: 1024px) {
  .site-logo-img { height: 24px; }
}

.nav-links-desktop { display: none; align-items: center; gap: 30px; }
@media (min-width: 1024px) { .nav-links-desktop { display: flex; } }

.nav-link {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  color: #D6DEE9;
  transition: color 0.2s ease;
}
.nav-link:hover { color: #FFFFFF; }

.nav-cta {
  margin-left: auto;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
  background: #2F80ED;
  padding: 10px 20px;
  border-radius: 999px;
  transition: background 0.2s ease;
}
.nav-cta:hover { background: #1E63C7; }

.nav-toggle {
  display: flex;
  height: 36px;
  width: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #FFFFFF;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}
.nav-toggle:hover { background: rgba(255,255,255,0.1); }
.nav-toggle svg { height: 20px; width: 20px; }
@media (min-width: 1024px) { .nav-toggle { display: none; } }

.nav-mobile-menu {
  position: absolute;
  left: 0; right: 0;
  top: calc(100% + 8px);
  border-radius: 24px;
  padding: 8px;
  background: rgba(14,27,48,0.95);
  border: 1px solid rgba(90,110,140,0.28);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
@media (min-width: 1024px) { .nav-mobile-menu { display: none !important; } }

.nav-mobile-links { display: flex; flex-direction: column; }
.nav-mobile-link {
  border-radius: 16px;
  padding: 14px 16px;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  color: #D6DEE9;
  transition: background 0.2s ease;
}
.nav-mobile-link:hover { background: rgba(255,255,255,0.05); }

/* ==========================================================================
   Hero
   ========================================================================== */

.spc-hero {
    position: relative;
    overflow: hidden;
    background: #050B16;
}

.spc-hero-glow {
    pointer-events: none;
    position: absolute;
    inset: 0;
}

.spc-hero-glow-1 {
    background: radial-gradient(42% 46% at 58% 30%, rgba(47,128,237,0.55) 0%, rgba(30,79,160,0.22) 45%, rgba(47,128,237,0) 100%);
}

.spc-hero-glow-2 {
    background: radial-gradient(48% 50% at 18% 88%, rgba(58,92,204,0.40) 0%, rgba(32,48,106,0.16) 55%, rgba(32,48,106,0) 100%);
}

.spc-hero-glow-3 {
    background: radial-gradient(34% 38% at 84% 70%, rgba(74,168,255,0.22) 0%, rgba(74,168,255,0) 100%);
}

.spc-hero-inner {
    position: relative;
    z-index: 2;
    margin: 0 auto;
    max-width: 1000px;
    padding-left: 24px;
    padding-right: 24px;
    padding-top: clamp(120px, 14vh, 160px);
    padding-bottom: clamp(60px, 8vh, 100px);
    text-align: center;
}

.spc-hero-title {
    font-family: var(--font-heading);
    font-weight: 800;
    color: #FFFFFF;
    font-size: clamp(38px, 6vw, 68px);
    line-height: 1.05;
    letter-spacing: -1px;
}

.spc-hero-accent {
    color: #2F80ED;
}

.spc-hero-subtitle {
    margin: 28px auto 0;
    max-width: 640px;
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.6;
    color: #9FB0C4;
}

.spc-hero-cta {
    display: inline-block;
    margin-top: 40px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    color: #FFFFFF;
    background: #2F80ED;
    padding: 18px 40px;
    border-radius: 999px;
    box-shadow: 0 8px 30px rgba(47,128,237,0.35);
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.spc-hero-cta:hover {
    background: #1E63C7;
    transform: translateY(-2px);
    color: #FFFFFF;
}

/* Reveal-on-load animation (replaces Framer Motion initial/animate) */
.spc-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.spc-reveal.spc-reveal-in {
    opacity: 1;
    transform: translateY(0);
}

/* ==========================================================================
   Trust Strip
   ========================================================================== */

.spc-trust-strip {
    border-top: 1px solid rgba(199, 208, 223, 0.1);
    border-bottom: 1px solid rgba(199, 208, 223, 0.1);
    background: #0E2138; /* navy-alt */
}

.spc-trust-strip-inner {
    margin: 0 auto;
    max-width: 1280px; /* max-w-7xl */
    padding-left: 20px;
    padding-right: 20px;
}

@media (min-width: 640px) {
    .spc-trust-strip-inner {
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (min-width: 768px) {
    .spc-trust-strip-inner {
        padding-left: 32px;
        padding-right: 32px;
    }
}

.spc-trust-strip-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    column-gap: 32px;
    row-gap: 12px;
    padding-top: 20px;
    padding-bottom: 20px;
}

@media (min-width: 768px) {
    .spc-trust-strip-row {
        column-gap: 48px;
        padding-top: 24px;
        padding-bottom: 24px;
    }
}

.spc-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.spc-trust-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: #2F80ED; /* text-blue */
}

.spc-trust-icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
}

.spc-trust-label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    color: #FFFFFF;
}

/* ==========================================================================
   Problem
   ========================================================================== */

.spc-problem {
    background: #FFFFFF;
    padding-top: 112px;
    padding-bottom: 112px;
}

@media (min-width: 768px) {
    .spc-problem {
        padding-top: 144px;
        padding-bottom: 144px;
    }
}

.spc-problem-inner {
    margin: 0 auto;
    max-width: 1280px;
    padding-left: 20px;
    padding-right: 20px;
}

@media (min-width: 640px) {
    .spc-problem-inner { padding-left: 24px; padding-right: 24px; }
}

@media (min-width: 768px) {
    .spc-problem-inner { padding-left: 32px; padding-right: 32px; }
}

.spc-problem-title {
    margin-top: 16px;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: clamp(34px, 5vw, 54px);
    line-height: 1.1;
    letter-spacing: -0.5px;
    color: #0E2138;
}

.spc-problem-title-dot {
    color: var(--color-blue);
}

.spc-problem-grid {
    margin-top: 56px;
    display: grid;
    gap: 32px;
}

@media (min-width: 1024px) {
    .spc-problem-grid {
        grid-template-columns: 1fr 1fr;
        align-items: start;
        gap: 64px;
    }
}

/* Illustration: shows first on mobile, second (right side) on desktop */
.spc-problem-illustration-wrap {
    order: -1;
}

.spc-problem-cards {
    order: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

@media (min-width: 1024px) {
    .spc-problem-illustration-wrap {
        order: 2;
    }

    .spc-problem-cards {
        order: 1;
    }
}

.spc-problem-illustration {
    position: relative;
    display: flex;
    min-height: 440px;
    width: 100%;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 22px;
    background: linear-gradient(135deg, #EEF3FA 0%, #E2EAF5 100%);
}

.spc-problem-rings {
    position: absolute;
    width: 380px;
    height: 380px;
}

.spc-problem-house {
    position: relative;
    z-index: 10;
    width: 200px;
    height: 200px;
}

.spc-problem-pin {
    position: absolute;
    left: 58%;
    top: 30%;
}

.spc-problem-tag {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 8px;
    border-radius: 8px;
    background: #FFFFFF;
    padding: 8px 12px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
}

.spc-problem-tag-1 {
    left: 8%;
    top: 38%;
}

.spc-problem-tag-2 {
    right: 6%;
    bottom: 20%;
}

.spc-problem-tag-dot {
    display: flex;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--color-green);
    flex-shrink: 0;
}

.spc-problem-tag-label {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    color: #0E2138;
    white-space: nowrap;
}

/* Cards */
.spc-problem-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    border-radius: 18px;
    background: #FFFFFF;
    padding: 28px;
    border: 1px solid #E4E8EF;
    box-shadow: 0 4px 16px -8px rgba(14,33,56,0.08);
    transition: transform 0.3s ease, border-color 0.2s ease;
}

.spc-problem-card:hover {
    transform: translateY(-3px);
    border-color: var(--color-blue);
}

.spc-problem-card-featured {
    border: 2px solid var(--color-blue);
    box-shadow: 0 16px 40px -12px rgba(47,128,237,0.18);
}

.spc-problem-card-featured:hover {
    border-color: var(--color-blue);
}

.spc-problem-card-icon {
    display: flex;
    height: 52px;
    width: 52px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(47,128,237,0.10);
}

.spc-problem-card-icon svg {
    height: 24px;
    width: 24px;
    stroke: #2F80ED;
    stroke-width: 1.5;
}

.spc-problem-card-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    color: #0E2138;
}

.spc-problem-card-body {
    margin-top: 8px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
}

/* ==========================================================================
   What We Do
   ========================================================================== */

.spc-whatwedo {
	position: relative;
	background-color: var(--color-navy);
	padding: 7rem 0;
}

@media (min-width: 768px) {
	.spc-whatwedo {
		padding: 9rem 0;
	}
}

.spc-whatwedo-inner {
	margin: 0 auto;
	max-width: 1280px;
	padding-left: 20px;
	padding-right: 20px;
}

@media (min-width: 640px) {
	.spc-whatwedo-inner {
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (min-width: 768px) {
	.spc-whatwedo-inner {
		padding-left: 32px;
		padding-right: 32px;
	}
}

.spc-whatwedo-heading {
	margin-top: 1.25rem;
	max-width: 48rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--color-ink);
}

@media (min-width: 768px) {
	.spc-whatwedo-heading { font-size: 3rem; }
}

@media (min-width: 1024px) {
	.spc-whatwedo-heading { font-size: 3.75rem; }
}

.spc-whatwedo-grid {
	margin-top: 3.5rem;
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.spc-whatwedo-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.spc-whatwedo-card {
	height: 100%;
	border-radius: 1rem;
	border: 1px solid rgba(199, 208, 223, 0.15);
	background-color: rgba(18, 41, 74, 0.3);
	padding: 2rem;
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

.spc-whatwedo-card:hover {
	border-color: rgba(199, 208, 223, 0.3);
	background-color: rgba(18, 41, 74, 0.5);
}

@media (min-width: 1024px) {
	.spc-whatwedo-card--offset {
		margin-top: 3rem;
	}
}

.spc-whatwedo-card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.spc-whatwedo-num {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1rem;
	color: rgba(199, 208, 223, 0.5);
}

.spc-whatwedo-rule {
	height: 1px;
	width: 4rem;
	background-color: rgba(199, 208, 223, 0.2);
}

.spc-whatwedo-card-title {
	margin-top: 1.75rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--color-ink);
}

.spc-whatwedo-card-body {
	margin-top: 0.875rem;
	font-family: var(--font-body);
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--color-silver);
}

/* ==========================================================================
   Photo Feature
   ========================================================================== */

.spc-photofeature {
	background: #FFFFFF;
	padding: 7rem 0;
}

@media (min-width: 768px) {
	.spc-photofeature {
		padding: 9rem 0;
	}
}

.spc-photofeature-inner {
	margin: 0 auto;
	max-width: 1280px;
	padding-left: 20px;
	padding-right: 20px;
}

@media (min-width: 640px) {
	.spc-photofeature-inner { padding-left: 24px; padding-right: 24px; }
}

@media (min-width: 768px) {
	.spc-photofeature-inner { padding-left: 32px; padding-right: 32px; }
}

.spc-photofeature-grid {
	display: grid;
	gap: 3rem;
}

@media (min-width: 1024px) {
	.spc-photofeature-grid {
		grid-template-columns: 1fr 1fr;
		align-items: center;
		gap: 4rem;
	}
}

.spc-photofeature-media {
	display: grid;
	gap: 1rem;
}

.spc-photofeature-media-main {
	overflow: hidden;
	border-radius: 1rem;
	box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
}

.spc-photofeature-media-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.spc-photofeature-media-small {
	overflow: hidden;
	border-radius: 1rem;
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}

.spc-photofeature-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.spc-photofeature-heading {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--color-navy-alt);
}

@media (min-width: 768px) {
	.spc-photofeature-heading { font-size: 3rem; }
}

@media (min-width: 1024px) {
	.spc-photofeature-heading { font-size: 3.75rem; }
}

.spc-photofeature-body {
	margin-top: 1.25rem;
	max-width: 32rem;
	font-family: var(--font-body);
	font-size: 1.125rem;
	line-height: 1.6;
	color: #475569;
}

.spc-photofeature-tags {
	margin-top: 2rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
}

.spc-photofeature-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border-radius: 999px;
	border: 1px solid #E2E8F0;
	background: #F8FAFC;
	padding: 0.5rem 1rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-navy-alt);
	transition: border-color 0.2s ease, color 0.2s ease;
}

.spc-photofeature-tag:hover {
	border-color: rgba(47, 128, 237, 0.4);
	color: var(--color-blue);
}

.spc-photofeature-tag-dot {
	height: 4px;
	width: 4px;
	border-radius: 999px;
	background: var(--color-blue);
	flex-shrink: 0;
}

/* ==========================================================================
   How It Works
   ========================================================================== */

.spc-howitworks {
	position: relative;
	background: #F6F8FA;
	padding: 7rem 0;
}

@media (min-width: 768px) {
	.spc-howitworks {
		padding: 9rem 0;
	}
}

.spc-howitworks-inner {
	position: relative;
	margin: 0 auto;
	max-width: 1280px;
	padding-left: 20px;
	padding-right: 20px;
}

@media (min-width: 640px) {
	.spc-howitworks-inner { padding-left: 24px; padding-right: 24px; }
}

@media (min-width: 768px) {
	.spc-howitworks-inner { padding-left: 32px; padding-right: 32px; }
}

.spc-howitworks-heading {
	margin-top: 1.25rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--color-navy-alt);
}

@media (min-width: 768px) {
	.spc-howitworks-heading { font-size: 3rem; }
}

@media (min-width: 1024px) {
	.spc-howitworks-heading { font-size: 3.75rem; }
}

.spc-howitworks-subtitle {
	margin-top: 1rem;
	max-width: 36rem;
	font-family: var(--font-body);
	font-size: 1.125rem;
	color: #475569;
}

.spc-howitworks-grid {
	margin-top: 4rem;
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 640px) {
	.spc-howitworks-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.spc-howitworks-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.spc-howitworks-card {
	position: relative;
	height: 100%;
	border-radius: 1rem;
	border: 1px solid #E2E8F0;
	background: #FFFFFF;
	padding: 1.75rem;
	box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.spc-howitworks-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}

@media (min-width: 1024px) {
	.spc-howitworks-card--offset {
		margin-top: 3rem;
	}
}

.spc-howitworks-num {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 2.25rem;
	color: rgba(47, 128, 237, 0.3);
	transition: color 0.3s ease;
}

.spc-howitworks-card:hover .spc-howitworks-num {
	color: rgba(47, 128, 237, 0.6);
}

.spc-howitworks-card-title {
	margin-top: 1.25rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--color-navy-alt);
}

.spc-howitworks-card-body {
	margin-top: 0.75rem;
	font-family: var(--font-body);
	font-size: 1.125rem;
	line-height: 1.6;
	color: #475569;
}

/* ===== Central Standard ===== */
.spc-central-standard {
	position: relative;
	background-color: var(--color-navy-alt);
	padding-top: 7rem;
	padding-bottom: 7rem;
}
@media (min-width: 768px) {
	.spc-central-standard {
		padding-top: 9rem;
		padding-bottom: 9rem;
	}
}

.spc-central-standard-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 80rem;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}
@media (min-width: 640px) {
	.spc-central-standard-inner {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}
@media (min-width: 768px) {
	.spc-central-standard-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.spc-central-standard-heading {
	margin-top: 1.25rem;
	max-width: 48rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--color-ink);
}
@media (min-width: 768px) {
	.spc-central-standard-heading { font-size: 3rem; }
}
@media (min-width: 1024px) {
	.spc-central-standard-heading { font-size: 3.75rem; }
}

.spc-central-standard-subhead {
	margin-top: 1rem;
	max-width: 36rem;
	font-family: var(--font-body);
	font-size: 1.125rem;
	color: var(--color-silver);
}

.spc-central-standard-grid {
	margin-top: 3.5rem;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}
@media (min-width: 640px) {
	.spc-central-standard-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.spc-central-standard-grid { grid-template-columns: repeat(3, 1fr); }
}

.spc-central-card-inner {
	height: 100%;
	border-radius: 1rem;
	border: 1px solid rgba(199, 208, 223, 0.15);
	background-color: rgba(18, 41, 74, 0.2);
	padding: 1.75rem;
	transition: background-color 0.3s ease;
}
.spc-central-card:hover .spc-central-card-inner {
	background-color: rgba(18, 41, 74, 0.4);
}

.spc-central-card-top {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.spc-central-card-icon {
	display: flex;
	height: 2rem;
	width: 2rem;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	border-radius: 0.5rem;
	border: 1px solid rgba(34, 160, 107, 0.3);
	background-color: rgba(34, 160, 107, 0.1);
	color: var(--color-green);
}
.spc-central-card-icon svg {
	width: 1rem;
	height: 1rem;
	stroke: currentColor;
}

.spc-central-card-title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--color-ink);
}

.spc-central-card-body {
	margin-top: 1rem;
	font-family: var(--font-body);
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--color-silver);
}

/* ==========================================================================
   Industries
   ========================================================================== */

.spc-industries {
	background: #FFFFFF;
	padding: 7rem 0;
}

@media (min-width: 768px) {
	.spc-industries {
		padding: 9rem 0;
	}
}

.spc-industries-inner {
	margin: 0 auto;
	max-width: 1280px;
	padding-left: 20px;
	padding-right: 20px;
}

@media (min-width: 640px) {
	.spc-industries-inner { padding-left: 24px; padding-right: 24px; }
}

@media (min-width: 768px) {
	.spc-industries-inner { padding-left: 32px; padding-right: 32px; }
}

.spc-industries-heading {
	margin-top: 1.25rem;
	max-width: 48rem;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--color-navy-alt);
}

@media (min-width: 768px) {
	.spc-industries-heading { font-size: 3rem; }
}

@media (min-width: 1024px) {
	.spc-industries-heading { font-size: 3.75rem; }
}

.spc-industries-grid {
	margin-top: 3.5rem;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.spc-industries-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.spc-industries-grid { grid-template-columns: repeat(5, 1fr); }
}

.spc-industries-card {
	position: relative;
	display: flex;
	height: 100%;
	min-height: 130px;
	flex-direction: column;
	justify-content: space-between;
	border-radius: 1rem;
	padding: 1.5rem;
	background: var(--color-navy);
	border: 1px solid rgba(199, 208, 223, 0.1);
	box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
	transition: box-shadow 0.3s ease, opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.spc-industries-card:hover {
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}

.spc-industries-card--active {
	border: 2px solid var(--color-blue);
}

.spc-industries-card-title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--color-ink);
}

.spc-industries-badge {
	display: inline-block;
	width: fit-content;
	border-radius: 999px;
	padding: 0.25rem 0.75rem;
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	background: rgba(199, 208, 223, 0.1);
	color: var(--color-silver);
}

.spc-industries-badge--active {
	background: var(--color-blue);
	color: #FFFFFF;
}

.spc-industries-ping {
	position: absolute;
	top: 1rem;
	right: 1rem;
	display: flex;
	height: 0.625rem;
	width: 0.625rem;
}

.spc-industries-ping-outer {
	position: absolute;
	display: inline-flex;
	height: 100%;
	width: 100%;
	border-radius: 999px;
	background: var(--color-blue);
	opacity: 0.75;
	animation: spc-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.spc-industries-ping-dot {
	position: relative;
	display: inline-flex;
	height: 0.625rem;
	width: 0.625rem;
	border-radius: 999px;
	background: var(--color-blue);
}

@keyframes spc-ping {
	75%, 100% {
		transform: scale(2.2);
		opacity: 0;
	}
}

/* ==========================================================================
   FAQ
   ========================================================================== */

.spc-faq {
    background-color: #F6F8FA;
    padding-top: 7rem;
    padding-bottom: 7rem;
}

@media (min-width: 768px) {
    .spc-faq {
        padding-top: 9rem;
        padding-bottom: 9rem;
    }
}

.spc-faq-container {
    max-width: 48rem; /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

@media (min-width: 640px) {
    .spc-faq-container {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 768px) {
    .spc-faq-container {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

.spc-faq-heading {
    margin-top: 1.25rem;
    font-family: var(--font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--color-navy-alt);
}

@media (min-width: 768px) {
    .spc-faq-heading {
        font-size: 3rem;
    }
}

@media (min-width: 1024px) {
    .spc-faq-heading {
        font-size: 3.75rem;
    }
}

.spc-faq-subheading {
    margin-top: 1rem;
    font-family: var(--font-body);
    font-size: 1.125rem;
    color: #475569; /* slate-600 */
}

/* Accordion */
.spc-accordion {
    margin-top: 2.5rem;
}

.spc-accordion-item {
    border-bottom: 1px solid #e2e8f0; /* slate-200 */
}

.spc-accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-navy-alt);
}

.spc-accordion-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: #94a3b8; /* slate-400 */
    transition: transform 0.3s ease;
}

.spc-accordion-icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
}

.spc-accordion-trigger[aria-expanded="true"] .spc-accordion-icon {
    transform: rotate(180deg);
}

.spc-accordion-panel {
    display: grid;
    grid-template-rows: minmax(0, 0fr);
    overflow: hidden;
    transition: grid-template-rows 0.3s ease;
}

.spc-accordion-item.is-open .spc-accordion-panel {
    grid-template-rows: minmax(0, 1fr);
}

.spc-accordion-panel-inner {
    min-height: 0;
    overflow: hidden;
    font-family: var(--font-body);
    font-size: 1.125rem;
    line-height: 1.7;
    color: #475569; /* slate-600 */
    padding-bottom: 1.5rem;
}

/* ==========================================================================
   Contact
   ========================================================================== */

.spc-contact {
    position: relative;
    background-color: var(--color-navy);
    padding-top: 7rem;
    padding-bottom: 7rem;
    overflow: hidden;
}

@media (min-width: 768px) {
    .spc-contact {
        padding-top: 9rem;
        padding-bottom: 9rem;
    }
}

.spc-contact-grid-bg {
    position: absolute;
    inset: 0;
    opacity: 0.2;
    background-image:
        linear-gradient(rgba(199, 208, 223, 0.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(199, 208, 223, 0.15) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
}

.spc-contact-glow {
    position: absolute;
    left: 50%;
    top: 0;
    height: 400px;
    width: 700px;
    transform: translateX(-50%);
    border-radius: 9999px;
    background-color: rgba(47, 128, 237, 0.05);
    filter: blur(130px);
    pointer-events: none;
}

.spc-contact-container {
    position: relative;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

@media (min-width: 640px) {
    .spc-contact-container { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (min-width: 768px) {
    .spc-contact-container { padding-left: 2rem; padding-right: 2rem; }
}

.spc-contact-heading {
    margin-top: 1.25rem;
    font-family: var(--font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--color-ink);
}

@media (min-width: 768px) {
    .spc-contact-heading { font-size: 3rem; }
}
@media (min-width: 1024px) {
    .spc-contact-heading { font-size: 3.75rem; }
}

.spc-contact-subheading {
    margin-top: 1rem;
    max-width: 32rem;
    font-family: var(--font-body);
    font-size: 1.125rem;
    color: var(--color-silver);
}

/* Success panel */
.spc-contact-success {
    margin-top: 3rem;
    border-radius: 1rem;
    border: 1px solid rgba(47, 128, 237, 0.3);
    background-color: rgba(18, 41, 74, 0.5);
    padding: 2.5rem;
    text-align: center;
}

.spc-contact-success-icon {
    margin: 0 auto;
    display: flex;
    height: 3rem;
    width: 3rem;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    border: 1px solid rgba(47, 128, 237, 0.5);
}

.spc-contact-success-icon i {
    width: 24px;
    height: 24px;
    color: var(--color-blue);
}

.spc-contact-success-icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
}

.spc-contact-success-title {
    margin-top: 1.25rem;
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-ink);
}

.spc-contact-success-text {
    margin-top: 0.5rem;
    font-family: var(--font-body);
    font-size: 0.875rem;
    color: var(--color-silver);
}

/* Form wrap */
.spc-contact-form-wrap {
    margin-top: 3rem;
}

.spc-contact-disclaimer {
    margin-top: 1rem;
    max-width: 28rem;
    font-family: var(--font-body);
    font-size: 0.75rem;
    line-height: 1.6;
    color: rgba(199, 208, 223, 0.6);
}

.spc-contact-disclaimer a {
    color: var(--color-blue);
}

.spc-contact-disclaimer a:hover {
    text-decoration: underline;
}

/* ---- Contact Form 7 field styling ---- */

.spc-contact-cf7 form.wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.spc-contact-cf7 .spc-cf7-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .spc-contact-cf7 .spc-cf7-row {
        grid-template-columns: 1fr 1fr;
    }
}

.spc-contact-cf7 label {
    display: block;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: rgba(199, 208, 223, 0.7);
}

.spc-contact-cf7 label > span.wpcf7-form-control-wrap {
    display: block;
    margin-top: 0.5rem;
    text-transform: none;
    letter-spacing: normal;
}

.spc-contact-cf7 input[type="text"],
.spc-contact-cf7 input[type="email"],
.spc-contact-cf7 input[type="tel"],
.spc-contact-cf7 select,
.spc-contact-cf7 textarea {
    width: 100%;
    border-radius: 0.75rem;
    border: 1px solid rgba(199, 208, 223, 0.2);
    background-color: rgba(8, 21, 39, 0.5);
    padding: 0.875rem 1rem;
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    color: var(--color-ink);
    outline: none;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.spc-contact-cf7 textarea {
    resize: none;
    min-height: 9rem;
}

.spc-contact-cf7 input::placeholder,
.spc-contact-cf7 textarea::placeholder {
    color: rgba(199, 208, 223, 0.4);
}

.spc-contact-cf7 input:focus,
.spc-contact-cf7 select:focus,
.spc-contact-cf7 textarea:focus {
    border-color: var(--color-blue);
}

.spc-contact-cf7 select {
    color: var(--color-ink);
}

.spc-contact-cf7 select option {
    background-color: var(--color-navy);
    color: var(--color-ink);
}
.spc-contact-cf7 .spc-submit-wrap {
    position: relative;
    display: inline-block;
    width: fit-content;
}

@media (min-width: 640px) {
    .spc-contact-cf7 .spc-submit-wrap {
        width: auto;
    }
}

.spc-contact-cf7 input.wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border-radius: 9999px;
    border: none;
    background-color: var(--color-blue);
    padding: 1rem 3rem 1rem 2rem;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-ink);
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

@media (min-width: 640px) {
    .spc-contact-cf7 input.wpcf7-submit {
        width: auto;
    }
}

.spc-contact-cf7 .spc-submit-wrap::after {
    content: "→";
    position: absolute;
    right: 1.75rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    color: var(--color-ink);
    pointer-events: none;
    transition: transform 0.2s ease;
}

.spc-contact-cf7 .spc-submit-wrap:hover::after {
    transform: translateY(-50%) translateX(4px);
}

.spc-contact-cf7 input.wpcf7-submit:hover {
    background-color: rgba(47, 128, 237, 0.9);
    box-shadow: 0 0 30px -5px rgba(47, 128, 237, 0.5);
}

.spc-contact-cf7 input.wpcf7-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.spc-contact-cf7 form.wpcf7-form > p:last-child,
.spc-contact-cf7 .spc-submit-wrap {
    align-self: flex-start;
}

/* CF7 validation error styling */
.spc-contact-cf7 .wpcf7-not-valid-tip {
    display: block;
    margin-top: 0.375rem;
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 400;
    text-transform: none;
    letter-spacing: normal;
    color: #f87171;
}

.spc-contact-cf7 .wpcf7-response-output {
    margin-top: 1rem !important;
    border-radius: 0.5rem;
    font-family: var(--font-body);
    font-size: 0.875rem;
    text-transform: none;
    letter-spacing: normal;
    padding: 0.75rem 1rem !important;
}

.spc-contact-cf7 form.wpcf7-form p {
    margin: 0;
}