/*! NBC v7.085 · Stuttgart Premium Visual Implementation
 * Scope: Stuttgart only.
 * NBC core owns Archivo typography, header, buttons, service hero geometry and outer rails.
 * This file adds only Stuttgart-specific visual/narrative composition.
 */
body.region-stuttgart{
  --st-line:rgba(247,245,242,.11);
  --st-line-soft:rgba(247,245,242,.065);
  --st-muted:rgba(247,245,242,.66);
  --st-green:#8bcf9a;
  --st-amber:#edc078;
  --st-paper:#f1eee5;
  --st-paper-ink:#0b1710;
}
body.region-stuttgart .rx-page{color:var(--paper,#f7f5f2);overflow:hidden}
body.region-stuttgart .rx-page *{box-sizing:border-box}
body.region-stuttgart .rx-page section{position:relative}
body.region-stuttgart .rx-kicker{
  margin:0 0 18px;font-family:var(--font-mono,var(--mono),monospace);font-size:9px;font-weight:600;
  line-height:1.3;letter-spacing:.13em;text-transform:uppercase;color:var(--st-green)
}
body.region-stuttgart .rx-page :is(h1,h2,h3,h4,p,a,strong,span){font-family:Archivo,-apple-system,"Segoe UI",system-ui,sans-serif}
body.region-stuttgart .rx-page :is(.mono,.rx-kicker,.stm-callout>span,.st-authority>span,.st-path-list span,.st-decision-landscape article>span,.st-decision-landscape article>b,.st-decision-axis span){font-family:var(--font-mono,var(--mono),monospace)}
body.region-stuttgart .rx-page em{font-style:normal;color:#b9ccbf}
body.region-stuttgart .rx-page :is(.rx-shell,.rx-reading){width:100%;max-width:none;margin-inline:0;padding-inline:0}

/* HERO — native NBC service geometry, Stuttgart-specific enterprise instrument */
body.region-stuttgart .stm-hero{overflow:clip;isolation:isolate;border-bottom:1px solid var(--st-line)}
body.region-stuttgart .stm-hero::before{
  content:"";position:absolute;right:-7%;top:-24%;width:min(940px,62vw);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(87,132,101,.115),rgba(11,23,16,0) 64%);pointer-events:none;z-index:-1
}
body.region-stuttgart .stm-hero::after{
  content:"";position:absolute;left:28%;bottom:-42%;width:min(700px,46vw);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(237,192,120,.035),rgba(11,23,16,0) 68%);pointer-events:none;z-index:-1
}
body.region-stuttgart .stm-hero-copy .nbc-unified-hero-title{max-width:none}
body.region-stuttgart .stm-hero-copy .st-title-line{display:block;white-space:nowrap}
body.region-stuttgart .stm-hero-copy .st-title-line--accent{color:#eef2ed}
body.region-stuttgart .stm-hero-artifact{margin:0;min-width:0;align-self:center}
body.region-stuttgart .stm-hero-artifact figcaption{margin-bottom:14px;color:#809388}
body.region-stuttgart .stm-hero-artifact>p{margin:13px 0 0;max-width:47ch;font-size:13px;line-height:1.56;color:rgba(247,245,242,.56)}

body.region-stuttgart .stm-system-visual{
  position:relative;min-height:500px;overflow:hidden;border:1px solid rgba(247,245,242,.10);
  background:radial-gradient(circle at 50% 28%,rgba(139,207,154,.10),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.018),rgba(139,207,154,.012) 54%,rgba(0,0,0,.16));
  box-shadow:0 34px 110px rgba(0,0,0,.24)
}
body.region-stuttgart .stm-grid{
  position:absolute;inset:46px 28px 132px;opacity:.12;
  background-image:linear-gradient(rgba(247,245,242,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(247,245,242,.022) 1px,transparent 1px);
  background-size:40px 40px;mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 94%)
}
body.region-stuttgart .stm-boundary-glow{
  position:absolute;z-index:1;left:50%;top:8px;bottom:108px;width:118px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(237,192,120,.04) 28%,rgba(237,192,120,.12) 50%,rgba(237,192,120,.04) 72%,transparent);
  filter:blur(4px)
}
body.region-stuttgart .stm-flow-svg{position:absolute;z-index:2;left:14px;right:14px;top:26px;width:calc(100% - 28px);height:330px;overflow:visible}
body.region-stuttgart .stm-landscape rect{fill:rgba(247,245,242,.012)}
body.region-stuttgart .stm-landscape rect:nth-child(even){fill:rgba(139,207,154,.018)}
body.region-stuttgart .stm-system-labels text,
body.region-stuttgart .stm-end-labels text,
body.region-stuttgart .stm-friction text,
body.region-stuttgart .stm-process-label,
body.region-stuttgart .stm-boundary-label{
  font-family:var(--font-mono,var(--mono),monospace);font-weight:600;letter-spacing:.09em
}
body.region-stuttgart .stm-system-labels text{font-size:8.5px;fill:rgba(239,241,236,.42)}
body.region-stuttgart .stm-end-labels text{font-size:8px;fill:rgba(239,241,236,.58)}
body.region-stuttgart .stm-boundary{stroke:rgba(237,192,120,.52);stroke-width:1.3;stroke-dasharray:5 9}
body.region-stuttgart .stm-main-glow{fill:none;stroke:rgba(164,229,182,.11);stroke-width:24;stroke-linecap:round;filter:drop-shadow(0 0 18px rgba(139,207,154,.22))}
body.region-stuttgart .stm-main-line-1, body.region-stuttgart .stm-main-line-2{fill:none;stroke:url(#stmGreen85);stroke-width:3.1;stroke-linecap:round;filter:drop-shadow(0 0 10px rgba(139,207,154,.34))}
body.region-stuttgart .stm-upper-flow{fill:none;stroke:rgba(192,235,205,.72);stroke-width:1.65;stroke-linecap:round;opacity:.9}
body.region-stuttgart .stm-upper-flow--2{opacity:.75} body.region-stuttgart .stm-upper-flow--3{opacity:.58}
body.region-stuttgart .stm-special-route{fill:none;stroke:url(#stmAmber85);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:8 8;filter:drop-shadow(0 0 8px rgba(237,192,120,.24))}
body.region-stuttgart .stm-special-route-dash{fill:none;stroke:rgba(237,192,120,.56);stroke-width:1.7;stroke-linecap:round;stroke-dasharray:4 10}
body.region-stuttgart .stm-nodes .stm-node-end{fill:#09100c;stroke:rgba(235,244,237,.86);stroke-width:2.6;filter:drop-shadow(0 0 11px rgba(169,232,187,.34))} body.region-stuttgart .stm-nodes .stm-node-break-outer{fill:rgba(237,192,120,.16);stroke:var(--st-amber);stroke-width:2.6;filter:drop-shadow(0 0 14px rgba(237,192,120,.34))} body.region-stuttgart .stm-nodes .stm-node-break-inner{fill:#2b2318;stroke:#f0cc87;stroke-width:1.4}
body.region-stuttgart .stm-guides line{stroke:rgba(247,245,242,.08);stroke-width:1} body.region-stuttgart .stm-system-ticks line{stroke:rgba(239,241,236,.44);stroke-width:1.2} body.region-stuttgart .stm-process-label{font-size:8.7px;fill:rgba(239,241,236,.78)} body.region-stuttgart .stm-boundary-label{font-size:9.4px;fill:#dfbf87} body.region-stuttgart .stm-lower-echo{fill:none;stroke:rgba(192,235,205,.30);stroke-width:1.25;stroke-linecap:round} body.region-stuttgart .stm-micro-dots circle{fill:#d7f5de;opacity:.92;filter:drop-shadow(0 0 5px rgba(182,242,201,.18))}
body.region-stuttgart .stm-friction circle{fill:#f1d18d;stroke:rgba(237,192,120,.28);stroke-width:8;paint-order:stroke;filter:drop-shadow(0 0 10px rgba(237,192,120,.34))}
body.region-stuttgart .stm-friction text{font-size:9px;fill:#dfbf87}
body.region-stuttgart .stm-callout{position:absolute;z-index:3;left:28px;right:28px;bottom:20px;padding-top:18px;border-top:1px solid rgba(247,245,242,.12)}
body.region-stuttgart .stm-callout>span{display:block;font-size:8.4px;font-weight:600;letter-spacing:.16em;color:#86998e}
body.region-stuttgart .stm-callout strong{display:block;margin-top:10px;max-width:28ch;font-size:clamp(22px,1.6vw,28px);font-weight:700;line-height:1.06;letter-spacing:-.03em;color:#edf1ee}

@media(prefers-reduced-motion:no-preference){
  body.region-stuttgart .stm-main-line-1, body.region-stuttgart .stm-main-line-2{stroke-dasharray:10 4;animation:stm-flow 8s linear infinite}
  body.region-stuttgart .stm-special-route{animation:stm-branch 11s linear infinite}
}
@keyframes stm-flow{to{stroke-dashoffset:-78}}
@keyframes stm-branch{to{stroke-dashoffset:-84}}

/* STUTTGART-SPECIFIC ENTERPRISE DECISION MOMENT — deliberately unlike Pforzheim */
body.region-stuttgart main.rx-page>.service-editorial-section{min-height:0!important;height:auto!important;padding-block:clamp(96px,8vw,132px)!important}
body.region-stuttgart .st-thesis{border-bottom:1px solid var(--st-line);background:linear-gradient(180deg,rgba(255,255,255,.008),transparent)}
body.region-stuttgart .st-decision-head{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(340px,.64fr);column-gap:clamp(64px,7vw,118px);align-items:end;margin-bottom:58px}
body.region-stuttgart .st-decision-head .rx-kicker{grid-column:1/-1}
body.region-stuttgart .st-decision-head h2{margin:0;max-width:17ch}
body.region-stuttgart .st-decision-head>p:last-child{margin:0;color:var(--st-muted);font-size:clamp(17px,1.25vw,19px);line-height:1.68}
body.region-stuttgart .st-decision-head strong{color:#eef2ef}
body.region-stuttgart .st-decision-landscape{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--st-line);border-bottom:1px solid var(--st-line);padding-bottom:52px}
body.region-stuttgart .st-decision-landscape article{position:relative;min-height:300px;padding:34px clamp(28px,3vw,46px) 44px 0}
body.region-stuttgart .st-decision-landscape article+article{border-left:1px solid var(--st-line);padding-left:clamp(28px,3vw,46px)}
body.region-stuttgart .st-decision-landscape article.is-accent::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(139,207,154,.035),transparent 72%);pointer-events:none}
body.region-stuttgart .st-decision-landscape article>span{position:relative;display:block;font-size:9px;font-weight:600;letter-spacing:.12em;color:#7e9285}
body.region-stuttgart .st-decision-landscape article.is-accent>span{color:#a8c4b0}
body.region-stuttgart .st-decision-landscape h3{position:relative;margin:34px 0 18px;max-width:14ch;font-size:clamp(28px,2.35vw,38px);font-weight:700;line-height:1.04;letter-spacing:-.04em}
body.region-stuttgart .st-decision-landscape p{position:relative;margin:0;max-width:36ch;color:#99a59d;line-height:1.64}
body.region-stuttgart .st-decision-landscape article>b{position:relative;display:block;margin-top:28px;padding-top:20px;border-top:1px solid var(--st-line-soft);font-size:8px;font-weight:600;line-height:1.55;letter-spacing:.09em;color:#74867b;text-transform:uppercase}
body.region-stuttgart .st-decision-axis{position:absolute;left:0;right:0;bottom:0;height:52px;border-top:1px solid rgba(139,207,154,.15);display:flex;align-items:center}
body.region-stuttgart .st-decision-axis::before{content:"";height:2px;flex:1;background:linear-gradient(90deg,rgba(139,207,154,.1),rgba(139,207,154,.72) 50%,rgba(139,207,154,.1))}
body.region-stuttgart .st-decision-axis span{order:-1;margin-right:18px;font-size:8px;font-weight:600;letter-spacing:.12em;color:#789084;white-space:nowrap}

/* One light evidence folio */
body.region-stuttgart .rx-folio{background:var(--st-paper);color:var(--st-paper-ink)}
body.region-stuttgart .rx-folio-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.7fr);gap:clamp(54px,7vw,112px);align-items:start}
body.region-stuttgart .rx-folio .rx-kicker{color:#52665a}
body.region-stuttgart .rx-folio h2{margin:0;max-width:14ch;color:var(--st-paper-ink)}
body.region-stuttgart .rx-folio p{margin:0;font-size:clamp(17px,1.25vw,19px);line-height:1.66;color:#2c382f}
body.region-stuttgart .rx-folio strong{font-weight:700}
body.region-stuttgart .rx-rule{height:1px;background:#cfc8ba;margin:30px 0 18px}
body.region-stuttgart .rx-folio span{font-family:var(--font-mono,var(--mono),monospace);font-size:9px;font-weight:600;line-height:1.4;letter-spacing:.11em;color:#617066}

/* Conversion gateway: executive editorial rows */
body.region-stuttgart .st-complexity-head{display:grid;grid-template-columns:minmax(260px,.50fr) minmax(0,1.30fr);gap:clamp(48px,6vw,96px);align-items:end;margin-bottom:52px}
body.region-stuttgart .st-complexity-head h2{margin:0;max-width:18ch}
body.region-stuttgart .st-path-list{border-top:1px solid var(--st-line)}
body.region-stuttgart .st-path-list a{display:grid;grid-template-columns:minmax(300px,.88fr) minmax(0,1fr) 190px;gap:clamp(28px,4vw,64px);align-items:center;padding:30px 0;border-bottom:1px solid var(--st-line);color:inherit;text-decoration:none;transition:padding .22s ease,background .22s ease}
body.region-stuttgart .st-path-list a:hover{padding-left:10px;background:rgba(139,207,154,.025)}
body.region-stuttgart .st-path-list span{font-size:9px;font-weight:600;letter-spacing:.12em;color:#819487}
body.region-stuttgart .st-path-list h3{margin:7px 0 0;font-size:clamp(24px,2vw,32px);font-weight:700;line-height:1.06;letter-spacing:-.035em}
body.region-stuttgart .st-path-list p{margin:0;color:#98a49c;line-height:1.62}
body.region-stuttgart .st-path-list b{font-size:12px;color:#c6d1ca}

/* Proof + direct authority */
body.region-stuttgart .st-proof{border-top:1px solid var(--st-line)}
body.region-stuttgart .st-proof-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(330px,.60fr);gap:clamp(64px,7vw,118px);align-items:start}
body.region-stuttgart .st-case h2{margin:0 0 24px;max-width:13ch}
body.region-stuttgart .st-case>strong{display:block;margin:28px 0 14px;font-size:clamp(34px,3.6vw,58px);font-weight:800;line-height:1;letter-spacing:-.05em;color:#dce6df}
body.region-stuttgart .st-case>p{max-width:760px;margin:0 0 24px;color:#a5b0a8;font-size:clamp(17px,1.25vw,19px);line-height:1.68}
body.region-stuttgart .st-authority{border-top:1px solid var(--st-line);padding-top:28px}
body.region-stuttgart .st-authority>span{font-size:9px;font-weight:600;letter-spacing:.12em;color:#829589}
body.region-stuttgart .st-authority h3{margin:16px 0;font-size:clamp(27px,2.2vw,36px);font-weight:700;line-height:1.08;letter-spacing:-.035em}
body.region-stuttgart .st-authority p{margin:0;color:#9eaaa2;line-height:1.68}
body.region-stuttgart .st-authority ul{list-style:none;margin:28px 0 0;padding:22px 0 0;border-top:1px solid var(--st-line)}
body.region-stuttgart .st-authority li{padding:7px 0;color:#bdc7c1;font-size:13px}

/* Close */
body.region-stuttgart .rx-close{text-align:left;border-top:1px solid var(--st-line)}
body.region-stuttgart .rx-close .rx-reading{display:grid;grid-template-columns:minmax(0,1.10fr) minmax(310px,.54fr);column-gap:clamp(54px,6vw,100px);align-items:end}
body.region-stuttgart .rx-close .rx-kicker{grid-column:1/-1}
body.region-stuttgart .rx-close h2{margin:0;max-width:14ch}
body.region-stuttgart .rx-close p{margin:0 0 24px;max-width:560px;color:#a9b3ac;font-size:clamp(17px,1.25vw,19px);line-height:1.62}
body.region-stuttgart .rx-close .btn{justify-self:start}
body.region-stuttgart .rx-close .rx-reading>span{grid-column:2;display:block;margin-top:18px;color:#718078;font-size:11px}

@media(max-width:1180px){
  body.region-stuttgart .stm-hero-copy .st-title-line{white-space:normal}
}
@media(max-width:1023px){
  body.region-stuttgart .st-decision-head,
  body.region-stuttgart .rx-folio-grid,
  body.region-stuttgart .st-proof-grid,
  body.region-stuttgart .rx-close .rx-reading{grid-template-columns:1fr;row-gap:32px}
  body.region-stuttgart .st-decision-head .rx-kicker{grid-column:auto}
  body.region-stuttgart .st-decision-landscape{grid-template-columns:1fr}
  body.region-stuttgart .st-decision-landscape article{min-height:0;padding:28px 0 30px}
  body.region-stuttgart .st-decision-landscape article+article{border-left:0;border-top:1px solid var(--st-line);padding-left:0}
  body.region-stuttgart .st-decision-axis{position:relative;bottom:auto;margin-top:0}
  body.region-stuttgart .rx-close .rx-kicker{grid-column:auto}
  body.region-stuttgart .rx-close .rx-reading>span{grid-column:auto}
  body.region-stuttgart .st-complexity-head{grid-template-columns:1fr;gap:18px}
  body.region-stuttgart .st-path-list a{grid-template-columns:1fr;gap:12px}
}

@media(max-width:760px){
  /* Signature visual follows the thesis immediately; proof/CTA come after it on mobile. */
  body.region-stuttgart .stm-hero .nbc-hero-grid{display:flex!important;flex-direction:column!important}
  body.region-stuttgart .stm-hero-copy{display:contents!important}
  body.region-stuttgart .stm-hero-copy .nbc-hero-location{order:1}
  body.region-stuttgart .stm-hero-copy .nbc-unified-hero-title{order:2}
  body.region-stuttgart .stm-hero-copy .nbc-unified-hero-lead{order:3}
  body.region-stuttgart .stm-hero-artifact{order:4;width:100%}
  body.region-stuttgart .stm-hero-copy .service-hero-proofline{order:5;width:100%}
  body.region-stuttgart .stm-hero-copy .hero-actions{order:6;width:100%}
  body.region-stuttgart .stm-system-visual{min-height:430px}
  body.region-stuttgart .stm-grid{inset:30px 18px 116px;background-size:30px 30px}
  body.region-stuttgart .stm-boundary-glow{top:10px;bottom:108px;width:86px}
  body.region-stuttgart .stm-flow-svg{left:8px;right:8px;top:22px;width:calc(100% - 16px);height:255px}
  body.region-stuttgart .stm-system-labels text{font-size:6.9px}
  body.region-stuttgart .stm-end-labels text{font-size:6.6px}
  body.region-stuttgart .stm-process-label{font-size:6.8px}
  body.region-stuttgart .stm-boundary-label{font-size:7.2px}
  body.region-stuttgart .stm-friction text{font-size:7px}
  body.region-stuttgart .stm-callout{left:18px;right:18px;bottom:14px;padding-top:14px}
  body.region-stuttgart .stm-callout strong{font-size:22px;max-width:13ch}
  body.region-stuttgart .st-decision-landscape h3{margin-top:20px}
  body.region-stuttgart .st-decision-axis span{font-size:7px;white-space:normal;max-width:15ch}
  body.region-stuttgart .st-path-list a{padding:26px 0}
}
