.sd-container{width:calc(100% - 80px);max-width:1280px;margin:auto}.solution-detail .solution-hero{height:690px;position:relative;display:flex;align-items:center;background-color:#183452;background-size:cover;background-position:center 54%;color:white}.solution-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#051225d9,#05122580 44%,#0512251f 85%),linear-gradient(0deg,#05122540,transparent 70%)}.solution-hero-copy{position:relative}.solution-hero-label{font-size:13px;border:1px solid #ffffff70;display:inline-block;padding:4px 12px;border-radius:5px;margin-bottom:22px}.solution-detail .solution-hero h1{font-size:clamp(38px,4vw,64px);line-height:1.4;font-weight:600;color:white;margin:0}.solution-hero-en{font-size:12px;letter-spacing:2px;color:#ffffffb8;margin-top:13px}.solution-hero-description{font-size:17px;line-height:2.05;max-width:660px;white-space:pre-line;margin-top:28px;color:#f0f4fa}.solution-hero-tags{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:25px;padding-top:20px;border-top:1px solid #ffffff30;width:fit-content;max-width:660px}.solution-hero-tags span{font-size:12px;color:#ffffffdc}.solution-hero-tags span:before{content:'';display:inline-block;width:4px;height:4px;background:#9ecbff;vertical-align:middle;margin-right:8px}.solution-hero-down{position:absolute;left:50%;bottom:27px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:0;color:white;line-height:1}.solution-hero-down::after{content:'';display:block;width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}.solution-hero-down:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:4px}.solution-system{padding:64px 0;background:#f5f7fc;border-top:1px solid #e5ebf3;scroll-margin-top:110px}.sd-section-heading{text-align:center;margin-bottom:35px}.sd-section-heading>span{font:600 11px/1.8 Arial,sans-serif;letter-spacing:2px;color:#8092ae}.sd-section-heading h2{font-size:34px;color:#183352;font-weight:400;margin:9px 0 12px}.sd-section-heading p{font-size:14px;color:#75849c}.sd-section-heading small{display:block;font-size:12px;color:#7788a4;margin-top:17px}.sd-diagram{position:relative}.sd-rows{display:flex;flex-direction:column;gap:100px;position:relative;z-index:2;pointer-events:none}.sd-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}.sd-group{--sd-accent:#315bc4;border:1px solid #d8e1ef;border-top:3px solid var(--sd-accent);border-radius:8px;padding:20px;background:white;min-width:0;pointer-events:auto}.sd-theme-teal{--sd-accent:#439a91}.sd-theme-purple{--sd-accent:#7168af}.sd-theme-gold{--sd-accent:#bd9759}.sd-theme-slate{--sd-accent:#7185a4}.sd-group-heading{margin-bottom:18px}.sd-group-heading h3{font-size:18px;font-weight:600;line-height:1.6;color:var(--sd-accent);margin:0}.sd-group-heading>span{display:block;font:9px/1.6 Arial,sans-serif;color:#7e90ab;letter-spacing:1px;text-transform:uppercase;margin-top:3px}.sd-products{display:grid;gap:13px}.sd-group--wide .sd-products{grid-template-columns:repeat(2,minmax(0,1fr))}.sd-product{display:flex;flex-direction:column;overflow:hidden;border:1px solid #e1e7f1;border-radius:5px;background:white;color:inherit;min-width:0;transition:border-color .18s,box-shadow .18s,transform .18s}.sd-product:hover{border-color:#6174d4;box-shadow:0 5px 18px #1c3b7512;transform:translateY(-2px)}.sd-product:focus-visible{outline:2px solid #1626c8;outline-offset:3px}.sd-product-image{position:relative;height:150px;background:#EEF1FF;overflow:hidden}.sd-product-image img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}.sd-product-copy{padding:12px 13px;flex:1;min-width:0;display:flex;flex-direction:column}.sd-product-copy h4{font-size:14px;font-weight:500;line-height:1.6;color:#2a4265;margin:0;overflow-wrap:anywhere}.sd-product-copy p{font-size:11px;line-height:1.8;color:#7e8da3;margin-top:4px}.sd-product-action{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#1626c8;font-size:10px;line-height:1.6;border-top:1px solid #edf0f7;margin-top:11px;padding-top:8px}.sd-product-action>span{font-size:15px;line-height:1}.sd-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:1;pointer-events:none}.sd-connections text{font-family:inherit;font-size:11px;fill:#647c9e}.sd-connections rect{fill:#f5f7fc}.sd-mobile-relationships{display:none}
@media(max-width:1000px){.sd-container{width:calc(100% - 40px)}.sd-row{gap:12px}.sd-group{padding:13px}.sd-product-copy{padding:10px}.sd-group-heading h3{font-size:16px}.sd-product-copy h4{font-size:13px}.sd-connections text{font-size:10px}}
@media(max-width:720px){.solution-detail .solution-hero{height:640px;background-position:60% center}.solution-hero-label{font-size:11px}.solution-hero-description{font-size:14px;line-height:2;margin-top:24px}.solution-hero-en{font-size:9px;letter-spacing:.7px}.solution-hero-tags{gap:13px 17px}.solution-hero-tags span{font-size:10px}.solution-system{padding:40px 0}.sd-section-heading h2{font-size:27px}.sd-section-heading p{font-size:12px}.sd-rows{gap:18px}.sd-row{display:flex;flex-direction:column;gap:18px}.sd-group{width:100%;padding:15px}.sd-products,.sd-group--wide .sd-products{grid-template-columns:1fr}.sd-product{flex-direction:row;align-items:stretch}.sd-product-image{flex:0 0 40%;height:auto;min-height:115px}.sd-product-image img{height:100%}.sd-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sd-group-heading>span{text-align:right;letter-spacing:.4px;font-size:8px}.sd-product-copy h4{font-size:13px}.sd-product-copy p{font-size:10px}.sd-connections{display:none}.sd-mobile-relationships{display:block;list-style:none;padding:20px 0 0;margin:0;color:#647c9e;font-size:11px}.sd-mobile-relationships li{padding:10px 0;border-bottom:1px solid #e0e7f2}.sd-mobile-relationships b{display:block;color:#38577f;font-weight:500}.sd-mobile-relationships span{display:block;margin-top:4px}}
@media(prefers-reduced-motion:reduce){.sd-product{transition:none}}

/* Follow the site's shared type scale for solution content and product nodes. */
.solution-detail {
  --sd-body: max(16px, var(--type-body));
  --sd-label: max(14px, var(--type-small));
  --sd-caption: max(12px, var(--type-caption));
}
.solution-detail .solution-hero {
  height: auto;
  min-height: 690px;
  padding: 56px 0 96px;
}
.solution-hero-tags {
  gap: 10px;
  padding-top: 0;
  border-top: 0;
}
.solution-hero-tags span {
  padding: 3px 10px;
  border: 1px solid #ffffff66;
  border-radius: 5px;
  background: #13294380;
}
.solution-hero-tags span::before { content: none; }
/* Match the breadcrumb's site column without widening the diagram canvas. */
.sd-container.solution-hero-copy {
  width: 100%;
  max-width: var(--site-width, 1280px);
  box-sizing: border-box;
  text-align: left;
}
.solution-hero-description, .solution-hero-tags {
  max-width: 800px;
}
@media (max-width: 1330px) {
  .sd-container.solution-hero-copy { padding-inline: 22px; }
}
.solution-hero-label, .solution-hero-en, .solution-hero-tags span {
  font-size: var(--sd-label); line-height: 1.7;
}
.solution-hero-en { letter-spacing: 1.5px; color: #ffffffd6; }
.solution-hero-description {
  font-size: max(18px, var(--type-body)); line-height: 1.9;
}
.sd-section-heading > span {
  font-size: var(--sd-label); font-weight: 400; letter-spacing: 2px;
  color: #657795;
}
.sd-section-heading h2 {
  font-size: var(--type-section); line-height: 1.5;
  font-weight: var(--weight-heading);
}
.sd-section-heading p {
  font-size: var(--sd-body); line-height: 1.8; color: #61738e;
}
.sd-group-heading, .sd-product-copy, .sd-mobile-relationships { text-align: center; }
.sd-group-heading h3 {
  font-size: var(--type-subsection); line-height: 1.5;
  font-weight: var(--weight-emphasis);
}
.sd-group-heading > span {
  font-size: var(--sd-caption); line-height: 1.7;
  letter-spacing: .6px; color: #667994; overflow-wrap: anywhere;
}
.sd-product-copy { padding: 15px 16px; }
.sd-product-copy h4 {
  font-size: var(--type-card); font-weight: var(--weight-emphasis);
  line-height: 1.6;
}
.sd-product-copy p {
  font-size: var(--type-card-body); line-height: 1.8; color: #61738e;
  overflow-wrap: anywhere;
}
.sd-product-action {
  font-size: var(--sd-label); line-height: 1.7;
  margin-top: 12px; padding-top: 10px;
}
.sd-product-action.site-action.action-link {
  display: flex; width: 100%; justify-content: center; text-align: center;
  padding-left: 1.2em; padding-right: 1.2em;
}
.sd-product-action.site-action::after { position: absolute; right: 0; margin-left: 0; }
.sd-connections text { font-size: var(--sd-label); fill: #526e94; }

/* The diagram already provides bottom spacing on its tinted background. */
.solution-detail .solution-system + .cta-band { margin-top: 0; }


/* Standard positions share one card width; expanded positions grow by card count. */
.sd-row { --sd-grid-gap: 16px; gap: var(--sd-grid-gap); }
.sd-group {
  width: var(--sd-group-width, 100%);
  justify-self: var(--sd-group-align, center);
}
.sd-products, .sd-group--wide .sd-products {
  grid-template-columns: repeat(var(--sd-product-columns, 1), minmax(0, 1fr));
}

/* Give readable product text the full column on tablets as well as phones. */
@media (max-width: 1000px) {
  .sd-rows, .sd-row { gap: 20px; }
  .sd-row { display: flex; flex-direction: column; }
  .sd-group { width: 100%; padding: 18px; }
  .sd-products, .sd-group--wide .sd-products { grid-template-columns: 1fr; }
  .sd-product { flex-direction: row; align-items: stretch; }
  .sd-product-image { flex: 0 0 40%; height: auto; min-height: 125px; }
  .sd-product-image img { height: 100%; }
  .sd-group-heading { display: block; }
  .sd-group-heading > span { text-align: center; margin-top: 5px; }
  .sd-connections { display: none; }
  .sd-mobile-relationships {
    display: block; list-style: none; padding: 24px 0 0; margin: 0;
    font-size: var(--sd-label); line-height: 1.8; color: #61738e;
  }
  .sd-mobile-relationships li { padding: 13px 0; border-bottom: 1px solid #e0e7f2; }
  .sd-mobile-relationships b { display: block; color: #38577f; font-weight: 500; }
  .sd-mobile-relationships span { display: block; margin-top: 5px; }
}
@media (max-width: 720px) {
  .solution-detail .solution-hero {
    height: auto; min-height: 640px; padding: 64px 0 90px;
  }
  .solution-hero-description { font-size: var(--sd-body); line-height: 1.9; }
  .solution-hero-en { letter-spacing: .7px; }
  .sd-group { padding: 15px; }
  .sd-product-copy { padding: 13px 12px; }
}

/* One set of product nodes serves both the interactive overview and the readable list. */
.sd-view-tabs, .sd-view-hint, .sd-zoom-controls { display: none; }
@media (max-width: 1000px) {
  .sd-viewer.is-enhanced .sd-view-tabs {
    display: flex; border: 1px solid #d8e1ef; border-radius: 6px;
    overflow: hidden; background: #fff;
  }
  .sd-view-tabs button { flex: 1; border: 0; padding: 12px 8px; background: #fff;
    color: #667c9f; font: inherit; font-size: 14px; cursor: pointer; }
  .sd-view-tabs button[aria-selected="true"] { background: #1626c8; color: #fff; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-view-hint {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 13px 2px; font-size: 12px; color: #71839d;
  }
  .sd-view-hint button { display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 0 4px 8px; border: 0; color: #1626c8; background: transparent;
    font: inherit; white-space: nowrap; cursor: pointer; }
  .sd-view-hint svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; }
  .sd-viewer.is-enhanced[data-view="list"] .sd-viewport { margin-top: 20px; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-viewport {
    position: relative; height: clamp(420px, 65svh, 620px); overflow: hidden;
    background: #f5f7fc; border: 1px solid #e0e7f2; border-radius: 6px;
    touch-action: none; cursor: grab; isolation: isolate;
  }
  .sd-viewer.is-dragging .sd-viewport { cursor: grabbing; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-diagram {
    position: absolute; top: 0; left: 0; width: 1280px; padding: 28px;
    transform-origin: 0 0; will-change: transform;
  }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-rows { gap: 100px; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-row {
    display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px;
  }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-group { width: var(--sd-group-width, 100%); padding: 20px; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-products {
    grid-template-columns: repeat(var(--sd-product-columns, 1), minmax(0, 1fr));
  }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-product { flex-direction: column; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-product-image { flex: none; height: 150px; min-height: 0; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-product-copy { padding: 15px 16px; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-group-heading h3 { font-size: 24px; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-product-copy h4 { font-size: 18px; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-connections { display: block; }
  .sd-viewer.is-enhanced[data-view="diagram"] .sd-zoom-controls {
    display: flex; position: absolute; z-index: 3; bottom: 12px; left: 50%;
    transform: translateX(-50%); align-items: center; gap: 5px; padding: 4px 6px;
    border: 1px solid #d8e1ef; border-radius: 7px; background: #fffffff5;
    box-shadow: 0 4px 12px #1833520d; cursor: default; touch-action: manipulation;
  }
  .sd-zoom-controls button { min-width: 32px; height: 36px; padding: 0 7px; border: 0;
    color: #1626c8; background: none; font: inherit; font-size: 20px; cursor: pointer; }
  .sd-zoom-controls output { min-width: 37px; text-align: center; color: #5f7698; font: 12px Arial, sans-serif; }
  .sd-zoom-controls [data-sd-fit] { font-size: 12px; border-left: 1px solid #e0e7f2;
    padding-left: 12px; margin-left: 3px; white-space: nowrap; }
  .sd-viewer button:focus-visible, .sd-viewport:focus-visible { outline: 2px solid #1626c8; outline-offset: 2px; }
  .sd-viewer.is-fullscreen {
    position: fixed; inset: 0; z-index: 2000; display: flex; flex-direction: column;
    height: 100dvh; padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    background: #f5f7fc;
  }
  .sd-viewer.is-fullscreen .sd-view-tabs { flex-shrink: 0; }
  .sd-viewer.is-fullscreen .sd-viewport { flex: 1; min-height: 0; height: auto; }
  .sd-viewer.is-fullscreen[data-view="list"] .sd-viewport { overflow: auto; }
  .sd-viewer.is-fullscreen[data-view="list"] .sd-view-hint { display: flex; justify-content: flex-end; padding: 12px 0; }
  .sd-viewer.is-fullscreen[data-view="list"] .sd-view-hint > span { display: none; }
}

/* Clear connections with consistent arrows and readable label badges. */
.sd-connections .sd-connection { stroke: #4565ad; stroke-width: 2.4; }
.sd-connections .sd-arrow-head { fill: #4565ad; }
.sd-connections text { fill: #3e5682; font-weight: 500; }
.sd-connections rect { fill: #fff; stroke: #dce4f3; stroke-width: 1; }

/* Curated canvas layouts keep their geometry while the viewer scales to fit. */
.sd-diagram[data-layout="canvas"] { position: absolute; top: 0; left: 0; width: 1280px !important; padding: 0 !important; transform-origin: 0 0; }
.sd-diagram[data-layout="canvas"] .sd-rows { display: block; position: relative; width: 1280px; z-index: auto; }
.sd-diagram[data-layout="canvas"] .sd-group { position: absolute; left: var(--sd-x); top: var(--sd-y); width: var(--sd-width) !important; min-height: var(--sd-min-height); padding: 20px; z-index: 2; }
.sd-diagram[data-layout="canvas"] .sd-products { display: grid; grid-template-columns: repeat(var(--sd-product-columns), minmax(0,1fr)) !important; column-gap: 84px; row-gap: 20px; }
.sd-diagram[data-layout="canvas"] .sd-product { flex-direction: column; }
.sd-diagram[data-layout="canvas"] .sd-product-image { flex: none; height: 150px; min-height: 0; }
.sd-diagram[data-layout="canvas"] .sd-group--core { background: #eef2ff; border: 2px solid #6174c4; border-top-width: 3px; }
.sd-diagram[data-layout="canvas"] .sd-connections { z-index: 3; }
.sd-viewport:has(>.sd-diagram[data-layout="canvas"]) { position: relative; overflow: hidden; }
.sd-module:not(:has(.sd-product-image)) { min-height: 210px; justify-content: center; background: #f5f7fc; }
.sd-module .sd-product-copy { justify-content: center; }
.sd-module:hover { transform: none; box-shadow: none; border-color: #e1e7f1; }
.sd-display.sd-product { display: grid; grid-template-columns: 3fr 1fr; grid-template-rows: repeat(3,80px); gap: 8px; padding: 8px; min-height: 0; }
.sd-display-panel { position: relative; min-width: 0; overflow: hidden; display: grid; place-items: center; border: 1px solid #d6dfed; border-radius: 4px; background: #eaf0f9; font-size: 14px; text-align: center; }
.sd-display-panel:first-child { grid-row: span 3; }
.sd-display-panel img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.sd-display-panel span { position: relative; padding: 5px 9px; background: #eaf0f9e6; border-radius: 3px; }
@media(max-width:1000px) {
 .sd-viewer[data-view="list"] .sd-diagram[data-layout="canvas"] { position: relative; width: 100% !important; height: auto !important; }
 .sd-viewer[data-view="list"] .sd-diagram[data-layout="canvas"] .sd-rows { width: 100%; height: auto !important; display: grid; gap: 20px; }
 .sd-viewer[data-view="list"] .sd-diagram[data-layout="canvas"] .sd-group { position: relative; left: auto; top: auto; width: 100% !important; min-height: 0; }
 .sd-viewer[data-view="list"] .sd-diagram[data-layout="canvas"] .sd-products { grid-template-columns: 1fr !important; gap: 16px; }
 .sd-viewer[data-view="list"] .sd-module:not(:has(.sd-product-image)) { min-height: 110px; }
 .sd-viewer[data-view="list"] .sd-product:not(.sd-module) { flex-direction: row; }
 .sd-viewer[data-view="list"] .sd-product-image { flex: 0 0 40%; height: auto; min-height: 125px; }
}

.sd-connections .sd-edge-label--internal text { font-size: 12px; }

.sd-viewer:not(.is-enhanced) .sd-diagram[data-layout="canvas"] { position: relative; width: 100% !important; }
.sd-viewer:not(.is-enhanced) .sd-diagram[data-layout="canvas"] .sd-rows { width: 100%; display: grid; gap: 20px; }
.sd-viewer:not(.is-enhanced) .sd-diagram[data-layout="canvas"] .sd-group { position: relative; left: auto; top: auto; width: 100% !important; }

.sd-list-relationships { display: none; }
@media(max-width:1000px) {
 .sd-viewer[data-view="list"] .sd-list-relationships { display: grid; gap: 12px; list-style: none; padding: 24px 0 0; margin: 0; font-size: 14px; line-height: 1.8; color: #526e94; }
 .sd-list-relationships li { border-top: 1px solid #dce4ef; padding-top: 12px; }
 .sd-list-relationships b { display: block; font-weight: 500; }
 .sd-list-relationships span { display: block; }
}

.sd-viewer:not(.is-enhanced) .sd-diagram[data-layout="canvas"] .sd-products { grid-template-columns: 1fr !important; }
