:root{
  --agape-red:#a6262b;
  --agape-red-deep:#7a1a1e;
  --agape-ink:#0d0c0c;
  --agape-slate:#56514f;
  --agape-line:rgba(13,12,12,.13);
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* 1. TYPE */
body,.sp-text-block .text-editor,.sp-field-label,.sp-form input,.sp-form textarea,a.sp-button{
  font-family:var(--sans)!important;
}
.sp-heading-block h1,.sp-heading-block h2{
  font-family:var(--serif)!important;
}
.sp-heading-block h1{
  font-size:clamp(3rem,7.2vw,6rem)!important;
  line-height:1!important;
  letter-spacing:-.028em!important;
}
.sp-heading-block h2{
  font-size:clamp(2rem,4.4vw,3.3rem)!important;
  line-height:1.06!important;
  letter-spacing:-.02em!important;
}
.sp-heading-block h3{line-height:1.4;}

/* 2. NAV OVER THE HERO */
header#sp-header:has(+ main#sp-content > .sp-section.sp-scheme-1:first-child){
  position:absolute!important;
  top:0;left:0;right:0;
  z-index:60;
  background:linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.28) 60%,rgba(0,0,0,0) 100%)!important;
}
#sp-nav a{
  font-family:var(--sans)!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  color:#fff!important;
  opacity:.92;
  transition:opacity .16s ease;
}
#sp-nav a:hover{opacity:1;}

/* 3. HERO */
main#sp-content > .sp-section.sp-scheme-1:first-child{
  min-height:92vh;
  display:flex;
  flex-direction:column;
}
main#sp-content > .sp-section.sp-scheme-1:first-child .sp-section-slide{
  flex:1;
  display:flex;
  align-items:center;
  width:100%;
}
main#sp-content > .sp-section.sp-scheme-1:first-child .sp-section-content{
  width:100%;
  max-width:1220px;
  margin:0 auto;
  padding-top:230px!important;
  padding-bottom:130px!important;
}
.sp-scheme-1 .sp-section-backgrounds::after{
  content:"";
  position:absolute;inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(13,12,12,.78) 0%,rgba(13,12,12,.42) 42%,rgba(13,12,12,0) 74%),
    linear-gradient(0deg,rgba(13,12,12,.6) 0%,rgba(13,12,12,0) 42%);
}
.sp-scheme-1 .sp-block{text-align:left!important;}
.sp-scheme-1 .sp-heading-block h1{max-width:14ch;color:#fff!important;}
.sp-scheme-1 .sp-heading-block ~ .sp-heading-block h2,
.sp-scheme-1 .sp-heading-block ~ .sp-heading-block h3{
  font-family:var(--sans)!important;
  font-size:clamp(1rem,1.35vw,1.15rem)!important;
  font-weight:500!important;
  letter-spacing:0!important;
  line-height:1.65!important;
  max-width:46ch;
  color:rgba(255,255,255,.88)!important;
}
.sp-scheme-1 .sp-divider-block .sp-divider-holder{
  margin:0!important;
  width:64px!important;
  border:0!important;
  border-top:3px solid var(--agape-red)!important;
  opacity:1!important;
}

/* 4. SECTION RHYTHM */
.sp-section-content{
  padding-top:120px!important;
  padding-bottom:120px!important;
}
.sp-section.sp-scheme-2 .sp-section-content{padding:0!important;max-width:none!important;}
footer#sp-footer .sp-section-content,
main#sp-content > .sp-section:last-child .sp-section-content{
  padding-top:72px!important;
  padding-bottom:56px!important;
}

/* 5. GROUNDS */
.sp-section.sp-scheme-2{background-color:var(--agape-ink)!important;}
.sp-section.sp-scheme-2 h1,.sp-section.sp-scheme-2 h2,.sp-section.sp-scheme-2 h3,
.sp-section.sp-scheme-2 .sp-text-block .text-editor{color:#fff!important;}
.sp-section.sp-scheme-3 h1,.sp-section.sp-scheme-3 h2,.sp-section.sp-scheme-3 h3{color:#fff!important;}

/* 6. BODY COPY */
.sp-text-block .text-editor{
  max-width:64ch;
  margin-left:auto;margin-right:auto;
  line-height:1.8;
  font-size:1.02rem;
}
.sp-scheme-0 .sp-text-block .text-editor{color:#3a3330;}
.sp-scheme-3 .sp-text-block .text-editor{color:rgba(255,255,255,.86);}

/* 7. EDITORIAL SPLIT (heading + rule + copy beside an image) */
.sp-scheme-3 .sp-col-12 .sp-block,
.sp-scheme-3 .sp-col-12 .sp-block-content,
.sp-scheme-0 .sp-col-12 .sp-block,
.sp-scheme-0 .sp-col-12 .sp-block-content{text-align:left!important;}
.sp-col-12 .sp-text-block .text-editor{margin:0!important;max-width:44ch;text-align:left!important;}
.sp-col-12 .sp-divider-block .sp-divider-holder{margin:0!important;width:56px!important;}
.sp-scheme-3 .sp-col-12 .sp-divider-block .sp-divider-holder{border-top-color:#fff!important;opacity:.75!important;}
.sp-col-12 .sp-image-block .sp-block-content{
  box-shadow:0 34px 70px rgba(0,0,0,.38);
  transform:translateY(22px);
}
.sp-col-12 .sp-heading-block{padding-top:34px!important;}

/* 8. IMAGE TILES WITH TEXT */
.sp-image-holder.has-text{overflow:hidden;background:#000;}
.sp-scheme-2 .sp-image-holder.has-text{height:460px!important;min-height:0!important;padding-bottom:0!important;}
.sp-image-holder.has-text img.fill{
  transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .4s ease;
  opacity:.94;
}
.sp-image-holder.has-text:hover img.fill{transform:scale(1.05);opacity:1;}
.sp-image-holder.has-text::after{
  content:"";
  position:absolute;inset:0;
  z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,0) 34%,rgba(0,0,0,.34) 62%,rgba(0,0,0,.82) 100%);
}
.sp-image-holder.has-text .sp-image-title,
.sp-image-holder.has-text .sp-image-caption{
  position:absolute!important;
  left:32px!important;right:32px!important;
  top:auto!important;
  width:auto!important;height:auto!important;
  margin:0!important;
  transform:none!important;
  text-align:left!important;
  z-index:2;
  color:#fff!important;
  text-shadow:0 2px 14px rgba(0,0,0,.4);
}
.sp-image-holder.has-text .sp-image-title{
  bottom:58px!important;
  font-family:var(--serif)!important;
  font-size:clamp(1.5rem,2.3vw,2rem)!important;
  font-weight:500!important;
  line-height:1.08!important;
  letter-spacing:-.01em;
}
.sp-image-holder.has-text .sp-image-caption{
  bottom:30px!important;
  font-family:var(--sans)!important;
  font-size:.86rem!important;
  font-weight:500!important;
  line-height:1.4!important;
  opacity:.85;
}

/* 9. PLAIN IMAGES */
.sp-image-block img{border-radius:2px;}
.sp-scheme-0 .sp-image-holder:not(.has-text) img{box-shadow:0 24px 50px rgba(0,0,0,.16);}

/* 10. SERVICE RAIL */
.sp-scheme-3 .sp-col-5 + .sp-col-5,
.sp-scheme-3 .sp-col-6 + .sp-col-6,
.sp-scheme-3 .sp-col-8 + .sp-col-8{border-left:1px solid rgba(255,255,255,.22);}
.sp-scheme-3 .sp-heading-block h3{
  font-family:var(--serif)!important;
  font-size:clamp(1.3rem,2.6vw,1.75rem)!important;
  letter-spacing:-.01em;
}

/* 11. BRAND RULE */
.sp-divider-block .sp-divider-holder{
  border:0!important;
  border-top:3px solid var(--agape-red)!important;
  width:64px!important;
  margin:0 auto!important;
  opacity:1!important;
}

/* 12. BUTTONS */
a.sp-button{
  border-radius:2px!important;
  padding:18px 36px!important;
  font-size:11.5px!important;
  font-weight:800!important;
  letter-spacing:.2em!important;
  text-transform:uppercase!important;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
a.sp-button:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(0,0,0,.24);}

/* 13. FORMS */
.sp-form input[type=text],.sp-form input[type=email],.sp-form textarea{
  border:1px solid var(--agape-line)!important;
  background:#fff!important;
  border-radius:2px!important;
  padding:15px 16px!important;
  box-shadow:none!important;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.sp-form input:focus,.sp-form textarea:focus{
  border-color:var(--agape-red)!important;
  box-shadow:0 0 0 3px rgba(166,38,43,.13)!important;
  outline:none!important;
}
.sp-field-label{
  text-transform:uppercase!important;
  letter-spacing:.16em!important;
  font-size:10.5px!important;
  font-weight:800!important;
  color:#6a615d!important;
}

/* 14. FOOTER */
main#sp-content > .sp-section:last-child .sp-block{text-align:left!important;}
main#sp-content > .sp-section:last-child .sp-text-block .text-editor{
  max-width:none;margin:0;line-height:1.9;font-size:.95rem;
}
main#sp-content > .sp-section:last-child .sp-social-holder{justify-content:flex-start!important;}
.sp-social-holder a{transition:opacity .16s ease,transform .16s ease;}
.sp-social-holder a:hover{opacity:.72;transform:translateY(-2px);}

/* 15. PHONE */
@media (max-width:900px){
  main#sp-content > .sp-section.sp-scheme-1:first-child{min-height:88vh;}
  main#sp-content > .sp-section.sp-scheme-1:first-child .sp-section-content{
    padding-top:170px!important;padding-bottom:90px!important;
  }
  .sp-section-content{padding-top:80px!important;padding-bottom:80px!important;}
  .sp-scheme-2 .sp-image-holder.has-text{height:340px!important;}
  .sp-col-12 .sp-image-block .sp-block-content{transform:none;margin-top:28px;}
  .sp-scheme-3 .sp-col-5 + .sp-col-5,
  .sp-scheme-3 .sp-col-6 + .sp-col-6,
  .sp-scheme-3 .sp-col-8 + .sp-col-8{border-left:0;border-top:1px solid rgba(255,255,255,.22);}
}
@media (max-width:767px){
  .sp-heading-block h1{font-size:2.6rem!important;}
  .sp-heading-block h2{font-size:1.9rem!important;}
  .sp-text-block .text-editor{line-height:1.74;}
  .sp-image-holder.has-text .sp-image-title{bottom:50px!important;}
  .sp-image-holder.has-text .sp-image-caption{bottom:24px!important;}
}
@media (prefers-reduced-motion:reduce){
  a.sp-button,.sp-image-holder.has-text img.fill,.sp-social-holder a{transition:none!important;}
}
