@font-face {
  font-family:"Barlow";
  src:url(assets/fonts/barlow-600-latin.woff2) format("woff2");
  font-weight:600;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}

@font-face {
  font-family:"Barlow";
  src:url(assets/fonts/barlow-600-latin-ext.woff2) format("woff2");
  font-weight:600;
  font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}

@font-face {
  font-family:"Open Sans";
  src:url(assets/fonts/open-sans-latin.woff2) format("woff2");
  font-weight:300 800;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD
}

@font-face {
  font-family:"Open Sans";
  src:url(assets/fonts/open-sans-latin-ext.woff2) format("woff2");
  font-weight:300 800;
  font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF
}

:root {
  --ink:#25313d;
  --muted:#606a72;
  --paper:#f7f6f2;
  --line:#dedfd9;
  --accent:#aa4e0a;
  --orange:#ee8b26;
  --dark:#202e39;
  --highlight-from:#fff9ee;
  --highlight-to:#ffefd6;
  --highlight-line:#e9ab62;
  --highlight:linear-gradient(125deg,var(--highlight-from),var(--highlight-to));
  /* Diagram arrows: the site's arrow icon, standing alone between blocks (as in the logo), one size and colour. */
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6'/%3E%3C/svg%3E");
  --arrow-size:16px;
  --connector:#a6aca6;
  --connector-head:#a45d21;
  --radius:16px;
  --radius-sm:12px;
  --font-heading:"Barlow",Bahnschrift,"Segoe UI",Arial,sans-serif;
  --font-body:"Open Sans","Segoe UI",Arial,sans-serif;
  /* Type scale. Text: 11 (labels, minimum) 12 13 14 15 16 18. Titles: 20 24 28, then the tokens below. */
  --fs-h1:clamp(38px,4vw,56px);
  --fs-h2:clamp(32px,3.3vw,46px);
  --fs-h2-side:32px;
  --fs-h3-panel:clamp(28px,2.6vw,34px);
  --measure:70ch
}


* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:106px
}

body {
  margin:0;
  color:var(--ink);
  background:#fff;
  font:16px/1.65 var(--font-body);
  font-size-adjust:0.5;
  -webkit-font-smoothing:antialiased
}

/* Underlines run continuously, also under descenders (g, p) and @, as on the "in preparation" page. */
a {
  color:inherit;
  text-decoration:none;
  text-decoration-skip-ink:none
}

button {
  font:inherit
}

svg {
  display:block
}

img {
  display:block;
  max-width:100%;
  height:auto
}

p,h1,h2,h3,figure {
  margin:0
}

p+p {
  margin-top:18px
}

/* Barlow is narrower than the former Bahnschrift, so headings use one light tracking instead of per-rule values. */
h1,h2,h3,h4 {
  font-family:var(--font-heading);
  font-weight:600;
  font-size-adjust:none;
  letter-spacing:-0.012em;
  text-wrap:balance
}

/* Running text keeps one comfortable line length on every page. */
:is(.case-prose,.concept-section-heading,.concept-outcome,.machine-infrastructure,.case-data-note,.machine-card-copy)>p,.decision-note p,.pricing-note,.package-terms {
  max-width:var(--measure)
}

/* Long section titles wrap into two balanced lines; the main hero keeps its approved natural wrapping. */
.section-heading h2 {
  max-width:16em
}

.hero h1 {
  text-wrap:wrap
}

h2 {
  font-size:var(--fs-h2);
  line-height:1.15
}

h3 {
  font-size:20px;
  line-height:1.35
}

strong {
  font-weight:650
}

a,button {
  -webkit-tap-highlight-color:transparent
}

:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px
}

.container {
  width:min(1216px,calc(100% - 96px));
  margin-inline:auto
}

.section {
  padding-block:104px
}

.icon-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}

.icon {
  width:24px;
  height:24px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round
}

.skip-link {
  position:fixed;
  z-index:20;
  left:20px;
  top:-100px;
  background:var(--dark);
  color:#fff;
  padding:12px 20px
}

.skip-link:focus {
  top:12px
}

.eyebrow {
  font-size:11px;
  font-weight:650;
  letter-spacing:1.55px;
  text-transform:uppercase;
  line-height:1.7
}

.section-label {
  color:var(--accent);
  margin-bottom:20px
}

.status-dot {
  width:7px;
  height:7px;
  background:var(--orange);
  border-radius:50%;
  flex-shrink:0;
  display:inline-block
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  padding:17px 24px;
  border-radius:10px;
  font-size:15px;
  font-weight:650;
  line-height:1.5;
  transition:transform .2s,box-shadow .2s,filter .2s;
  min-height:56px
}

.primary {
  color:var(--dark);
  background:linear-gradient(135deg,#ffc268 0%,#ffac3d 45%,#e68a24 100%);
  border:1px solid #bb6817;
  box-shadow:inset 0 1px 0 #ffffff99,inset 0 -2px 0 #a95b1726,0 5px 12px #8e450b1a
}

.primary:hover {
  filter:brightness(1.04);
  transform:translateY(-2px);
  box-shadow:inset 0 1px 0 #ffffffb3,inset 0 -2px 0 #a95b1726,0 8px 18px #8e450b26
}

.primary:active {
  filter:brightness(1);
  transform:translateY(0);
  box-shadow:inset 0 1px 3px #a95b1733,0 2px 5px #8e450b1a
}

.small-note {
  font-size:12px;
  line-height:1.7;
  color:var(--muted);
  max-width:380px;
  margin-top:16px
}

.site-header {
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #e9e9e3
}

.header-inner {
  height:100px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px
}

.brand {
  display:block;
  width:360px;
  flex-shrink:0
}

.header-inner nav {
  display:flex;
  align-items:center;
  gap:28px;
  font-size:13px;
  font-weight:550
}

.header-inner nav a {
  padding-block:12px
}

.header-inner nav a:not(.primary):hover {
  color:var(--accent)
}

.header-inner nav .nav-contact {
  gap:12px;
  padding:12px 17px;
  min-height:46px;
  font-size:13px;
  white-space:nowrap
}

.nav-contact .icon {
  width:18px;
  height:18px
}

.menu-toggle {
  display:none
}

.menu-toggle .icon {
  width:16px;
  height:16px
}

.hero {
  display:grid;
  grid-template-columns:1.35fr 1fr;
  gap:60px;
  align-items:center;
  padding-block:76px 90px
}

.hero .eyebrow {
  color:var(--accent);
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:.85px
}

.hero h1 {
  font-size:clamp(36px,3.5vw,50px);
  line-height:1.13;
  margin-block:24px
}

.hero h1 span {
  color:var(--accent)
}

.hero-description {
  font-size:16px;
  line-height:1.8;
  color:var(--muted);
  max-width:590px;
  margin-bottom:30px
}

.flow-art {
  position:relative;
  background-color:var(--paper);
  background-image:radial-gradient(#cfd1cb .75px,transparent .75px);
  background-size:19px 19px;
  border:1px solid #e6e6df;
  border-radius:var(--radius);
  padding:26px 28px 22px;
  overflow:hidden;
  min-height:520px
}

.art-heading,.art-footer,.visual-top {
  display:flex;
  justify-content:space-between;
  font-size:11px;
  letter-spacing:1.2px;
  font-weight:650
}

.art-heading {
  margin-bottom:34px
}

.art-number {
  color:#7a817e
}

.flow-node {
  display:flex;
  align-items:center;
  gap:16px;
  width:80%;
  background:#fff;
  border:1px solid #dadbd5;
  box-shadow:0 7px 18px #26313d08;
  border-radius:var(--radius-sm);
  padding:18px;
  position:relative
}

.flow-node>div {
  display:flex;
  flex-direction:column
}

.flow-node strong {
  font:600 20px/1.3 var(--font-heading)
}

.flow-node div>span:last-child {
  font-size:11px;
  color:var(--muted);
  margin-top:3px
}

.node-index {
  font-size:11px;
  position:absolute;
  right:13px;
  top:10px;
  color:#858b8c
}

.node-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg,#435361,#202d39);
  color:#fff;
  width:56px;
  height:56px;
  border-radius:13px;
  box-shadow:inset 0 1px 1px #ffffff40;
  flex-shrink:0
}

.node-icon svg {
  height:30px;
  width:30px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-linejoin:round
}

.node-factory {
  margin-left:10%
}

.node-warehouse {
  margin-left:20%;
  border-color:#e9cda5
}

.node-warehouse .node-icon {
  background:linear-gradient(135deg,#ffb64a,#d57112)
}

.flow-connection {
  height:40px;
  position:relative;
  margin-left:45px
}

.flow-connection span {
  height:20px;
  width:42px;
  border-left:1px solid #a6aca6;
  border-bottom:1px solid #a6aca6;
  position:absolute;
  top:0
}

.flow-connection .icon {
  position:absolute;
  left:32px;
  top:17px;
  transform:rotate(90deg);
  width:18px;
  height:18px;
  color:#a45d21
}

.flow-connection.second {
  margin-left:calc(10% + 45px)
}

.art-footer {
  margin-top:30px;
  font-size:11px;
  letter-spacing:.5px;
  justify-content:flex-start;
  gap:10px;
  align-items:center
}

.tiny-cross {
  font-size:20px;
  font-weight:400
}

.problem-section {
  background:var(--paper);
  border-block:1px solid #eeeee7
}

.problem-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:start
}

.problem-list {
  margin-top:32px
}

.problem-list article {
  display:flex;
  gap:20px;
  padding:22px 0;
  border-top:1px solid var(--line)
}

.problem-list article>span {
  font-size:11px;
  color:#7c827e;
  padding-top:4px
}

.problem-list h3 {
  font-size:18px;
  line-height:1.5
}

.problem-list p {
  font-size:14px;
  color:var(--muted);
  margin-top:7px
}

.solution-panel {
  background:var(--dark);
  color:#fff;
  border-radius:var(--radius);
  padding:42px;
  margin-top:45px
}

.panel-mark {
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border:1px solid #63717b;
  border-radius:10px;
  margin-bottom:36px;
  color:#ffb260
}

.solution-panel h2 {
  font-size:var(--fs-h2-side);
  margin-bottom:22px
}

.solution-panel>p {
  font-size:15px;
  color:#d2d8dc
}

.benefits {
  list-style:none;
  margin:30px 0;
  padding:0
}

.benefits li {
  display:flex;
  align-items:flex-start;
  gap:15px;
  padding:18px 0;
  border-top:1px solid #41505b;
  font-size:15px
}

.benefits .icon {
  color:#ffb260;
  width:20px;
  height:20px;
  margin-top:3px
}

.solution-panel .solution-note {
  font-size:13px;
  line-height:1.8;
  border-top:1px solid #41505b;
  padding-top:25px;
  color:#bdc7ce
}

.section-heading {
  margin-bottom:48px
}

.projects-section {
  background:var(--paper)
}

.project {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:70px;
  align-items:center;
  padding-block:44px;
  border-top:1px solid var(--line)
}

.project:last-child {
  padding-bottom:0
}

.project-visual {
  background:#edeee7;
  border:1px solid #daddd3;
  border-radius:var(--radius-sm);
  padding:25px;
  overflow:hidden
}

.visual-top {
  font-size:11px;
  letter-spacing:1px;
  gap:20px;
  color:#697368
}


.project-visual figcaption {
  font-size:11px;
  color:#697368;
  margin-top:23px;
  line-height:1.6
}

.process-screenshot {
  padding:18px;
  background:#f3f4ef
}

.process-screenshot .visual-top {
  padding:2px 4px 16px
}

.process-screenshot-frame {
  overflow:hidden;
  aspect-ratio:1917/763;
  background:#fff;
  border:1px solid #cbd2d5;
  border-radius:8px;
  box-shadow:0 10px 24px #25313d14
}

.process-screenshot-frame img {
  display:block;
  width:100%;
  height:auto;
  transform:translateY(-15.03%)
}

.process-screenshot figcaption {
  margin:14px 4px 1px
}

.project-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:24px;
  color:var(--accent);
  font-weight:650;
  text-decoration:underline;
  text-underline-offset:5px;
}

.project-link:hover {
  color:var(--ink);
}

.project-category {
  color:var(--accent);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-weight:650
}

.project h3 {
  font-size:28px;
  line-height:1.2;
  margin-top:13px
}

.project-copy p {
  font-size:14px;
  color:var(--muted);
  line-height:1.8;
  margin-top:18px
}

.project-copy .project-subtitle {
  font-size:16px;
  color:var(--ink);
  margin-top:13px;
  margin-bottom:26px
}

.project-copy strong {
  color:var(--ink)
}

.project-copy .project-status {
  display:flex;
  gap:10px;
  font-size:12px;
  border-top:1px solid var(--line);
  padding-top:18px
}

.project-status .status-dot {
  margin-top:7px;
  width:6px;
  height:6px
}

.machine-teaser { padding-block:72px; border-bottom:1px solid var(--line); }
.machine-teaser :is(h2,h3,h4) { text-wrap:balance; }
.machine-teaser p { text-wrap:pretty; }
.machine-teaser h2 { max-width:1000px; font-size:var(--fs-h2); line-height:1.15; }
.machine-teaser-copy { max-width:960px; margin-bottom:36px; }
.machine-teaser-copy>p:not(.section-label) { color:var(--muted); margin-top:20px; font-size:16px; }
.machine-arguments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; list-style:none; margin:0; padding:0; }
.machine-card { padding:28px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--paper); }
.machine-card h3 { margin-bottom:18px; font-size:24px; line-height:1.3; }
.machine-card-copy p { color:var(--muted); font-size:15px; }
.machine-card-copy p+p { margin-top:16px; }
.machine-card:last-child { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:32px; }
.machine-card:last-child h3 { margin-bottom:0; }
.machine-card:last-child .machine-card-copy { align-self:center; }
.machine-infrastructure { margin-top:40px; padding:32px; border:1px solid var(--line); border-radius:var(--radius); }
.machine-infrastructure h3 { max-width:850px; font-size:var(--fs-h3-panel); line-height:1.2; }
.machine-infrastructure-intro { max-width:900px; margin-top:20px; color:var(--muted); font-size:15px; }
.machine-infrastructure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 40px; list-style:none; margin:28px 0 0; padding:0; }
.machine-infrastructure-grid li { border-top:1px solid var(--line); padding-top:20px; }
.machine-infrastructure-grid h4 { margin-bottom:12px; font:600 20px/1.3 var(--font-heading); color:var(--ink); }
.machine-infrastructure-grid p { color:var(--muted); font-size:15px; }
.machine-infrastructure .machine-scope { margin-top:28px; color:var(--muted); font-size:13px; }
.machine-contact { justify-content:center; font-size:14px; }
@media(max-width:1000px) {
  .machine-card { padding:24px; }
  .machine-card:last-child .concept-card-top>span:last-child { top:24px; right:24px; }
  .machine-contact { justify-self:start; }
}
@media(max-width:620px) {
  .machine-teaser { padding-block:48px; }
  .machine-arguments,.machine-infrastructure-grid,.machine-card:last-child { grid-template-columns:1fr; }
  .machine-card:last-child { gap:18px; }
  .machine-infrastructure { padding:24px; }
  .machine-infrastructure-grid { gap:24px; }
  .machine-contact { width:100%; }
}

.geo-visual {
  background:#f3f4ef;
  border-color:#d4dfda
}

.geo-screenshot {
  padding:18px
}

.geo-screenshot .visual-top {
  padding:2px 4px 16px
}

.geo-screenshot-frame {
  overflow:hidden;
  background:#fff;
  border:1px solid #cbd2d5;
  border-radius:8px;
  box-shadow:0 10px 24px #25313d14
}

.geo-screenshot-frame img {
  display:block;
  width:100%;
  height:auto
}

.geo-screenshot figcaption {
  margin:14px 4px 1px
}


.about {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:80px
}

.about-photo {
  width:224px;
  height:auto;
  border-radius:50%;
  margin-top:30px
}

.about-copy {
  font-size:18px;
  color:var(--muted);
  line-height:1.9;
  padding-top:35px
}

.about-copy strong {
  color:var(--ink)
}

.pricing-section {
  background:var(--paper);
  border-top:1px solid #eeeee7
}

.pricing-grid {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:80px
}

.pricing-note {
  font-size:14px;
  color:var(--muted);
  max-width:365px;
  margin-top:26px
}

.price-options {
  border-top:2px solid var(--ink)
}

.price-option {
  padding:26px 0
}


.price {
  font-size:14px;
  margin-top:18px
}

.price strong {
  font:500 40px/1.2 var(--font-heading);
  letter-spacing:-1.5px;
  margin-inline:4px
}

.price>span {
  color:var(--muted);
  font-size:12px;
  white-space:nowrap
}

.price-option>p:last-child:not(.price) {
  font-size:13px;
  color:var(--muted);
  margin-top:15px
}


.contact-section {
  background:var(--dark);
  color:#fff
}

.contact-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:100px;
  align-items:center
}

.contact-section .section-label {
  color:#ffb260
}

.contact-section h2 {
  font-size:var(--fs-h2)
}

.contact-grid>div>p:last-child {
  margin-top:25px;
  font-size:16px;
  color:#c4ced5;
  line-height:1.85
}

.contact-actions .primary {
  border-color:#e29139
}

.contact-actions .small-note {
  color:#c0cbd2
}

.booking-hint {
  font-size:12px;
  color:#c0cbd2;
  margin-top:9px
}

.contact-links {
  border-top:1px solid #43525e;
  margin-top:30px;
  padding-top:23px;
  display:flex;
  flex-direction:column;
  gap:12px
}

.contact-links a {
  display:flex;
  align-items:center;
  gap:14px;
  font-size:18px;
  width:fit-content
}

.contact-links a:hover {
  color:#ffb260
}

.contact-links .icon {
  width:18px;
  height:18px;
  color:#d6e0e6
}

.site-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding-block:35px
}

.site-footer .brand {
  width:285px
}

.site-footer p,.site-footer>a:last-child {
  font-size:11px;
  color:var(--muted)
}


@media(min-width:1500px) {
  .hero {
  padding-block:100px 110px
}


}


@media(max-width:1100px) {
  .container {
  width:calc(100% - 64px)
}

.brand {
  width:300px
}

.header-inner nav {
  gap:20px;
  font-size:12px
}

.hero {
  gap:30px;
  grid-template-columns:1.2fr 1fr
}

.hero h1 {
  font-size:40px
}

.flow-art {
  padding-inline:20px
}

.flow-node {
  gap:12px;
  padding:15px;
  width:85%
}

.node-warehouse {
  margin-left:15%
}

.problem-grid,.project,.about,.pricing-grid {
  gap:45px
}

.solution-panel {
  padding:30px
}

.contact-grid {
  gap:50px
}

.contact-section h2 {
  font-size:var(--fs-h2)
}


}


@media(max-width:900px) {
  html {
  scroll-padding-top:90px
}

.header-inner {
  height:82px;
  position:relative
}

.header-inner nav {
  gap:18px;
  font-size:12px
}

.js .menu-toggle {
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  background:white;
  border-radius:5px;
  padding:8px 12px;
  font-size:12px
}

.js .header-inner nav {
  display:none;
  position:absolute;
  top:81px;
  left:-32px;
  right:-32px;
  background:white;
  padding:18px 32px 26px;
  box-shadow:0 12px 16px #25313d0c;
  border-bottom:1px solid var(--line);
  font-size:15px
}

.js .header-inner nav.is-open {
  display:flex;
  align-items:stretch;
  flex-direction:column;
  gap:2px
}

.js .nav-contact {
  justify-content:space-between;
  margin-top:10px
}

.hero {
  grid-template-columns:1fr;
  gap:44px;
  padding-block:56px
}

.hero-content {
  max-width:710px
}

.hero h1 {
  font-size:48px
}

.hero-description {
  max-width:650px
}

.flow-art {
  width:100%;
  min-height:0;
  transform:none;
  padding:25px;
  display:grid;
  grid-template-columns:1fr 26px 1fr 26px 1fr;
  align-items:center;
  gap:0
}

.art-heading {
  grid-column:1/-1;
  margin-bottom:25px
}

.flow-node {
  width:100%;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:18px 12px;
  gap:15px
}

.flow-connection,.flow-connection.second {
  margin:0;
  height:22px
}

.flow-connection span {
  display:none
}

.flow-connection .icon {
  transform:none;
  left:3px;
  top:2px
}

.art-footer {
  grid-column:1/-1;
  margin-top:22px
}

.section {
  padding-block:72px
}

.problem-grid {
  gap:32px
}

.solution-panel {
  padding:27px 24px
}

.solution-panel h2 {
  font-size:var(--fs-h2-side)
}

.project {
  gap:32px;
  grid-template-columns:1fr 1fr
}

.project-visual {
  padding:18px
}

.visual-top {
  font-size:11px;
  gap:8px
}


.project h3 {
  font-size:24px
}

.about,.pricing-grid {
  gap:40px;
  grid-template-columns:.85fr 1.15fr
}

.about-copy {
  font-size:16px
}


.contact-grid {
  grid-template-columns:1.1fr 1fr;
  gap:30px
}

.contact-section h2 {
  font-size:var(--fs-h2)
}

.contact-actions .button {
  font-size:13px;
  gap:18px;
  padding-inline:18px
}

.site-footer .brand {
  width:250px
}


}


@media(max-width:620px) {
  .container {
  width:calc(100% - 40px)
}

.header-inner {
  height:77px;
  gap:10px
}

.brand {
  width:min(260px,calc(100% - 77px))
}

.js .header-inner nav {
  top:76px;
  left:-20px;
  right:-20px;
  padding-inline:20px
}

.js .menu-toggle {
  font-size:11px;
  padding:7px 9px;
  gap:7px
}


.hero {
  padding-block:38px 48px;
  gap:35px
}

.hero .eyebrow {
  font-size:11px;
  letter-spacing:.5px;
  align-items:flex-start;
  gap:8px;
  max-width:310px
}

.hero .status-dot {
  margin-top:5px;
  width:6px;
  height:6px
}

.hero h1 {
  font-size:clamp(32px,8.4vw,43px);
  line-height:1.16;
  margin-block:20px
}

.hero-description {
  font-size:15px;
  line-height:1.8;
  margin-bottom:25px
}

.button {
  font-size:14px;
  gap:24px;
  padding:16px 20px
}

.small-note {
  font-size:11px;
  max-width:310px
}

.flow-art {
  padding:18px 14px;
  border-radius:10px;
  grid-template-columns:1fr 18px 1fr 18px 1fr
}

.art-heading {
  font-size:11px;
  letter-spacing:.7px;
  margin-bottom:20px
}

.flow-node {
  padding:14px 7px;
  gap:12px;
  border-radius:8px;
  min-height:155px
}

.node-icon {
  width:38px;
  height:38px;
  border-radius:9px
}

.node-icon svg {
  width:23px;
  height:23px
}

.node-index {
  right:7px;
  top:7px;
  font-size:11px
}

.flow-node strong {
  font-size:16px
}

.flow-node div>span:last-child {
  font-size:11px;
  line-height:1.5
}

.flow-connection .icon {
  left:0;
  width:18px
}

.art-footer {
  font-size:11px;
  letter-spacing:.2px;
  margin-top:15px
}

.tiny-cross {
  font-size:16px
}

.section {
  padding-block:58px
}

h2 {
  font-size:32px
}

.section-label {
  font-size:11px;
  letter-spacing:1.2px;
  margin-bottom:17px
}

.problem-grid,.project,.about,.pricing-grid,.contact-grid {
  grid-template-columns:1fr;
  gap:32px
}

.problem-list {
  margin-top:25px
}

.problem-list article {
  padding:19px 0;
  gap:15px
}

.problem-list h3 {
  font-size:16px
}

.problem-list p {
  font-size:13px
}

.solution-panel {
  margin-top:0;
  padding:28px 25px
}

.panel-mark {
  margin-bottom:25px
}

.solution-panel h2 {
  font-size:var(--fs-h2-side)
}

.benefits {
  margin-block:22px
}

.section-heading {
  margin-bottom:32px
}

.section-heading h2 br {
  display:none
}

.project {
  padding-block:30px;
  gap:26px
}

.project-visual {
  padding:21px;
  max-width:100%
}

/* All portfolio figures follow their descriptions in the single-column layout. */
.project>figure {
  order:2
}

.project>.project-copy {
  order:1
}

.project h3 {
  font-size:28px
}

.project-copy .project-subtitle {
  font-size:15px;
  margin-bottom:20px
}

.project-copy p {
  font-size:14px
}

.visual-top {
  font-size:11px
}


.project-visual figcaption {
  font-size:11px
}

.about {
  gap:27px
}

.about-photo {
  width:200px;
  margin-top:25px
}

.about-copy {
  padding:0;
  font-size:16px
}

.pricing-grid {
  gap:30px
}

.pricing-note {
  font-size:13px;
  margin-top:22px;
  max-width:none
}


.price strong {
  font-size:40px
}

.price>span {
  font-size:11px
}

.contact-grid {
  gap:28px
}

.contact-section h2 {
  font-size:var(--fs-h2)
}

.contact-section h2 br {
  display:none
}

.contact-grid>div>p:last-child {
  font-size:15px;
  margin-top:22px
}

.contact-actions .button {
  font-size:14px;
  padding-inline:20px;
  gap:23px
}

.contact-links {
  margin-top:24px
}

.contact-links a {
  font-size:16px
}

.site-footer {
  padding-block:30px;
  gap:22px;
  flex-wrap:wrap
}

.site-footer .brand {
  width:280px;
  max-width:100%;
  margin-right:30px
}

.site-footer p {
  margin:0
}

.site-footer>a:last-child {
  margin-left:auto
}

html:not(.js) .header-inner {
  height:auto;
  flex-wrap:wrap;
  padding-block:18px
}

html:not(.js) .header-inner nav {
  flex-wrap:wrap;
  gap:10px 20px
}

html:not(.js) .brand {
  width:280px
}


}


@media(max-width:900px) {
  html:not(.js) .header-inner {
  height:auto;
  flex-wrap:wrap;
  padding-block:18px
}

html:not(.js) .header-inner nav {
  flex-wrap:wrap;
  gap:10px 20px
}


}


@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}

*,*:before,*:after {
  transition:none!important;
  animation:none!important
}


}

/* October review: three cooperation options. */
.monitoring-page .machine-teaser { padding-top:28px; }
.monitoring-page h1 { max-width:960px; font-size:var(--fs-h1); line-height:1.12; text-wrap:balance; }
.monitoring-page .machine-teaser-copy { margin-bottom:48px; }
.pricing-section .pricing-grid { display:block; }
.pricing-section .pricing-note { max-width:760px; margin:22px 0 36px; }
.pricing-section .price-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; border:0; }
.pricing-section .price-option { display:flex; flex-direction:column; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.pricing-section .featured-package { border-color:#e39a43; background:var(--highlight); box-shadow:0 6px 22px #ad631013; }
.package-label { color:var(--accent); text-transform:uppercase; letter-spacing:1.1px; font-size:11px; font-weight:650; margin-bottom:16px; }
.price-option h3 { font-size:24px; line-height:1.2; text-wrap:balance; }
.package-description { margin-top:18px; color:var(--muted); font-size:14px; }
.pricing-section .price { margin:20px 0 24px; line-height:1.2; }
.pricing-section .price strong { font-size:40px; }
.featured-package .price strong { color:var(--accent); }
.pricing-section .price strong:first-child { margin-left:0; }
.pricing-section .price>span { display:block; margin-top:4px; line-height:1.4; }
.package-features { list-style:none; padding:0; margin:0 0 28px; border-top:1px solid var(--line); }
.package-features li { position:relative; margin-top:16px; padding-left:16px; font-size:14px; color:var(--muted); }
.package-features li::before { content:""; position:absolute; top:.65em; left:0; width:5px; height:5px; background:var(--accent); border-radius:50%; }
.price-option>.project-link,.price-option>.button { margin-top:auto; font-size:14px; }
.price-option>.button { justify-content:center; padding:14px 16px; }
.package-terms { margin-top:24px; max-width:900px; font-size:13px; color:var(--muted); }
.package-note { margin:-12px 0 24px; color:var(--muted); font-size:13px; line-height:1.6; }
/* Four packages side by side only where each card stays wide enough; two-line labels keep prices aligned. */
@media(min-width:1240px) {
  .pricing-section .price-options { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .pricing-section .price-option { padding:28px 24px; }
  .pricing-section .package-label { min-height:3.4em; }
  .package-description { min-height:76px; }
  .price-option>.button { padding-inline:14px; white-space:nowrap; }
}
@media(max-width:1000px) {
  .pricing-section .price-options { grid-template-columns:1fr; }
  .pricing-section .price-option { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
  .price-option .package-label,.price-option h3,.price-option .package-description { grid-column:1; }
  .price-option .price { grid-column:2; grid-row:1/4; align-self:center; }
  .price-option .package-features,.price-option .package-note,.price-option>.project-link,.price-option>.button { grid-column:1/-1; }
  .package-description { min-height:0; margin-bottom:22px; }
}
@media(max-width:620px) {
  .pricing-section .price-option { display:flex; padding:24px; }
  .price-option .price { align-self:auto; }
  .price-option>.button { width:100%; }
}

/* Monitoring: an automatic record, with the cause added separately. */
.monitoring-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:56px; align-items:center; margin-bottom:64px; }
.monitoring-hero .machine-teaser-copy { margin-bottom:0; }
.monitoring-hero h1 { font-size:var(--fs-h1); }
.monitoring-diagram { padding:28px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); }
.monitoring-flow { list-style:none; padding:0; margin:22px 0 0; display:grid; gap:26px; }
.monitoring-flow li { position:relative; display:flex; align-items:center; gap:16px; padding:18px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; }
.monitoring-flow li+li::before { content:""; position:absolute; width:var(--arrow-size); height:var(--arrow-size); background:var(--connector-head); -webkit-mask:var(--arrow) center/contain no-repeat; mask:var(--arrow) center/contain no-repeat; top:-21px; left:29px; transform:rotate(90deg); }
.monitoring-flow-number { display:grid; place-items:center; width:38px; height:38px; flex-shrink:0; border-radius:10px; background:linear-gradient(140deg,#526571,var(--ink)); color:#fff; font-size:12px; border:1px solid #76858e; }
:is(.monitoring-flow,.monitoring-operator) h2 { font-size:20px; line-height:1.25; }
:is(.monitoring-flow,.monitoring-operator) p { margin-top:6px; font-size:12px; color:var(--muted); }
.monitoring-flow .monitoring-record { background:var(--highlight); border-color:var(--highlight-line); }
.monitoring-record .monitoring-flow-number { background:linear-gradient(135deg,#ffbd56,#e7790c); border-color:#e29538; color:var(--ink); }
/* Optional step: the same block as the steps above, with a dashed outline and a "+" badge. */
.monitoring-operator { position:relative; display:flex; align-items:center; gap:16px; margin-top:26px; padding:18px; border:1px dashed #a9b1b6; border-radius:var(--radius-sm); background:#fff; }
.monitoring-operator .monitoring-flow-number { background:#fff; border:1px dashed #a9b1b6; color:var(--muted); font-size:18px; }
.monitoring-operator::before { content:""; position:absolute; width:var(--arrow-size); height:var(--arrow-size); background:var(--connector-head); -webkit-mask:var(--arrow) center/contain no-repeat; mask:var(--arrow) center/contain no-repeat; top:-21px; left:29px; transform:rotate(-90deg); background:var(--muted); }
.monitoring-diagram figcaption { font-size:12px; line-height:1.6; color:var(--muted); }
.monitoring-diagram figcaption { margin-top:22px; }
.monitoring-contents { margin-bottom:56px; }
@media(max-width:1000px) {
  .monitoring-hero { gap:32px; }
  .monitoring-diagram { padding:22px; }
}
@media(max-width:900px) {
  .monitoring-hero { grid-template-columns:1fr; margin-bottom:48px; }
  .monitoring-diagram { width:100%; max-width:600px; }
}
@media(max-width:620px) {
  .monitoring-diagram { padding:18px; }
  .monitoring-flow li,.monitoring-operator { gap:12px; padding:14px; }
  .monitoring-contents { margin-bottom:40px; }
  .monitoring-flow li+li::before { left:24px; }
  .monitoring-operator::before { left:24px; }
}

/* How I work: a process board in the hero's schematic style: free conversation, paid audit, paid implementation. */
.process-board { padding:32px; border:1px solid #e6e6df; border-radius:var(--radius); background:radial-gradient(#cfd1cb .75px,transparent .75px) 0 0/19px 19px,var(--paper); }
.phase-label { display:flex; align-items:center; gap:14px; margin:0 0 16px; color:#697368; font-size:11px; font-weight:650; letter-spacing:1.2px; text-transform:uppercase; }
.pill { padding:4px 9px; border-radius:4px; font-size:11px; letter-spacing:.4px; color:#57654c; background:#e7ecdf; }
.paid-pill { color:#995014; background:#ffdfad; }
.process-steps { display:grid; gap:26px; margin:0; padding:0; list-style:none; }
.process-steps>li { position:relative; display:grid; grid-template-columns:56px minmax(0,270px) minmax(0,1fr); gap:28px; align-items:start; padding:26px 28px; background:#fff; border:1px solid #dadbd5; border-radius:var(--radius-sm); box-shadow:0 7px 18px #26313d08; }
.step-number { display:block; color:var(--accent); font-size:12px; font-weight:650; letter-spacing:1px; }
.process-steps h3 { margin-top:6px; font-size:24px; line-height:1.25; text-wrap:balance; }
.step-time { margin-top:8px; color:var(--accent); font-size:12px; }
.step-description { padding-top:4px; color:var(--muted); font-size:15px; line-height:1.8; text-wrap:pretty; }
.paid-phase { position:relative; padding-top:64px; }
.paid-phase .phase-label { position:absolute; top:20px; left:0; margin:0; }
.process-steps .implementation-step { border-color:var(--highlight-line); background:var(--highlight); box-shadow:0 6px 22px #ad631013; }
.implementation-step .node-icon { background:linear-gradient(135deg,#ffb64a,#d57112); }
.implementation-step .step-description { color:#5b5a55; }
.process-note { display:flex; align-items:flex-start; gap:14px; margin-top:30px; padding-top:22px; border-top:1px dashed #cfd1cb; color:var(--muted); font-size:14px; }
.process-note .icon { width:20px; height:20px; margin-top:2px; color:var(--accent); }

/* Machine data teaser: dark card with a schematic shift record. */
.machine-promo { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:56px; align-items:center; margin-top:72px; padding:48px; border:1px solid #52636f; border-radius:var(--radius); background:linear-gradient(135deg,#354956,var(--dark) 70%); color:#fff; box-shadow:inset 0 1px 0 #ffffff20; }
.machine-promo .section-label { display:flex; align-items:center; gap:10px; color:#ffb260; }
.machine-promo .status-dot { animation:status-pulse 2.4s ease-out infinite; }
@keyframes status-pulse { 0% { box-shadow:0 0 0 0 #ee8b2699; } 70%,100% { box-shadow:0 0 0 8px #ee8b2600; } }
.machine-promo h2 { text-wrap:balance; }
.machine-promo-copy>p:not(.section-label) { margin-top:22px; color:#c4ced5; font-size:16px; text-wrap:pretty; }
.machine-promo .benefits { margin:28px 0 0; }
.machine-promo .benefits li { padding:14px 0; }
.machine-promo .project-link { margin-top:30px; color:#ffb260; }
.machine-promo .project-link:hover { color:#fff; }
.shift-chart { padding:26px; border:1px solid #ffffff1f; border-radius:var(--radius-sm); background:radial-gradient(#ffffff14 .75px,transparent .75px) 0 0/19px 19px,#ffffff08; }
.shift-chart .visual-top { color:#9fb0bb; }
.shift-rows { margin-top:30px; }
.shift-row+.shift-row { margin-top:22px; }
.shift-label { display:block; margin-bottom:9px; color:#d7e0e6; font-size:13px; }
.shift-bar { position:relative; height:34px; border-radius:6px; background:linear-gradient(#6d8190,#566a78); box-shadow:inset 0 1px 0 #ffffff26; overflow:hidden; }
.shift-bar i { position:absolute; top:0; bottom:0; left:var(--at); width:var(--len); }
.shift-chart i.reported { background:repeating-linear-gradient(135deg,#d2d8dc 0 4px,#aab5bc 4px 8px); }
.shift-chart i.missed { background:linear-gradient(#ffc268,#e7790c); box-shadow:0 0 12px #ee8b2680; }
.shift-chart i.work { background:linear-gradient(#6d8190,#566a78); }
.shift-axis { display:flex; justify-content:space-between; margin-top:12px; padding-top:8px; border-top:1px solid #ffffff26; color:#9fb0bb; font-size:11px; letter-spacing:.4px; }
.shift-legend { display:flex; flex-wrap:wrap; gap:8px 20px; margin:24px 0 0; padding:18px 0 0; border-top:1px solid #ffffff1a; list-style:none; color:#d7e0e6; font-size:12px; }
.shift-legend li { display:flex; align-items:center; gap:8px; }
.shift-legend i { width:14px; height:10px; border-radius:2px; }
.shift-chart figcaption { margin-top:14px; color:#9fb0bb; font-size:11px; line-height:1.6; }
@media(max-width:1000px) {
  .process-steps>li { grid-template-columns:56px minmax(0,1fr); gap:14px 24px; }
  .process-steps .step-description { grid-column:2; padding-top:0; }
  .machine-promo { grid-template-columns:1fr; gap:40px; padding:40px; }
}
@media(max-width:620px) {
  .process-board { padding:16px; border-radius:10px; }
  .process-steps { gap:22px; }
  .process-steps>li { grid-template-columns:38px minmax(0,1fr); gap:14px 16px; padding:20px 18px; }
  .process-steps .step-description { grid-column:1/-1; font-size:14px; }
  .process-steps h3 { font-size:20px; }
  .phase-label { gap:10px; font-size:11px; }
  .process-note { font-size:13px; gap:12px; }
  .machine-promo { margin-top:48px; padding:26px 20px; gap:30px; }
  .shift-chart { padding:18px; }
  .shift-legend { gap:8px 14px; font-size:11px; }
}

/* "Zobacz też" on project pages: cards built by projekty.js from the shared project list. */
.related-projects { padding-block:72px; background:var(--paper); }
.related-heading h2 { font-size:var(--fs-h2-side); }
.related-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:32px; }
.related-card { display:flex; flex-direction:column; gap:12px; padding:28px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); transition:border-color .2s; }
.related-card:hover { border-color:var(--highlight-line); }
.related-card h3 { font-size:24px; line-height:1.25; }
.related-card p { color:var(--muted); font-size:15px; }
.related-card .project-link { margin-top:auto; padding-top:8px; }
.related-fallback { margin-top:28px; }
.related-fallback .project-link { margin-top:0; }
@media(max-width:620px) {
  .related-projects { padding-block:48px; }
  .related-list { grid-template-columns:1fr; }
  .related-card { padding:22px; }
}

/* 404 page. */
.not-found { padding-block:96px 120px; }
.not-found h1 { margin-top:18px; font-size:var(--fs-h1); line-height:1.1; }
.not-found>p:not(.section-label) { max-width:var(--measure); margin-top:22px; color:var(--muted); font-size:18px; }
.not-found .project-link { margin-top:32px; }
@media(max-width:620px) {
  .not-found { padding-block:56px 72px; }
}

/* Privacy policy page: one readable column, same rhythm as the 404 page. */
.legal { padding-block:72px 110px; }
.legal>* { max-width:var(--measure); }
.legal h1 { font-size:var(--fs-h1); line-height:1.1; }
.legal-date { margin-top:14px; color:var(--muted); font-size:15px; }
.legal h2 { margin-top:44px; font-size:24px; line-height:1.25; }
.legal p,.legal ul { margin-top:14px; font-size:17px; }
.legal ul { padding-left:22px; }
.legal li+li { margin-top:6px; }
.legal a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.legal a[href^="tel:"] { white-space:nowrap; }
.site-footer p a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.site-footer p a:hover { color:var(--ink); }
@media(max-width:620px) {
  .legal { padding-block:44px 64px; }
  .legal h2 { margin-top:34px; font-size:21px; }
  .legal p,.legal ul { font-size:16px; }
}

/* Monitoring page graphics: card icons, infrastructure icons and the one-shift example in a dark panel. */
.machine-card .concept-card-top { margin-bottom:20px; }
/* The last card is laid out in two columns; its number still sits at the card's right edge. */
.machine-card:last-child { position:relative; }
.machine-card:last-child .concept-card-top>span:last-child { position:absolute; top:28px; right:28px; height:48px; display:flex; align-items:center; }
.concept-icon-sm { width:40px; height:40px; margin-bottom:16px; }
.concept-icon-sm .icon { width:22px; height:22px; }
.monitoring-shift { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:48px; align-items:start; margin-top:56px; padding:40px; border:1px solid #52636f; border-radius:var(--radius); background:linear-gradient(125deg,#324451,var(--dark)); color:#fff; }
.monitoring-shift .section-label { color:#ffb260; }
.monitoring-shift h2 { margin-top:14px; font-size:var(--fs-h3-panel); line-height:1.2; }
.monitoring-shift-copy>p:not(.section-label) { margin-top:18px; max-width:var(--measure); color:#c4ced5; font-size:16px; }
@media(max-width:1000px) {
  .monitoring-shift { grid-template-columns:1fr; gap:28px; }
}
@media(max-width:620px) {
  .monitoring-shift { margin-top:40px; padding:24px 20px; }
}
