/*
Theme Name: Stuart McGrogan Advisory
Theme URI: https://stuartmcgrogan.co.uk/
Author: OpenAI for Stuart McGrogan
Description: Bespoke consulting theme for Enterprise Architecture, Fractional CTO/CIO, Cloud, AI and technology transformation advisory. Designed for IONOS WordPress Hosting.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: smc-advisory
*/

:root {
  --bg: #07111f;
  --bg-2: #0b1728;
  --panel: rgba(255,255,255,.055);
  --panel-strong: rgba(255,255,255,.085);
  --line: rgba(255,255,255,.12);
  --text: #f3f7fb;
  --muted: #a8b7c8;
  --accent: #66e4d7;
  --accent-2: #83aefc;
  --shadow: 0 30px 80px rgba(0,0,0,.28);
  --radius: 22px;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 15% 0%, rgba(57,111,193,.20), transparent 30rem),
    radial-gradient(circle at 90% 16%, rgba(36,190,172,.13), transparent 28rem),
    var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height:1.6;
}
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; opacity:.13;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:40px 40px; mask-image:linear-gradient(to bottom,#000,transparent 80%); z-index:-1;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; }
.site-shell { min-height:100vh; overflow:hidden; }
.nav-wrap {
  width:min(calc(100% - 40px),var(--max)); margin:0 auto; min-height:92px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  border-bottom:1px solid var(--line); position:relative; z-index:50;
}
.brand { display:flex; align-items:center; gap:14px; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(102,228,215,.45); border-radius:12px; background:linear-gradient(135deg,rgba(102,228,215,.18),rgba(131,174,252,.12)); font-weight:800; }
.brand-copy { display:flex; flex-direction:column; line-height:1.15; }
.brand-copy strong { font-size:.98rem; }
.brand-copy small { color:var(--muted); font-size:.7rem; margin-top:4px; }
.nav-links, .nav-links ul { display:flex; align-items:center; gap:24px; list-style:none; padding:0; margin:0; }
.nav-links a { color:#c7d3df; font-size:.86rem; }
.nav-links a:hover { color:white; }
.nav-cta { border:1px solid rgba(102,228,215,.5); padding:10px 15px; border-radius:999px; }
.menu-button { display:none; color:var(--text); background:transparent; border:1px solid var(--line); padding:8px 12px; border-radius:10px; }
.section, .page-shell { width:min(calc(100% - 40px),var(--max)); margin:0 auto; padding:105px 0; }
.section-tight { width:min(calc(100% - 40px),var(--max)); margin:0 auto; }
.eyebrow { margin:0 0 16px; color:var(--accent); text-transform:uppercase; letter-spacing:.15em; font-weight:800; font-size:.73rem; }
.hero { min-height:700px; display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; padding-top:74px; }
.hero h1, .section-heading h2, .experience h2, .contact h2, .page-hero h1 { margin:0; letter-spacing:-.045em; line-height:1.02; }
.hero h1 { font-size:clamp(3.15rem,6.1vw,6.4rem); max-width:830px; }
.hero h1 span { background:linear-gradient(90deg,var(--accent),#b9e9ff 55%,var(--accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-lead { color:#c1cfdd; font-size:1.14rem; max-width:700px; margin:28px 0 24px; }
.hero-personal { color:#8fa2b5; font-size:.9rem; max-width:690px; margin:0 0 30px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; padding:0 20px; border-radius:999px; border:1px solid transparent; font-weight:760; font-size:.9rem; cursor:pointer; }
.button-primary { color:#06111a; background:linear-gradient(90deg,var(--accent),#b8f5ed); box-shadow:0 14px 40px rgba(102,228,215,.16); }
.button-ghost { color:var(--text); background:rgba(255,255,255,.02); border-color:var(--line); }
.trust-line { display:flex; flex-wrap:wrap; gap:8px 21px; color:#8fa1b4; font-size:.77rem; margin-top:27px; }
.trust-line span::before { content:"•"; color:var(--accent); margin-right:8px; }
.hero-portrait { position:relative; width:min(100%,470px); margin:auto; padding:36px; }
.portrait-frame { position:relative; margin:0; aspect-ratio:4/5; border-radius:30px; overflow:hidden; border:1px solid rgba(255,255,255,.13); box-shadow:var(--shadow); background:#0b1728; }
.portrait-frame img { width:100%; height:100%; object-fit:cover; display:block; }
.portrait-halo { position:absolute; border:1px solid rgba(102,228,215,.14); border-radius:50%; }
.portrait-halo-1 { inset:4%; }
.portrait-halo-2 { inset:-4%; border-style:dashed; }
.portrait-credential { position:absolute; padding:10px 13px; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(8,20,34,.86); backdrop-filter:blur(10px); box-shadow:0 14px 35px rgba(0,0,0,.25); }
.portrait-credential span { display:block; color:var(--accent); font-size:.58rem; text-transform:uppercase; letter-spacing:.1em; }
.portrait-credential strong { display:block; margin-top:3px; font-size:.73rem; }
.portrait-credential-top { top:12%; right:0; }
.portrait-credential-bottom { bottom:10%; left:0; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:rgba(255,255,255,.025); }
.metrics article { padding:27px; border-right:1px solid var(--line); }
.metrics article:last-child { border-right:0; }
.metrics strong { display:block; font-size:1.7rem; letter-spacing:-.035em; }
.metrics span { color:var(--muted); font-size:.78rem; }
.section-heading { max-width:800px; margin-bottom:46px; }
.section-heading h2, .experience h2, .contact h2 { font-size:clamp(2.3rem,4vw,4.15rem); }
.section-heading > p:last-child, .experience p, .contact p { color:var(--muted); }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card { padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)); }
.card:hover { border-color:rgba(102,228,215,.34); transform:translateY(-2px); transition:.2s ease; }
.card-index { color:var(--accent); font-size:.65rem; letter-spacing:.13em; }
.card h3 { margin:40px 0 13px; font-size:1.28rem; line-height:1.18; letter-spacing:-.03em; }
.card p { color:#aebdcb; font-size:.9rem; }
.card ul { padding:0; list-style:none; }
.card li { color:#8295a9; font-size:.78rem; margin:9px 0; }
.card li::before { content:"—"; color:var(--accent); margin-right:8px; }
.card-link { display:inline-flex; margin-top:20px; color:var(--accent); font-size:.76rem; font-weight:750; }
.band { position:relative; }
.band::before { content:""; position:absolute; inset:40px -2000px; z-index:-1; background:linear-gradient(180deg,rgba(11,23,40,.72),rgba(8,20,34,.55)); border-top:1px solid rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.05); }
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.case-card { min-height:370px; display:flex; flex-direction:column; padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(4,13,24,.38); }
.case-card h3 { margin:48px 0 16px; font-size:1.42rem; line-height:1.18; letter-spacing:-.03em; }
.case-card p { color:#9fb0c1; font-size:.88rem; }
.case-top { display:flex; justify-content:space-between; gap:18px; color:#8295a9; font-size:.67rem; }
.case-top strong { color:#dce6ef; text-align:right; }
.case-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:24px; }
.case-tags span, .topic-pill { border:1px solid var(--line); border-radius:999px; padding:6px 9px; font-size:.65rem; color:#9eb0c2; }

/* Moving architecture bar */
.motion-band { padding:72px 0 24px; overflow:hidden; }
.motion-band .section-heading { width:min(calc(100% - 40px),var(--max)); margin:0 auto 28px; }
.motion-viewport { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.02); }
.motion-track { width:max-content; display:flex; gap:14px; padding:18px 14px; animation:smc-marquee 38s linear infinite; }
.motion-viewport:hover .motion-track, .motion-viewport:focus-within .motion-track { animation-play-state:paused; }
@keyframes smc-marquee { to { transform:translateX(calc(-50% - 7px)); } }
.mini-diagram { width:360px; min-height:152px; padding:18px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(135deg,rgba(102,228,215,.05),rgba(131,174,252,.04)); }
.mini-diagram header { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:18px; }
.mini-diagram header strong { font-size:.82rem; }
.mini-diagram header span { color:var(--accent); font-size:.58rem; text-transform:uppercase; letter-spacing:.12em; }
.mini-flow { display:flex; align-items:center; gap:7px; min-width:max-content; }
.mini-flow b { padding:8px 9px; border-radius:9px; border:1px solid rgba(255,255,255,.12); color:#c7d4e0; font-size:.63rem; font-weight:650; background:rgba(7,17,31,.55); }
.mini-flow i { width:18px; height:1px; background:linear-gradient(90deg,var(--accent),rgba(102,228,215,.1)); position:relative; }
.mini-flow i::after { content:""; position:absolute; right:-1px; top:-3px; border-left:5px solid var(--accent); border-top:3px solid transparent; border-bottom:3px solid transparent; }
.mini-outcome { display:block; margin-top:16px; color:#8398ad; font-size:.66rem; }

/* Interactive diagram explorer */
.diagram-explorer { border:1px solid var(--line); border-radius:24px; overflow:hidden; background:rgba(255,255,255,.025); }
.diagram-tabs { display:flex; gap:0; overflow:auto; border-bottom:1px solid var(--line); }
.diagram-tab { flex:1 0 auto; min-width:170px; padding:16px 18px; border:0; border-right:1px solid var(--line); background:transparent; color:#9aacbd; font:inherit; font-size:.75rem; cursor:pointer; }
.diagram-tab[aria-selected="true"] { color:#07111f; background:var(--accent); font-weight:800; }
.diagram-panel { padding:34px; }
.js .diagram-panel[hidden] { display:none; }
.diagram-title { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:26px; }
.diagram-title h3 { margin:0; font-size:1.65rem; letter-spacing:-.035em; line-height:1.1; }
.diagram-title p { max-width:520px; margin:0; color:#8fa2b5; font-size:.82rem; }
.diagram-flow { display:grid; grid-template-columns:repeat(6,1fr); gap:22px; align-items:center; }
.diagram-node { position:relative; min-height:88px; display:flex; flex-direction:column; justify-content:center; padding:14px; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(7,17,31,.62); }
.diagram-node:not(:last-child)::after { content:"→"; position:absolute; right:-19px; top:50%; transform:translateY(-50%); color:var(--accent); font-size:1rem; }
.diagram-node span { color:#71869a; font-size:.56rem; text-transform:uppercase; letter-spacing:.1em; }
.diagram-node strong { margin-top:5px; color:#d9e5ee; font-size:.72rem; line-height:1.2; }
.diagram-outcome { margin-top:26px; padding:18px 20px; border-left:2px solid var(--accent); background:rgba(102,228,215,.045); }
.diagram-outcome span { color:var(--accent); font-size:.58rem; text-transform:uppercase; letter-spacing:.1em; }
.diagram-outcome strong { display:block; margin-top:5px; font-size:.9rem; }

.recommendation-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.recommendation-card { min-height:330px; padding:31px; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); }
.recommendation-label { color:var(--accent); text-transform:uppercase; letter-spacing:.12em; font-size:.62rem; font-weight:800; }
.recommendation-card h3 { margin:34px 0 16px; font-size:1.5rem; line-height:1.14; letter-spacing:-.035em; }
.recommendation-proof { display:grid; grid-template-columns:115px 1fr; gap:20px; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.recommendation-proof strong { font-size:1.3rem; }
.recommendation-proof span { color:#8296aa; font-size:.75rem; }
.approach-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.approach-grid article { min-height:240px; padding:26px 22px; background:var(--bg); }
.approach-grid span { color:var(--accent); font-size:.63rem; }
.approach-grid h3 { margin:42px 0 12px; }
.approach-grid p { color:#8ea0b2; font-size:.78rem; }
.experience { display:grid; grid-template-columns:.9fr 1.1fr; gap:65px; align-items:center; }
.capability-map { border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:rgba(255,255,255,.025); }
.cap-row { display:grid; grid-template-columns:120px 1fr; border-bottom:1px solid var(--line); }
.cap-row:last-child { border-bottom:0; }
.cap-row span, .cap-row b { padding:20px; }
.cap-row span { color:var(--accent); font-size:.74rem; border-right:1px solid var(--line); }
.cap-row b { color:#c0cddd; font-size:.8rem; font-weight:550; }
.advisory-layout { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.advisory-copy,.network-panel { padding:31px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.025); }
.advisory-topics { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.network-list { margin:22px 0; border-top:1px solid var(--line); }
.network-list div { display:grid; grid-template-columns:110px 1fr; gap:18px; padding:15px 0; border-bottom:1px solid var(--line); }
.network-list span { color:#879aaf; font-size:.77rem; }
.network-note { color:#708499!important; font-size:.68rem!important; }
.engagement-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.contact { display:grid; grid-template-columns:1.25fr .75fr; gap:65px; align-items:end; border-top:1px solid var(--line); }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.intro-call { margin-top:28px; padding:18px 21px; border-left:2px solid var(--accent); background:rgba(255,255,255,.025); }
.site-footer { width:min(calc(100% - 40px),var(--max)); margin:0 auto; padding:32px 0 46px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; color:#768a9e; font-size:.72rem; }
.site-footer div { display:flex; flex-direction:column; }
.site-footer strong { color:#b9c8d6; }

/* Inner / CMS pages */
.page-hero { width:min(calc(100% - 40px),var(--max)); margin:0 auto; padding:95px 0 55px; }
.page-hero h1 { max-width:900px; font-size:clamp(2.7rem,5vw,5.2rem); }
.page-hero .lead { max-width:780px; color:#a9b9c8; font-size:1.04rem; }
.content-layout { width:min(calc(100% - 40px),var(--max)); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(250px,.5fr); gap:50px; padding:48px 0 100px; border-top:1px solid var(--line); }
.prose { max-width:830px; }
.prose h2 { margin-top:38px; font-size:1.8rem; letter-spacing:-.03em; }
.prose h3 { margin-top:28px; }
.prose p,.prose li { color:#9fb0c1; }
.sidebar-card { position:sticky; top:25px; padding:24px; border:1px solid rgba(102,228,215,.22); border-radius:18px; background:rgba(102,228,215,.035); }
.sidebar-card p { color:#8fa2b5; font-size:.78rem; }
.archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.filter-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.filter-button { border:1px solid var(--line); background:rgba(255,255,255,.02); color:#aab9c7; border-radius:999px; padding:8px 12px; font:inherit; font-size:.72rem; cursor:pointer; }
.filter-button.active { color:#07111f; background:var(--accent); border-color:var(--accent); }
.reveal { opacity:1; transform:none; }
.js .reveal { opacity:0; transform:translateY(15px); transition:opacity .55s ease,transform .55s ease; }
.js .reveal.in-view { opacity:1; transform:none; }

@media (max-width:1040px) {
  .nav-links { position:absolute; top:76px; left:0; right:0; padding:18px; flex-direction:column; align-items:stretch; background:#0a1625; border:1px solid var(--line); border-radius:16px; display:none; }
  .nav-links.open { display:flex; }
  .nav-links ul { flex-direction:column; align-items:stretch; }
  .menu-button { display:block; }
  .hero { grid-template-columns:1fr; }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .card-grid,.case-grid,.archive-grid { grid-template-columns:repeat(2,1fr); }
  .diagram-flow { grid-template-columns:repeat(3,1fr); }
  .diagram-node:nth-child(3)::after { display:none; }
  .experience,.contact,.advisory-layout,.content-layout { grid-template-columns:1fr; }
  .approach-grid { grid-template-columns:repeat(2,1fr); }
  .sidebar-card { position:static; }
}
@media (max-width:680px) {
  .nav-wrap,.section,.section-tight,.page-shell,.page-hero,.content-layout,.site-footer { width:min(calc(100% - 28px),var(--max)); }
  .brand-copy small { display:none; }
  .section { padding:76px 0; }
  .hero { min-height:auto; gap:34px; padding-top:52px; }
  .hero h1 { font-size:clamp(2.6rem,14vw,4.6rem); }
  .hero-portrait { padding:24px 15px; }
  .portrait-credential { font-size:.6rem; }
  .metrics,.card-grid,.case-grid,.archive-grid,.recommendation-grid,.engagement-grid { grid-template-columns:1fr; }
  .metrics article { border-right:0; border-bottom:1px solid var(--line); }
  .diagram-panel { padding:22px; }
  .diagram-title { flex-direction:column; }
  .diagram-flow { grid-template-columns:1fr; gap:14px; }
  .diagram-node:not(:last-child)::after { content:"↓"; right:auto; left:50%; top:auto; bottom:-17px; transform:translateX(-50%); }
  .diagram-node:nth-child(3)::after { display:block; }
  .approach-grid { grid-template-columns:1fr; }
  .cap-row { grid-template-columns:95px 1fr; }
  .site-footer { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .motion-track { animation:none; }
  .motion-viewport { overflow-x:auto; }
  .js .reveal { opacity:1; transform:none; transition:none; }
}


/* Strategy-aligned architecture examples */
.strategy-visuals { border-top:1px solid var(--line); }
.strategy-summary {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  margin-bottom:26px;
}
.strategy-chip,
.strategy-pillars {
  padding:24px 26px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.025);
}
.strategy-chip span {
  display:block;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.6rem;
  font-weight:800;
}
.strategy-chip strong {
  display:block;
  margin-top:8px;
  font-size:1.08rem;
  line-height:1.45;
  color:#e7eef5;
}
.strategy-pillars {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  align-content:center;
  gap:10px;
}
.strategy-pillars b {
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 10px;
  border:1px solid rgba(102,228,215,.16);
  border-radius:999px;
  background:rgba(102,228,215,.04);
  color:#c7d6e4;
  font-size:.72rem;
  font-weight:700;
}

.state-switcher {
  padding:26px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
.state-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:20px;
}
.state-tab {
  min-height:42px;
  padding:0 15px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.02);
  color:#aebdcc;
  font:inherit;
  font-size:.8rem;
  font-weight:700;
  cursor:pointer;
}
.state-tab[aria-selected="true"] {
  background:var(--accent);
  border-color:var(--accent);
  color:#07111f;
}
.state-panel { padding-top:8px; }
.state-panel-head {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:20px;
}
.state-panel-head h3 {
  margin:0;
  font-size:1.5rem;
  line-height:1.1;
  letter-spacing:-.03em;
}
.state-panel-head p {
  margin:0;
  max-width:760px;
  color:#97aabd;
}
.arch-columns {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  align-items:stretch;
}
.arch-column {
  position:relative;
  padding:20px 18px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:rgba(7,17,31,.45);
}
.arch-column::after {
  content:"→";
  position:absolute;
  top:50%;
  right:-13px;
  transform:translateY(-50%);
  color:var(--accent);
  font-size:1rem;
}
.arch-column:last-child::after { display:none; }
.arch-column span {
  display:block;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.6rem;
  font-weight:800;
  margin-bottom:12px;
}
.arch-column ul {
  margin:0;
  padding-left:18px;
  color:#9fb0c1;
  font-size:.79rem;
}
.arch-column li + li { margin-top:8px; }

.arch-columns.future .arch-column {
  background:rgba(102,228,215,.03);
  border-color:rgba(102,228,215,.18);
}
.state-insight {
  margin-top:22px;
  padding:18px 20px;
  border-left:2px solid var(--accent);
  background:rgba(102,228,215,.045);
}
.state-insight span {
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.58rem;
  font-weight:800;
}
.state-insight strong {
  display:block;
  margin-top:7px;
  color:#dfe8f0;
  font-size:.9rem;
  line-height:1.45;
}
.roadmap-flow {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.roadmap-flow div {
  position:relative;
  padding:20px 18px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:rgba(7,17,31,.45);
}
.roadmap-flow span {
  color:var(--accent);
  font-size:.64rem;
  letter-spacing:.1em;
  font-weight:800;
}
.roadmap-flow strong {
  display:block;
  margin:10px 0 8px;
  font-size:1rem;
}
.roadmap-flow b {
  color:#99adbf;
  font-size:.76rem;
  font-weight:500;
  line-height:1.45;
}

@media (max-width:1040px) {
  .strategy-summary { grid-template-columns:1fr; }
  .arch-columns { grid-template-columns:repeat(2,1fr); }
  .arch-column:nth-child(2)::after,
  .arch-column:nth-child(4)::after { display:none; }
  .roadmap-flow { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px) {
  .strategy-chip, .strategy-pillars, .state-switcher { padding:20px; }
  .strategy-pillars { grid-template-columns:1fr; }
  .arch-columns, .roadmap-flow { grid-template-columns:1fr; }
  .arch-column::after {
    content:"↓";
    top:auto;
    bottom:-15px;
    left:50%;
    right:auto;
    transform:translateX(-50%);
  }
  .arch-column:last-child::after { display:none; }
}
