.clarity-needs {
  --needs-ink: #27232a;
  --needs-muted: #655d62;
  --needs-line: #dfd7d5;
  --needs-accent: #60435d;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  grid-template-rows: auto 1fr;
  min-height: 520px;
  margin: 39px 0 44px;
  overflow: hidden;
  border-radius: 28px;
  background: #f7f3f0;
  color: var(--needs-ink);
}
.clarity-needs, .clarity-needs * { box-sizing: border-box; }
.clarity-needs__intro {
  min-width: 0;
  padding: clamp(30px, 4vw, 58px) clamp(29px, 4.4vw, 66px) 12px;
}
.clarity-needs__context {
  display: block;
  margin-bottom: 14px;
  color: var(--needs-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .105em;
  line-height: 1.3;
  text-transform: uppercase;
}
.clarity-needs h2 {
  max-width: 570px;
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(42px, 4.4vw, 64px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.02;
}
.clarity-needs__links {
  display: block;
  min-width: 0;
  align-self: end;
  padding: 8px clamp(29px, 4.4vw, 66px) clamp(29px, 3.6vw, 52px);
}
.clarity-needs__link {
  display: grid;
  grid-template-columns: 31px minmax(0, 1fr) 25px;
  align-items: center;
  gap: 13px;
  min-height: 52px;
  border-top: 1px solid var(--needs-line);
  color: var(--needs-ink);
  text-decoration: none;
  transition: color .18s ease, padding .18s ease;
}
.clarity-needs__link:last-child { border-bottom: 1px solid var(--needs-line); }
.clarity-needs__link:hover { padding-left: 6px; color: var(--needs-accent); text-decoration: none; }
.clarity-needs__link:focus-visible { outline: 2px solid var(--needs-accent); outline-offset: -2px; }
.clarity-needs__icon { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: var(--needs-accent); }
.clarity-needs__icon svg { display: block; flex: none; }
.clarity-needs__label { overflow-wrap: anywhere; font-size: clamp(15px, 1.25vw, 18px); font-weight: 500; letter-spacing: -.015em; line-height: 1.26; }
.clarity-needs__arrow { justify-self: end; color: var(--needs-accent); font-size: 22px; font-weight: 400; line-height: 1; transition: transform .18s ease; }
.clarity-needs__link:hover .clarity-needs__arrow { transform: translateX(3px); }
.clarity-needs__art { position: relative; grid-column: 2; grid-row: 1 / 3; min-width: 0; min-height: 0; overflow: hidden; }
.clarity-needs__art img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; transform: scale(1.15); transform-origin: 50% 0; }
@media (max-width: 850px) {
  .clarity-needs { grid-template-columns: minmax(0, 1fr) minmax(0, .75fr); min-height: 490px; }
  .clarity-needs__intro { padding: 32px 27px 10px; }
  .clarity-needs h2 { font-size: clamp(36px, 4.5vw, 48px); }
  .clarity-needs__links { padding: 8px 27px 29px; }
  .clarity-needs__link { min-height: 49px; }
}
@media (max-width: 600px) {
  .clarity-needs {
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 29px 0 35px;
    border-radius: 22px;
  }
  .clarity-needs__art { order: -1; flex: none; width: 100%; height: clamp(188px, 51vw, 212px); border-radius: 0; }
  .clarity-needs__art img { object-position: 50% 20%; transform: scale(1.28); }
  .clarity-needs__intro { align-self: stretch; padding: 19px 21px 13px; }
  .clarity-needs__context { margin-bottom: 7px; font-size: 10px; letter-spacing: .07em; }
  .clarity-needs h2 { font-size: clamp(29px, 7.5vw, 39px); line-height: 1.04; letter-spacing: -.04em; }
  .clarity-needs__links { align-self: stretch; padding: 0 20px 20px; }
  .clarity-needs__link { grid-template-columns: 31px minmax(0, 1fr) 22px; gap: 10px; min-height: 50px; }
  .clarity-needs__icon { width: 27px; height: 27px; }
  .clarity-needs__icon svg { width: 25px; height: 25px; }
  .clarity-needs__label { font-size: 15px; }
  .clarity-needs__arrow { font-size: 20px; }
}
@media (max-width: 350px) {
  .clarity-needs__intro { padding-left: 16px; padding-right: 16px; }
  .clarity-needs__links { padding-right: 16px; padding-left: 16px; }
  .clarity-needs h2 { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  .clarity-needs__link, .clarity-needs__arrow { transition: none; }
}
