.wf-hero, .wf-hero * { box-sizing: border-box; }
.wf-hero { --wf-cream:#fffcf8; --wf-purple:#984f91; --wf-purple-hover:#5f2d59; --wf-overlay-opacity:.5; --wf-min-height:620px; position:relative; height:100vh; height:100svh; min-height:var(--wf-min-height); max-height:920px; overflow:hidden; isolation:isolate; color:var(--wf-cream); background:#221a1f; font-family:"Open Sans",sans-serif; }
.wf-hero__video,.wf-hero__image,.wf-hero__shade { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.wf-hero__video { z-index:0; object-fit:cover; object-position:center; }
.wf-hero__image { z-index:1; max-width:none; object-fit:cover; object-position:center; filter:grayscale(1); transition:opacity 500ms ease; }
.wf-hero--volunteer .wf-hero__image,.wf-hero--membership .wf-hero__image { filter:none; }
.wf-hero__video.is-ready + .wf-hero__image { opacity:0; }
.wf-hero__shade { z-index:2; background:linear-gradient(180deg,rgba(0,0,0,.26),rgba(0,0,0,.08) 42%,rgba(0,0,0,.42)),rgba(0,0,0,.18); opacity:var(--wf-overlay-opacity); }
.wf-hero__content { position:relative; z-index:3; display:flex; width:min(100%,1440px); min-height:100%; flex-direction:column; align-items:flex-end; justify-content:center; margin:0 auto; padding:clamp(96px,11svh,120px) 96px clamp(58px,7svh,78px); }
.wf-hero__kicker { width:min(612px,100%); max-width:100%; margin:0 0 2px; text-align:left; font-family:Lora,Georgia,"Times New Roman",serif; font-size:24px; font-weight:400; font-style:normal; line-height:1.3; letter-spacing:0; }
.wf-hero--home .wf-hero__kicker { font-family:"Open Sans",sans-serif; font-size:clamp(14px,min(1.12vw,1.78svh),16px); }
.wf-hero__title { width:min(1210px,100%); max-width:1210px; margin:0; color:inherit; font-family:Lora,Georgia,serif; font-size:clamp(82px,min(8vw,12.8svh),114px); font-weight:400; line-height:.96; letter-spacing:0; text-align:right; text-transform:none; }
.wf-hero__title > span,.wf-hero__title > em { display:block; white-space:nowrap; }
.wf-hero__title > span:last-child,.wf-hero__title > em:last-child { text-align:right; }
.wf-hero__title em { font-weight:400; font-style:italic; }
.wf-hero__text { display:flex; width:100%; max-width:612px; flex-direction:column; align-items:flex-start; margin:clamp(18px,2.9svh,26px) 0 0; }
.wf-hero__text p { margin:0; color:inherit; font-size:clamp(16px,2.22svh,20px); line-height:1.3; }
.wf-hero__button { display:flex; width:203px; height:48px; align-items:center; justify-content:center; margin:clamp(38px,7.1svh,64px) 0 0; border:1px solid var(--wf-purple); border-radius:6px; color:var(--wf-cream); background:var(--wf-purple); font-size:18px; line-height:1; text-decoration:none; transition:color 180ms,background 180ms,border-color 180ms; }
.wf-hero__button:hover,.wf-hero__button:focus { border-color:var(--wf-purple-hover); color:var(--wf-cream); background:var(--wf-purple-hover); text-decoration:none; }

@media (min-width:901px) and (max-width:1247px) {
  .wf-hero__content { padding:180px 40px 70px; }
  .wf-hero__kicker { width:min(720px,100%); margin-inline:auto; text-align:center; }
  .wf-hero__title { max-width:900px; margin:10px auto 0; text-align:center; font-size:clamp(72px,8.4vw,94px); line-height:.98; }
  .wf-hero__title em { text-align:center; }
  .wf-hero__text { width:min(560px,100%); margin:38px auto 0; align-items:center; text-align:center; }
  .wf-hero__button { width:260px; margin-top:62px; }
}

@media (max-width:900px) {
  .wf-hero { min-height:760px; }
  .wf-hero__content { display:block; width:100%; padding:clamp(210px,28svh,290px) 32px 66px; }
  .wf-hero__kicker { width:100%; margin:0 0 4px; text-align:left; }
  .wf-hero__title { width:100%; margin:0; font-size:clamp(52px,14.2vw,57px); line-height:1.01; text-align:left; }
  .wf-hero__title > span,.wf-hero__title > em { white-space:normal; text-align:left; }
  .wf-hero__text { width:100%; margin:58px 0 0; }
  .wf-hero__text p { width:100%; font-size:16px; line-height:1.3; text-align:left; }
  .wf-hero__button { width:100%; height:48px; margin-top:88px; }
}

@media (max-width:600px) {
  .wf-hero__content { padding-right:24px; padding-left:24px; }
}

@media (max-width:370px) { .wf-hero__title { font-size:52px; } }
@media (prefers-reduced-motion:reduce) { .wf-hero__video { display:none; } .wf-hero__image,.wf-hero__button { transition:none; } }
