/* Elementor containers sit behind the existing .hero and .band markup.
   Zero the container so section spacing still comes from styles.css. */
.elementor-page .rt-flush.e-con,
.elementor-page .rt-flush.e-con > .e-con-inner{
  --padding-top:0px;
  --padding-right:0px;
  --padding-bottom:0px;
  --padding-left:0px;
  --container-max-width:100%;
  --widgets-spacing:0px;
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
  min-height:0;
}
.elementor-widget-rt-hero,
.elementor-widget-rt-prose{width:100%}
.elementor-widget-rt-hero > .elementor-widget-container,
.elementor-widget-rt-prose > .elementor-widget-container{margin:0;padding:0}
body.elementor-page{
  background:var(--bone);
  color:var(--ink);
  font-family:var(--serif);
}

/* Homepage. Elementor wrappers keep the theme classes; these rules stop
   Elementor's own heading and button skins from replacing them. */
body.elementor-page .e-con.hero,
body.elementor-page .e-con.band,
body.elementor-page .e-con.wrap,
body.elementor-page .e-con.rt-flow,
body.elementor-page .e-con.who-grid,
body.elementor-page .e-con.rt-actions{
  --padding-top:0px;
  --padding-right:0px;
  --padding-bottom:0px;
  --padding-left:0px;
  --widgets-spacing:0px;
  --widgets-spacing-row:0px;
  --widgets-spacing-column:0px;
  --gap:0px;
  --row-gap:0px;
  --column-gap:0px;
}
/* Full-bleed sections only. .wrap and .narrow keep their theme max-widths.
   Elementor writes padding from --padding-top, which beats .hero / .band.
   Put the theme spacing back on the same elements. */
body.elementor-page .e-con.hero,
body.elementor-page .e-con.band{
  max-width:none;
  width:100%;
}
body.elementor-page .e-con.hero{
  padding:clamp(72px,12vh,150px) 0 clamp(56px,9vh,110px);
  border-bottom:var(--rule-w) solid var(--rule);
}
body.elementor-page .e-con.band{padding:var(--band-pad) 0}
body.elementor-page .e-con.band.band--tight{padding-block:clamp(40px,5vw,68px)}
/* Elementor's container padding longhands zero .wrap's gutter. */
body.elementor-page .e-con.wrap{
  box-sizing:border-box;
  width:100%;
  max-width:var(--max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
body.elementor-page .e-con.wrap.narrow{max-width:var(--measure)}
body.elementor-page .e-con.rt-flow{
  display:block;
  overflow:visible;
  width:100%;
}
body.elementor-page .elementor-widget-heading .elementor-heading-title{
  font-family:inherit;
  font-weight:inherit;
  font-size:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  color:inherit;
  margin:0;
}
body.elementor-page .elementor-widget-heading.eyebrow .elementor-heading-title{
  font-family:var(--mono);
  font-size:var(--step--1);
  font-weight:400;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--mute);
  margin:0 0 1.1em;
  display:block;
  line-height:1.4;
}
body.elementor-page .elementor-widget-heading.eyebrow--green .elementor-heading-title{color:var(--green)}
body.elementor-page .band--green .elementor-widget-heading.eyebrow .elementor-heading-title{color:var(--on-green-soft)}
body.elementor-page .elementor-widget-heading.rt-h1 .elementor-heading-title{
  font-family:var(--serif);
  font-weight:600;
  font-size:var(--step-4);
  line-height:1.08;
  letter-spacing:-.03em;
  max-width:19ch;
  margin:0 0 .5em;
  color:var(--ink);
}
body.elementor-page .elementor-widget-heading.rt-h2 .elementor-heading-title{
  font-family:var(--serif);
  font-weight:600;
  font-size:var(--step-2);
  line-height:1.08;
  letter-spacing:-.018em;
  margin:2.2em 0 .5em;
  color:inherit;
}
body.elementor-page .band--green .elementor-widget-heading.rt-h2 .elementor-heading-title{color:var(--on-green)}
body.elementor-page .hero .elementor-widget-text-editor.lede p{
  font-size:var(--step-1);
  color:var(--mute);
  max-width:50ch;
  margin-top:1.2em;
}
body.elementor-page .hero .lede strong,
body.elementor-page .hero .lede b{color:var(--ink)}
body.elementor-page .elementor-widget-text-editor{
  margin:0;
  width:100%;
  font-family:var(--serif);
  font-weight:400;
  font-size:inherit;
  line-height:inherit;
  color:inherit;
}
body.elementor-page .elementor-text-editor p{margin:0 0 1.15em;max-width:var(--measure)}
body.elementor-page .elementor-text-editor p.note{
  font-family:var(--mono);
  font-size:var(--step--1);
  color:var(--mute);
  border-left:2px solid var(--rule-strong);
  padding-left:1em;
  margin:1.6em 0;
  max-width:54ch;
}
body.elementor-page .elementor-text-editor p.said{
  border-left:3px solid var(--green);
  padding:.2em 0 .2em 1.5em;
  margin:2em 0;
  font-size:var(--step-1);
  line-height:1.34;
  max-width:44ch;
  color:inherit;
}
body.elementor-page .elementor-text-editor p.said cite{
  display:block;
  font-style:normal;
  font-family:var(--mono);
  font-size:var(--step--1);
  color:var(--mute);
  margin-top:1em;
  letter-spacing:.04em;
}
body.elementor-page .elementor-text-editor .disclaimer{max-width:var(--measure)}
body.elementor-page .band--green .elementor-text-editor,
body.elementor-page .band--green .elementor-text-editor p{color:var(--on-green)}
body.elementor-page .rt-actions.e-con{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:.65em;
  width:auto;
  max-width:100%;
  --container-widget-width:auto;
  --container-widget-flex-grow:0;
  --container-widget-align-self:center;
}
body.elementor-page .rt-actions > .elementor-widget{
  width:auto;
  max-width:100%;
  flex:0 0 auto;
}
body.elementor-page .rt-cta{width:auto;max-width:100%}
body.elementor-page .rt-cta .elementor-button{
  display:inline-block;
  width:auto;
  background:none;
  color:var(--ink);
  border:1px solid var(--ink);
  border-radius:0;
  box-shadow:none;
  font-family:var(--mono);
  font-size:var(--step--1);
  font-weight:400;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  line-height:1.2;
  padding:.95em 1.6em;
  transition:background .15s,color .15s;
}
body.elementor-page .rt-cta .elementor-button:hover,
body.elementor-page .rt-cta .elementor-button:focus{
  background:var(--ink);
  color:var(--bone);
  border-color:var(--ink);
}
body.elementor-page .rt-cta--green .elementor-button{
  background:var(--green);
  border-color:var(--green);
  color:var(--on-green);
}
body.elementor-page .rt-cta--green .elementor-button:hover,
body.elementor-page .rt-cta--green .elementor-button:focus{
  background:var(--green-deep);
  border-color:var(--green-deep);
  color:var(--on-green);
}
body.elementor-page .band--green .rt-cta--on .elementor-button{
  background:none;
  border-color:var(--on-green);
  color:var(--on-green);
}
body.elementor-page .band--green .rt-cta--on .elementor-button:hover,
body.elementor-page .band--green .rt-cta--on .elementor-button:focus{
  background:var(--on-green);
  color:var(--green);
  border-color:var(--on-green);
}
@media(prefers-reduced-motion:reduce){
  body.elementor-page .rt-cta .elementor-button{transition:none}
}
body.elementor-page .rt-flow > .rt-portrait{
  float:right;
  width:178px;
  max-width:178px;
  margin:.35em 0 1.1em 2rem;
}
body.elementor-page .rt-portrait img{
  width:100%;
  height:auto;
  display:block;
  filter:grayscale(100%) contrast(1.06);
  border:1px solid var(--rule);
}
body.elementor-page .rt-flow > .rt-portrait img{
  aspect-ratio:1;
  object-fit:cover;
}
body.elementor-page .e-con.who-grid:not(.who-grid--inline){
  display:grid;
  grid-template-columns:minmax(132px,178px) 1fr;
  gap:clamp(24px,4vw,52px);
  align-items:start;
  margin-top:2em;
  width:100%;
}
body.elementor-page .who-grid:not(.who-grid--inline) > .rt-portrait{
  float:none;
  width:100%;
  max-width:100%;
  margin:0;
}
body.elementor-page .who-grid:not(.who-grid--inline) > .rt-portrait img{
  max-width:270px;
  aspect-ratio:auto;
  object-fit:cover;
}
@media(max-width:720px){
  body.elementor-page .e-con.who-grid:not(.who-grid--inline){grid-template-columns:1fr}
}
body.elementor-page .elementor-text-editor a,
body.elementor-page .spine__q a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:.18em;
  text-decoration-thickness:1px;
}
body.elementor-page .elementor-text-editor a:hover,
body.elementor-page .spine__q a:hover{color:var(--green-deep)}
body.elementor-page .band--green .elementor-text-editor a,
body.elementor-page .band--green .spine__q a{
  color:var(--on-green);
  text-decoration-color:var(--green-lt);
}
body.elementor-page .rt-flow > .rt-said{clear:right}
@media(max-width:640px){
  body.elementor-page .rt-flow > .rt-portrait{
    float:none;
    margin:1.4em 0;
    max-width:150px;
    width:150px;
  }
}
