* {box-sizing:border-box;}

:root {
  --default-font-family:"Open Sans", sans-serif;
  --secondary-font-family:museo-slab, serif;
  --main-text-color:#3d3228;
  --main-brown:#3d3228;
  --main-orange:#c77a3a;
  --main-orange-hover:#a0642f;
  --main-light-beige:#faf7f4;
  --main-lighter-beige:#fff8f3;
  --main-light-grey:#ddd3cc;
}

html {font-size:16px;}


/* Body */

body {
  background-color:var(--main-lighter-beige);
  color:var(--main-text-color);
  font-family:var(--default-font-family);
  font-optical-sizing:auto;
  font-weight:400;
  line-height:1.5em;
  margin:0;
  padding:0;  
}

p {margin:0 0 20px;}

.dialog-off-canvas-main-canvas a {
  color:var(--main-orange);
  font-weight:700;
  text-decoration:none;
}

.dialog-off-canvas-main-canvas a:hover {
  color:var(--main-orange-hover);
  text-decoration:underline;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border-width:0;
}


/* Header */

header.site-header {
  border-bottom:1px solid var(--main-light-grey);
  width:100%;
}

header.site-header .header-container {
  display:grid;
  height:114px;
  margin:0 auto;
  max-width:900px;
  width:100%;
}

header.site-header figure.branding {
  display:flex;
  height:100%;
  margin:0;
  width:100%;
}

figure.branding a.site-logo {
  align-items:center;
  display:flex;
  font-size:0;
  padding:32px 20px;
}

figure.branding img {
  height:50px;
  width:172px;
}



/* Hero Region */

section.region-hero {
  align-items:center;
  background-position:center;
  display:flex;
  justify-content:center;
  padding:32px 20px;
  position:relative;
  text-align:center;
  width:100%;
  z-index:1;
}

section.region-hero.front {padding:0;}
section.region-hero.front .page-title-group {padding:0}

section.region-hero .page-title-group .page-title {
  font-size:1.5rem;
  font-weight:700;
  line-height:1.25em;
  margin:0;
}

/* Buttons */

.button-links {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  justify-content:center;
  list-style:none;
  margin:20px 0;
  padding:0;
}

.button-links.left {justify-content:flex-start;}

ul.button-links:last-child {margin-bottom:0;}
.button-links .button-link {margin:0;}

.button-links .button {
  align-items:center;
  background:var(--main-orange);
  border-radius:8px;
  color:#fff;
  display:flex;
  font-size:1rem;
  font-weight:700;
  line-height:1.5em;
  margin:0;
  padding:12px 24px;
  text-align:left;
  text-decoration:none;
  transition:background 250ms ease-in-out, color 250ms ease-in-out;
}


.button-links .button:hover {
  background:var(--main-orange-hover);
  color:#fff;
  text-decoration:none;
}


/* Page Content */

article.node h2 {
  font-size:2rem;
  font-weight:700;
  line-height:1.25em;
  position:relative;
  margin:40px 0 16px;
}

article.node section.paragraph h2.sr-only {
  line-height:0;
  margin:0;
}

article.node h3 {
  color:var(--envision-purple);
  font-family:var(--secondary-font-family);
  font-size:1.333333rem;
  font-weight:700;
  margin:40px 0 16px;
}

article.node h2:first-child {margin-top:0;}

article figure {
  line-height:0;
  margin:0 0 20px;
  position:relative;
  width:100%;
}

article figure a {display:block;}

article figure img {
  height:auto;
  width:100%;
}

article figure figcaption {
  font-size:.777778rem;
  font-style:italic;
  line-height:1.428571em;
  padding:8px 12px 0;
  text-align:right;
}

article figure figcaption :last-child,
.region-hero figure figcaption :last-child {margin:0;}
.region-hero figure figcaption {color:#fff;}
article figure.video {margin:0 0 20px;}

article figure.video iframe.media-oembed-content,
article figure.video iframe.custom-video {
  aspect-ratio:16 / 9;
  border-radius:16px;
  height:auto;
  width:100%;
}

article figure.vertical.video iframe.media-oembed-content,
article figure.vertical.video iframe.custom-video {aspect-ratio:9 / 16;}

article.node .body-content hr {
  background:var(--envision-purple);
  border:0;
  height:2px;
  margin:24px 0;
  padding:0;
}

article.node figure.image img {
  border-radius:16px;
  box-shadow:0 8px 24px rgba(61, 50, 40, 0.12);
}


/* Footer */

footer.site-footer {
  background:var(--main-brown);
  color:#fff;
  padding:32px 20px;
  width:100%;
}

footer.site-footer .footer-container {
  margin:0 auto;
  max-width:760px;
}

footer.site-footer .copyright {
  text-align:center;
  text-wrap:balance;
}
  
footer.site-footer .copyright p:last-child {margin:0;}


/* Media Queries */


@media (min-width:600px) {
  
  /* Hero Section */
  
  section.region-hero {padding:48px 20px;}
  section.region-hero .page-title-group .page-title {font-size:2.5rem;}  

}