/* ECOAT Target-only composition. Type, shell, navigation, sources and CTA inherit Article51/C02. */
main.sf-ecoat .sf-a51__hero-canvas {
  min-height: clamp(650px, 45vw, 810px);
  padding-block: clamp(24px, 3.3vw, 58px) clamp(48px, 6vw, 100px);
}
main.sf-ecoat .sf-a51__hero-canvas::after {
  background: linear-gradient(90deg,#262423 1%,rgba(38,36,35,.96) 24%,rgba(38,36,35,.91) 39%,rgba(38,36,35,.79) 49%,rgba(38,36,35,.16) 62%,transparent 70%),linear-gradient(0deg,#262423,transparent 18%);
}
main.sf-ecoat .sf-a51__hero-media img {object-position:72% center;}
main.sf-ecoat .sf-a51__hero-copy {width:min(54%,670px);gap:20px;}
main.sf-ecoat .sf-a51__hero-title[data-sf-type="h1"] {text-wrap:balance;overflow-wrap:normal;hyphens:none;}
main.sf-ecoat .sf-a51__body {background:#262423;}
main.sf-ecoat .eco-intro {display:grid;margin-block-end:clamp(22px,3vw,44px);}
main.sf-ecoat .eco-intro .sf-a51__body-intro {margin:0;max-width:760px;}
main.sf-ecoat .eco-intro .sf-a51__body-intro p {margin:0 0 1em;}
main.sf-ecoat .sf-a51__article {width:100%;min-width:0;max-width:1110px;}
main.sf-ecoat .eco-chapter>p,main.sf-ecoat .eco-chapter>ol:not(.eco-inputs),main.sf-ecoat .eco-chapter>ul {max-width:760px;}
main.sf-ecoat .eco-chapter p:last-child {margin-bottom:0;}
main.sf-ecoat .eco-figure {margin:clamp(24px,3vw,42px) 0;max-width:100%;}
main.sf-ecoat .eco-figure figcaption {margin:12px 0 0;max-width:75ch;color:#DAD9D8;font-size:var(--sf-type-small-size);line-height:1.55;}
main.sf-ecoat .eco-diagram-grid,main.sf-ecoat .eco-projects,main.sf-ecoat .eco-flow-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.8vw,24px);}
main.sf-ecoat .eco-film {grid-template-columns:repeat(3,minmax(0,1fr));}
main.sf-ecoat .eco-diagram {padding:clamp(13px,2vw,26px);border:1px solid rgba(218,217,216,.25);background:rgba(70,63,60,.32);}
main.sf-ecoat .eco-diagram h3 {overflow-wrap:anywhere;margin:0 0 10px;font-size:var(--sf-type-h3-size);line-height:1.25;}
main.sf-ecoat .eco-diagram .eco-svg {display:block;width:100%;height:auto;}
main.sf-ecoat .eco-diagram p {margin:0;font-size:var(--sf-type-small-size);line-height:1.5;}
main.sf-ecoat .eco-diagram dl {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 0;padding-top:12px;border-top:1px solid rgba(218,217,216,.2);}
main.sf-ecoat .eco-diagram dt {font-size:var(--sf-type-small-size);color:#DAD9D8;}
main.sf-ecoat .eco-diagram dd {margin:4px 0 0;font-weight:700;}
main.sf-ecoat .eco-kicker {display:block;margin:0 0 12px;color:#FF590D;font-size:var(--sf-type-small-size);font-weight:800;letter-spacing:.05em;}
main.sf-ecoat .eco-film .eco-svg {margin:4px 0 14px;}
main.sf-ecoat .eco-route {display:grid;gap:12px;}
main.sf-ecoat .eco-route figcaption {margin-top:0;}
main.sf-ecoat .eco-stages {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:14px 0 18px;}
main.sf-ecoat .eco-stages li {position:relative;padding:10px 14px 10px 10px;border:1px solid rgba(218,217,216,.25);margin:0;line-height:1.35;font-size:var(--sf-type-small-size);}
main.sf-ecoat .eco-stages li:not(:last-child)::before {content:"›";position:absolute;right:4px;top:13px;translate:0 -50%;color:#FF590D;}
main.sf-ecoat .eco-stages li span {display:block;margin-bottom:6px;color:#FF590D;font-weight:800;}
main.sf-ecoat .eco-nobr {white-space:nowrap;}
main.sf-ecoat .eco-diagram .eco-conditional {border:1px dashed rgba(218,217,216,.45);padding:10px;max-width:360px;margin-left:auto;}
main.sf-ecoat .eco-flow-grid {margin-top:12px;align-items:start;}
main.sf-ecoat .eco-flow {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.35fr);gap:8px;align-items:center;font-size:var(--sf-type-small-size);line-height:1.35;}
main.sf-ecoat .eco-flow span {padding:8px;border-block:1px solid rgba(218,217,216,.24);}
main.sf-ecoat .eco-flow b {color:#FF590D;}
main.sf-ecoat .eco-uf {grid-column:1/-1;border-top:1px solid rgba(218,217,216,.25);padding-top:16px;}
main.sf-ecoat .eco-uf .eco-svg {max-width:520px;margin:auto;}
main.sf-ecoat .eco-note {margin:22px 0 28px;padding:16px 20px;max-width:760px;border-left:2px solid var(--sf-color-accent);background:rgba(70,63,60,.25);}
main.sf-ecoat .eco-note p {margin:6px 0 0;}
main.sf-ecoat .eco-projects {margin:28px 0;}
main.sf-ecoat .eco-project {margin:0;min-width:0;}
main.sf-ecoat .eco-project img {display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;}
main.sf-ecoat .eco-project figcaption {display:flex;gap:10px;justify-content:space-between;padding:12px 0;color:#DAD9D8;border-bottom:1px solid rgba(218,217,216,.25);}
main.sf-ecoat .eco-inputs {list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:24px 0 28px;}
main.sf-ecoat .eco-inputs li {grid-column:span 2;border:1px solid rgba(218,217,216,.25);margin:0;padding:clamp(12px,1.6vw,22px);}
main.sf-ecoat .eco-inputs li:nth-last-child(-n+2) {grid-column:span 3;}
main.sf-ecoat .eco-inputs svg {display:block;color:#FF590D;margin-bottom:12px;}
main.sf-ecoat .eco-inputs p {margin:0;}
main.sf-ecoat .eco-inputs strong {display:block;color:white;margin-bottom:4px;}
main.sf-ecoat .eco-cta {margin-top:28px;}
main.sf-ecoat .eco-cta p {margin:0;}
main.sf-ecoat .eco-cta a.button {text-decoration:none;max-width:100%;white-space:normal;}
main.sf-ecoat .sf-a51__sources ul {gap:6px 28px;max-width:none;}
main.sf-ecoat .sf-a51__sources li {padding-bottom:5px;border-bottom:1px solid rgba(218,217,216,.15);text-wrap:pretty;}
main.sf-ecoat .sf-a51__sources li>a {display:inline-flex;align-items:center;min-height:var(--sf-touch-target);max-width:100%;}
main.sf-ecoat :is(a,button):focus-visible {outline:2px solid #FF590D;outline-offset:4px;}
@media(max-width:1120px) {
  main.sf-ecoat .eco-stages {grid-template-columns:repeat(5,minmax(0,1fr));}
  main.sf-ecoat .eco-stages li {overflow-wrap:anywhere;}
  main.sf-ecoat .eco-film {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px) {


  main.sf-ecoat .sf-a51__hero-canvas {padding-block:20px calc(clamp(205px,43vw,360px) + 36px);min-height:0;}
  main.sf-ecoat .sf-a51__hero-canvas::after {background:linear-gradient(0deg,#262423,transparent 26px,transparent 100%);}
  main.sf-ecoat .sf-a51__hero-copy {width:100%;max-width:690px;}
  main.sf-ecoat .sf-a51__hero-media img {inset:auto 0 0;width:100%;height:clamp(250px,51vw,430px);object-fit:cover;object-position:72% 60%;mask-image:linear-gradient(180deg,transparent,black 24%);}
  main.sf-ecoat .sf-a51__mobile-section-panel {position:absolute;inset:100% 0 auto;}
  main.sf-ecoat .eco-intro {display:block;}
  main.sf-ecoat .eco-intro>div {display:none;}
}
@media(max-width:760px) {
  main.sf-ecoat .eco-stages {grid-template-columns:1fr;}
  main.sf-ecoat .eco-stages li {display:flex;align-items:center;gap:10px;}
  main.sf-ecoat .eco-stages li span {margin:0;}
  main.sf-ecoat .eco-stages li:not(:last-child)::before {top:auto;right:12px;bottom:4px;translate:none;rotate:90deg;}
}
@media(max-width:640px) {
  main.sf-ecoat .sf-a51__hero-copy {gap:14px;}
  main.sf-ecoat .eco-diagram-grid,main.sf-ecoat .eco-projects,main.sf-ecoat .eco-flow-grid {grid-template-columns:1fr;}
  main.sf-ecoat .eco-stages {grid-template-columns:1fr;gap:13px;}
  main.sf-ecoat .eco-stages li {display:flex;align-items:center;gap:10px;}
  main.sf-ecoat .eco-stages li span {margin:0;}
  main.sf-ecoat .eco-stages li:not(:last-child)::before {top:auto;right:12px;bottom:4px;translate:none;rotate:90deg;}
  main.sf-ecoat .eco-diagram .eco-conditional {margin-left:0;}
  main.sf-ecoat .eco-inputs {grid-template-columns:1fr;}
  main.sf-ecoat .eco-inputs li:nth-child(n) {grid-column:auto;}
}

/* Keep native fragments and history, with predictable offsets at all widths. */
html:has(main.sf-ecoat) {scroll-behavior:auto!important;}
main.sf-ecoat .sf-a51__hero-lead[data-sf-type="lead"] {max-width:570px;}
main.sf-ecoat .sf-a51__body[data-sf-owner-review-patch="v60"] .sf-a51__article .eco-chapter > :is(p,ul,ol:not(.eco-inputs)) {
  max-inline-size:760px;
}
main.sf-ecoat .eco-toc-disclosure summary {display:none;}
main.sf-ecoat .eco-toc-disclosure::details-content {content-visibility:visible;}
main.sf-ecoat .eco-uf .eco-uf-mobile {display:none;}
@media(min-width:1100px) {
  main.sf-ecoat .sf-a51__sources ul {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:900px) {
  main.sf-ecoat .sf-a51__toc .sf-a51__toc-head {display:none!important;}
  main.sf-ecoat .eco-toc-disclosure:not([open]) .sf-a51__toc-list {display:none;}
  main.sf-ecoat .eco-toc-disclosure summary {
    display:flex;align-items:center;gap:12px;min-height:var(--sf-touch-target);
    padding:0 4px;cursor:pointer;font-weight:700;
  }
  main.sf-ecoat .eco-toc-disclosure summary > span:nth-child(2) {margin-left:auto;font-weight:400;}
  main.sf-ecoat .eco-toc-disclosure summary::after {
    content:"";display:block;width:8px;height:8px;margin:0 3px 4px 0;
    border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;rotate:45deg;
  }
  main.sf-ecoat .eco-toc-disclosure[open] summary::after {rotate:225deg;margin:4px 3px 0 0;}
  main.sf-ecoat .eco-toc-disclosure summary:focus-visible {outline:2px solid var(--sf-color-accent);outline-offset:3px;}
}
@media(max-width:540px) {
  main.sf-ecoat .eco-uf .eco-uf-desktop {display:none;}
  main.sf-ecoat .eco-uf .eco-uf-mobile {display:grid;list-style:none;margin:10px 0 0;padding:0;gap:6px;}
  main.sf-ecoat .eco-uf-mobile li {
    display:grid;gap:3px;margin:0;padding:9px 10px;border:1px solid rgba(218,217,216,.25);
    font-size:var(--sf-type-body-size);line-height:var(--sf-type-body-line);
  }
  main.sf-ecoat .eco-uf-mobile li > span > span {color:var(--sf-color-accent);font-weight:700;}
}
@media(max-width:430px) {
  main.sf-ecoat .sf-a51__hero-title[data-sf-type="h1"] {
    text-wrap:wrap;letter-spacing:-.045em;
  }
  main.sf-ecoat .sf-a51__hero-copy {width:calc(100% + 18px);margin-inline:-9px;}
}
@media(max-width:375px) {
  main.sf-ecoat .sf-a51__hero-title[data-sf-type="h1"] {
    font-size:min(var(--sf-type-h1-size), 10vw);letter-spacing:-.062em;
    width:calc(100% + 14px);margin-inline:-7px;
  }
}

/* ECOAT R3 · carry the shared article axes into the wider introduction. */
main.sf-ecoat .sf-a51__hero-copy .sf-a51__eyebrow[data-sf-type="eyebrow"] {
  color:var(--sf-color-accent);
}
main.sf-ecoat .sf-a51__body[data-sf-owner-review-patch="v60"] .eco-intro .sf-a51__body-intro > p[data-sf-type="body"] {
  width:min(100%,870px);max-inline-size:870px;
}
main.sf-ecoat .eco-project-group {margin:28px 0;}
main.sf-ecoat .eco-project-group .eco-projects {margin:0 0 12px;}
main.sf-ecoat .eco-project-group>figcaption {
  color:var(--sf-color-neutral);font-size:var(--sf-type-small-size);
  line-height:var(--sf-type-small-line);max-inline-size:75ch;
}
@media(min-width:1200px) {
  main.sf-ecoat .sf-a51__hero .sf-a51__hero-copy {top:32px;}
}
@media(min-width:2300px) {
  main.sf-ecoat .sf-a51__hero-media img {left:auto;right:0;width:min(100%,2300px);}
}

/* Article019 §11: an inline diagram shares the loaded Manrope body face. */
main.sf-ecoat .eco-svg text {font-family:var(--sf-font-body);}

/* Inherit Article51's table shell, native table and row styling. The
   three-column comparison fits narrow viewports with wrapping cells. */
main.sf-ecoat .sf-a51__table-wrap.eco-table {margin-block:24px 32px;}
main.sf-ecoat .eco-table table {min-inline-size:0;table-layout:fixed;}
main.sf-ecoat .eco-table :is(th,td) {overflow-wrap:anywhere;}
@media(max-width:640px) {
  main.sf-ecoat .eco-table :is(th,td) {padding-inline:6px;}
}

/* Brand v07 §5.7.1. Paint chapter boundaries to the outer canvas
   without moving the Article51 content and sticky-TOC tracks. */
main.sf-ecoat .sf-a51__body {isolation:isolate;overflow-x:clip;}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter] {
  position:relative;
  isolation:isolate;
  margin-block:0;
  padding-block:clamp(32px,3.125vw,48px);
  border-top:0;
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter] > h2 {margin-block-end:32px;}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter] > h3 {margin-block-start:32px;}
main.sf-ecoat .eco-figure,main.sf-ecoat .eco-project-group {margin-block:32px;}
@media(max-width:767px) {
  main.sf-ecoat .sf-a51__article > section[data-eco-chapter] > h2 {margin-block-end:24px;}
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter]::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:-1;
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter]:not(:first-child)::after {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:1px;
  pointer-events:none;
  border-image:linear-gradient(rgba(255,255,255,.28),rgba(255,255,255,.28)) 0 fill / 0 / 0 100vmax;
  z-index:-1;
}
main.sf-ecoat .sf-a51__article > section[data-eco-surface="project-proof"]::before {
  border-image:linear-gradient(rgba(255,255,255,.024),rgba(255,255,255,.024)) 0 fill / 0 / 0 100vmax;
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter="01"] {padding-block-start:0;}
main.sf-ecoat .sf-a51__body[data-sf-owner-review-patch="v60"] .sf-a51__sources[data-eco-chapter] {
  margin-block-start:0;
  padding-block-start:32px;
}
main.sf-ecoat .sf-a51__toc {z-index:2;}
@media(min-width:901px) {
  /* The full-width divider passes underneath the sticky reading navigation. */
  main.sf-ecoat .sf-a51__toc {background-color:var(--sf-color-dark);}
}
@media(min-width:768px) {
  main.sf-ecoat .sf-a51__article > section[data-eco-chapter]:not(:first-child) {padding-block-start:32px;}
}

/* ECOAT R5. Bind C02's body role to Brand v07's dark-page text hierarchy. */
main.sf-ecoat .sf-a51__body [data-sf-type="body"],
main.sf-ecoat .sf-a51__body :is(.eco-diagram p:not(.eco-kicker), .eco-diagram dd, .eco-stages, .eco-flow, .eco-uf-mobile) {
  color: var(--sf-color-neutral);
}

/* Restore the Article51 underline. Its accent, offset and focus treatment
   come from the existing article styles. */
main.sf-ecoat .sf-a51__body :is(.eco-intro, .sf-a51__article) :is(p, li) a[href]:not(.button) {
  text-decoration-line: underline;
}
main.sf-ecoat .sf-a51__body :is(.eco-intro, .sf-a51__article) :is(p, li) a[href]:not(.button):is(:hover, :focus-visible, :active) {
  text-decoration-thickness: 2px;
}

/* The TOC and headings share the existing chapter order. The visual
   index is decorative and the H2 remains the native fragment target. */
main.sf-ecoat .sf-a51__article {
  counter-reset: eco-chapter;
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter] {
  counter-increment: eco-chapter;
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter] > h2 {
  color: var(--sf-color-white);
}
main.sf-ecoat .sf-a51__article > section[data-eco-chapter] > h2::before {
  content: counter(eco-chapter, decimal-leading-zero) / "";
  position: static;
  inline-size: max-content;
  block-size: auto;
  background: none;
  display: block;
  margin-block-end: var(--sf-space-2);
  color: var(--sf-color-accent);
  font: var(--sf-type-h3-weight) var(--sf-type-small-size)/var(--sf-type-small-line) var(--sf-font-body);
  letter-spacing: .05em;
}

/* Keep comparisons aligned, then give the process route and UF a shared
   surface so they read as one engineering figure. */
main.sf-ecoat .eco-polarity .eco-diagram {
  border-block-start-color: var(--sf-a51-line-strong);
}
main.sf-ecoat .eco-film .eco-diagram {
  background: transparent;
  border-inline: 0;
  border-block-end: 0;
  border-block-start-color: var(--sf-a51-line-strong);
  padding-inline: var(--sf-space-2);
}
main.sf-ecoat .eco-route {
  padding: clamp(12px, 1.8vw, 24px);
  background: color-mix(in srgb, var(--sf-color-surface) 65%, var(--sf-color-dark));
  border: 1px solid var(--sf-a51-line);
  gap: var(--sf-space-4);
}
main.sf-ecoat .eco-route > .eco-diagram {
  background: transparent;
  border: 0;
  padding: 0;
}

/* One chapter hosts the project proof. Media keep their size and crop.
   A connected dark title panel integrates each render into the gallery. */
main.sf-ecoat .eco-project > a {
  display: block;
  position: relative;
}
main.sf-ecoat .eco-project > a::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid var(--sf-a51-line-strong);
  pointer-events: none;
}
main.sf-ecoat .eco-project figcaption {
  padding: var(--sf-space-3) var(--sf-space-4);
  background: var(--sf-color-surface);
}
main.sf-ecoat .eco-project figcaption strong {
  color: var(--sf-color-white);
}

main.sf-ecoat .eco-inputs li {
  border-inline: 0;
  border-block-end: 0;
  background: color-mix(in srgb, var(--sf-color-surface) 35%, var(--sf-color-dark));
}
main.sf-ecoat .eco-inputs svg {
  color: var(--sf-color-neutral);
}
