/* Homepage only: needs and missions remain separate, readable and consistent. */
.home-situations,
.home-missions {
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
.home-situations-layout {
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(2rem, 4.5vw, 4.5rem);
}
.home-situations .section-heading h2 {
  max-width: 16ch;
  margin-bottom: 1.3rem;
  font-size: clamp(2rem, 3.2vw, 2.8rem);
  line-height: 1.18;
}
.home-situations .section-heading .lead {
  margin-top: 0;
  color: #354552;
  font-size: clamp(1.08rem, 1.4vw, 1.18rem);
  line-height: 1.7;
}
.home-situations-note {
  max-width: 38ch;
  margin: 1.4rem 0 0;
  padding-left: 1rem;
  border-left: 3px solid var(--copper-action);
  color: #405464;
  font-size: 1.02rem;
  line-height: 1.65;
}
.home-situations .situation-list {
  padding: .3rem 1.5rem;
  overflow: hidden;
  border: 1px solid #d8e0e5;
  border-radius: 24px;
  background: var(--white);
  box-shadow: 0 16px 42px rgba(13, 44, 73, .045);
}
.home-situations .situation-list li {
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1.3rem 0;
  border-bottom: 1px solid #e0e6e9;
}
.home-situations .situation-list li:last-child { border-bottom: 0; }
.home-situations .situation-list .situation-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid #e9ddd2;
  border-radius: 15px;
  background: var(--ivory);
  letter-spacing: 0;
}
.home-situations .situation-icon img { width: 38px; height: 38px; }
.home-situations .situation-list h3 {
  margin: .05rem 0 .4rem;
  font-size: 1.12rem;
  line-height: 1.4;
}
.home-situations .situation-list p {
  color: #405464;
  font-size: 1.03rem;
  line-height: 1.6;
}
.home-missions { background: var(--mist); }
.home-missions .section-heading--split { gap: 1.6rem; margin-bottom: 2rem; }
.home-missions .section-heading--split > div { max-width: 670px; }
.home-missions .section-heading h2 {
  max-width: 24ch;
  font-size: clamp(2rem, 3.1vw, 2.7rem);
  line-height: 1.18;
}
.home-missions .section-heading .lead {
  margin-top: 1rem;
  color: #203d55;
  font-size: 1.12rem;
  line-height: 1.65;
}
.home-missions .section-heading .btn--outline { flex-shrink: 0; margin-bottom: .2rem; }
.home-missions .home-services-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
}
.home-missions .home-service {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-width: 0;
  padding: clamp(1.35rem, 2.2vw, 1.8rem);
  border: 1px solid #afc0ce;
  border-radius: 22px;
  background: var(--white);
  box-shadow: 0 10px 26px rgba(13, 44, 73, .07);
}
.home-missions .mission-heading {
  display: flex;
  align-items: center;
  gap: .9rem;
  min-width: 0;
}
.home-missions .icon-tile {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  border: 1px solid #d8c6b7;
  border-radius: 16px;
  background: var(--ivory);
}
.home-missions .icon-tile img { width: 42px; height: 42px; }
.home-missions .home-service h3 {
  margin: 0;
  color: var(--navy);
  font-size: 1.16rem;
  line-height: 1.45;
  letter-spacing: -.015em;
}
.home-missions .home-service p { color: #203d55; font-size: 1.08rem; line-height: 1.7; }
/* These cards describe a service; their appearance does not imply a hidden click. */
.home-missions .home-service:hover { border-color: #afc0ce; box-shadow: 0 10px 26px rgba(13, 44, 73, .07); transform: none; }
.home-missions .home-service:hover img { transform: none; }
@media (max-width: 1040px) {
  .home-missions .home-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-missions .section-heading--split { align-items: flex-start; flex-direction: column; gap: 1.3rem; }
}
@media (max-width: 900px) {
  .home-situations-layout { grid-template-columns: 1fr; align-items: start; gap: 2rem; }
  .home-situations .section-heading h2 { max-width: 25ch; }
  .home-situations .section-heading .lead { max-width: 58ch; }
  .home-situations-note { max-width: 60ch; }
}
@media (max-width: 640px) {
  .home-missions .home-services-grid { grid-template-columns: 1fr; gap: 1rem; }
  .home-missions .section-heading--split { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .home-missions .section-heading .btn--outline { width: 100%; margin: 0; }
  .home-situations .situation-list { padding-inline: 1rem; border-radius: 20px; }
  .home-situations .situation-list li { grid-template-columns: 44px minmax(0, 1fr); gap: .8rem; padding-block: 1.15rem; }
  .home-situations .situation-list .situation-icon { width: 44px; height: 44px; border-radius: 13px; }
  .home-situations .situation-icon img { width: 34px; height: 34px; }
  .home-situations .situation-list h3,
  .home-missions .home-service h3 { font-size: 1.08rem; }
  .home-missions .home-service { padding: 1.35rem; gap: .9rem; }
  .home-missions .icon-tile { width: 50px; height: 50px; flex-basis: 50px; border-radius: 14px; }
  .home-missions .icon-tile img { width: 38px; height: 38px; }
}
