.department-page {
  --department-accent: var(--blue);
  --department-soft: rgba(49, 94, 207, .12);
}

.accent-violet { --department-accent: #7854c7; --department-soft: rgba(120, 84, 199, .12); }
.accent-mint { --department-accent: #16866b; --department-soft: rgba(22, 134, 107, .12); }
.accent-amber { --department-accent: #a76518; --department-soft: rgba(167, 101, 24, .12); }
.accent-rose { --department-accent: #ae4b6f; --department-soft: rgba(174, 75, 111, .12); }
.accent-cyan { --department-accent: #147c93; --department-soft: rgba(20, 124, 147, .12); }
.accent-green { --department-accent: #477a3d; --department-soft: rgba(71, 122, 61, .12); }
.accent-indigo { --department-accent: #4d55ae; --department-soft: rgba(77, 85, 174, .12); }
.accent-gold { --department-accent: #916b18; --department-soft: rgba(145, 107, 24, .12); }
.accent-slate { --department-accent: #52697c; --department-soft: rgba(82, 105, 124, .12); }

.department-page .eyebrow:not(.eyebrow-light),
.department-page .card-kicker,
.department-page .solution-index { color: var(--department-accent); }

.department-hero { min-height: 760px; padding: 170px 0 100px; }
.department-hero-photo { position: absolute; inset: 0; z-index: 0; }
.department-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,21,34,.98) 0%, rgba(9,21,34,.91) 38%, rgba(9,21,34,.38) 70%, rgba(9,21,34,.12) 100%), linear-gradient(0deg, rgba(9,21,34,.72), transparent 60%); }
.department-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.department-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.04fr .82fr; align-items: center; gap: 85px; }
.department-hero-copy h1 { margin-bottom: 28px; font-size: clamp(3.2rem, 5.9vw, 5.65rem); }
.department-hero-copy .hero-lede { max-width: 680px; }
.department-hero-copy .button-group { margin-top: 34px; }
.hero-guardrail { margin: 28px 0 0; color: #8fa1b3 !important; font-size: .76rem; font-weight: 650; }
.dept-hero-glow { position: absolute; top: -300px; right: -120px; width: 850px; height: 850px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--department-accent) 28%, transparent), transparent 66%); }

.department-map { --system-step: 0; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-md); background-color: rgba(11, 27, 43, .86); background-image: radial-gradient(circle at 76% 35%, color-mix(in srgb, var(--department-accent) 16%, transparent), transparent 45%), linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px); background-size: auto, 32px 32px, 32px 32px; box-shadow: var(--shadow-lg); backdrop-filter: blur(16px); }
.map-top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 22px; border-bottom: 1px solid var(--line-dark); }
.dept-symbol { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; color: var(--mint); }
.dept-symbol .ui-icon { width: 24px; height: 24px; }
.map-top > div { display: flex; flex-direction: column; }
.map-top small { color: #7f93a6; font-size: .6rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.map-top strong { color: var(--white); font-family: var(--display); font-size: 1.1rem; font-weight: 500; }
.department-map .status-live i { animation: department-live 2s ease-in-out infinite; }
.map-activity { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 12px; min-height: 48px; padding: 9px 18px; border-bottom: 1px solid var(--line-dark); background: rgba(255,255,255,.025); }
.map-activity span { color: var(--mint); font-size: .54rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.map-activity strong { overflow: hidden; color: #afbdc8; font-size: .64rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.map-solutions { position: relative; display: grid; padding: 16px; gap: 10px; }
.map-solutions a { position: relative; z-index: 2; display: grid; min-height: 82px; grid-template-columns: 38px 1fr auto; align-items: center; gap: 12px; overflow: hidden; padding: 14px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(9,21,34,.72); transition: border-color 260ms ease, background-color 260ms ease, box-shadow 260ms ease, transform 260ms ease; }
.map-solutions a:hover { border-color: var(--department-accent); transform: translateX(4px); }
.map-solutions a > span { position: relative; z-index: 4; color: var(--mint); font-size: .65rem; font-weight: 850; }
.map-solutions strong { color: #e5ebf0; font-size: .81rem; }
.map-node-state { padding: 4px 6px; border-radius: 999px; background: rgba(255,255,255,.055); color: #71879a; font-size: .48rem; font-style: normal; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.map-workbar { position: absolute; right: 12px; bottom: 6px; left: 12px; overflow: hidden; height: 2px; border-radius: 999px; background: rgba(255,255,255,.045); }
.map-workbar span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--department-accent), var(--mint)); }
.map-solutions a.is-active { border-color: color-mix(in srgb, var(--department-accent) 68%, white); background: rgba(20,42,60,.96); box-shadow: 0 10px 28px rgba(2,8,14,.25), inset 0 0 22px color-mix(in srgb, var(--department-accent) 9%, transparent); transform: translateX(4px); }
.map-solutions a.is-active .map-node-state { background: var(--mint); color: var(--ink-deep); }
.map-solutions a.is-active .map-workbar span { animation: department-work 1.65s ease-in-out forwards; }
.map-solutions a.is-complete .map-node-state { background: rgba(79,131,255,.14); color: #9bb8ff; }
.map-signal { position: absolute; z-index: 3; top: 53px; left: 44px; width: 9px; height: 9px; border: 2px solid rgba(9,21,34,.9); border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 5px rgba(116,224,193,.1), 0 0 14px rgba(116,224,193,.65); transform: translateY(calc(var(--system-step) * 92px)); transition: transform 520ms cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.map-footer { display: flex; justify-content: space-between; padding: 14px 20px; border-top: 1px solid var(--line-dark); color: #7f93a6; font-size: .62rem; font-weight: 700; }

@keyframes department-live { 0%,100% { opacity: .65; box-shadow: 0 0 0 3px rgba(116,224,193,.08); } 50% { opacity: 1; box-shadow: 0 0 0 6px rgba(116,224,193,.16); } }
@keyframes department-work { 0% { width: 0; } 75%,100% { width: 100%; } }

.department-problem-grid { display: grid; grid-template-columns: 1fr .8fr; gap: 110px; }
.department-problem h2 { max-width: 700px; }
.problem-copy { padding-top: 40px; }
.problem-copy p { font-size: 1.06rem; }
.problem-copy .text-link { margin-top: 18px; }

.diagram-heading { display: grid; grid-template-columns: 1fr .72fr; align-items: end; gap: 75px; margin-bottom: 46px; }
.diagram-heading h2 { max-width: 720px; margin: 0; }
.diagram-heading > p { margin: 0; font-size: 1.02rem; }
.automation-flow { display: flex; align-items: stretch; justify-content: space-between; }
.flow-node { position: relative; display: flex; min-width: 0; flex: 1 1 0; min-height: 210px; align-items: flex-start; flex-direction: column; padding: 22px 18px; border: 1px solid #d5cbbb; border-radius: 16px; background: rgba(255,255,255,.64); }
.flow-node::after { content: ""; position: absolute; right: 14px; bottom: 14px; width: 7px; height: 7px; border-radius: 50%; background: #b6aa98; }
.flow-mode { color: var(--slate); font-size: .57rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.flow-icon { display: grid; width: 42px; height: 42px; margin: 22px 0 20px; place-items: center; border-radius: 11px; background: var(--white); color: var(--department-accent); box-shadow: 0 7px 20px rgba(17,34,56,.08); }
.flow-icon .ui-icon { width: 22px; height: 22px; }
.flow-node strong { color: var(--ink); font-family: var(--display); font-size: 1.08rem; font-weight: 500; line-height: 1.2; }
.flow-node small { margin-top: 8px; color: var(--slate); font-size: .67rem; line-height: 1.45; }
.flow-connector { display: grid; width: 34px; flex: 0 0 34px; place-items: center; color: #9b8f7d; font-size: 1rem; }
.flow-ai { border-color: rgba(49,94,207,.38); background: linear-gradient(155deg, rgba(49,94,207,.12), rgba(255,255,255,.78)); box-shadow: 0 12px 32px rgba(49,94,207,.09); }
.flow-ai .flow-mode, .flow-ai .flow-icon { color: var(--blue-dark); }
.flow-ai::after { background: var(--blue); box-shadow: 0 0 0 5px rgba(49,94,207,.1); }
.flow-human { border-color: rgba(167,101,24,.36); background: linear-gradient(155deg, rgba(245,185,95,.16), rgba(255,255,255,.78)); }
.flow-human .flow-mode, .flow-human .flow-icon { color: #8a5718; }
.flow-human::after { background: var(--amber); box-shadow: 0 0 0 5px rgba(245,185,95,.14); }
.diagram-legend { display: flex; justify-content: flex-end; gap: 20px; margin-top: 17px; color: var(--slate); font-size: .64rem; font-weight: 700; }
.diagram-legend span { display: flex; align-items: center; gap: 7px; }
.diagram-legend i { width: 8px; height: 8px; border-radius: 50%; }
.legend-ai { background: var(--blue); }
.legend-human { background: var(--amber); }

.department-solutions .section-heading h2 { max-width: 760px; margin-inline: auto; }
.solution-stack { display: grid; gap: 24px; }
.solution-detail { padding: 46px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); box-shadow: 0 10px 34px rgba(17,34,56,.045); }
.solution-detail-head { display: grid; grid-template-columns: 64px 1fr; align-items: start; gap: 22px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.solution-index { padding-top: 7px; font-size: .72rem; font-weight: 850; letter-spacing: .1em; }
.solution-detail .card-kicker { margin: 0 0 7px; }
.solution-detail h3 { margin: 0; font-family: var(--display); font-size: clamp(1.9rem, 3vw, 2.65rem); font-weight: 500; }
.solution-summary { max-width: 900px; margin: 30px 0; color: var(--ink); font-size: 1.18rem; line-height: 1.55; }
.solution-columns { display: grid; grid-template-columns: 1fr .85fr; gap: 70px; padding: 30px 0; border-top: 1px solid var(--line); }
.solution-detail h4 { margin: 0 0 15px; color: var(--ink); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.detail-list { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.detail-list li { position: relative; padding-left: 22px; color: var(--ink); font-size: .89rem; }
.detail-list li::before { content: ""; position: absolute; top: .72em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--department-accent); }
.solution-facts { display: grid; align-content: start; gap: 28px; }
.solution-facts > div { padding-left: 20px; border-left: 2px solid var(--department-accent); }
.solution-facts p { margin: 0; font-size: .88rem; }
.feature-strip { display: grid; grid-template-columns: 170px 1fr; gap: 24px; margin-bottom: 30px; padding: 24px; border-radius: var(--radius-sm); background: var(--department-soft); }
.feature-strip > strong { color: var(--ink); font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.feature-strip > div { display: flex; flex-wrap: wrap; gap: 7px; }
.feature-strip span { padding: 6px 9px; border: 1px solid color-mix(in srgb, var(--department-accent) 28%, transparent); border-radius: 999px; background: rgba(255,255,255,.65); color: var(--ink-soft); font-size: .67rem; font-weight: 700; }

.department-services-grid { display: grid; grid-template-columns: 1fr .85fr; align-items: center; gap: 100px; }
.department-services h2 { margin-bottom: 28px; }
.department-services .large-copy { margin-bottom: 34px; }
.service-tiles { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.service-tiles span { display: flex; min-height: 100px; align-items: flex-end; padding: 18px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); color: #d7e0e8; font-size: .77rem; font-weight: 750; }
.service-tiles span::before { content: "+"; align-self: flex-start; margin-right: auto; color: var(--mint); }
.service-tiles span:last-child { grid-column: 1 / -1; }

.workflow-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 100px; }
.workflow-heading { position: sticky; top: 120px; align-self: start; }
.workflow-heading h2 { margin-bottom: 25px; }
.workflow-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.workflow-list li { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 27px 10px; border-bottom: 1px solid var(--line); }
.workflow-list li > span { color: var(--department-accent); font-size: .67rem; font-weight: 850; }
.workflow-list p { margin: 0; color: var(--ink); font-size: .9rem; }

.trust-section { padding: 75px 0; }
.trust-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 90px; }
.trust-grid h2 { margin: 0; font-size: clamp(2.1rem, 3.7vw, 3.4rem); }
.trust-principles { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #cec4b4; border-left: 1px solid #cec4b4; }
.trust-principles span { display: flex; min-height: 145px; flex-direction: column; padding: 20px; border-right: 1px solid #cec4b4; border-bottom: 1px solid #cec4b4; color: var(--slate); font-size: .78rem; }
.trust-principles strong { margin-bottom: auto; color: var(--ink); font-family: var(--display); font-size: 1.25rem; font-weight: 500; }

.related-section { padding: 55px 0; border-bottom: 1px solid var(--line); }
.related-section .container > p { margin-bottom: 17px; color: var(--slate); font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.related-section .container > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.related-section a { display: grid; min-height: 74px; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 14px 17px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); font-size: .8rem; font-weight: 750; transition: transform var(--transition), border-color var(--transition); }
.related-section a:hover { transform: translateY(-2px); border-color: var(--department-accent); }
.related-section a > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; background: var(--department-soft); color: var(--department-accent); }
.related-section a > span .ui-icon { width: 18px; height: 18px; }
.related-section i { font-style: normal; color: var(--slate); }

@media (max-width: 1020px) {
  .department-hero { min-height: 0; }
  .department-hero-photo img { object-position: 63% center; }
  .department-hero-grid { grid-template-columns: 1fr; gap: 70px; }
  .department-map { width: min(100%, 690px); }
  .department-problem-grid, .department-services-grid { gap: 55px; }
  .diagram-heading { gap: 45px; }
  .automation-flow { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); overflow-x: auto; padding-bottom: 14px; }
  .flow-connector { display: none; }
  .solution-columns { gap: 45px; }
  .workflow-grid { gap: 55px; }
  .trust-grid { grid-template-columns: 1fr; gap: 45px; }
}

@media (max-width: 760px) {
  .department-hero { padding: 135px 0 85px; }
  .department-hero-photo::after { background: linear-gradient(90deg, rgba(9,21,34,.97), rgba(9,21,34,.67)), linear-gradient(0deg, rgba(9,21,34,.82), transparent 60%); }
  .department-hero-copy h1 { font-size: clamp(2.75rem, 13vw, 4.1rem); }
  .department-problem-grid, .department-services-grid, .workflow-grid { grid-template-columns: 1fr; gap: 36px; }
  .diagram-heading { grid-template-columns: 1fr; gap: 22px; }
  .automation-flow { display: flex; align-items: stretch; flex-direction: column; overflow: visible; padding: 0; }
  .flow-node { min-height: 0; padding: 20px; }
  .flow-icon { margin: 16px 0 14px; }
  .flow-connector { display: grid; width: 100%; height: 28px; flex: 0 0 28px; transform: rotate(90deg); }
  .diagram-legend { justify-content: flex-start; }
  .problem-copy { padding-top: 0; }
  .solution-detail { padding: 28px 20px; }
  .solution-detail-head { grid-template-columns: 42px 1fr; gap: 10px; }
  .solution-columns { grid-template-columns: 1fr; gap: 35px; }
  .feature-strip { grid-template-columns: 1fr; }
  .workflow-heading { position: static; }
  .trust-principles { grid-template-columns: 1fr; }
  .trust-principles span { min-height: 110px; }
  .related-section .container > div { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .map-top { grid-template-columns: auto 1fr; }
  .map-top .status { display: none; }
  .map-solutions a { grid-template-columns: 28px 1fr auto; }
  .map-signal { left: 35px; }
  .service-tiles { grid-template-columns: 1fr; }
  .service-tiles span:last-child { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .department-map .status-live i,
  .map-solutions a.is-active .map-workbar span { animation: none !important; }
  .map-signal { display: none; }
}
