/* Subtle editorial backgrounds: decorative, but kept intentionally quiet. */
body { position: relative; overflow-x: hidden; }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .42;
  background-image: radial-gradient(rgba(7,29,59,.12) .55px, transparent .7px);
  background-size: 12px 12px;
  mask-image: linear-gradient(to bottom, black, transparent 32%);
}
.hero::before {
  content: "";
  position: absolute;
  width: 350px;
  height: 350px;
  right: 3.5vw;
  bottom: -175px;
  border: 1px solid rgba(184,138,56,.34);
  border-radius: 50%;
  box-shadow: 0 0 0 32px rgba(184,138,56,.055), 0 0 0 64px rgba(184,138,56,.04);
  pointer-events: none;
}
.hero { position: relative; overflow: hidden; }
.hero-copy, .hero-visual { position: relative; z-index: 1; }
.services { position: relative; overflow: hidden; }
.services::after {
  content: "";
  position: absolute;
  top: -160px;
  right: -90px;
  width: 390px;
  height: 390px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(223,194,120,.21) 0, rgba(223,194,120,.08) 38%, transparent 68%);
  pointer-events: none;
}
.services > * { position: relative; z-index: 1; }
.service-grid article { transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.service-grid article:hover { transform: translateY(-7px); background: rgba(255,253,250,.92); box-shadow: 0 15px 28px rgba(7,29,59,.07); }
.about { position: relative; overflow: hidden; }
.about::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  border: 26px solid rgba(184,138,56,.18);
  border-radius: 50%;
  left: -108px;
  bottom: -115px;
}
.about > * { position: relative; z-index: 1; }
.life-section { position: relative; }
.life-copy { background-image: linear-gradient(145deg, rgba(248,246,240,.9), rgba(255,253,250,.98) 57%); }
.contact-section { position: relative; overflow: hidden; }
.contact-section::before, .contact-section::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.contact-section::before { width: 460px; height: 460px; left: -260px; top: -210px; background: radial-gradient(circle, rgba(184,138,56,.25), transparent 67%); }
.contact-section::after { width: 330px; height: 330px; right: -160px; bottom: -180px; border: 1px solid rgba(223,194,120,.23); box-shadow: 0 0 0 28px rgba(223,194,120,.03); }
.contact-section > * { position: relative; z-index: 1; }
@media (max-width: 780px) { .hero::before { right: -140px; bottom: -225px; } .services::after { right: -230px; } }
