/* Delivery-family layouts use shared type, containers and global components. */
.implementation-page{--pi-body:var(--body-text);--pi-line:#c4dce3}
.pi-hero{padding-bottom:65px}
.pi-hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:7%;align-items:center;padding-top:30px}
.pi-hero .ip-label{color:#96dbdd}
.pi-hero h1{margin-bottom:25px}.pi-hero h1 em{color:var(--ip-teal)}
.pi-hero-copy>p{font-size:1.125rem;line-height:1.75;color:var(--body-text-on-dark);max-width:570px;margin-bottom:29px}
.pi-hero-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:24px 30px}
.pi-hero-actions .ip-inline-link{color:#a6ece4;width:fit-content;align-self:center}
.pi-hero-figure{min-width:0;margin:0;background:#0b3043;border:1px solid #355b6e}
.pi-hero-image{position:relative}.pi-hero-image img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.pi-hero-image .image-corners{inset:18px;opacity:.9}
.pi-hero-figure figcaption{font-size:1rem;line-height:1.75;color:#b6d3db;padding:24px 26px}
.pi-hero-threads{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px;padding:22px 26px;margin:0;border-top:1px solid #355b6e;font-size:.875rem;line-height:1.6;color:#8edddb}
.pi-focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pi-focus-grid article{display:flex;flex-direction:column;border-top:1px solid var(--pi-line);padding-top:27px;min-width:0}
.pi-focus-grid .ms-icon{font-size:32px;color:#1392a3;margin-bottom:24px;align-self:flex-start}
.pi-focus-grid h3{font-size:1.5rem;line-height:1.3;margin-bottom:20px}
.pi-focus-grid p{font-size:1rem;line-height:1.75;color:var(--pi-body);margin-bottom:27px}
.pi-focus-grid strong{font-size:1rem;line-height:1.65;font-weight:700;border-top:1px solid var(--pi-line);padding-top:20px;margin-top:auto}
.pi-path{background:#092d42;color:#fff}
.pi-path .ip-label{color:#96dbdd}.pi-path h2 em{color:var(--ip-teal)}
.pi-path .ip-section-heading>p{color:var(--body-text-on-dark)}
.pi-gate-choices{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0 0 36px}
.pi-gate-choices>a{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:0 0 21px;min-width:0;color:#b6d3db;border-bottom:2px solid #355b6e;text-decoration:none;transition:color .2s,border-color .2s}
.pi-gate-number{display:grid;place-items:center;width:48px;height:48px;border:1px solid #527f91;background:#092d42;font:700 1rem/1 var(--font-display);color:#9ac2cd;transition:background .2s,border-color .2s}
.pi-gate-title{font:700 1.2rem/1.4 var(--font-display);letter-spacing:-.025em}
.pi-gate-choices>a:is(:hover,[aria-selected=true]){color:#fff;border-color:#63d7d4}
.pi-gate-choices>a[aria-selected=true] .pi-gate-number{color:#a7f1e7;background:#104f60;border-color:#63d7d4}
.pi-gate-trace{position:absolute;z-index:0;top:24px;left:24px;right:14%;height:1px;background:var(--sm-line,#355b6e);overflow:hidden}
.pi-gate-trace i{position:absolute;left:-15%;height:1px;width:14%;background:linear-gradient(90deg,transparent,var(--sm-signal,#82ece1));animation:ip-packet var(--sm-loop,5.8s) linear infinite;animation-play-state:paused}
.pi-path.ip-animation-active .pi-gate-trace i{animation-play-state:running}
.pi-gate-panel{display:grid;grid-template-columns:1fr 1fr;gap:32px 8%;border:1px solid #355b6e;background:#08283a;padding:38px;min-height:430px}
.pi-gate-panel+.pi-gate-panel{margin-top:28px}
.pi-gate-question h3{font-size:clamp(1.75rem,2.5vw,2.6rem);line-height:1.22;margin-bottom:22px}
.pi-gate-panel p{font-size:1rem;line-height:1.75;color:var(--body-text-on-dark)}
.pi-gate-panel h4{font:700 .875rem/1.6 var(--font-body);color:#8edddb;margin:0 0 12px}
.pi-gate-people{border-top:1px solid #355b6e;padding-top:23px;margin-top:25px}
.pi-gate-people p{margin-bottom:0}
.pi-gate-evidence ol{list-style:none;padding:0;margin:0}
.pi-gate-evidence li{display:grid;grid-template-columns:27px 1fr;gap:12px;padding:19px 0;border-top:1px solid #355b6e}
.pi-gate-evidence li:last-child{padding-bottom:0}
.pi-gate-evidence li>span{font-size:.875rem;line-height:1.7;color:#79c5cf}
.pi-gate-evidence strong{font-size:1rem;line-height:1.6;font-weight:600}
.pi-gate-evidence p{margin:8px 0 0}
.pi-gate-next{grid-column:1/-1;display:grid;grid-template-columns:1fr 2.3fr;gap:26px;padding-top:25px;border-top:1px solid #355b6e}
.pi-gate-next>span{color:#8edddb;font-size:.875rem;line-height:1.7;font-weight:700}
.pi-gate-next p{margin:0}
.implementation-page .pi-scope-note{font-size:.875rem;line-height:1.7;color:var(--body-text-on-dark);margin:25px 0 0}
.pi-boundaries{background:#edf7f8}
.pi-boundary-head,.pi-boundary-rows article{display:grid;grid-template-columns:1fr 1.1fr 1.4fr;gap:5%}
.pi-boundary-head{font-size:.875rem;line-height:1.6;font-weight:700;color:#167f8e;padding-bottom:22px}
.pi-boundary-rows article{border-top:1px solid var(--pi-line);padding-block:28px;align-items:start}
.pi-boundary-rows article:last-child{border-bottom:1px solid var(--pi-line)}
.pi-boundary-rows h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px;font-size:1.35rem;line-height:1.4;margin:0}
.pi-boundary-rows h3>span{font:400 .875rem/1.6 var(--font-body);color:#167f8e}
.pi-boundary-rows p{font-size:1rem;line-height:1.75;color:var(--pi-body);margin:0}
.pi-boundary-label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.pi-adoption-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:start}
.pi-adoption h2{margin-bottom:28px}.pi-adoption p{font-size:1rem;line-height:1.8;color:var(--pi-body)}
.pi-adoption .ip-inline-link{color:#167f8e;max-width:fit-content;margin-top:30px}
.pi-adoption ol{padding:0;margin:0;list-style:none}
.pi-adoption li{display:grid;grid-template-columns:32px 1fr;gap:20px;padding:27px 0;border-top:1px solid var(--pi-line)}
.pi-adoption li:first-child{padding-top:0;border-top:0}
.pi-adoption li>span{font-size:.875rem;color:#167f8e;padding-top:5px}
.pi-adoption h3{font-size:1.5rem;line-height:1.3;margin-bottom:15px}
.pi-adoption li p{margin-bottom:0}
.pi-questions{background:#edf7f8}
.pi-questions .ip-faq-list :is(summary,p){font-size:1rem}.pi-questions .ip-faq-list p{color:var(--pi-body);line-height:1.8}
/* html already owns the sticky-header scroll padding. */
.implementation-page section[id]{scroll-margin-top:0}
@media(max-width:1100px){.pi-hero-grid{gap:5%}.pi-gate-choices{gap:16px}.pi-gate-panel{padding:30px;gap:30px 6%}}
@media(max-width:850px){.pi-hero-grid{grid-template-columns:1fr;gap:36px}.pi-hero-figure{max-width:680px}.pi-hero{padding-bottom:55px}.pi-focus-grid{grid-template-columns:1fr;gap:32px}.pi-gate-choices{grid-template-columns:1fr;gap:0;margin-bottom:30px}.pi-gate-choices>a{flex-direction:row;align-items:center;gap:20px;padding:16px 0}.pi-gate-number{flex-shrink:0}.pi-gate-title{font-size:1.125rem}.pi-gate-trace{display:none}.pi-gate-panel{grid-template-columns:1fr;gap:28px;min-height:0}.pi-adoption-grid{grid-template-columns:1fr;gap:36px}.pi-boundary-head{display:none}.pi-boundary-rows article{grid-template-columns:1fr;gap:20px;padding-block:27px}.pi-boundary-label{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;display:block;font-size:.875rem;line-height:1.6;font-weight:700;color:#167f8e;margin-bottom:8px}.pi-gate-next{grid-template-columns:1fr;gap:10px}}
@media(max-width:600px){.pi-hero-grid{padding-top:18px}.pi-hero h1{font-size:clamp(2.8rem,11vw,3.4rem);line-height:1.1}.pi-hero-copy>p{font-size:1rem}.pi-hero-figure figcaption,.pi-hero-threads{padding:20px}.pi-hero-actions{gap:25px}.pi-gate-panel{padding:24px}.pi-gate-number{width:40px;height:40px}.pi-gate-choices>a{padding:14px 0;gap:17px}.pi-gate-evidence li{gap:8px;grid-template-columns:23px 1fr}.pi-adoption li{gap:14px;grid-template-columns:26px 1fr}}
@media(prefers-reduced-motion:reduce){.pi-gate-trace i{animation:none}.pi-gate-choices>a,.pi-gate-number{transition:none}}

/* Keep the release-focus reading questions on the shared prose ink. */
.pi-focus-grid strong{color:var(--body-text)}
.industry-page .pi-hero-actions .ip-inline-link:is(:hover,:focus-visible){color:var(--link-hover-on-dark)}
