/* The Problem section: full-black band, both themes */

.s-problem {
  background: var(--band);
  padding: 140px 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  overflow: clip;
}

.s-problem .in {
  width: 100%;
  max-width: 1280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
}

/* title block: hidden tag stub (production hides the tag but keeps its
   zero-height slot in flow, so the 20px gap still offsets the headline) */
.s-problem .title {
  width: 100%;
  max-width: 828px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.s-problem .tag-slot { flex: none; height: 0; }
.s-problem .tag { display: none; } /* hidden in production at every breakpoint */

/* headline: grey serif, word-by-word white reveal on scroll */
.s-problem .headline {
  width: 100%;
  margin: 0;
  font-family: var(--font-serif);
  font-size: 44px;
  font-style: normal;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.2em;
  text-align: center;
  color: rgba(255, 255, 255, 0.4);
  white-space: pre-wrap;
  word-break: break-word;
}
.s-problem .headline .w {
  position: relative;
  display: inline-block;
}
.s-problem .headline .fill {
  position: absolute;
  left: 0;
  top: 0;
  color: var(--band-ink);
  clip-path: inset(0 100% 0 0);
}

/* card row: hairline borders (--band-line), shared verticals */
.s-problem .cards {
  width: 100%;
  display: flex;
}

.s-problem .card {
  flex: 1 0 0;
  width: 1px;
  height: 362px;
  padding: 40px;
  border: solid var(--band-line);
  border-width: 1px 0 1px 1px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  overflow: clip;
  position: relative;
}
.s-problem .card-3 { border-width: 1px 1px 1px 1px; }

.s-problem .card-in {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 36px;
}

.s-problem .icon {
  width: 70px;
  height: 70px;
  object-fit: contain;
  flex: none;
}

.s-problem .txt {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.s-problem .card-title {
  width: 100%;
  margin: 0;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 32px;
  color: var(--band-ink);
}

.s-problem .card-body {
  width: 100%;
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 26px;
  color: var(--band-ink);
  opacity: 0.7;
}

/* dark theme: the band tokens (--band, --band-ink) are theme-invariant, so
   nothing changes and no html.dark overrides are needed */

/* tablet */
@media (max-width: 1439px) {
  .s-problem { padding: 100px 30px; }
  .s-problem .in { gap: 60px; }
  .s-problem .headline { font-size: 38px; }
  .s-problem .cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(50px, 1fr));
    align-items: start;
  }
  .s-problem .card {
    width: 100%;
    height: auto;
    padding: 30px;
  }
  .s-problem .card-3 {
    grid-column: span 2;
    border-width: 0 1px 1px 1px;
  }
  .s-problem .card-title { font-size: 22px; }
}

/* phone */
@media (max-width: 767px) {
  .s-problem { padding: 80px 20px; }
  .s-problem .in { gap: 40px; }
  .s-problem .headline { font-size: 26px; }
  .s-problem .cards { display: flex; flex-direction: column; }
  .s-problem .card { width: 100%; height: auto; padding: 20px; }
  .s-problem .card-1 { border-width: 1px; }
  .s-problem .card-2,
  .s-problem .card-3 { border-width: 0 1px 1px 1px; grid-column: auto; }
  .s-problem .card-title { font-size: 20px; }
}
