
/* Architecture navigation and hub styling */
.architecture-nav .dropdown-menu {min-width: 320px; padding: 14px 0; border-radius: 16px;}
.architecture-nav .dropdown-menu li + li {margin-top: 2px;}
.architecture-nav .dropdown-menu a {display:flex; align-items:center; gap:12px; font-weight:600;}
.architecture-nav .dropdown-menu i {font-size: 1rem;}
.architecture-nav .nav-link.active, .architecture-nav .dropdown-menu a.active {color: var(--base-color, #0046ff) !important;}
.architecture-topbar-links a {color: #fff; text-decoration: underline; text-underline-offset: 2px;}
.architecture-topbar-links .separator {opacity:.65; margin: 0 10px; display:inline-block;}
.architecture-grid {display:grid; grid-template-columns: repeat( auto-fit, minmax(240px, 1fr)); gap:24px;}
.architecture-card {background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:20px; padding:28px; box-shadow:0 12px 30px rgba(17,24,39,.08); height:100%;}
.architecture-card .icon-wrap {width:58px; height:58px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:rgba(17,24,39,.05); margin-bottom:18px;}
.architecture-card h3, .architecture-card h4 {margin-bottom:12px;}
.architecture-card p {margin-bottom:0;}
.architecture-card .arrow-link {display:inline-flex; align-items:center; gap:8px; margin-top:18px; font-weight:700;}
.architecture-chip {display:inline-block; padding:6px 12px; border-radius:999px; background:rgba(17,24,39,.06); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:14px;}
.architecture-hero-copy {max-width: 860px;}
.architecture-panel {background: linear-gradient(135deg, #0f172a 0%, #172554 55%, #1d4ed8 100%); color:#fff; border-radius: 24px; padding: 34px;}
.architecture-panel h2, .architecture-panel h3, .architecture-panel p, .architecture-panel a, .architecture-panel span {color:#fff;}
.architecture-panel .btn {margin-top: 10px;}
.architecture-panel .architecture-chip {background: rgba(255,255,255,.18); color:#fff;}
.architecture-stat-grid {display:grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap:18px;}
.architecture-stat {background:#fff; border-radius:18px; padding:22px; border:1px solid rgba(17,24,39,.08); height:100%;}
.architecture-stat strong {display:block; font-size:1.125rem; color:#111827; margin-bottom:8px;}
.architecture-quick-links {display:flex; flex-wrap:wrap; gap:12px;}
.architecture-quick-links a {display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; background:#fff; border:1px solid rgba(17,24,39,.1); color:#111827; font-weight:600;}
.architecture-breadcrumbs {display:flex; flex-wrap:wrap; gap:8px; margin-top:18px;}
.architecture-breadcrumbs a, .architecture-breadcrumbs span {display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:#fff; opacity:.95;}
.architecture-list {padding-left: 20px; margin-bottom:0;}
.architecture-list li + li {margin-top:10px;}
.architecture-subtle {background:#f7f8fc; border-radius:20px; padding:24px; border:1px solid rgba(17,24,39,.06);}
.architecture-logo-grid {display:grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap:20px;}
.architecture-logo-tile {background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:18px; min-height:115px; padding:20px; display:flex; align-items:center; justify-content:center;}
.architecture-logo-tile img {max-width:100%; max-height:54px; width:auto; height:auto;}
.architecture-location-grid {display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:24px;}
.architecture-location-card {background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:20px; padding:26px; box-shadow:0 10px 25px rgba(17,24,39,.06);}
.architecture-location-card ul {padding-left:20px; margin-bottom:0;}
.architecture-location-card li + li {margin-top:8px;}
.architecture-faq-grid {display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:20px;}
.architecture-faq-card {background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:18px; padding:24px;}
.architecture-cta-row {display:flex; flex-wrap:wrap; gap:12px;}
.architecture-inline-note {font-size:15px; opacity:.85;}
.architecture-footer-links ul {list-style:none; padding-left:0; margin-bottom:0;}
.architecture-footer-links li + li {margin-top:8px;}
.architecture-footer-links a {color:#616161;}
.architecture-footer-links a:hover {color:#111827;}
.architecture-mini-grid {display:grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap:20px;}
.architecture-mini-card {background:#fff; border-radius:18px; padding:24px; border:1px solid rgba(17,24,39,.08); height:100%;}
.architecture-mini-card p:last-child {margin-bottom:0;}
.architecture-tagline {font-size: 1.125rem; color:#374151;}
.architecture-link-list {display:grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap:10px;}
.architecture-link-list a {display:flex; justify-content:space-between; align-items:center; gap:8px; padding:14px 16px; background:#fff; border:1px solid rgba(17,24,39,.08); border-radius:14px; color:#111827; font-weight:600;}
@media (max-width: 991px) {
  .architecture-panel {padding: 26px;}
  .architecture-nav .dropdown-menu {min-width: 100%;}
}



/* Innov8av UI polish */
:root {
  --innov-text: #232323;
  --innov-muted: #5b5d63;
  --innov-line: rgba(17,24,39,.08);
  --innov-soft: #f7f8fc;
  --innov-card: #ffffff;
  --innov-brand: #0d51ff;
  --innov-brand-dark: #0a3ec4;
  --innov-shadow: 0 18px 48px rgba(15,23,42,.08);
  --innov-shadow-lg: 0 28px 64px rgba(15,23,42,.11);
  --legacy-bg: #0b1020;
  --legacy-bg-2: #060912;
  --legacy-panel: rgba(255,255,255,.06);
  --legacy-line: rgba(255,255,255,.12);
  --legacy-text: #eef3ff;
  --legacy-muted: #c2cce5;
  --legacy-brand: #2d6bff;
  --legacy-brand-2: #60a5fa;
  --legacy-max: 1120px;
}

html, body {overflow-x:hidden;}

/* Shared site polish */
.architecture-card,
.architecture-location-card,
.architecture-faq-card,
.architecture-mini-card,
.architecture-stat,
.resource-card,
.article-sidebar-card,
.article-main-card,
.ce-card,
.ce-resource-card {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.architecture-card:hover,
.architecture-location-card:hover,
.architecture-faq-card:hover,
.architecture-mini-card:hover,
.architecture-stat:hover,
.resource-card:hover,
.ce-card:hover,
.ce-resource-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--innov-shadow-lg);
  border-color: rgba(13,81,255,.14);
}
.architecture-panel,
.ce-band { box-shadow: var(--innov-shadow-lg); }
.architecture-link-list a,
.ce-link-list a,
.resource-card .arrow-link,
.ce-resource-card a.cta,
.resource-card a,
.article-main-card a,
.ce-copy a { transition: all .25s ease; }
.architecture-link-list a:hover,
.ce-link-list a:hover {
  border-color: rgba(13,81,255,.22);
  color: var(--innov-brand);
  transform: translateY(-2px);
}
.architecture-chip,
.ce-badge,
.ce-tag { letter-spacing: .08em; }
.architecture-card .icon-wrap,
.ce-card .icon-wrap,
.resource-card .icon-wrap {
  transition: transform .25s ease, background .25s ease;
}
.architecture-card:hover .icon-wrap,
.ce-card:hover .icon-wrap,
.resource-card:hover .icon-wrap {
  transform: scale(1.04);
  background: rgba(13,81,255,.08);
}
section[data-architecture-section] { position: relative; }
.keyword-map-cluster-section {
  background: linear-gradient(180deg, #f7faff 0%, #ffffff 100%);
  border: 1px solid rgba(13,81,255,.08);
  border-radius: 24px;
  padding: 28px;
  box-shadow: var(--innov-shadow);
}
.keyword-map-cluster-section .architecture-link-list,
.keyword-map-cluster-section .ce-link-list { margin-top: 14px; }

/* Content engine / article fallbacks for pages without inline component CSS */
.ce-hero-overlay { background: linear-gradient(135deg, rgba(5,16,39,.84), rgba(15,61,145,.60)); position: relative; }
.ce-hero-copy { max-width: 880px; margin-left: auto; margin-right: auto; }
.ce-badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.10); color: #fff;
  font-size: 12px; font-weight: 700; text-transform: uppercase;
}
.ce-breadcrumbs {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap;
  margin-top: 22px; padding: 10px 18px; border-radius: 999px; background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14); color: #fff; font-size: 13px; font-weight: 600;
}
.ce-breadcrumbs a, .ce-breadcrumbs span { color: inherit; text-decoration: none; }
.ce-section { padding: 90px 0; }
.ce-kicker {
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px;
  background: rgba(13,81,255,.07); color: var(--innov-brand); font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px;
}
.ce-card { height: 100%; border: 1px solid var(--innov-line); border-radius: 20px; padding: 26px; box-shadow: var(--innov-shadow); background: var(--innov-card); }
.ce-card h3, .ce-card h4 { color: var(--innov-text); margin-bottom: 10px; }
.ce-card p { color: var(--innov-muted); margin-bottom: 0; }
.ce-stat-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 18px; }
.ce-stat { background: #fff; border: 1px solid var(--innov-line); border-radius: 18px; padding: 22px; box-shadow: var(--innov-shadow); }
.ce-stat strong { display: block; font-size: 1.5rem; color: var(--innov-text); line-height: 1.1; }
.ce-link-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 12px; }
.ce-link-list a {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px;
  border-radius: 14px; border: 1px solid var(--innov-line); color: var(--innov-text); font-weight: 600;
  text-decoration: none; box-shadow: var(--innov-shadow); background: #fff;
}
.ce-sticky { position: sticky; top: 120px; }
.ce-toc, .ce-note, .article-note, .article-sidebar-card { border: 1px solid var(--innov-line); border-radius: 18px; box-shadow: var(--innov-shadow); }
.ce-toc { background: #fff; padding: 22px; }
.ce-toc h3 { margin: 0 0 12px; color: var(--innov-text); }
.ce-toc ul { margin: 0; padding-left: 18px; }
.ce-toc li + li { margin-top: 9px; }
.ce-toc a { color: var(--innov-muted); text-decoration: none; }
.ce-toc a:hover { color: var(--innov-brand); }
.ce-copy, .article-main-card {
  background: #fff; border: 1px solid var(--innov-line); border-radius: 22px;
  padding: 34px 32px; box-shadow: var(--innov-shadow-lg);
}
.ce-copy h2, .ce-copy h3, .article-main-card h2, .article-main-card h3 { color: var(--innov-text); }
.ce-copy p, .ce-copy li, .article-main-card p, .article-main-card li, .article-sidebar-card p, .article-sidebar-card li, .faq-details p { color: var(--innov-muted); line-height: 1.85; }
.ce-copy .lead, .article-main-card .lead { color: #4a4d52; font-size: 1.15rem; line-height: 1.75; }
.article-subhead { color: #f2f5ff; font-size: 1.15rem; line-height: 1.75; }
.ce-table, .comparison-table, .budget-table {
  width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: 18px;
  border: 1px solid var(--innov-line); box-shadow: var(--innov-shadow); background: #fff; margin: 22px 0;
}
.ce-table th,.ce-table td,.comparison-table th,.comparison-table td,.budget-table th,.budget-table td {
  padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--innov-line);
}
.ce-table th,.comparison-table th,.budget-table th { background: #eef4ff; color: var(--innov-text); font-weight: 700; }
.ce-table tr:last-child td,.comparison-table tr:last-child td,.budget-table tr:last-child td { border-bottom: none; }
.ce-note, .article-note { background: linear-gradient(180deg, #fbfdff 0%, #f5f8ff 100%); padding: 18px 20px; margin-bottom: 22px; }
.ce-faq details, .faq-details details {
  background: #fff; border: 1px solid var(--innov-line); border-radius: 16px; padding: 16px 18px; box-shadow: var(--innov-shadow);
}
.ce-faq details + details, .faq-details details + details { margin-top: 12px; }
.ce-faq summary, .faq-details summary { cursor: pointer; font-weight: 700; color: var(--innov-text); }
.ce-faq p, .faq-details p { margin: 12px 0 0; }
.ce-band {
  background: linear-gradient(135deg, #0f172a 0%, #172554 55%, #1d4ed8 100%); color: #fff;
  border-radius: 24px; padding: 34px; border: 1px solid rgba(255,255,255,.12);
}
.ce-band h2, .ce-band h3, .ce-band p, .ce-band li { color: #fff; }
.ce-tag-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.ce-tag {
  display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 999px;
  background: rgba(13,81,255,.08); border: 1px solid rgba(13,81,255,.10); color: var(--innov-brand);
  font-size: 13px; font-weight: 600;
}
.ce-resource-grid, .resource-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 18px; }
.ce-resource-card, .resource-card {
  display: flex; flex-direction: column; height: 100%; border: 1px solid var(--innov-line);
  border-radius: 20px; overflow: hidden; box-shadow: var(--innov-shadow); background: #fff;
}
.ce-resource-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.ce-resource-card .body, .resource-card > .body { padding: 22px 22px 24px; }
.ce-resource-card h3, .resource-card h3, .article-sidebar-card h3 { color: var(--innov-text); line-height: 1.3; }
.ce-resource-card p, .resource-card p { color: var(--innov-muted); }
.ce-resource-card a.cta, .resource-card .arrow-link {
  display: inline-flex; align-items: center; gap: 8px; color: var(--innov-brand); font-weight: 700; text-decoration: none; margin-top: auto;
}
.article-hero .shape-image-animation svg path { opacity: .96; }
.article-meta-line {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; padding: 10px 18px;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.10); color: #fff; font-size: 14px;
}
.article-main-card { padding: 38px 34px; }
.article-main-card .lead { color: #4a4d52; }
.article-sidebar-card { padding: 24px; margin-bottom: 22px; }
.article-checklist { padding-left: 22px; }
.article-checklist li + li { margin-top: 10px; }
.article-highlight-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 16px; margin: 24px 0; }
.article-highlight-card {
  background: linear-gradient(180deg, #f7faff 0%, #ffffff 100%); border: 1px solid var(--innov-line);
  border-radius: 18px; padding: 20px; box-shadow: var(--innov-shadow);
}
.quote-callout {
  border-left: 4px solid var(--innov-brand); padding: 8px 0 8px 18px; margin: 22px 0; color: var(--innov-text); font-size: 18px; line-height: 1.7;
  background: linear-gradient(90deg, rgba(13,81,255,.06) 0%, rgba(13,81,255,0) 100%); border-radius: 0 14px 14px 0;
}

/* Better looking fixed language switcher */
#language-switcher {
  position: fixed !important; right: 18px !important; bottom: 18px !important; display: inline-flex !important;
  align-items: center; gap: 8px; padding: 8px 10px; border-radius: 999px; background: rgba(255,255,255,.92);
  border: 1px solid rgba(17,24,39,.10); box-shadow: 0 12px 32px rgba(17,24,39,.14); backdrop-filter: blur(10px); z-index: 9999 !important;
}
#language-switcher button {
  width: 20px !important; height: 20px !important; background-size: cover !important; border-radius: 50% !important;
  border: 0 !important; box-shadow: inset 0 0 0 1px rgba(17,24,39,.08);
}

/* Legacy consolidated pages: scope the custom dark shell to main content only */
main.legacy-shell {
  background: radial-gradient(1200px 800px at 10% -10%, #18356b 0, var(--legacy-bg) 45%, var(--legacy-bg-2) 100%);
  color: var(--legacy-text); padding: 38px 0 40px; overflow: hidden;
}
main.legacy-shell .wrap { max-width: var(--legacy-max); margin: 0 auto; padding: 0 24px; }
main.legacy-shell .hero { padding: 64px 0 34px; }
main.legacy-shell .hero h1 {
  font-size: clamp(2rem,4.6vw,4rem); line-height: 1.05; margin: 18px 0 12px; letter-spacing: -.03em; color: var(--legacy-text);
}
main.legacy-shell .hero p, main.legacy-shell .section p, main.legacy-shell .section li, main.legacy-shell .box p, main.legacy-shell .box li {
  color: var(--legacy-muted); line-height: 1.8;
}
main.legacy-shell .eyebrow {
  display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: rgba(96,165,250,.12);
  border: 1px solid var(--legacy-line); color: #d8e6ff; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
}
main.legacy-shell .section { padding: 24px 0; }
main.legacy-shell .section ul, main.legacy-shell .box ul { padding-left: 20px; margin: 14px 0 0; }
main.legacy-shell .section li, main.legacy-shell .box li { margin: 8px 0; }
main.legacy-shell .section h2, main.legacy-shell .box h2 {
  font-size: clamp(1.45rem,2.5vw,2.2rem); line-height: 1.15; margin: 0 0 16px; letter-spacing: -.02em; color: var(--legacy-text);
}
main.legacy-shell .section h3, main.legacy-shell .box h3 { font-size: 1.1rem; margin: 0 0 10px; color: var(--legacy-text); }
main.legacy-shell .cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 16px; margin-top: 18px; }
main.legacy-shell .card, main.legacy-shell .box {
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03)); border: 1px solid var(--legacy-line);
  border-radius: 20px; padding: 22px; box-shadow: 0 18px 50px rgba(0,0,0,.18); height: 100%;
}
main.legacy-shell .cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
main.legacy-shell .btn {
  display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 12px;
  border: 1px solid var(--legacy-line); background: rgba(255,255,255,.04); color: #fff; font-weight: 700; text-decoration: none; box-shadow: 0 10px 22px rgba(0,0,0,.16);
}
main.legacy-shell .btn.primary { background: linear-gradient(180deg, var(--legacy-brand-2), var(--legacy-brand)); border-color: transparent; color: #fff; }
main.legacy-shell .faq details, main.legacy-shell details {
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03)); border: 1px solid var(--legacy-line);
  border-radius: 14px; padding: 14px 16px; box-shadow: 0 12px 28px rgba(0,0,0,.14);
}
main.legacy-shell details + details { margin-top: 12px; }
main.legacy-shell summary { cursor: pointer; font-weight: 700; color: var(--legacy-text); }
main.legacy-shell .grid2 { display: grid; grid-template-columns: 1.2fr .8fr; gap: 22px; }
main.legacy-shell a { color: inherit; }

@media (max-width: 991px) {
  .ce-sticky { position: static; }
  .ce-copy, .article-main-card { padding: 30px 22px; }
  .ce-band, .architecture-panel, .keyword-map-cluster-section { padding: 24px; }
}
@media (max-width: 800px) {
  main.legacy-shell .grid2 { grid-template-columns: 1fr; }
  main.legacy-shell .hero { padding-top: 46px; }
}
