.hero{
  position:relative;
  background:#fff;
  overflow:hidden;
  isolation:isolate;
  contain:paint;
}
.hero-inner{
  max-width:900px;
  margin-inline:auto;
  padding:48px 16px 56px;
  text-align:center;
  position:relative;
  z-index:2;
}
.hero h1{
  font-size:clamp(34px,5.4vw,56px);
  line-height:1.1;
  font-weight:600;
  margin:0 0 18px;
}
.hero p{
  max-width:760px;
  margin:0 auto 26px;
  font-size:1.05rem;
  color:rgba(0,0,0,.75);
}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

@media (min-width:960px){
  .hero-inner{padding-top:40px}
  .hero h1{font-size:clamp(42px,7vw,69.3px)}
}

.hero .btn-primary{background:var(--rf-black);color:var(--rf-gold);border:1px solid var(--rf-black)}
.hero .btn-primary:hover{opacity:.95}
.hero .btn-outline{background:transparent;color:var(--rf-black);border:1px solid var(--rf-black)}
.hero .btn-outline:hover{background:rgba(16,18,22,.04)}

.blob{
  position:absolute;
  pointer-events:none;
  z-index:1;
  filter:blur(32px);
  opacity:.43;
  border-radius:38% 62% 55% 45% / 48% 40% 60% 52%;
  transform:translateZ(0);
}
.blob-red{background:#c94a4a}
.blob-purple{background:#7a5fa1}
.blob-blue{background:#5a7fa6}
.blob-green{background:#6f9a6e}
.blob-olive{background:#8b8f4a}
.blob-orange{background:#e28a3b}
.blob-yellow{background:#e6c24a}
.blob-brown{background:#9b7a5a}

.blob-lg{width:560px;height:560px}
.blob-md{width:420px;height:420px}
.blob-sm{width:280px;height:280px}

.blob-red{top:-260px;left:-300px}
.blob-purple{top:-140px;right:-260px}
.blob-blue{top:240px;right:-140px}
.blob-green{bottom:-420px;left:-240px}
.blob-orange{bottom:-260px;right:-320px}
.blob-yellow{top:50%;left:50%;transform:translate3d(-50%,0,0);opacity:.28}
.blob-brown{top:120px;left:70%;opacity:.26}
.blob-olive{bottom:80px;right:65%;opacity:.26}

.trust-bar{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;font-size:.95rem}
.trust-bar li{background:rgba(0,0,0,.04);padding:8px 12px;border-radius:999px}

@media (max-width:640px){
  .hero-inner{padding-top:32px;padding-bottom:112px}
  .blob{transform:scale(.78);transform-origin:center;opacity:.38}
  .blob-yellow{transform:translate3d(-50%,0,0) scale(.78)}
}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

.section{padding:44px 0 56px}
.section-head{max-width:880px;margin:0 0 22px;text-align:left}
.section-head h2{
  font-size:clamp(26px,3.2vw,38px);
  line-height:1.15;
  margin:0 0 18px;
  font-weight:600;
  color:var(--rf-black);
}
.section-lead{margin:0;max-width:760px;color:rgba(0,0,0,.72);font-size:1.05rem}

@media (min-width:640px){
  .section-head h2{margin-bottom:28px}
}

.caps-grid{display:grid;gap:14px;grid-template-columns:1fr;margin-top:22px}
.cap{
  position:relative;
  background:rgba(0,0,0,.03);
  border-radius:18px;
  padding:18px 64px 18px 18px;
}
.cap h3{margin:0 0 8px;font-size:1.05rem;line-height:1.2;font-weight:600;color:var(--rf-black)}
.cap p{margin:0;color:rgba(0,0,0,.72)}

.cap-icon{
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  width:44px;height:44px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  box-shadow:0 10px 20px rgba(0,0,0,.12);
}
.cap-icon svg{display:block}
.cap--green .cap-icon{background:#6f9a6e}
.cap--blue .cap-icon{background:#5a7fa6}
.cap--orange .cap-icon{background:#e28a3b}
.cap--purple .cap-icon{background:#7a5fa1}
.cap--red .cap-icon{background:#c94a4a}
.cap--olive .cap-icon{background:#8b8f4a}

.section-cta{margin-top:22px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

@media (min-width:960px){
  .caps-grid{grid-template-columns:repeat(3,1fr);gap:16px}
  .cap{padding:20px 68px 20px 20px}
  .cap-icon{right:18px}
}
@media (max-width:640px){
  .cap{padding:16px 58px 16px 16px}
  .cap-icon{width:40px;height:40px;border-radius:12px;right:14px}
}

.section-services{
  padding:44px 0 0;
  content-visibility:auto;
  contain-intrinsic-size:900px;
}
.section-services .section-head{margin:0 0 10px}
.section-services .section-head h2{margin-bottom:22px}

.svc{
  position:relative;
  color:var(--rf-black);
  padding-block:64px;
}
.svc--white{background:#fff}
.svc--gold{background:var(--rf-gold)}

.svc::before{
  content:"";
  position:absolute;
  left:0;right:0;
  top:0;
  height:18px;
  pointer-events:none;
  z-index:0;
  opacity:.55;
  filter:blur(8px);
}
.section-services .svc:first-of-type::before{display:none}

.svc--gold::before{
  background:linear-gradient(to bottom, rgba(255,255,255,.72) 0%, rgba(221,205,176,.48) 55%, rgba(221,205,176,0) 100%);
}
.svc--white::before{
  background:linear-gradient(to bottom, rgba(221,205,176,.72) 0%, rgba(255,255,255,.48) 55%, rgba(255,255,255,0) 100%);
}

.svc-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  align-items:center;
}

.svc-copy h3{
  margin:0 0 12px;
  font-size:clamp(20px,2.2vw,28px);
  line-height:1.15;
  font-weight:600;
  color:var(--rf-black);
}
.svc-copy p{margin:0 0 12px;color:rgba(0,0,0,.78)}
.svc-copy p:last-of-type{margin-bottom:0}

.svc-cta{
  margin-top:16px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.btn-solid{background:var(--rf-black);color:var(--rf-gold);border:1px solid var(--rf-black)}
.btn-solid:hover{opacity:.95}
.btn-ghost{background:transparent;color:var(--rf-black);border:1px solid var(--rf-black)}
.btn-ghost:hover{background:rgba(16,18,22,.06)}

.svc-media{
  margin:0;
  justify-self:center;
  width:100%;
  max-width:560px;
  border-radius:18px;
  overflow:hidden;
  background:rgba(0,0,0,.06);
}
.svc-media img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:4/3;
}

@media (min-width:960px){
  .svc-inner{
    grid-template-columns:1.1fr .9fr;
    gap:28px;
  }

  .svc--white .svc-copy{order:1}
  .svc--white .svc-media{order:2}

  .svc--gold .svc-media{order:1}
  .svc--gold .svc-copy{order:2}

  .svc-media{max-width:520px}
}

@media (max-width:640px){
  .svc{padding-block:40px}
  .svc::before{height:12px;filter:blur(7px);opacity:.5}
  .section-services .container{padding-inline:22px}
  .svc-media{max-width:400px;border-radius:16px}
  .svc-cta{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .svc-cta .btn{
    width:100%;
    justify-content:center;
  }
}

.section-quality{
  background:#fff;
  padding-top:20px;
  content-visibility:auto;
  contain-intrinsic-size:700px;
}
.quality-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-top:22px;
}
.q-item{
  position:relative;
  border-radius:18px;
  padding:18px;
  border:1px solid rgba(0,0,0,.06);
  background-image:radial-gradient(circle at 20% 10%, rgba(255,255,255,.55), rgba(255,255,255,0) 55%);
}
.q-item h3{margin:0 0 8px;font-size:1.05rem;line-height:1.2;font-weight:600;color:var(--rf-black)}
.q-item p{margin:0;color:rgba(0,0,0,.72)}

.q-red{background-color:rgba(232,70,70,.24);border-color:rgba(232,70,70,.22)}
.q-blue{background-color:rgba(86,165,255,.24);border-color:rgba(86,165,255,.22)}
.q-green{background-color:rgba(68,201,132,.24);border-color:rgba(68,201,132,.22)}
.q-peanut{background-color:rgba(206,150,92,.26);border-color:rgba(206,150,92,.24)}

@media (min-width:960px){
  .quality-grid{grid-template-columns:repeat(4,1fr);gap:16px}
  .q-item{padding:20px}
}

.section-contact .section-head--contact h2{
  font-size: clamp(2.2rem, 3.2vw, 3.3rem);
  font-weight: 750;
  letter-spacing: -0.015em;
  margin-bottom: 18px;
}

.section-contact .section-head--contact .section-lead{
  font-size: 1.12rem;
  color: rgba(0,0,0,.72);
  max-width: 820px;
}

.section-contact{
  padding: 56px 0 72px;
  background: #fff;
}

.contact-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 22px;
}

.contact-card{
  border-radius: 20px;
  padding: 22px;
  background: rgba(0,0,0,.03);
  border: 1px solid rgba(0,0,0,.06);
}

.contact-card--white{
  background: #fff;
}

.contact-card--gold{
  background: rgba(221,205,176,.55);
  border-color: rgba(0,0,0,.08);
}

.contact-card h3{
  margin: 0 0 10px;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--rf-black);
}

.contact-card p{
  margin: 0 0 12px;
  color: rgba(0,0,0,.78);
}

.contact-bullets{
  margin: 0 0 16px;
  padding: 0;
}

.contact-bullets li{
  padding: 6px 0;
  color: rgba(0,0,0,.72);
}

.contact-email{
  color: var(--rf-black);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-cta{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
}

@media (min-width: 960px){
  .contact-grid{
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  .contact-card{
    padding: 24px;
  }
}

@media (max-width: 640px){
  .section-contact{
    padding: 48px 0 64px;
  }
  .contact-card{
    padding: 18px;
  }
  .contact-cta{
    flex-direction: column;
    align-items: stretch;
  }
  .contact-cta .btn{
    width: 100%;
    justify-content: center;
  }
}