.life-opening { padding: 66px 0 58px; }
.life-opening-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: clamp(42px, 7vw, 92px); align-items: center; }
.life-opening-copy { max-width: 520px; }
.life-opening h1 { max-width: 520px; font: normal clamp(2.65rem, 4.2vw, 4.15rem)/1.12 Georgia, serif; letter-spacing: -.03em; margin: 0 0 24px; color: #243744; }
.life-opening-copy > p:not(.eyebrow) { max-width: 490px; font-size: 1.08rem; line-height: 1.8; }
.life-opening .welcome-line { font: normal 1.35rem/1.55 Georgia, serif; margin: 0 0 14px; }
.life-opening-image, .reflection-image { margin: 0; position: relative; isolation: isolate; }
.life-opening-image img, .reflection-image img { position: relative; z-index: 0; display: block; width: 100%; object-fit: cover; }
.life-opening-image::after, .reflection-image::after { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg, #faf8f2 0%, rgba(250,248,242,.98) 30%, rgba(250,248,242,.65) 47%, rgba(250,248,242,0) 65%); }
.life-opening-image img { height: 455px; object-position: 68% center; }
.life-divider { height: 52px; display: grid; place-items: center; }
.life-divider svg { width: 150px; height: 44px; fill: none; stroke: #859780; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.life-divider-second svg { width: 162px; stroke: #9a9f85; }
.life-reflection { padding: 58px 0 88px; }
.reflection-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(44px, 7vw, 92px); align-items: center; }
.reflection-copy { max-width: 570px; }
.reflection-copy h2, .grief-main h2, .approach-heading h2, .life-next h2 { font: normal clamp(2rem, 3.1vw, 2.75rem)/1.22 Georgia, serif; color: #243744; margin: 0 0 22px; }
.reflection-copy p:not(.eyebrow), .grief-main p:not(.eyebrow), .approach-copy p, .life-next p:not(.eyebrow) { font-size: 1.08rem; line-height: 1.8; margin: 0 0 22px; }
.reflection-image img { height: 380px; object-position: 63% center; }
.life-grief { padding: 0 0 76px; }
.grief-layout { display: grid; grid-template-columns: 1.35fr .75fr; gap: 80px; border-top: 1px solid #d9ded3; padding-top: 68px; }
.grief-main { max-width: 650px; }
.grief-aside { border-left: 1px solid #bfcbbc; padding: 12px 0 12px 38px; align-self: center; color: #315b58; }
.grief-aside p { font: normal 1.38rem/1.65 Georgia, serif; margin: 0 0 18px; }
.life-approach { padding: 75px 0; background: #efefe6; }
.approach-layout { display: grid; grid-template-columns: 1fr 1.08fr; gap: 80px; align-items: start; }
.approach-heading h2 { max-width: 430px; }
.approach-copy { max-width: 590px; }
.life-next { padding: 78px 0; text-align: center; background: #faf8f2; }
.life-next .container { max-width: 800px; }
.life-next h2 { margin-bottom: 18px; }
.next-links { display: flex; justify-content: center; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 30px; }
.life-page .button { display: inline-block; background: #315b58; color: #fff; border-radius: 999px; padding: 13px 23px; font-size: 1rem; line-height: 1.5; text-decoration: none; }
.life-page .button:hover { background: #243744; }
.life-page .notice-section { padding: 28px 0; background: #efeee7; }
.life-page .site-footer { padding: 16px 0; color: #566563; background: #faf8f2; }
.life-page .site-footer p { margin: 0; font-size: .88rem; }
@media (max-width: 900px) {
  .life-opening-grid, .reflection-grid { gap: 42px; }
  .grief-layout, .approach-layout { gap: 42px; }
}
@media (max-width: 650px) {
  .life-opening { padding: 44px 0 32px; }
  .life-opening-grid, .reflection-grid, .grief-layout, .approach-layout { grid-template-columns: 1fr; gap: 28px; }
  .life-opening h1 { font-size: 2.7rem; }
  .life-opening-image img { height: 310px; }
  .life-opening-image::after, .reflection-image::after { background: linear-gradient(180deg, #faf8f2 0%, rgba(250,248,242,.7) 12%, rgba(250,248,242,0) 54%); }
  .life-reflection { padding: 42px 0 56px; }
  .reflection-image { grid-row: 2; }
  .reflection-image img { height: 280px; }
  .life-grief { padding-bottom: 55px; }
  .grief-layout { padding-top: 45px; }
  .grief-aside { margin-top: 4px; padding: 8px 0 8px 22px; }
  .grief-aside p { font-size: 1.22rem; }
  .life-approach { padding: 52px 0; }
  .life-next { padding: 55px 0; }
  .next-links { gap: 20px; }
}
