/* FAST SRL — IBM Carbon (White theme) with the FAST violet as interactive colour. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:300;font-display:swap;src:url(/_fast/plex-sans-300.c4557c8a3ca4.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/_fast/plex-sans-400.3b646991d300.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/_fast/plex-sans-600.8960851d691c.woff2) format("woff2")}

:root{
  --background:#ffffff;--layer:#f4f4f4;--layer-hover:#e8e8e8;--layer-2:#ffffff;
  --border-subtle:#e0e0e0;--border-strong:#8d8d8d;
  --text-primary:#161616;--text-secondary:#525252;--text-helper:#6f6f6f;--text-on-color:#ffffff;
  --interactive:#5525ba;--interactive-hover:#4a1fa6;--interactive-active:#2f1468;
  --link:#5525ba;--link-hover:#2f1468;--focus:#5525ba;
  --tag-bg:#ece4fb;--tag-text:#3a1786;
  --font:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --s02:.25rem;--s03:.5rem;--s04:.75rem;--s05:1rem;--s06:1.5rem;--s07:2rem;--s08:2.5rem;--s09:3rem;--s10:4rem;--s11:5rem;--s12:6rem;--s13:10rem;
  --gutter:2rem;--max:82rem;--header:3rem;
  --ease:cubic-bezier(.2,0,.38,.9);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 3.5rem);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--background);color:var(--text-primary);font-family:var(--font);font-size:1rem;line-height:1.5;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover);text-decoration:underline}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
strong{font-weight:600}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:var(--s05);top:-4rem;z-index:100;background:var(--interactive);color:#fff;padding:var(--s04) var(--s05)}
.skip-link:focus{top:var(--s03);color:#fff}
main{display:block;min-height:50vh}
main:focus{outline:none}

/* Type scale — Carbon productive/expressive */
.display{font-size:clamp(2.625rem,1.4rem + 4vw,4.75rem);line-height:1.08;font-weight:300;letter-spacing:-.015em;text-wrap:balance}
.h2,.section h2{font-size:clamp(2rem,1.3rem + 2vw,2.625rem);line-height:1.2;font-weight:300;letter-spacing:0;text-wrap:balance}
.h3,.section h3{font-size:1.25rem;line-height:1.4;font-weight:400}
.h4{font-size:1rem;line-height:1.5;font-weight:600}
.lead{font-size:clamp(1.125rem,1rem + .4vw,1.375rem);line-height:1.45;font-weight:400;color:var(--text-secondary);max-width:38em}
.body-lg{font-size:1.125rem;line-height:1.55;color:var(--text-secondary)}
.muted{color:var(--text-secondary)}
.label{font-size:.875rem;line-height:1.3;font-weight:400;letter-spacing:.16px;color:var(--text-secondary)}
.helper{font-size:.75rem;line-height:1.33;letter-spacing:.32px;color:var(--text-helper)}
.prose p+p{margin-top:var(--s05)}
.prose{max-width:40em}

/* Masthead — Carbon UI shell, white */
.masthead{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--border-subtle)}
.masthead__inner{display:flex;align-items:stretch;height:var(--header);max-width:var(--max);margin-inline:auto;padding-left:var(--gutter)}
.brand{display:flex;align-items:center;margin-right:var(--s07);flex-shrink:0}
.brand img{width:auto;height:1.375rem}
.nav{display:flex;align-items:stretch;flex:1}
.nav a{display:flex;align-items:center;padding:0 var(--s05);font-size:.875rem;line-height:1.3;letter-spacing:.16px;color:var(--text-secondary);position:relative;white-space:nowrap}
.nav a:hover{color:var(--text-primary);background:var(--layer);text-decoration:none}
.nav a[aria-current=page]{color:var(--text-primary)}
.nav a[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--interactive)}
.nav .nav__cta{margin-left:auto;background:var(--interactive);color:#fff;padding:0 var(--s07) 0 var(--s05);gap:var(--s07)}
.nav .nav__cta:hover{background:var(--interactive-hover);color:#fff}
.nav .nav__cta svg{width:1rem;height:1rem;fill:currentColor}
.menu-toggle{display:none;margin-left:auto;width:var(--header);height:var(--header);border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center}
.menu-toggle:hover{background:var(--layer)}
.menu-toggle svg{width:1.25rem;height:1.25rem;fill:var(--text-primary)}
.menu-toggle .icon-close{display:none}
.menu-toggle[aria-expanded=true] .icon-close{display:block}
.menu-toggle[aria-expanded=true] .icon-menu{display:none}

/* Buttons — Carbon: 48px, icon right, square */
.actions{display:flex;flex-wrap:wrap;gap:1px;margin-top:var(--s08)}
.actions--gap{gap:var(--s05)}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s07);min-height:3rem;padding:calc(.875rem - 1px) calc(1rem - 1px);border:1px solid transparent;font-size:.875rem;line-height:1.3;letter-spacing:.16px;font-weight:400;text-decoration:none;cursor:pointer;transition:background-color 110ms var(--ease),color 110ms var(--ease);min-width:12rem}
.btn svg{width:1rem;height:1rem;fill:currentColor;flex-shrink:0}
.btn:hover{text-decoration:none}
.btn--primary{background:var(--interactive);color:#fff}
.btn--primary:hover{background:var(--interactive-hover);color:#fff}
.btn--primary:active{background:var(--interactive-active)}
.btn--secondary{background:#393939;color:#fff}
.btn--secondary:hover{background:#4c4c4c;color:#fff}
.btn--tertiary{border-color:var(--interactive);color:var(--interactive);background:transparent}
.btn--tertiary:hover{background:var(--interactive);color:#fff}
.btn--ghost{color:var(--link);min-width:0;padding-inline:var(--s05)}
.btn--ghost:hover{background:var(--layer-hover);color:var(--link-hover)}
.btn:focus-visible{outline:2px solid var(--focus);outline-offset:0;box-shadow:inset 0 0 0 1px #fff}
.link{display:inline-flex;align-items:center;gap:var(--s03);font-size:.875rem;line-height:1.3;letter-spacing:.16px}
.link svg{width:1rem;height:1rem;fill:currentColor;transition:transform 110ms var(--ease)}
.link:hover svg{transform:translateX(2px)}

/* Hero with the animated gradient */
.hero{position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--border-subtle)}
.hero__bg{position:absolute;inset:0 0 auto 0;height:100%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 80% at 82% 20%,#33b1ff 0,transparent 60%),
    radial-gradient(50% 70% at 62% 60%,#7b4ff0 0,transparent 65%),
    radial-gradient(45% 60% at 95% 85%,#3b2bb5 0,transparent 70%),
    radial-gradient(40% 50% at 75% 0%,#d9c8ff 0,transparent 70%),#ffffff;
  -webkit-mask-image:linear-gradient(100deg,transparent 22%,rgba(0,0,0,.35) 42%,#000 62%);mask-image:linear-gradient(100deg,transparent 22%,rgba(0,0,0,.35) 42%,#000 62%);
  clip-path:polygon(0 0,100% 0,100% 74%,0 100%)}
.hero__bg canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 900ms var(--ease)}
.hero__bg canvas[data-ready]{opacity:1}
.hero__inner{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s09);align-items:end;padding-block:var(--s12) var(--s12)}
.hero--home .hero__inner{min-height:min(44rem,calc(100svh - var(--header)));padding-block:var(--s12) var(--s13)}
.hero__text{max-width:44rem}
.hero__text .lead{margin-top:var(--s07);color:#393939}
.hero__meta{margin-bottom:var(--s06);font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary)}
.hero--page .hero__inner{grid-template-columns:minmax(0,1fr);padding-block:var(--s11) var(--s12);min-height:24rem}
.hero--page .hero__bg{-webkit-mask-image:linear-gradient(100deg,transparent 40%,rgba(0,0,0,.4) 58%,#000 78%);mask-image:linear-gradient(100deg,transparent 40%,rgba(0,0,0,.4) 58%,#000 78%);clip-path:polygon(0 0,100% 0,100% 62%,0 100%)}
.hero--page .hero__text{max-width:48rem}
.hero--plain .hero__bg{display:none}
.hero--page.hero--plain .hero__inner{min-height:0;padding-block:var(--s11) var(--s09)}
.hero--plain{background:var(--layer)}

/* Floating panel over the gradient (the "product UI" moment) */
.panel{background:var(--layer-2);box-shadow:0 2px 6px rgba(22,22,22,.12),0 24px 48px -12px rgba(47,20,104,.28);align-self:center}
.panel__head{padding:var(--s05) var(--s05) var(--s04);border-bottom:1px solid var(--border-subtle)}
.panel__head p{font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary)}
.panel__head h2{font-size:1.25rem;line-height:1.4;font-weight:400;margin-top:var(--s02)}
.panel a{display:grid;grid-template-columns:2rem 1fr 1rem;gap:var(--s05);align-items:center;padding:var(--s05);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);transition:background-color 110ms var(--ease)}
.panel a:last-child{border-bottom:0}
.panel a:hover{background:var(--layer-hover);text-decoration:none}
.panel a > svg:first-child{width:2rem;height:2rem;stroke:var(--interactive);fill:none;stroke-width:1.5}
.panel a > svg:last-child{width:1rem;height:1rem;fill:var(--interactive);transition:transform 110ms var(--ease)}
.panel a:hover > svg:last-child{transform:translateX(3px)}
.panel strong{display:block;font-weight:400}
.panel span span{display:block;font-size:.875rem;color:var(--text-secondary);line-height:1.3;margin-top:2px}

/* Brand marks: one-colour silhouettes, sized by --mark-h times each mark's own --k */
.mark{display:block;height:calc(var(--mark-h,1.75rem) * var(--k,1));width:auto;max-width:100%}
.marks{display:flex;flex-wrap:wrap;gap:var(--s06) var(--s08);align-items:center}
.marks--list{--mark-h:1.5rem;gap:var(--s05) var(--s07);border-top:1px solid var(--border-subtle);padding-top:var(--s06)}
.marks--cert{--mark-h:3.25rem}
.marks--row{--mark-h:2.5rem;gap:var(--s05)}
.hero__brand{--mark-h:4.75rem;margin-bottom:var(--s07)}
.section__brand{display:inline-block;--mark-h:3.5rem}
.marks--sm{--mark-h:1.25rem;gap:var(--s04) var(--s06)}
.marks--sm li{display:flex;align-items:center;gap:var(--s02);font-size:.75rem;letter-spacing:.32px;color:#525252}
.logowall{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));border-top:1px solid var(--border-subtle);border-left:1px solid var(--border-subtle)}
.logowall li{display:flex;align-items:center;justify-content:center;min-height:7.5rem;padding:var(--s06);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);--mark-h:2.5rem}

/* Brand strip (Stripe's logo row) */
.brands{border-bottom:1px solid var(--border-subtle)}
.brands .wrap{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,13fr);gap:var(--s07);align-items:center;padding-block:var(--s07)}
.brands p{font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary)}
.brands .marks{--mark-h:1.5rem;gap:var(--s05) var(--s08)}

/* Sections */
.section{padding-block:var(--s12)}
.section + .section{border-top:1px solid var(--border-subtle)}
.section--layer{background:var(--layer)}
.section--layer + .section,.section + .section--layer{border-top:0}
.section__head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,9fr);gap:var(--s07);align-items:start;margin-bottom:var(--s10)}
.section__head .body-lg{max-width:36em;padding-top:var(--s03)}
.section__head--stack{grid-template-columns:minmax(0,1fr);gap:var(--s05);max-width:48rem}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s10);align-items:center}
.split--top{align-items:start}
.split > * + .prose{max-width:none}
.split .body-lg{margin-top:var(--s06)}

/* Content groups with left rules (IBM.com pattern) */
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s07)}
.cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.group{border-left:1px solid var(--border-subtle);padding:0 var(--s07) 0 var(--s05);display:flex;flex-direction:column}
.group > svg{width:3rem;height:3rem;stroke:var(--interactive);fill:none;stroke-width:1.25;margin-bottom:var(--s09)}
.group h3{margin-bottom:var(--s04)}
.group p{color:var(--text-secondary)}
.group ul{margin-top:var(--s05);border-top:1px solid var(--border-subtle)}
.group li{padding:var(--s04) 0;border-bottom:1px solid var(--border-subtle);font-size:.875rem;letter-spacing:.16px}
.group .link{margin-top:auto;padding-top:var(--s07)}

/* Pictogram at the top of a split column */
.split > div > svg:first-child{width:3rem;height:3rem;stroke:var(--interactive);fill:none;stroke-width:1.25}

/* Steps — only where the content is a sequence */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));counter-reset:step;border-top:1px solid var(--text-primary)}
.steps li{counter-increment:step;padding:var(--s06) var(--s07) 0 0}
.steps li::before{content:counter(step);display:block;font-size:3rem;line-height:1;font-weight:300;color:var(--interactive);margin-bottom:var(--s07)}
.steps h3{margin-bottom:var(--s04)}
.steps p{color:var(--text-secondary);max-width:24em}

/* Stacked steps (narrow column) */
.steps--stack{grid-template-columns:minmax(0,1fr)}
.steps--stack li{display:grid;grid-template-columns:3rem minmax(0,1fr);column-gap:var(--s05);padding:var(--s05) 0;border-bottom:1px solid var(--border-subtle)}
.steps--stack li::before{grid-row:span 2;font-size:2rem;margin:0}
.steps--stack h3{margin-bottom:var(--s02)}

/* Spacing utilities */
.mt-03{margin-top:var(--s03)}.mt-05{margin-top:var(--s05)}.mt-06{margin-top:var(--s06)}.mt-07{margin-top:var(--s07)}.mt-08{margin-top:var(--s08)}.mt-09{margin-top:var(--s09)}.mt-10{margin-top:var(--s10)}

/* Timeline */
.timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border-subtle)}
.timeline li{padding:var(--s06) var(--s07) 0 0;position:relative}
.timeline li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--interactive)}
.timeline time,.timeline b{display:block;font-size:2.625rem;line-height:1.1;font-weight:300;margin-bottom:var(--s04);color:var(--text-primary)}
.timeline p{color:var(--text-secondary);max-width:22em}

/* Tags — Carbon tag */
.tags{display:flex;flex-wrap:wrap;gap:var(--s03)}
.tag{display:inline-flex;align-items:center;min-height:1.5rem;padding:0 var(--s03);border-radius:1rem;background:var(--tag-bg);color:var(--tag-text);font-size:.75rem;line-height:1.33;letter-spacing:.32px}
.tags--lg .tag{min-height:2rem;padding:0 var(--s05);font-size:.875rem;letter-spacing:.16px}

/* Clickable tiles */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle)}
.tile{display:flex;flex-direction:column;min-height:13rem;padding:var(--s05);background:var(--background);color:var(--text-primary);transition:background-color 110ms var(--ease)}
.section--layer .tile{background:var(--layer-2)}
.tile:hover{background:var(--layer-hover);text-decoration:none;color:var(--text-primary)}
.tile h3{font-size:1.25rem;line-height:1.4;font-weight:400}
.tile p{margin-top:var(--s03);font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary)}
.tile svg{margin-top:auto;align-self:flex-end;width:1.25rem;height:1.25rem;fill:var(--interactive)}

.tiles--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tile--feature{min-height:20rem;padding:var(--s07)}
.tile--feature h3{font-size:1.75rem;line-height:1.29;font-weight:400}
.tile--feature p{font-size:1rem;letter-spacing:0;max-width:30em;margin-top:var(--s04)}
.tile > svg:first-child{margin:0 0 var(--s09);align-self:flex-start;width:3rem;height:3rem;fill:none;stroke:var(--interactive);stroke-width:1.25}

/* Structured list (regions) */
.slist{border-top:1px solid var(--border-subtle)}
.slist a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s05);align-items:center;padding:var(--s05) var(--s03) var(--s05) 0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);transition:background-color 110ms var(--ease),padding 110ms var(--ease)}
.slist a:hover{background:var(--layer-hover);padding-left:var(--s03);text-decoration:none}
.slist strong{display:block;font-weight:400;font-size:1.25rem;line-height:1.4}
.slist small{display:block;font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary)}
.slist svg{width:1rem;height:1rem;fill:var(--interactive)}
.map{width:100%;height:auto;background:var(--layer)}
.map a:hover circle{fill:var(--interactive-active)}
.caption{margin-top:var(--s04);font-size:.75rem;line-height:1.33;letter-spacing:.32px;color:var(--text-helper)}

/* Media */
.media{position:relative;background:var(--layer)}
.media img{width:100%;aspect-ratio:3/2;object-fit:cover}
.media--tall img{aspect-ratio:4/3}
.media--wide img{aspect-ratio:21/9;object-position:50% 64%}
.media figcaption{position:absolute;left:0;bottom:0;background:var(--background);padding:var(--s04) var(--s05);font-size:.875rem;letter-spacing:.16px}

/* Accordion */
.accordion{border-top:1px solid var(--border-subtle)}
.accordion details{border-bottom:1px solid var(--border-subtle)}
.accordion summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s05);min-height:3rem;padding:var(--s04) var(--s05) var(--s04) var(--s05);cursor:pointer;list-style:none;font-size:1rem}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary:hover{background:var(--layer-hover)}
.accordion summary svg{width:1rem;height:1rem;fill:currentColor;transition:transform 240ms var(--ease);flex-shrink:0}
.accordion details[open] summary svg{transform:rotate(180deg)}
.accordion details > div{padding:0 var(--s10) var(--s06) var(--s05);color:var(--text-secondary);max-width:44em}

/* In-page navigation (Carbon tabs, line) */
.subnav{position:sticky;top:var(--header);z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}
.subnav ul{display:flex;overflow-x:auto;scrollbar-width:none}
.subnav ul::-webkit-scrollbar{display:none}
.subnav a{display:block;padding:var(--s04) var(--s05);font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary);white-space:nowrap;border-bottom:2px solid transparent}
.subnav a:hover{color:var(--text-primary);border-bottom-color:var(--border-strong);text-decoration:none}
.subnav a[aria-current=true]{color:var(--text-primary);border-bottom-color:var(--interactive);font-weight:600}

/* Definition / spec list */
.spec{border-top:1px solid var(--border-subtle)}
.spec li{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:var(--s05);padding:var(--s05) 0;border-bottom:1px solid var(--border-subtle)}
.spec li svg{width:1.25rem;height:1.25rem;fill:var(--interactive);margin-top:2px}
.note{margin-top:var(--s06);padding:var(--s05);border-left:3px solid var(--interactive);background:var(--layer);font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary);max-width:40em}

/* Call to action band */
.callout{background:var(--background);border-top:1px solid var(--border-subtle);padding-block:var(--s11)}
.callout .wrap{display:grid;grid-template-columns:minmax(0,9fr) minmax(0,7fr);gap:var(--s07);align-items:end}
.callout p{margin-top:var(--s04)}
.callout .actions{margin-top:0;justify-content:flex-end}

/* Location strip */
.location{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s07);border-top:1px solid var(--border-subtle);padding-top:var(--s06)}
.location dt{font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary);margin-bottom:var(--s02)}
.location dd{font-size:1.25rem;line-height:1.4;overflow-wrap:anywhere}

/* Long-form document */
.doc{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,12fr);gap:var(--s07);padding-block:var(--s10) var(--s12)}
.doc__body{max-width:44rem}
.doc__body h2{font-size:1.75rem;line-height:1.29;font-weight:400;margin:var(--s10) 0 var(--s05)}
.doc__body h3{font-size:1.25rem;line-height:1.4;font-weight:600;margin:var(--s07) 0 var(--s03)}
.doc__body p{margin-bottom:var(--s05);color:#393939;font-size:1rem;line-height:1.6}
.doc__list{margin:0 0 var(--s05);border-top:1px solid var(--border-subtle)}
.doc__list li{padding:var(--s04) 0;border-bottom:1px solid var(--border-subtle);color:#393939;line-height:1.6}
.doc__body h2:first-child{margin-top:0}
.doc__toc{position:sticky;top:calc(var(--header) + var(--s07));align-self:start;border-left:1px solid var(--border-subtle)}
.doc__toc a{display:block;padding:var(--s03) var(--s05);font-size:.875rem;letter-spacing:.16px;color:var(--text-secondary);margin-left:-1px;border-left:2px solid transparent}
.doc__toc a:hover{color:var(--text-primary);border-left-color:var(--interactive);text-decoration:none}

/* Footer */
.footer{background:var(--layer);border-top:1px solid var(--border-subtle);font-size:.875rem;letter-spacing:.16px}
.footer__grid{display:grid;grid-template-columns:minmax(0,6fr) repeat(3,minmax(0,3fr));gap:var(--s07);padding-block:var(--s10) var(--s09)}
.footer__brand>img{height:1.5rem;width:auto;margin-bottom:var(--s06)}
.footer__brand p{color:var(--text-secondary);max-width:22rem}
.footer__brand p+p{margin-top:var(--s05)}
.footer__market{margin-top:var(--s06)}
.footer__market p{margin-bottom:var(--s03)}
.footer .marks li{margin-top:0}
.footer h2{font-size:.875rem;font-weight:600;margin-bottom:var(--s05);letter-spacing:.16px}
.footer li+li{margin-top:var(--s03)}
.footer a{color:var(--text-secondary)}
.footer a:hover{color:var(--text-primary)}
.footer__bottom{display:flex;flex-wrap:wrap;gap:var(--s03) var(--s06);justify-content:space-between;padding-block:var(--s05);border-top:1px solid var(--border-subtle);color:var(--text-helper);font-size:.75rem;letter-spacing:.32px}
.footer__bottom ul{display:flex;gap:var(--s06)}
.footer__bottom li+li{margin-top:0}

/* Responsive — Carbon md (672) / lg (1056) */
@media (max-width:1100px){
  .nav a{padding:0 var(--s04)}
  .brand{margin-right:var(--s05)}
}
@media (max-width:1056px){
  :root{--gutter:1.5rem}
  .menu-toggle{display:flex}
  .masthead__inner{padding-left:var(--gutter)}
  /* The masthead's backdrop-filter makes it the containing block of this fixed panel, so bottom:0 would
     collapse it to zero height: size it from the viewport instead. */
  .nav{display:none;position:fixed;top:var(--header);left:0;right:0;height:calc(100vh - var(--header));height:calc(100dvh - var(--header));flex-direction:column;align-items:stretch;background:var(--background);overflow-y:auto;padding:var(--s03) 0 var(--s07);border-top:1px solid var(--border-subtle)}
  .nav[data-open]{display:flex}
  .nav a{padding:var(--s05) var(--gutter);font-size:1.25rem;color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}
  .nav a[aria-current=page]::after{top:0;bottom:0;left:0;right:auto;width:3px;height:auto}
  .nav .nav__cta{margin:var(--s07) var(--gutter) 0;justify-content:space-between;padding:var(--s05)}
  body[data-menu-open]{overflow:hidden}
  .hero__inner,.split,.callout .wrap,.section__head{grid-template-columns:minmax(0,1fr)}
  .hero__inner{gap:var(--s08)}
  .hero--home .hero__inner{min-height:0;padding-block:var(--s12) var(--s12)}
  .panel{max-width:32rem;width:100%}
  .callout .actions{justify-content:flex-start}
  .cols--4{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s09)}
  .footer__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer__brand{grid-column:1/-1}
  .doc{grid-template-columns:minmax(0,1fr)}
  .doc__toc{display:none}
  .brands .wrap{grid-template-columns:minmax(0,1fr);gap:var(--s04)}
}
@media (max-width:760px){
  .hero__brand{--mark-h:3.5rem;margin-bottom:var(--s05)}
  .marks--row{--mark-h:2.2rem;gap:var(--s04)}
  :root{--gutter:1rem}
  .section{padding-block:var(--s10)}
  .hero__bg,.hero--page .hero__bg{height:10rem;-webkit-mask-image:none;mask-image:none;clip-path:polygon(0 0,100% 0,100% 58%,0 100%)}
  .hero--home .hero__inner{padding-block:11.5rem var(--s10)}
  .hero--page .hero__inner{padding-block:11rem var(--s09);min-height:0}
  .hero--page.hero--plain .hero__inner{padding-block:var(--s10) var(--s08)}
  .cols,.cols--2,.cols--4,.steps,.timeline,.tiles,.tiles--2,.location{grid-template-columns:minmax(0,1fr)}
  .cols{row-gap:var(--s09)}
  .group > svg{margin-bottom:var(--s06)}
  .steps li,.timeline li{padding-bottom:var(--s07)}
  .steps li + li{border-top:1px solid var(--border-subtle)}
  .timeline{border-top:0;border-left:1px solid var(--border-subtle);margin-left:4px}
  .timeline li{padding:0 0 var(--s07) var(--s06)}
  .timeline li::before{top:.9rem;left:-5px}
  .tile{min-height:9rem}
  .tile--feature{min-height:0;padding:var(--s05)}
  .media--wide img{aspect-ratio:4/3}
  .actions .btn{flex:1 1 100%}
  .actions{gap:var(--s04)}
  .footer__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .section__head{margin-bottom:var(--s08)}
  .accordion details > div{padding-right:var(--s05)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important}
}
@media print{
  .masthead,.hero__bg,.subnav,.footer,.callout{display:none}
}
