.life-page {
  --life-text: #172b3b;
  --life-muted: #536a78;
  --life-teal: #187d91;
  --life-green: #178679;
  --life-line: #d9e7eb;
  color: var(--life-text);
  background: #f6f9fb;
  font-family: 'DM Sans', system-ui, sans-serif;
  overflow-x: clip;
}
.life-page, .life-page * { box-sizing: border-box; }
.life-page a { text-decoration: none; }
.life-wrap { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.life-page h1, .life-page h2, .life-page h3 {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  letter-spacing: -.045em;
  color: #172b3b;
}
.life-page p { color: var(--life-muted); line-height: 1.72; }
.life-hero {
  min-height: min(750px, calc(100svh - 100px));
  display: flex;
  align-items: center;
  padding: clamp(60px, 6.5vw, 98px) 0;
  background: #edf5f7;
}
.life-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .94fr);
  gap: clamp(38px, 6vw, 86px);
  align-items: center;
}
.life-hero-copy h1 {
  font-size: clamp(48px, 5.8vw, 88px);
  line-height: 1.04;
  font-weight: 800;
  margin: 0;
}
.life-hero-copy h1 span { color: #178679; }
.life-hero-copy > p:not(.life-hero-caption) {
  max-width: 620px;
  font-size: clamp(17px, 1.45vw, 20px);
  margin: 23px 0 0;
}
.life-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 29px; align-items: center; }
.life-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid #c5dbe2;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 750;
  transition: background .18s, border-color .18s;
}
.life-button-primary { background: #187d91; color: #fff !important; border-color: #187d91; }
.life-button-primary:hover { background: #146b7d; }
.life-button-secondary { background: #fff; color: #176b79 !important; }
.life-button-secondary:hover { background: #f0f8f8; }
.life-hero-caption { font-size: 12px; margin: 20px 0 0; max-width: 520px; }
.life-hero-photo {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  min-height: 500px;
  box-shadow: 0 22px 54px rgba(23, 56, 75, .10);
  background: #dbe7eb;
}
.life-hero-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.life-page .life-photo-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid #dce7eb;
  padding: 17px 22px;
  color: #244452;
  font-weight: 750;
  font-size: 14px;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
}
.life-section { padding: clamp(68px, 6.5vw, 98px) 0; }
.life-section-tint { background: #eaf4f6; }
.life-section-heading { max-width: 780px; margin: 0 0 31px; }
.life-section-heading h2, .life-story-copy h2, .life-faq-heading h2, .life-final h2 {
  margin: 0;
  font-size: clamp(34px, 3.7vw, 54px);
  font-weight: 800;
  line-height: 1.15;
}
.life-section-heading p { margin: 13px 0 0; font-size: 16px; }
.life-audiences { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.life-audience {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 26px 25px 28px;
  background: #fff;
  border: 1px solid var(--life-line);
  border-radius: 14px;
  transition: border-color .18s, transform .18s;
}
.life-audience:hover { border-color: #aacfd4; transform: translateY(-2px); }
.life-audience-icon, .life-step-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 11px;
  color: #137b89;
  background: #e7f3f3;
  font-size: 19px;
}
.life-audience h3 { margin: 22px 0 12px; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.22; }
.life-audience p { margin: 0 0 22px; font-size: 14px; }
.life-audience a { color: #176d79; font-weight: 750; font-size: 13px; line-height: 1.45; margin-top: auto; }
.life-audience a:hover, .life-step a:hover { text-decoration: underline; text-underline-offset: 3px; }
.life-story-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(34px, 5vw, 90px);
}
.life-story-image { min-height: 500px; border-radius: 16px; overflow: hidden; }
.life-story-image img { display: block; width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.life-story-copy > p { margin: 18px 0 25px; font-size: 16px; }
.life-story-point { display: grid; grid-template-columns: 35px 1fr; gap: 12px; border-top: 1px solid #cfdfe5; padding: 17px 0; }
.life-story-point-icon {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  border-radius: 8px;
  color: #167e86;
  background: #d9edee;
  font-size: 14px;
}
.life-story-point-copy strong { display: block; font-size: 15px; color: #172b3b; margin-bottom: 4px; }
.life-story-point-copy span { display: block; color: #526c7a; line-height: 1.55; font-size: 14px; }
.life-text-link { display: inline-block; color: #176d79 !important; font-size: 14px; font-weight: 800; margin-top: 17px; }
.life-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.life-step {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 30px;
  border: 1px solid var(--life-line);
  border-radius: 14px;
  background: #fff;
}
.life-step-icon { width: 46px; height: 46px; }
.life-step h3 { margin: 21px 0 11px; font-size: clamp(21px, 2vw, 25px); line-height: 1.25; }
.life-step p { margin: 0 0 18px; font-size: 14px; }
.life-step a { color: #176d79; font-weight: 750; font-size: 13px; margin-top: auto; }
.life-faq-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(30px, 5vw, 90px); align-items: start; }
.life-faq-heading p { margin: 17px 0 0; }
.life-faq-list { border-top: 1px solid var(--life-line); }
.life-faq-list details { border-bottom: 1px solid var(--life-line); padding: 20px 0; }
.life-faq-list summary { font-size: 16px; font-weight: 750; line-height: 1.5; cursor: pointer; color: #1b3946; }
.life-faq-list details p { font-size: 14px; margin: 12px 0 0; }
.life-final { background: #e7f4f0; padding: clamp(62px, 6vw, 98px) 0 34px; border-top: 1px solid #d0e6de; }
.life-final-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; }
.life-final-grid h2 { max-width: 780px; }
.life-final-grid p { max-width: 720px; margin: 16px 0 0; }
.life-final-grid .life-actions { margin: 0; }
.life-disclaimer { margin: 46px 0 0; padding-top: 20px; border-top: 1px solid #c9e0da; font-size: 12px; }
.life-page a:focus-visible, .life-page summary:focus-visible { outline: 3px solid #187d91; outline-offset: 3px; }
@media (max-width: 1120px) {
  .life-audiences { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .life-hero-grid, .life-story-grid, .life-faq-layout, .life-final-grid { grid-template-columns: 1fr; }
  .life-hero { min-height: 0; }
  .life-hero-photo { min-height: 420px; }
  .life-story-image, .life-story-image img { min-height: 380px; max-height: 520px; }
}
@media (max-width: 720px) {
  .life-steps { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .life-wrap { width: calc(100% - 32px); }
  .life-hero { padding: 52px 0 64px; }
  .life-hero-grid { gap: 28px; }
  .life-hero-copy h1 { font-size: clamp(43px, 11vw, 60px); }
  .life-hero-photo { min-height: 330px; }
  .life-audiences { grid-template-columns: 1fr; }
  .life-audience, .life-step { padding: 24px; }
  .life-audience h3 { margin-top: 17px; }
  .life-actions .life-button { width: 100%; }
  .life-story-image, .life-story-image img { min-height: 310px; }
  .life-final-grid .life-actions { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .life-page * { transition: none !important; }
}
