/* =============================================================
   PCMS Ghost Theme — pcms.css
   Rubik · Navy #0a1628 · Blue #2e5bff · Coral #ff6b4a
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --white:          #ffffff;
  --paper:          #fbfbfd;
  --lavender-mist:  #eef0f7;
  --warm-tan-bg:    #f5f0e6;
  --warm-tan:       #c9a87a;
  --navy-900:       #0a1628;
  --navy-950:       #050b18;
  --ink:            #02060d;
  --blue-50:        #eaf0ff;
  --blue-400:       #4d78ff;
  --blue-500:       #2e5bff;
  --blue-600:       #1e47e6;
  --coral-500:      #ff6b4a;
  --coral-600:      #e85433;
  --gray-200:       #dcdce2;
  --gray-300:       #c1c1cb;
  --gray-400:       #9696a6;
  --gray-500:       #676776;
  --gray-600:       #464654;
  --fg-primary:     var(--navy-900);
  --fg-muted:       var(--gray-500);
  --border-default: var(--gray-200);
  --border-strong:  var(--gray-300);
  --hairline:       rgba(10,22,40,.08);
  --font-sans:      'Rubik', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:      'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --shadow-sm:      0 2px 8px rgba(10,22,40,.06);
  --shadow-card:    0 16px 40px rgba(10,22,40,.12);
  --ease-out:       cubic-bezier(0.2,0.7,0.2,1);
  --container-max:  1240px;
  --container-px:   clamp(20px,4vw,48px);
  --section-y:      clamp(80px,10vw,160px);
  --mesh-hero:      radial-gradient(ellipse 70% 60% at 20% 30%,rgba(46,91,255,.35),transparent 60%),
                    radial-gradient(ellipse 60% 50% at 85% 70%,rgba(255,107,74,.2),transparent 55%),
                    linear-gradient(180deg,var(--navy-900) 0%,var(--navy-950) 100%);
  --mesh-card:      radial-gradient(ellipse 90% 80% at 10% 0%,rgba(46,91,255,.18),transparent 60%),
                    linear-gradient(135deg,var(--navy-900) 0%,var(--navy-950) 100%);
}

/* ====== RESET ====== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
  color: var(--fg-primary);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-px);
  padding-right: var(--container-px);
}
.section-label {
  font-family: var(--font-mono);
  font-size: 13px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--coral-500); margin-bottom: 20px;
}
.mono { font-family: var(--font-mono); }
.sep { opacity: .4; margin: 0 6px; }
.text-coral { color: var(--coral-500); }
.text-blue  { color: var(--blue-400); }

/* ====== HEADER ====== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  padding: 18px 40px;
  /* Default: solid dark navy — visible immediately before JS runs */
  background: rgba(10,22,40,.88);
  backdrop-filter: saturate(140%) blur(16px);
  -webkit-backdrop-filter: saturate(140%) blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.12);
  transition: background 350ms var(--ease-out), border-color 350ms var(--ease-out), backdrop-filter 350ms var(--ease-out);
}
/* JS adds is-transparent when at top of a dark-hero page */
.site-header.is-transparent {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom-color: transparent !important;
}
.site-header.is-solid-dark {
  background: rgba(10,22,40,.72);
  backdrop-filter: saturate(140%) blur(16px);
  -webkit-backdrop-filter: saturate(140%) blur(16px);
  border-bottom-color: rgba(255,255,255,.12);
}
.site-header.is-solid-light {
  background: rgba(248,247,244,.88);
  backdrop-filter: saturate(140%) blur(16px);
  border-bottom-color: rgba(10,22,40,.08);
}
.site-nav {
  display: flex;
  align-items: center;
  gap: 40px;
  max-width: var(--container-max);
  margin: 0 auto;
}
.site-logo {
  position: relative; width: 160px; height: 42px;
  display: block; flex-shrink: 0;
}
.site-logo img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain; object-position: left center;
}
.site-logo span {
  position: absolute; inset: 0;
  display: flex; align-items: center;
}
.site-logo .logo-light { opacity: 1; transition: opacity 350ms var(--ease-out); }
.site-logo .logo-dark  { opacity: 0; transition: opacity 350ms var(--ease-out); }
.is-solid-light .logo-light { opacity: 0; }
.is-solid-light .logo-dark  { opacity: 1; }
.logo-text {
  font-family: var(--font-sans); font-weight: 800; font-size: 20px;
  letter-spacing: -.02em; color: white;
  transition: color 350ms var(--ease-out);
}
.is-solid-light .logo-text { color: var(--navy-900); }
.nav-links {
  display: flex; gap: 40px; list-style: none;
  padding: 0; margin: 0;
  font-size: 15px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em;
  color: rgba(255,255,255,.88);
  transition: color 350ms var(--ease-out);
}
.is-solid-light .nav-links { color: rgba(10,22,40,.72); }
.nav-links a { cursor: pointer; transition: color 180ms; }
.nav-links a:hover { color: currentColor; opacity: 1; }
.nav-cta { margin-left: auto; }
.btn-demo {
  display: inline-block;
  background: var(--coral-500);
  color: white;
  border: 1px solid var(--coral-500);
  padding: 14px 28px;
  font-size: 13px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border-radius: 2px; cursor: pointer;
  transition: background 300ms, border-color 300ms;
  white-space: nowrap;
}
.btn-demo:hover { background: #e85a3b; border-color: #e85a3b; }

/* Coral "Talk to Us" CTA — primary brand statement */
.btn-talk {
  display: inline-block;
  background: var(--coral-500);
  color: white;
  border: 1px solid var(--coral-500);
  padding: 15px 30px;
  font-size: 14px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border-radius: 2px; cursor: pointer;
  transition: background 300ms, color 300ms, border-color 300ms;
  white-space: nowrap;
}
.btn-talk:hover { background: #e85a3b; border-color: #e85a3b; color: white; }
/* On light-header pages: stay coral (it's the brand statement) */
.is-solid-light .btn-talk {
  background: var(--coral-500); color: white; border-color: var(--coral-500);
}
.is-solid-light .btn-talk:hover { background: #e85a3b; border-color: #e85a3b; }
.nav-toggle { display: none; }

/* Mobile nav */
.nav-mobile {
  background: var(--navy-900);
  padding: 24px 40px 32px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.nav-mobile ul { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 16px; }
.nav-mobile a { color: white; font-size: 16px; font-weight: 600; }
.btn-demo-mobile {
  display: block;
  background: var(--coral-500); color: white;
  padding: 16px; text-align: center;
  font-size: 14px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border-radius: 2px;
}

@media (max-width: 900px) {
  .nav-links, .nav-cta { display: none; }
  .nav-toggle {
    display: flex; flex-direction: column; gap: 5px;
    margin-left: auto; background: none; border: none; cursor: pointer; padding: 4px;
  }
  .nav-toggle span {
    display: block; width: 24px; height: 2px;
    background: white; border-radius: 1px;
    transition: background 350ms;
  }
  .is-solid-light .nav-toggle span { background: var(--navy-900); }
}

/* ====== RESOURCES HERO ====== */
.resources-hero {
  background: var(--navy-900);
  position: relative; overflow: hidden;
  padding: 180px 0 0;
}
.resources-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: var(--mesh-hero); z-index: 0;
  pointer-events: none;
}
.resources-hero .container { position: relative; z-index: 2; }
.resources-hero-inner { padding-bottom: 0; }
.breadcrumb-row {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 500;
  text-transform: uppercase; letter-spacing: .14em;
  color: rgba(255,255,255,.55); margin-bottom: 56px;
}
.resources-hero-grid {
  display: grid; grid-template-columns: 3fr 1fr; gap: 64px; align-items: end;
  padding-bottom: 80px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  margin-bottom: 24px;
}
.resources-hero-title {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(64px,9vw,160px); line-height: .92;
  letter-spacing: -.045em; margin: 0; color: white;
  text-wrap: balance;
}
.resources-hero-sub {
  font-family: var(--font-sans); font-size: 14px; line-height: 1.6;
  color: rgba(255,255,255,.72); margin: 0;
  border-left: 1px solid rgba(255,255,255,.2); padding-left: 20px;
  align-self: end; padding-bottom: 8px;
}

/* ====== FEATURED POST ====== */
.resources-featured { background: var(--paper); padding: var(--section-y) 0; }
.featured-card {
  display: grid; grid-template-columns: 1.25fr 1fr;
  gap: 56px; padding: 48px;
  border: 1px solid var(--border-default);
  background: white; border-radius: 2px;
  transition: box-shadow 300ms var(--ease-out), border-color 300ms;
}
.featured-card:hover { box-shadow: var(--shadow-card); border-color: var(--navy-900); }
.featured-image {
  position: relative; aspect-ratio: 4/3; overflow: hidden;
  background: var(--mesh-card); border-radius: 2px;
}
.featured-image img { width: 100%; height: 100%; object-fit: cover; }
.featured-image-placeholder {
  display: flex; align-items: center; justify-content: center;
  height: 100%;
}
.featured-tag {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 14px; border-radius: 999px;
  background: rgba(46,91,255,.15); border: 1px solid rgba(46,91,255,.4);
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em; color: var(--blue-400);
}
.featured-body {
  display: flex; flex-direction: column; justify-content: center; gap: 20px;
}
.post-meta-row {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-size: 12px; color: var(--gray-500);
}
.featured-title {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(28px,3vw,44px); line-height: 1.08;
  letter-spacing: -.03em; color: var(--navy-900);
  margin: 0; text-wrap: balance;
}
.featured-excerpt {
  font-family: var(--font-sans); font-size: 17px; line-height: 1.65;
  color: var(--gray-600); margin: 0;
}
.featured-author {
  display: flex; align-items: center; gap: 16px; margin-top: 8px;
}
.author-avatar, .author-avatar-sm {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--warm-tan-bg); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-sans); font-weight: 700; font-size: 13px;
  color: var(--navy-900);
}
.author-avatar { object-fit: cover; }
.author-name { font-size: 13px; font-weight: 700; color: var(--navy-900); }
.author-role { font-size: 12px; color: var(--gray-500); }
.read-link {
  margin-left: auto; color: var(--blue-600);
  font-weight: 600; font-size: 14px;
  border-bottom: 1px solid var(--blue-600); padding-bottom: 2px;
}

/* ====== POST GRID ====== */
.resources-grid { background: white; padding: var(--section-y) 0; border-top: 1px solid var(--border-default); }
.resources-grid-header {
  display: flex; justify-content: space-between; align-items: flex-end;
  flex-wrap: wrap; gap: 32px; margin-bottom: 48px;
}
.resources-grid-title {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(36px,4vw,56px); line-height: 1;
  letter-spacing: -.04em; color: var(--navy-900); margin: 0;
}
.post-count { font-size: 14px; color: var(--gray-500); }
.post-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 28px;
}
@media (max-width: 900px) { .post-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .post-grid { grid-template-columns: 1fr; } }

/* Post card */
.post-card {
  border: 1px solid var(--border-default); background: white;
  border-radius: 2px; overflow: hidden;
  display: flex; flex-direction: column; height: 100%;
  transition: transform 240ms var(--ease-out), box-shadow 240ms var(--ease-out), border-color 240ms;
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); border-color: var(--navy-900); }
.post-card-image-link {
  display: block; aspect-ratio: 16/10; overflow: hidden;
  background: #fff; position: relative;
}
.post-card-image {
  width: 100%; height: 100%; object-fit: contain;
  padding: 20px 36px; box-sizing: border-box;
}
.post-card-image-placeholder {
  display: flex; align-items: flex-end; padding: 18px 20px;
  height: 100%; position: relative; overflow: hidden;
  background:
    repeating-linear-gradient(-45deg, transparent, transparent 18px, rgba(255,255,255,.025) 18px, rgba(255,255,255,.025) 19px),
    linear-gradient(135deg, #0d1e3a 0%, #0a1628 100%);
}
.post-card-image-placeholder::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 3px; background: #ff6b4a;
}
.post-card-image-placeholder span {
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.45);
  position: relative; z-index: 1;
}
.post-card-body { padding: 24px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.post-card-meta {
  display: flex; gap: 10px; align-items: center;
  font-family: var(--font-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: .08em; color: var(--gray-500);
  flex-wrap: wrap;
}
.post-tag {
  padding: 3px 8px; border-radius: 2px;
  background: var(--blue-50); color: var(--blue-600);
  font-weight: 700; font-size: 10px;
}
.post-read { margin-left: auto; }
.post-card-title {
  font-family: var(--font-sans); font-weight: 700; font-size: 20px;
  line-height: 1.2; letter-spacing: -.015em;
  color: var(--navy-900); text-wrap: balance;
}
.post-card-title a { display: block; }
.post-card-excerpt { font-size: 14px; line-height: 1.55; color: var(--gray-600); flex: 1; }
.post-card-author { display: flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid var(--border-default); }
.author-avatar-initials {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--lavender-mist); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; color: var(--navy-900);
}

/* Pagination */
.pagination {
  display: flex; justify-content: center; gap: 8px;
  margin-top: 64px; padding-top: 48px;
  border-top: 1px solid var(--border-default);
}
.pagination a, .pagination span {
  padding: 10px 18px; border: 1px solid var(--border-default);
  border-radius: 2px; font-size: 13px; font-weight: 600;
  color: var(--navy-900); transition: all 180ms;
}
.pagination a:hover { border-color: var(--navy-900); background: var(--navy-900); color: white; }
.pagination .current { background: var(--navy-900); color: white; border-color: var(--navy-900); }

/* ====== POST DETAIL ====== */
.post-main { padding-top: 0; }

.post-hero { background: var(--white); padding-top: 160px; }
.post-hero-inner { max-width: 940px; }
.post-breadcrumb {
  display: flex; align-items: center; gap: 10px; margin-bottom: 40px;
  font-family: var(--font-mono); font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: .12em; color: var(--gray-500);
}
.post-breadcrumb a { color: var(--gray-500); }
.post-tag-row {
  display: flex; gap: 12px; align-items: center;
  margin-bottom: 28px; flex-wrap: wrap;
}
.post-tag-chip {
  padding: 5px 12px; border-radius: 999px;
  background: var(--blue-50); border: 1px solid rgba(46,91,255,.2);
  color: var(--blue-600); font-family: var(--font-mono);
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em;
}
.post-date-text, .post-read-text { color: var(--gray-500); font-size: 12px; }
.post-title {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(40px,5.2vw,72px); line-height: .98;
  letter-spacing: -.04em; color: var(--navy-900);
  margin: 0 0 28px; text-wrap: balance;
}
.post-lede {
  font-family: var(--font-sans); font-size: 21px; line-height: 1.55;
  color: var(--gray-600); margin: 0 0 40px; max-width: 680px;
}
.post-feature-image { margin: 0 0 40px; }
.post-feature-image img { width: 100%; border-radius: 2px; }
.post-feature-image figcaption {
  margin-top: 10px; font-size: 13px; color: var(--gray-500);
  font-family: var(--font-mono); letter-spacing: .04em;
}
.post-author-row {
  display: flex; align-items: center; gap: 16px; margin-bottom: 48px;
  padding-bottom: 40px; border-bottom: 1px solid var(--border-default);
  flex-wrap: wrap;
}
.author-info .author-bio-short { font-size: 12px; color: var(--gray-500); }
.post-share { margin-left: auto; display: flex; gap: 8px; }
.btn-share {
  padding: 9px 16px; background: var(--paper);
  border: 1px solid var(--border-default); border-radius: 2px;
  font-family: var(--font-sans); font-size: 12px; font-weight: 600;
  color: var(--navy-900); cursor: pointer;
  text-transform: uppercase; letter-spacing: .1em;
  transition: all 180ms; text-decoration: none; display: inline-block;
}
.btn-share:hover { border-color: var(--navy-900); }

/* Post body layout */
.post-body-section { padding: 0 0 var(--section-y); background: var(--white); }
.post-layout {
  display: grid; grid-template-columns: 1fr 300px;
  gap: 64px; align-items: start;
}
@media (max-width: 1100px) { .post-layout { grid-template-columns: 1fr; } }

/* Ghost content styles */
.gh-content {
  font-family: var(--font-sans); font-size: 18px;
  line-height: 1.75; color: var(--gray-700);
}
.post-content.gh-content { max-width: 720px; }
.gh-content h2 {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(28px,2.8vw,38px); line-height: 1.1;
  letter-spacing: -.025em; color: var(--navy-900);
  margin: 56px 0 20px;
}
.gh-content h3 {
  font-family: var(--font-sans); font-weight: 700;
  font-size: 24px; line-height: 1.2; letter-spacing: -.015em;
  color: var(--navy-900); margin: 40px 0 14px;
}
.gh-content p { margin: 0 0 24px; }
.gh-content ul, .gh-content ol { margin: 0 0 24px; padding-left: 28px; }
.gh-content li { margin-bottom: 10px; }
.gh-content a { color: var(--blue-600); text-decoration: underline; text-underline-offset: 3px; }
.gh-content strong { color: var(--navy-900); font-weight: 700; }
.gh-content blockquote {
  margin: 36px 0; padding: 24px 28px 24px 32px;
  border-left: 3px solid var(--blue-500);
  background: var(--blue-50); border-radius: 0 2px 2px 0;
}
.gh-content blockquote p { margin: 0; font-size: 19px; color: var(--navy-900); font-weight: 500; }
.gh-content hr { border: none; border-top: 1px solid var(--border-default); margin: 48px 0; }
.gh-content code {
  font-family: var(--font-mono); font-size: 15px;
  background: var(--paper); padding: 2px 7px;
  border-radius: 2px; color: var(--navy-900);
}
.gh-content pre {
  background: var(--navy-900); color: white; padding: 28px;
  border-radius: 2px; overflow-x: auto; margin: 0 0 28px;
}
.gh-content pre code { background: none; color: white; padding: 0; }
.gh-content img { width: 100%; border-radius: 2px; margin: 8px 0 24px; }
.gh-content figure { margin: 0 0 32px; }
.gh-content figcaption {
  margin-top: 8px; font-size: 13px; color: var(--gray-500);
  font-family: var(--font-mono); letter-spacing: .04em;
}

/* Sidebar */
.post-sidebar { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 100px; }
.sidebar-card {
  padding: 24px; background: var(--paper);
  border: 1px solid var(--border-default); border-radius: 2px;
}
.author-avatar-lg, .author-avatar-initials-lg {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--warm-tan-bg);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-sans); font-weight: 700; font-size: 18px;
  color: var(--navy-900); margin-bottom: 14px;
}
.author-avatar-lg { object-fit: cover; }
.sidebar-author-name { font-weight: 700; font-size: 17px; letter-spacing: -.01em; color: var(--navy-900); margin-bottom: 4px; }
.sidebar-author-role {
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em; color: var(--coral-500); margin-bottom: 10px;
}
.sidebar-author-bio { font-size: 13px; line-height: 1.55; color: var(--gray-600); margin: 0; }
.sidebar-label {
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .14em; color: var(--gray-500); margin-bottom: 14px;
}
.related-post-link {
  display: block; font-size: 14px; line-height: 1.4;
  color: var(--navy-900); font-weight: 500; padding: 12px 0;
  border-top: 1px dashed var(--border-default); transition: color 150ms;
}
.related-post-link:first-of-type { border-top: 1px solid var(--border-default); }
.related-post-link:hover { color: var(--blue-600); }
.sidebar-cta { background: var(--navy-900); }
.sidebar-cta-title { font-weight: 700; font-size: 18px; letter-spacing: -.01em; color: white; margin-bottom: 8px; line-height: 1.2; }
.sidebar-cta p { font-size: 13px; line-height: 1.55; color: rgba(255,255,255,.72); margin: 0 0 18px; }
.sidebar-cta-btn {
  display: block; background: var(--blue-500); color: white;
  padding: 14px; text-align: center;
  font-size: 12px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  border-radius: 2px; transition: background 200ms;
}
.sidebar-cta-btn:hover { background: var(--blue-600); }

/* Post more section */
.post-more { padding: clamp(64px,7vw,96px) 0; background: var(--lavender-mist); }
.post-more-header {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px;
}
.post-more-title { font-size: 28px; font-weight: 700; letter-spacing: -.02em; color: var(--navy-900); margin: 0; }
.post-more-link { font-size: 13px; font-weight: 600; color: var(--blue-600); text-transform: uppercase; letter-spacing: .1em; }
.post-grid-3 { grid-template-columns: repeat(3,1fr); }
@media (max-width: 900px) { .post-grid-3 { grid-template-columns: 1fr; } }

/* ====== STATIC PAGE ====== */
.page-hero { background: var(--white); padding: 160px 0 80px; }
.page-hero-inner { max-width: 900px; }
.page-title {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(44px,5.6vw,88px); line-height: .96;
  letter-spacing: -.04em; color: var(--navy-900); margin: 0 0 24px;
}
.page-lede { font-size: 21px; line-height: 1.55; color: var(--gray-600); margin: 0; max-width: 680px; }
.page-feature-image { margin: 40px auto; }
.page-body { padding-bottom: var(--section-y); }
.page-body-inner { max-width: 940px; }
.page-content { max-width: 720px; font-size: 18px; line-height: 1.75; color: var(--gray-700); }

/* ====== NEWSLETTER ====== */
.newsletter-section { padding: var(--section-y) 0; background: var(--ink); }
.newsletter-inner {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center;
}
@media (max-width: 900px) { .newsletter-inner { grid-template-columns: 1fr; } }
.newsletter-title {
  font-family: var(--font-sans); font-weight: 800;
  font-size: clamp(32px,3.8vw,52px); line-height: 1.02;
  letter-spacing: -.035em; color: white; margin: 0 0 16px;
}
.newsletter-sub { font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.72); margin: 0; }
.newsletter-label {
  display: block; font-size: 14px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  color: #ff6b4a; margin-bottom: 14px;
}
.newsletter-input-row {
  display: flex; border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.04); margin-bottom: 10px;
}
.newsletter-input-row input {
  flex: 1; background: transparent; color: white;
  border: 0; outline: none; padding: 16px 20px;
  font-family: var(--font-sans); font-size: 15px;
}
.newsletter-input-row input::placeholder { color: rgba(255,255,255,.7); }
.newsletter-input-row button {
  background: var(--coral-500); color: white; border: 0;
  padding: 0 28px; font-family: var(--font-sans);
  font-size: 13px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
  transition: background 200ms;
}
.newsletter-input-row button:hover { background: #e85a3b; }
.newsletter-fine { font-size: 12px; color: rgba(255,255,255,.45); margin: 0; }
.newsletter-success { padding: 16px; background: rgba(47,125,91,.2); border: 1px solid rgba(47,125,91,.4); border-radius: 2px; color: white; margin-top: 10px; font-size: 14px; }

/* ====== FOOTER ====== */
.site-footer { background: var(--ink); padding: 64px 40px 32px; }
.footer-inner {
  max-width: var(--container-max); margin: 0 auto;
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px;
  padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.08);
}
@media (max-width: 900px) { .footer-inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .footer-inner { grid-template-columns: 1fr; } }
.footer-brand img { height: 32px; margin-bottom: 16px; }
.footer-logo-text { font-family: var(--font-sans); font-weight: 800; font-size: 22px; color: white; display: block; margin-bottom: 16px; }
.footer-desc { font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.6); max-width: 300px; margin: 0; }
.footer-col-head {
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .14em; color: white; margin-bottom: 20px;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-col a { font-size: 14px; color: rgba(255,255,255,.65); transition: color 150ms; }
.footer-col a:hover { color: white; }
.footer-bar {
  max-width: var(--container-max); margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 28px; flex-wrap: wrap; gap: 16px;
  font-size: 12px; color: rgba(255,255,255,.4);
}
.footer-legal { display: flex; gap: 20px; }
.footer-legal a { color: rgba(255,255,255,.4); transition: color 150ms; }
.footer-legal a:hover { color: rgba(255,255,255,.7); }

/* Footer social link with Lucide icon */
.footer-social {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,.65);
  transition: color 150ms;
}
.footer-social:hover { color: #fff; }
.footer-social svg { flex-shrink: 0; }

/* Footer tagline anchor */
.footer-tagline {
  max-width: var(--container-max);
  margin: 32px auto 0;
  padding: 24px 0;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.005em;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
@media (max-width: 600px) {
  .footer-tagline { font-size: 15px; padding: 20px 16px; }
}

/* ====== ERROR PAGE ====== */
.error-page { background: var(--navy-900); min-height: 70vh; display: flex; align-items: center; }
.error-inner { text-align: center; color: white; padding: 80px 0; }
.error-code { font-family: var(--font-sans); font-weight: 800; font-size: clamp(96px,16vw,200px); line-height: 1; letter-spacing: -.06em; color: var(--coral-500); margin: 0 0 16px; }
.error-msg { font-size: 20px; color: rgba(255,255,255,.72); margin: 0 0 40px; }

/* ====== GHOST CARD SIZING (required by Ghost theme validator) ====== */
.gh-content .kg-width-wide {
  position: relative;
  width: 85vw;
  min-width: 100%;
  margin: auto calc(50% - 50vw) * -1;
  transform: translateX(calc(50vw - 50%));
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
}
.gh-content .kg-width-full {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: 100vw;
}
/* Simpler approach that avoids margin issues: */
.kg-width-wide { max-width: 1040px; margin-left: auto; margin-right: auto; }
.kg-width-full { max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }

/* Ghost card image */
.kg-image-card { margin: 0 0 32px; }
.kg-image-card img { width: 100%; border-radius: 2px; }
.kg-image-card figcaption { margin-top: 8px; font-size: 13px; color: var(--gray-500); font-family: var(--font-mono); }

/* Ghost video/embed cards */
.kg-embed-card { margin: 0 0 32px; }
.kg-embed-card > * { max-width: 100%; }

/* Ghost gallery card */
.kg-gallery-container { display: flex; flex-direction: column; }
.kg-gallery-row { display: flex; gap: 8px; margin: 0 0 8px; }
.kg-gallery-image img { width: 100%; height: 100%; object-fit: cover; }

/* Ghost bookmark card */
.kg-bookmark-card { margin: 0 0 32px; }
.kg-bookmark-container {
  display: flex; border: 1px solid var(--border-default); border-radius: 2px;
  overflow: hidden; text-decoration: none; color: inherit;
}
.kg-bookmark-content { flex: 1; padding: 20px 24px; }
.kg-bookmark-title { font-weight: 700; font-size: 16px; color: var(--navy-900); margin-bottom: 6px; }
.kg-bookmark-description { font-size: 14px; color: var(--gray-600); line-height: 1.45; }
.kg-bookmark-thumbnail { width: 200px; flex-shrink: 0; }
.kg-bookmark-thumbnail img { width: 100%; height: 100%; object-fit: cover; }

/* Ghost callout card */
.kg-callout-card {
  display: flex; gap: 16px; padding: 24px 28px;
  background: var(--blue-50); border-radius: 2px; margin: 0 0 28px;
}
.kg-callout-emoji { font-size: 22px; }
.kg-callout-text { font-size: 16px; line-height: 1.6; color: var(--navy-900); }
.btn-primary {
  display: inline-block;
  background: var(--coral-500); color: white;
  border: 1px solid var(--coral-500);
  padding: 16px 32px; font-size: 13px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border-radius: 2px; cursor: pointer; text-decoration: none;
  transition: background 300ms, border-color 300ms;
}
.btn-primary:hover { background: #e85a3b; border-color: #e85a3b; }
.btn-tan {
  display: inline-block;
  background: var(--warm-tan); color: var(--navy-900);
  border: 1px solid var(--warm-tan);
  padding: 16px 32px; font-size: 13px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border-radius: 2px; cursor: pointer; text-decoration: none;
  transition: background 300ms;
}
.btn-tan:hover { background: #b8956a; }


/* ============================================================
   PAGE-SPECIFIC STYLES (extracted from Ghost page content)
   ============================================================ */

/* --- home --- */
.pcms-hero{background:#0a1628;color:#fff;padding:160px 48px 96px;position:relative;overflow:hidden;margin-top:-1px;min-height:600px;display:flex;flex-direction:column;justify-content:flex-end}
.pcms-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 90% at 20% 30%,rgba(46,91,255,.35),transparent 60%),radial-gradient(ellipse 60% 50% at 85% 70%,rgba(255,107,74,.2),transparent 55%)}
.pcms-eyebrow{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.78);margin-bottom:40px}
.pcms-h1{font-size:clamp(52px,7vw,96px);font-weight:800;line-height:.95;letter-spacing:-.04em;margin:0 0 28px;color:#fff}
.pcms-sub{font-size:19px;line-height:1.55;color:rgba(255,255,255,.75);max-width:620px;margin:0 0 44px}
.pcms-btn-blue{background:#2e5bff;color:#fff;border:0;padding:18px 36px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:2px;cursor:pointer;text-decoration:none;display:inline-block;margin-right:12px}
.pcms-btn-outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);padding:18px 36px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:2px;cursor:pointer;text-decoration:none;display:inline-block}
.pcms-section{padding:80px 48px}
.pcms-section-light{background:#fff}
.pcms-section-soft{background:#eef0f7}
.pcms-section-warm{background:#f5f0e6}
.pcms-section-dark{background:#0a1628;color:#fff}
.pcms-section-darkest{background:#02060d;color:#fff}
.pcms-label{font-size:14px;font-weight:500;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.16em;color:#ff6b4a;margin-bottom:24px;display:block}
.pcms-h2{font-size:clamp(36px,4vw,56px);font-weight:800;line-height:1;letter-spacing:-.035em;color:#0a1628;margin:0 0 24px}
.pcms-h2-light{color:#fff}
.pcms-body{font-size:18px;line-height:1.6;color:#464654;max-width:700px}
.pcms-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.pcms-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:48px}
.pcms-card{background:#fff;border:1px solid #dcdce2;border-radius:2px;padding:32px 28px}
.pcms-card-dark{background:#0f1d36;border:1px solid rgba(255,255,255,.1);border-radius:2px;padding:32px 28px;color:#fff}
.pcms-card h3{font-size:22px;font-weight:700;letter-spacing:-.015em;color:#0a1628;margin:16px 0 10px}
.pcms-card-dark h3{color:#fff}
.pcms-card p{font-size:14px;line-height:1.55;color:#676776;margin:0}
.pcms-card-dark p{color:rgba(255,255,255,.7)}
.pcms-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #dcdce2;border-bottom:1px solid #dcdce2;padding:64px 0}
.pcms-stat{padding:0 32px;border-left:1px solid #dcdce2}
.pcms-stat:first-child{border-left:0}
.pcms-stat-n{font-size:clamp(56px,6vw,88px);font-weight:800;line-height:1;letter-spacing:-.04em;color:#ff6b4a;margin-bottom:12px}
.pcms-stat-l{font-size:14px;color:#676776;line-height:1.4}
.pcms-quote{font-size:clamp(28px,3vw,44px);font-weight:600;line-height:1.25;letter-spacing:-.02em;color:#fff;max-width:900px;margin:0 auto;text-align:center}
.pcms-cite{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#fff;text-align:center;margin-top:36px}
.pcms-cite-sub{font-size:15px;color:rgba(255,255,255,.78);text-align:center;margin-top:8px}

/* --- meet-pcms --- */
.pcms-hero-meet{background:#0a1628;color:#fff;padding:200px 48px 120px;position:relative;overflow:hidden;min-height:min(100vh,820px);display:flex;flex-direction:column;justify-content:flex-end;margin-top:-82px}
.pcms-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 20% 30%,rgba(255,107,74,.18),transparent 55%),radial-gradient(ellipse 60% 60% at 85% 75%,rgba(46,91,255,.2),transparent 55%)}
.pcms-h1{font-size:clamp(56px,8vw,120px);font-weight:800;line-height:.95;letter-spacing:-.045em;margin:0 0 32px;color:#fff;position:relative;z-index:2}
.pcms-label{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:#ff6b4a;margin-bottom:24px}
.pcms-h2{font-size:clamp(36px,4.8vw,68px);font-weight:800;line-height:1;letter-spacing:-.04em;color:#0a1628;margin:0 0 24px}
.pcms-body{font-size:18px;line-height:1.65;color:#464654;margin:0 0 24px}
.pcms-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:64px 0;border-top:1px solid #dcdce2;border-bottom:1px solid #dcdce2}
.pcms-stat-item{padding:0 28px;border-left:1px solid rgba(255,255,255,.12)}
.pcms-stat-item:first-child{border-left:0;padding-left:0}
.pcms-big-n{font-size:clamp(56px,6vw,88px);font-weight:800;line-height:1;letter-spacing:-.04em;color:#ff6b4a;margin-bottom:12px}
.pcms-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:48px}
.pcms-team-card{background:#fff;padding:36px 28px;display:flex;flex-direction:column;gap:10px}
.pcms-team-avatar{width:64px;height:64px;border-radius:50%;background:#eef0f7;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#0a1628;margin-bottom:8px}
.pcms-team-name{font-weight:700;font-size:20px;letter-spacing:-.015em;color:#0a1628}
.pcms-team-role{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#ff6b4a}
.pcms-team-note{font-size:13px;line-height:1.55;color:#676776}
.pcms-values{border-top:1px solid #0a1628}
.pcms-value{display:grid;grid-template-columns:72px 1fr;gap:32px;padding:40px 0;border-bottom:1px solid #dcdce2;align-items:start}
.pcms-value-n{font-size:56px;font-weight:800;line-height:1;letter-spacing:-.04em;color:#0a1628}
.pcms-value-h{font-size:26px;font-weight:700;letter-spacing:-.02em;color:#0a1628;margin:0 0 12px}
.pcms-value-b{font-size:16px;line-height:1.65;color:#464654;margin:0}

/* --- atlas-ai --- */
.ai-hero{background:#02060d;color:#fff;padding:200px 48px 120px;position:relative;overflow:hidden;min-height:min(100vh,820px);display:flex;flex-direction:column;justify-content:flex-end;margin-top:-82px}
.ai-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 30% 20%,rgba(46,91,255,.35),transparent 55%),radial-gradient(ellipse 50% 60% at 75% 80%,rgba(255,107,74,.25),transparent 55%)}
.ai-h1{font-size:clamp(56px,8vw,140px);font-weight:800;line-height:.94;letter-spacing:-.045em;margin:0 0 32px;color:#fff;position:relative;z-index:2;text-wrap:balance}
.ai-label{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:#ff6b4a;margin-bottom:24px;display:block}
.ai-badge{display:inline-flex;align-items:center;gap:10px;padding:6px 14px;border-radius:999px;background:rgba(46,91,255,.15);border:1px solid rgba(46,91,255,.4);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#4d78ff;margin-bottom:28px}
.ai-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:48px}
.ai-cap-card{background:#0a1628;padding:36px 32px;border:1px solid rgba(255,255,255,.1)}
.ai-cap-tag{font-family:monospace;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:#ff6b4a;margin-bottom:20px;display:flex;align-items:center;gap:8px}
.ai-cap-tag::before{content:'';width:5px;height:5px;background:#4d78ff;box-shadow:0 0 10px #4d78ff;border-radius:1px;display:inline-block}
.ai-cap-h{font-size:22px;font-weight:700;letter-spacing:-.02em;color:#fff;margin:0 0 12px;line-height:1.2}
.ai-cap-b{font-size:14px;line-height:1.6;color:rgba(255,255,255,.7);margin:0}
.ai-governance-check{display:flex;gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid #dcdce2;font-size:15px;color:#0a1628;font-weight:500;line-height:1.4}
.ai-governance-check::before{content:'✓';width:20px;height:20px;min-width:20px;border-radius:50%;background:#eaf0ff;color:#2e5bff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-top:1px}

/* --- contact --- */
.ct-hero{background:#0a1628;color:#fff;padding:200px 48px 120px;position:relative;overflow:hidden;min-height:min(100vh,820px);display:flex;flex-direction:column;justify-content:flex-end;margin-top:-82px}
.ct-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 20% 30%,rgba(46,91,255,.35),transparent 60%),radial-gradient(ellipse 60% 50% at 85% 70%,rgba(255,107,74,.2),transparent 55%)}
.ct-h1{font-size:clamp(56px,9vw,140px);font-weight:800;line-height:.94;letter-spacing:-.045em;margin:0;color:#fff;position:relative;z-index:2;text-wrap:balance}
.ct-label{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:#ff6b4a;margin-bottom:24px;display:block}
.ct-card{border:1px solid #dcdce2;border-radius:2px;padding:28px 24px;background:#fff;display:flex;flex-direction:column;gap:14px;cursor:pointer}
.ct-card:hover{border-color:#0a1628}
.ct-card-accent{width:40px;height:40px;border-radius:2px}
.ct-card-eyebrow{font-family:monospace;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:#464654}
.ct-card-h{font-size:22px;font-weight:700;letter-spacing:-.02em;color:#0a1628;line-height:1.2;text-wrap:balance}
.ct-card-b{font-size:14px;line-height:1.55;color:#464654}
.ct-card-cta{font-size:13px;font-weight:600;color:#2e5bff;padding-top:12px;border-top:1px solid #dcdce2}
.field-wrap{display:flex;flex-direction:column;gap:8px}
.field-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#464654}
.field-input,.field-select,.field-textarea{width:100%;background:#fff;border:1px solid #dcdce2;border-radius:2px;padding:14px 16px;font-size:15px;color:#0a1628;outline:none;font-family:inherit;box-sizing:border-box}
.field-textarea{min-height:120px;resize:vertical;line-height:1.5}
.ct-office{background:#fff;border:1px solid #dcdce2;border-radius:2px;padding:28px}
.faq-item{border-bottom:1px solid #dcdce2}
.faq-q{font-size:20px;font-weight:700;letter-spacing:-.015em;color:#0a1628;padding:20px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;margin:0}
.faq-a{font-size:16px;line-height:1.65;color:#464654;padding-bottom:20px;margin:0}

/* --- platform --- */
.pl-hero{background:#0a1628;color:#fff;padding:200px 48px 120px;position:relative;overflow:hidden;min-height:min(100vh,820px);display:flex;flex-direction:column;justify-content:flex-end;margin-top:-82px}
.pl-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 90% at 80% 30%,rgba(46,91,255,.22),transparent 60%),radial-gradient(ellipse 80% 70% at 15% 100%,rgba(255,107,74,.14),transparent 65%)}
.pl-label{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:#ff6b4a;margin-bottom:24px;display:block}
.pl-h1{font-size:clamp(56px,9vw,140px);font-weight:800;line-height:.94;letter-spacing:-.045em;margin:0;color:#fff;position:relative;z-index:2;text-wrap:balance}
.pl-h2{font-size:clamp(36px,4.8vw,72px);font-weight:800;line-height:1;letter-spacing:-.04em;color:#0a1628;margin:0 0 24px}
.pl-module-row{display:grid;grid-template-columns:180px 1fr;gap:20px;margin-bottom:12px}
.pl-module-label{display:flex;flex-direction:column;justify-content:center;padding:16px;border-left:3px solid var(--c,#2e5bff);background:var(--bg,#eaf0ff)}
.pl-module-layer{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--c,#2e5bff);margin-bottom:4px}
.pl-module-name{font-size:16px;font-weight:700;color:#0a1628}
.pl-module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pl-module-card{padding:20px 16px;background:#fbfbfd;border:1px solid #dcdce2;border-top:2px solid var(--c,#2e5bff);font-size:13px;font-weight:600;color:#0a1628;display:flex;align-items:center;gap:8px}
.pl-module-dot{width:6px;height:6px;border-radius:1px;background:var(--c,#2e5bff);flex-shrink:0}
.pl-foundation{background:#0a1628;color:#fff;padding:24px 28px;margin-top:16px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.pl-principle{display:grid;grid-template-columns:64px 1fr;gap:28px;padding:40px 0;border-bottom:1px solid #dcdce2;align-items:start}
.pl-principle:first-child{border-top:1px solid #0a1628}
.pl-principle-n{font-size:56px;font-weight:800;line-height:1;letter-spacing:-.04em;color:#0a1628}
.pl-principle-h{font-size:24px;font-weight:700;letter-spacing:-.02em;color:#0a1628;margin:0 0 10px}
.pl-principle-b{font-size:15px;line-height:1.65;color:#464654;margin:0}

/* --- solutions --- */
.sol-hero{background:#0a1628;color:#fff;padding:200px 48px 120px;position:relative;overflow:hidden;min-height:min(100vh,820px);display:flex;flex-direction:column;justify-content:flex-end;margin-top:-82px}
.sol-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 20% 30%,rgba(46,91,255,.2),transparent 60%),radial-gradient(ellipse 60% 60% at 85% 80%,rgba(255,107,74,.15),transparent 60%)}
.sol-label{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:#ff6b4a;margin-bottom:24px;display:block}
.sol-chip{display:inline-flex;align-items:center;gap:14px;padding:18px 26px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);color:#fff;font-family:'Rubik',sans-serif;font-size:17px;font-weight:600;letter-spacing:-.005em;text-decoration:none;border-radius:4px;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}
.sol-chip:hover{background:rgba(255,107,74,.14);border-color:#ff6b4a;transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(255,107,74,.5)}
.sol-chip-num{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;letter-spacing:.08em;color:#ff6b4a}
/* dallas-hat removed */
.sol-line{padding:80px 48px}
.sol-line-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;max-width:1240px;margin:0 auto;align-items:start}
.sol-ai-box{display:flex;align-items:start;gap:14px;padding:18px 20px;border-radius:2px;margin-top:28px}
.sol-feat-list{list-style:none;padding:0;margin:0;border-top:1px solid currentColor}
.sol-feat-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid currentColor;font-size:14px;font-weight:500;line-height:1.4}
.sol-feat-num{font-family:monospace;font-size:11px;font-weight:600;margin-top:2px;min-width:22px}


/* ====== PAGE CONTENT WRAP (full-width, no container constraint) ====== */
.page-content-wrap {
  width: 100%;
  max-width: 100%;
}
.page-content-wrap > * {
  /* Let imported page HTML manage its own widths */
}
.page-title-wrap {
  padding: 160px 0 40px;
  background: var(--white);
}

/* cache-bust: v2.0.1 */

/* ====== FULL-WIDTH PAGE WRAPPER ====== */
.page-full-content {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.page-full-content .gh-content {
  max-width: 100% !important;
  width: 100%;
}

/* ====== HOME HERO SECTION ====== */
.pcms-hero-section {
  position: relative;
  min-height: min(100vh, 820px);
  overflow: hidden;
  background: #0a1628;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin-top: -82px;
}
.pcms-hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 110% 55% at 50% 115%, rgba(255,255,255,.05), transparent 65%),
              linear-gradient(180deg, rgba(2,6,13,.3) 0%, transparent 25%, transparent 75%, rgba(2,6,13,.55) 100%);
  pointer-events: none;
}


/* ====== HERO TEXT LINK — underline hidden, reveals on hover ====== */
.pcms-hero-link {
  color: white;
  text-decoration: none;
  font-family: 'Rubik', -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 4px;
  position: relative;
}
.pcms-hero-link-arrow {
  display: inline-block;
  transition: transform .35s ease;
  letter-spacing: 0;
}
.pcms-hero-link-underline {
  position: absolute;
  left: 4px;
  right: 32px;
  bottom: 14px;
  height: 1px;
  background: white;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .4s cubic-bezier(0.2,0.7,0.2,1);
}
.pcms-hero-link:hover .pcms-hero-link-underline {
  transform: scaleX(1);
}
.pcms-hero-link:hover .pcms-hero-link-arrow {
  transform: translateX(4px);
}

/* ====== EYEBROW POP (coral, no symbol) ====== */
.pcms-eyebrow-pop {
  font-family: 'Rubik', -apple-system, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #ff6b4a;
  margin-bottom: 16px;
}

/* ====== SOLUTIONS CARD HOVER ====== */
.pcms-solution-card {
  background: white;
  padding: 36px 32px;
  min-height: 240px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  cursor: pointer;
  transition: background .2s ease;
}
.pcms-solution-card:hover {
  background: #fbfbfd;
}

/* ====== OVERRIDE GHOST HTML CARD WRAPPERS ====== */
.page-full-content .gh-content,
.page-full-content .kg-card,
.page-full-content .kg-html-card,
.page-full-content .kg-html-card-inner {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ====== pl-principles (platform page) ====== */
.pl-principles { display: flex; flex-direction: column; gap: 0; }

/* ====== NAV DROPDOWN ====== */
.nav-has-dropdown { position: relative; }
.nav-dropdown-toggle { cursor: pointer; }
.nav-caret {
  font-size: 9px; opacity: .5; margin-left: 4px;
  display: inline-block; transition: transform 200ms ease;
}
.nav-has-dropdown.is-open .nav-caret { transform: rotate(180deg); opacity: .8; }
.nav-dropdown {
  position: absolute; top: calc(100% + 16px); left: 50%;
  transform: translateX(-50%);
  list-style: none; padding: 8px 0; margin: 0;
  background: #0a1628; border: 1px solid rgba(255,255,255,.12);
  border-radius: 4px; min-width: 200px;
  box-shadow: 0 16px 40px rgba(2,6,13,.5);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 200ms ease, transform 200ms ease;
  transform: translateX(-50%) translateY(-6px);
  z-index: 100;
}
.nav-has-dropdown.is-open .nav-dropdown {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown li a {
  display: block; padding: 10px 20px;
  font-family: 'Rubik', -apple-system, sans-serif;
  font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,.82); text-decoration: none;
  letter-spacing: .02em;
  transition: color 150ms, background 150ms;
}
.nav-dropdown li a:hover {
  color: white; background: rgba(255,255,255,.06);
}
/* Arrow pointer on dropdown */
.nav-dropdown::before {
  content: ''; position: absolute; top: -5px; left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 9px; height: 9px;
  background: #0a1628; border-left: 1px solid rgba(255,255,255,.12);
  border-top: 1px solid rgba(255,255,255,.12);
}
/* On solid-light header, invert dropdown */
.is-solid-light .nav-dropdown {
  background: white; border-color: rgba(10,22,40,.1);
  box-shadow: 0 16px 40px rgba(10,22,40,.12);
}
.is-solid-light .nav-dropdown::before {
  background: white; border-color: rgba(10,22,40,.1);
}
.is-solid-light .nav-dropdown li a { color: rgba(10,22,40,.78); }
.is-solid-light .nav-dropdown li a:hover { color: #0a1628; background: #f7f7f9; }

.res-hero{background:#0a1628;position:relative;overflow:hidden;min-height:min(100vh,820px);display:flex;flex-direction:column;justify-content:flex-end;padding:200px 48px 120px;margin-top:-82px}
.res-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 70% at 30% 20%,rgba(46,91,255,.2),transparent 60%),radial-gradient(ellipse 50% 60% at 80% 80%,rgba(255,107,74,.15),transparent 60%)}

/* =============================================================
   MOBILE RESPONSIVE — applies to every page
   ============================================================= */
@media (max-width: 900px) {
  /* ----- Hero sections: shrink padding + h1, allow natural height ----- */
  .pcms-hero, .pcms-hero-meet, .ai-hero, .ct-hero, .pl-hero, .sol-hero, .res-hero,
  .hp-hero {
    padding: 100px 20px 64px !important;
    min-height: auto !important;
    margin-top: 0 !important;
    justify-content: flex-start !important;
  }
  /* Inner hero wrappers: kill their own padding on mobile */
  .hp-hero-inner, .pl-hero-inner {
    padding: 0 !important;
  }
  .pcms-hero-section { min-height: auto !important; }
  /* Hero h1s */
  .pcms-h1, .ai-h1, .ct-h1, .pl-h1, .sol-h1, .hp-h1, .hp-hero-h1 {
    font-size: clamp(40px, 11vw, 64px) !important;
    line-height: 1 !important;
    letter-spacing: -.03em !important;
    word-break: break-word;
  }
  /* Kill forced <br> in hero headlines that would wrap awkwardly */
  .pcms-h1 br, .ai-h1 br, .ct-h1 br,
  .hp-hero-h1 br { display: none; }
  /* Preserve intentional <br> in .pl-h1 and .sol-h1 — they separate distinct phrases */

  /* Section padding */
  .pcms-section, [class*="-section"] { padding: 64px 20px !important; }

  /* ----- Universal: any grid with 2/3/4 columns stacks ----- */
  .pcms-grid-2, .pcms-grid-3, .pcms-grid-4,
  .hp-sol-grid, .hp-split, .hp-quote-grid,
  .pcms-team-grid, .pcms-stat-grid, .pcms-values-grid,
  .ai-grid-3, .ai-grid-2,
  .ct-grid, .ct-office-grid, .ct-contact-grid,
  .pl-modules, .pl-grid, .pl-grid-2, .pl-grid-3,
  .sol-grid, .sol-grid-2, .sol-grid-3,
  .res-grid, .post-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* Any inline-styled 2/3/4 col grid inside page content */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns: repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(4"],
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns:1.2fr 1fr"],
  [style*="grid-template-columns:1fr 1.6fr"],
  [style*="grid-template-columns:1fr 1.2fr"],
  [style*="grid-template-columns:3fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* Container margin reset */
  .container { padding-left: 20px; padding-right: 20px; }

  /* Footer */
  .footer-inner { grid-template-columns: 1fr !important; }

  /* Cards shouldn't overflow */
  .pcms-card, .pcms-card-dark, .hp-sol-card, .pl-module, .sol-card, .ct-card {
    min-height: auto !important;
  }

  /* Kill horizontal scroll: any wide content */
  body, html { overflow-x: hidden; }

  /* Platform module accordions: collapse 2-col inner grids */
  .pl-module-body, .pl-module-inner {
    grid-template-columns: 1fr !important;
  }

  /* Large h2s */
  .pcms-h2, .ai-h2, .ct-h2, .pl-h2, .sol-h2, .hp-h2 {
    font-size: clamp(32px, 7vw, 48px) !important;
    line-height: 1.05 !important;
  }

  /* Stat numbers */
  .pcms-stat-n, .pcms-big-n, .hp-stat-n { font-size: clamp(44px, 10vw, 64px) !important; }

  /* Meet PCMS values: 72px col + content col → stack */
  .pcms-value {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 28px 0 !important;
  }

  /* Contact form + sidebar */
  .ct-form-grid { grid-template-columns: 1fr !important; }

  /* Resources grid */
  .resources-hero-grid { grid-template-columns: 1fr !important; gap: 32px !important; padding-bottom: 48px !important; }

  /* Platform AI grid */
  .ai-grid-3 > div { border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,.08); }
}

@media (max-width: 480px) {
  /* Even tighter on phones */
  .pcms-hero, .pcms-hero-meet, .ai-hero, .ct-hero, .pl-hero, .sol-hero, .res-hero, .hp-hero {
    padding: 96px 16px 48px !important;
  }
  .pcms-section, [class*="-section"] { padding: 48px 16px !important; }
  .container { padding-left: 16px; padding-right: 16px; }
  .pcms-h1, .ai-h1, .ct-h1, .pl-h1, .sol-h1, .hp-hero-h1 {
    font-size: clamp(36px, 10vw, 52px) !important;
  }
}
