:root {
  --esg-ink: #173229;
  --esg-soft: #466a5b;
  --esg-stroke: #b8ddcd;
  --esg-accent: #3da97a;
  --esg-accent-strong: #2d8a62;
}

.esg-page {
  background: linear-gradient(180deg, #f1fcf6 0%, #e6f6ee 100%);
  color: var(--esg-ink);
}

.esg-page .grid-overlay {
  background-image: linear-gradient(#c9e6d9 1px, transparent 1px),
    linear-gradient(90deg, #c9e6d9 1px, transparent 1px);
  opacity: 0.3;
}

.esg-page .light {
  background: radial-gradient(circle, #bfe8d4, #bfe8d400 72%);
}

.esg-topbar {
  background: #edf9f2de;
  border-bottom: 1px solid var(--esg-stroke);
}

.esg-topbar .brand {
  color: #163126;
}

.esg-topbar nav a {
  color: #4f6f62;
}

.esg-topbar nav a:hover,
.esg-topbar nav a.is-active {
  color: #256f50;
}

.esg-topbar .mobile-menu-toggle {
  border-color: #b9decc;
}

.esg-topbar .mobile-menu-toggle span {
  background: #2f6f53;
}

.esg-topbar .mobile-menu {
  border-color: #bfdccc;
  background: #f8fdfb;
  box-shadow: 0 12px 22px #5a8a7217;
}

.esg-topbar .mobile-menu a {
  color: #45685a;
}

.esg-topbar .mobile-menu a.is-active,
.esg-topbar .mobile-menu a:hover {
  background: #eaf8f0;
  color: #2b6f53;
}

.esg-btn-primary {
  background: linear-gradient(135deg, var(--esg-accent), var(--esg-accent-strong));
  border-color: #55b389;
  color: #f3fff9;
  box-shadow: 0 10px 22px #3da97a33;
}

.esg-btn-primary:hover {
  background: linear-gradient(135deg, #54b889, #399a71);
  box-shadow: 0 14px 28px #3da97a40;
}

.esg-btn-outline {
  background: #f5fdf8;
  border-color: #b7ddca;
  color: #2b6f53;
  box-shadow: none;
}

.esg-hero {
  padding: clamp(8px, 2.2vw, 26px) clamp(16px, 5vw, 72px) 0;
  background: transparent;
}

#czym-jest-esg.section {
  padding-top: clamp(56px, 8vw, 96px);
}

.esg-hero-grid {
  display: grid;
  grid-template-columns: minmax(360px, 0.85fr) minmax(520px, 1.15fr);
  gap: clamp(2px, 1vw, 14px);
  align-items: stretch;
}

.esg-badge {
  display: inline-block;
  margin: 0 0 14px;
  border: 1px solid #a7d4be;
  background: #eff9f3;
  color: #2e6d52;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 999px;
}

.esg-lead,
.esg-section-intro,
.esg-page p,
.esg-page li {
  color: var(--esg-soft);
}

.esg-hero-media img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 14px;
  border: 1px solid #b6ddca;
  box-shadow: 0 18px 36px #4f8a6a22;
}

.esg-stats {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid #bde0d0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  max-width: 620px;
}

.esg-stats article {
  background: #f4fcf8;
  border: 1px solid #b9decc;
  border-radius: 12px;
  padding: 12px;
}

.esg-stats strong {
  color: #1e5f45;
  font-size: 1.5rem;
}

.esg-stats span {
  display: block;
  font-size: 0.82rem;
  color: #4f6f62;
}

.esg-page .section {
  border-top-color: #c2dfd1;
}

.esg-page .eyebrow {
  color: #2d7d5a;
}

.esg-page h1,
.esg-page h2,
.esg-page h3 {
  color: #163126;
}

.esg-section-light {
  background: #eff9f4;
}

.esg-dark-section {
  background: #e8f6ee;
}

.esg-screen-section {
  background: #edf8f2;
}

.esg-page .card,
.esg-csrd-box,
.esg-kobize,
.esg-dark-card,
.esg-card-dark,
.esg-screen-card {
  background: #f8fdfad9;
  border: 1px solid var(--esg-stroke);
  box-shadow: 0 12px 24px #5a8a7217;
}

.esg-page .card h3,
.esg-page .card p,
.esg-page .card li,
.esg-csrd-box h3,
.esg-csrd-box p,
.esg-csrd-box li,
.esg-kobize h3,
.esg-kobize p {
  color: var(--esg-soft);
}

.esg-pillar,
.esg-module {
  border-left: 4px solid #61bf95;
}

.esg-pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  overflow: visible;
}

.esg-pillar-head {
  position: relative;
  display: block;
}

.esg-letter-image {
  margin: 0;
  position: absolute;
  left: 0;
  top: 50%;
  height: 80%;
  width: auto;
  max-width: 112px;
  transform: translate(-58%, -50%);
  z-index: 2;
  pointer-events: none;
}

.esg-letter-image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.esg-pillar-copy h3 {
  margin: 0;
  line-height: 1.1;
  font-size: 1.02rem;
}

.esg-pillar-copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 3px;
  margin-left: 52px;
}

.esg-pillar-with-letter {
  position: relative;
  min-height: 196px;
  padding: 10px 12px 8px 10px;
  overflow: visible;
}

.esg-pillar-with-letter > ul {
  margin: 2px 0 0 52px;
  padding-left: 16px;
  line-height: 1.25;
}

.esg-pillar-with-letter .esg-pillar-copy p {
  margin: 2px 0 0;
  font-size: 0.92rem;
  line-height: 1.25;
}

.esg-letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #43a97f;
  color: #fff;
  font-weight: 700;
}

.esg-csrd-box {
  margin-top: 18px;
  border-radius: 16px;
  padding: 18px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 18px;
}

.esg-obligation-grid .esg-tag,
.esg-module .esg-tag {
  display: inline-block;
  margin-top: 10px;
  border-radius: 999px;
  padding: 5px 11px;
  background: #edf9f3;
  border: 1px solid #afd9c4;
  color: #2d6f53;
  font-size: 0.82rem;
  font-weight: 700;
}

.esg-kobize {
  margin-top: 20px;
  border-radius: 16px;
  padding: 18px;
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 20px;
}

.esg-kobize-value {
  margin: 0;
  color: #226247;
  font-size: clamp(2rem, 7vw, 3.2rem);
  font-weight: 700;
  line-height: 1;
}

.esg-kobize-delta {
  color: #39845f;
  font-weight: 600;
}

.esg-contact-form input[type="email"],
.esg-contact-form input[type="text"],
.esg-contact-form input[type="tel"],
.esg-contact-form textarea {
  background: #f9fefb;
  border-color: #b8dcca;
  color: #1f3c31;
}

.esg-contact-form input::placeholder,
.esg-contact-form textarea::placeholder {
  color: #789c8d;
}

.esg-contact-form input:focus,
.esg-contact-form textarea:focus {
  border-color: #57b98d;
  box-shadow: 0 0 0 3px #57b98d2b;
}

.esg-contact-form .form-status {
  color: #2d7d5a;
}

.esg-screen-head .btn {
  white-space: nowrap;
}

.cards.three.esg-screen-grid {
  grid-template-columns: 1fr;
  gap: 24px;
}

.esg-screen-card {
  display: grid;
  grid-template-columns: minmax(440px, 1.2fr) minmax(260px, 0.8fr);
  grid-template-areas:
    "image title"
    "image desc";
  align-items: start;
  gap: clamp(16px, 2.4vw, 28px);
  padding: clamp(10px, 1.5vw, 14px) clamp(12px, 1.8vw, 16px);
}

.esg-screen-card .esg-screen-shot {
  grid-area: image;
  width: 100%;
}

.esg-screen-card h3,
.esg-screen-card p {
  margin: 0;
}

.esg-screen-card h3 {
  grid-area: title;
  margin: clamp(18px, 2.1vw, 30px) 0 8px;
  width: min(100%, 56ch);
  justify-self: center;
  text-align: center;
}

.esg-screen-card p {
  grid-area: desc;
  max-width: 56ch;
  margin: 0;
  justify-self: center;
}

.esg-screen-shot {
  margin: 0;
  border: 1px solid #b6dcc9;
  border-radius: 14px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 18px 34px #3f7c611f;
}

.esg-screen-shot img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: initial;
  background: #ffffff;
}

.esg-footer {
  padding: 20px;
  border-top: 1px solid #b8ddcc;
  background: #f1fbf5;
  color: #416859;
  text-align: center;
  font-size: 0.88rem;
}

@media (max-width: 980px) {
  .esg-hero-grid,
  .esg-csrd-box,
  .esg-kobize {
    grid-template-columns: 1fr;
  }

  .esg-hero-grid {
    gap: 18px;
  }

  .esg-pillars {
    grid-template-columns: 1fr;
  }

  .esg-screen-card {
    grid-template-columns: 1fr;
    grid-template-areas:
      "image"
      "title"
      "desc";
    gap: 12px;
  }

  .esg-screen-card .esg-screen-shot,
  .esg-screen-card h3,
  .esg-screen-card p {
    max-width: none;
  }

  .esg-screen-shot img {
    height: auto;
  }
}

@media (max-width: 900px) {
  .esg-topbar .btn {
    display: none;
  }

  .esg-screen-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

@media (max-width: 640px) {
  .esg-stats {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .esg-hero {
    padding-top: 12px;
  }

  .esg-pillar-with-letter {
    min-height: 0;
  }

  .esg-letter-image {
    height: 74%;
    max-width: 84px;
    transform: translate(-46%, -50%);
  }

  .esg-pillar-with-letter > ul {
    margin-left: 34px;
  }

  .esg-pillar-copy {
    margin-left: 34px;
  }
}
