/************ Fonts ************/
/* playfair-display-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/playfair-display-v37-latin-regular.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 400;
  src: url("../fonts/playfair-display-v37-latin-italic.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/playfair-display-v37-latin-500.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-500.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-500italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 500;
  src: url("../fonts/playfair-display-v37-latin-500italic.woff2")
      format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-500italic.ttf")
      format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/playfair-display-v37-latin-600.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-600.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 600;
  src: url("../fonts/playfair-display-v37-latin-600italic.woff2")
      format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-600italic.ttf")
      format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/playfair-display-v37-latin-700.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-700.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 700;
  src: url("../fonts/playfair-display-v37-latin-700italic.woff2")
      format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-700italic.ttf")
      format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 800;
  src: url("../fonts/playfair-display-v37-latin-800.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-800.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-800italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 800;
  src: url("../fonts/playfair-display-v37-latin-800italic.woff2")
      format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-800italic.ttf")
      format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/playfair-display-v37-latin-900.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-900.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* playfair-display-900italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 900;
  src: url("../fonts/playfair-display-v37-latin-900italic.woff2")
      format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/playfair-display-v37-latin-900italic.ttf")
      format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 300;
  src: url("../fonts/lato-v24-latin-300.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-300.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-300italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: italic;
  font-weight: 300;
  src: url("../fonts/lato-v24-latin-300italic.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-300italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/lato-v24-latin-regular.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-regular.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: italic;
  font-weight: 400;
  src: url("../fonts/lato-v24-latin-italic.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/lato-v24-latin-700.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-700.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: italic;
  font-weight: 700;
  src: url("../fonts/lato-v24-latin-700italic.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-700italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/lato-v24-latin-900.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-900.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/* lato-900italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Lato";
  font-style: italic;
  font-weight: 900;
  src: url("../fonts/lato-v24-latin-900italic.woff2") format("woff2"),
    /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
      url("../fonts/lato-v24-latin-900italic.ttf") format("truetype"); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}

/************ Universal reset ************/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/************ Utility Classes ************/

/* Padding Utility Classes */
.padded-sm {
  padding: 2.5%;
}
.padded-md {
  padding: 5%;
}
.padded-lg {
  padding: 10%;
}

.padded-05 {
  padding: 0.5rem;
}
.padded-1 {
  padding: 1rem;
}
.padded-2 {
  padding: 2rem;
}

.padded-t {
  padding-top: 5%;
}
.padded-b {
  padding-bottom: 5%;
}
.padded-l {
  padding-left: 5%;
}
.padded-r {
  padding-right: 5%;
}

.padded-y {
  padding-top: 5%;
  padding-bottom: 5%;
}
.padded-x {
  padding-left: 5%;
  padding-right: 5%;
}

.padded-t-1 {
  padding-top: 1rem;
}
.padded-b-1 {
  padding-bottom: 1rem;
}
.padded-l-1 {
  padding-left: 1rem;
}
.padded-r-1 {
  padding-right: 1rem;
}

.padded-t-2 {
  padding-top: 2rem;
}
.padded-b-2 {
  padding-bottom: 2rem;
}
.padded-l-2 {
  padding-left: 2rem;
}
.padded-r-2 {
  padding-right: 2rem;
}

.padded-t-0 {
  padding-top: 0;
}
.padded-b-0 {
  padding-bottom: 0;
}
.padded-l-0 {
  padding-left: 0;
}
.padded-r-0 {
  padding-right: 0;
}

/* Margin Utility Classes */

.margin-1 {
  margin: 1rem;
}
.margin-2 {
  margin: 2rem;
}

.margin-t {
  margin-top: 5%;
}
.margin-b {
  margin-bottom: 5%;
}
.margin-l {
  margin-left: 5%;
}
.margin-r {
  margin-right: 5%;
}

.margin-t-1 {
  margin-top: 1rem;
}
.margin-b-1 {
  margin-bottom: 1rem;
}
.margin-l-1 {
  margin-left: 1rem;
}
.margin-r-1 {
  margin-right: 1rem;
}

.margin-t-2 {
  margin-top: 2rem;
}
.margin-b-2 {
  margin-bottom: 2rem;
}
.margin-l-2 {
  margin-left: 2rem;
}
.margin-r-2 {
  margin-right: 2rem;
}

.margin-t-0 {
  margin-top: 0;
}
.margin-b-0 {
  margin-bottom: 0;
}
.margin-l-0 {
  margin-left: 0;
}
.margin-r-0 {
  margin-right: 0;
}

.margin-y-1 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}
.margin-x-1 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.margin-y-2 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}
.margin-x-2 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.margin-y-5 {
  margin: 5% auto !important;
}
.margin-x-5 {
  margin: auto 5% !important;
}

/* Display */
.show-md {
  display: none;
}

/************ Section & Grid styles ************/

.tall-40 {
  min-height: 40svh;
}
.tall-50 {
  min-height: 50svh;
}
.tall-60 {
  min-height: 60svh;
}
.tall-70 {
  min-height: 70svh;
}
.tall-80 {
  min-height: 80svh;
}
.tall-90 {
  min-height: 90svh;
}
.tall-100 {
  min-height: 100svh;
}

.capped-width {
  max-width: 60vw;
  margin: auto;
}

.position-relative {
  position: relative;
}

/************ Flex styles ************/
.flex {
  display: flex;
  flex-direction: column;
}

.flex-center {
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(1, auto);
  width: 100%;
}

.justify-between {
  justify-content: space-between;
  align-items: space-between;
}

.grid-box-half {
  display: grid;
  gap: 5vw;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  justify-content: center;
  padding: 3rem;
}

.grid-box-three-fourths {
  display: grid;
  gap: 5%;
  grid-template-columns: 1fr 3fr;
  justify-content: space-between;
  align-items: center;
  justify-content: center;
  margin: 2rem auto;
  width: 80%;
}

.align-end-right {
  align-self: end;
  text-align: right;
  justify-self: end;
}

.align-end-left {
  align-self: start;
  justify-self: start;
}

.align-end {
  align-self: end;
  justify-self: end;
}

.align-center {
  align-self: center;
  justify-self: center;
}

.flex-flip-alternate:nth-child(even) {
  flex-direction: row-reverse;
}

.grid-flip-alternate:nth-child(even) > :first-child {
  order: 2;
}

.grid-flip-alternate:nth-child(even) > :nth-last-child(1) {
  order: 1;
}

/************ Universal Text Styles ************/
.text-center {
  text-align: center;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}

.emph-text {
  font-style: italic;
}

/************ Overall styles ************/

body {
  background-color: var(--background);
  color: var(--dark);
  position: relative;
  font-family: "Lato", sans-serif;
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Playfair Display", serif;
  line-height: 1.25;
  margin-bottom: 1rem;
}

h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child,
h6:last-child {
  margin-bottom: 0;
}

p,
li {
  line-height: 1.25;
  font-size: 1.2rem;
  margin-bottom: 1rem;
}

br {
  content: "" !important;
  display: block !important;
  margin-bottom: 1rem !important;
  height: 1rem;
}

ul {
  list-style-position: inside;
}

li {
  margin-bottom: 0.5rem;
}

hr {
  border: none;
  height: 2px;
  border-radius: 10rem;
}

.short-hr {
  width: 50px;
  margin: 0.5rem auto;
}

.main-color-hr {
  background-color: var(--main);
}

.featured-color-hr {
  background-color: var(--featured);
}

.secondary-color-hr {
  background-color: var(--secondary);
}

p > a {
  color: var(--main);
  font-weight: 500;
}

a {
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease-in-out;
  margin-bottom: 1rem;
}

a:hover {
  color: var(--secondary-dark);
}

/* Buttons */

.button {
  border: none;
  background-image: linear-gradient(var(--secondary), var(--secondary-dark));
  border-radius: 0.5rem;
  padding: 1rem 2rem;
  display: inline-block;
  text-align: center;
  font-size: 1.1rem;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s;
  box-shadow: 0px 8px 20px 2px rgba(17, 14, 17, 0.3);
  z-index: 1;
  position: relative;
  cursor: pointer;
  color: var(--dark);
}

.button::before {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(var(--secondary-dark), var(--secondary));
  z-index: -1;
  border-radius: 0.5rem;
  transition: opacity 0.2s ease-in-out;
  opacity: 0;
  color: var(--dark);
}

.button:hover {
  box-shadow: 0px 24px 20px 2px rgba(17, 14, 17, 0.3);
  color: var(--dark);
}

.button:hover::before {
  opacity: 1;
}

.button-main {
  background: linear-gradient(var(--main-light), var(--main));
  color: var(--light);
}

.button-main::before {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(var(--main), var(--main-light));
  z-index: -1;
  border-radius: 0.5rem;
  transition: opacity 0.2s ease-in-out;
  opacity: 0;
}

.button-main:hover {
  color: var(--light);
}

.button-featured {
  background: linear-gradient(var(--featured), var(--featured-dark));
}

.button-featured::before {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(var(--featured-dark), var(--featured));
  z-index: -1;
  border-radius: 0.5rem;
  transition: opacity 0.2s ease-in-out;
  opacity: 0;
}

/************ Specific text style ************/
.logo {
  font-family: "Playfair Display", serif;
  font-weight: 700 !important;
  font-size: 2rem;
  margin-bottom: 0;
}

.logo a {
  font-weight: 700 !important;
}

.dark-text {
  color: var(--dark);
}

.light-text {
  color: var(--light);
}

.main-text {
  color: var(--main);
}

.featured-text {
  color: var(--featured);
}

.featured-light-text {
  color: var(--featured-light);
}

.secondary-light-text {
  color: var(--secondary-light);
}

.heading {
  font-size: clamp(2rem, 4rem, 4rem);
  font-weight: 700;
}

.subhead {
  font-size: 1.5rem;
  font-weight: 600;
  font-family: "Lato", sans-serif;
}

/************  Marquee styles ************/
.marquee {
  display: flex;
  overflow: hidden;
  padding: 0.5rem;
}

.marquee__list {
  display: flex;
}

.marquee__list > li {
  display: inline-block;
  margin: 0rem 1.5rem;
  text-transform: uppercase;
  width: 100%;
  white-space: nowrap;
}

.marquee__list > li:after {
  content: "|";
  margin-left: 3rem;
}

/************  Testimonial styles ************/
.testimonial-quote {
  font-size: 2rem;
  font-weight: 600;
}

/************ Images & BGs ************/
.main-color-bg {
  background-color: var(--main);
  color: var(--light);
}

.main-dark-color-bg {
  background-color: var(--main-dark);
}

.main-gradient-bg {
  background: linear-gradient(var(--main), #384c24);
  color: var(--light);
}

.main-gradient-bg p > a {
  color: var(--featured);
}

.main-gradient-bg p > a:hover {
  color: var(--secondary);
}

.featured-color-bg {
  background-color: var(--featured);
}

.featured-light-color-bg {
  background-color: var(--featured-light);
}

.featured-gradient-bg {
  background: linear-gradient(var(--featured), var(--featured-light));
  color: var(--dark);
}

.featured-light-gradient-bg p > a,
.featured-gradient-bg p > a {
  color: var(--main);
}

.featured-light-gradient-bg p > a:hover,
.featured-gradient-bg p > a:hover {
  color: var(--secondary);
}

.secondary-color-bg {
  background-color: var(--secondary);
}

.secondary-dark-gradient-bg {
  background: linear-gradient(var(--secondary-dark), var(--secondary));
}

.secondary-gradient-bg {
  background: linear-gradient(var(--secondary), var(--secondary-dark));
}

.secondary-dark-gradient-bg p > a,
.secondary-gradient-bg p > a {
  color: var(--main);
}

.secondary-dark-gradient-bg p > a:hover,
.secondary-gradient-bg p > a:hover {
  color: var(--secondary);
}

.accent-color-bg {
  background-color: var(--accent);
}

.bg-img {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: var(--featured);
}

.round-image {
  aspect-ratio: 1/1;
  border-radius: 100%;
}

.corner-image {
  height: 25svh;
  position: absolute;
  top: -12svh;
  left: -5vw;
}

.bravado-large {
  width: 100%;
  position: sticky;
  bottom: 0;
  z-index: 0;
  object-fit: contain;
  top: 100%;
  left: 0;
  right: 0;
  height: 100%;
}

.service-image {
  height: 100%;
}

.site-preview-image {
  max-width: 50vw;
  margin: auto;
}

/* Round-top */
.rounded-top {
  width: 200vw;
  position: absolute;
  top: -16%;
  left: -49%;
  z-index: -1;
}

.main-fill {
  fill: var(--main);
}

.featured-fill {
  fill: var(--featured-light);
}

/* Aspect ratios */
.portrait-tall {
  padding-bottom: 175%;
}
.portrait {
  padding-bottom: 125%;
}
.landscape {
  padding-bottom: 65%;
}
.landscape-wide {
  padding-bottom: 56%;
}
.square {
  aspect-ratio: 1/1;
}

/* Background image position */
.bg-pos-t {
  background-position: top;
}
.bg-pos-b {
  background-position: bottom;
}
.bg-pos-l {
  background-position: left;
}
.bg-pos-r {
  background-position: right;
}

/* Overlay */
.img-overlay {
  position: relative;
}

.img-overlay::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-color: var(--dark);
  opacity: 50%;
}

.img-overlay > * {
  position: relative;
}

/************ Card styles ************/
.card-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  margin: auto;
  justify-content: space-between;
  align-items: start;
  padding: 2rem;
  perspective: 1000px;
}

.card {
  border-radius: 1rem;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  box-shadow: 8px 12px 20px 5px rgba(17, 14, 17, 0.3);
  position: relative;
  transition: 0.2s all;
}

.capped-card {
  padding: 5% 8%;
}

/************ Section styles ************/
section {
  padding: 3rem;
}

/************ Header styles ************/
header {
  display: flex;
  padding: 0.5rem 2rem;
  z-index: 10;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  align-items: center;
  transition: 0.2s all ease-in-out;
}

header nav {
  display: flex;
  gap: 2rem;
  align-items: center;
  margin-left: auto;
}

header a {
  margin-bottom: 0;
  font-weight: 600;
}

header .button {
  padding: 0.5rem 1rem;
}

.main-underline {
  border-bottom: 2px solid var(--main);
}

.featured-underline {
  border-bottom: 2px solid var(--featured);
}

/************ Hero styles ************/
.hero {
  background: linear-gradient(var(--main-dark), var(--main));
  padding-top: 3.5rem;
  min-height: 95vh;
  position: relative;
}

/* .hero::after {
  content: url(/images/Bravado.svg);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  width: 100vw;
} */

.hero-card {
  background-color: #fef4dc;
  grid-column: span 3;
  justify-content: space-around;
  align-items: center;
  position: absolute;
  right: 10vw;
  top: 30svh;
  max-width: 30%;
  z-index: 2;
}

.hero-card p {
  font-size: clamp(1rem, 1.5rem, 1.7rem);
  font-weight: 500;
  margin-bottom: 3rem;
}

.hero h1 {
  font-size: 26vw;
  grid-column: span 12;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px var(--featured);
  line-height: 0.68;
  letter-spacing: -2rem;
  text-align: center;
  align-self: flex-end;
}

/************ About styles ************/
.about-block .heading {
  font-size: 2.5rem;
}

.about-block .card {
  margin-top: 5rem;
}

/************ Services styles ************/
.services-block .card {
  grid-column: span 4;
  display: flex;
  align-items: center;
  margin: auto;
  padding: 3rem;
  min-height: 50svh;
}

.services-block .card:first-child {
  grid-column-start: 2;
  grid-column-end: 6;
}

.services-block .card:last-child {
  grid-column-start: 8;
  grid-column-end: 12;
}

.services-block .subhead {
  align-self: flex-start;
}

.services-block .button {
  padding: 1rem 2rem;
  margin-top: auto;
}

/************ Portfolio grid styles ************/
.portfolio-section {
  margin-top: 15%;
  overflow-x: clip;
  position: relative;
}

.portfolio-section:after {
  content: "";
  position: absolute;
  width: 100%;
  background-color: var(--main);
  left: 0;
  right: 0;
  bottom: 0;
  top: 25%;
  z-index: -1;
}

.portfolio-block hr {
  margin-bottom: 3rem;
}

.portfolio-block .card-grid {
  gap: 2rem;
}

.portfolio-block .card {
  grid-column: span 4;
  position: relative;
  cursor: pointer;
}

.overlay-card .bg-img {
  z-index: -1;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  border-radius: 1rem;
}

.project-info {
  opacity: 0;
  transition: 0.33s all;
  background-color: rgba(179, 116, 71, 90%);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  border-radius: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.project-info a:hover {
  color: inherit;
}

.overlay-card:hover .project-info {
  opacity: 100%;
}

/************ CTA styles ************/
.cta .card {
  margin: 3rem auto;
}

/************ FAQ styles ************/

/************ Footer styles ************/
footer {
  padding: 3rem;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(1, auto);
  width: 100%;
}

footer .logo {
  grid-column-start: 2;
  grid-column-end: 12;
}

footer .social-icons {
  grid-column-start: 2;
  grid-column-end: 6;
  margin-top: 0.5rem;
}

.social-icons nav {
  flex-direction: row;
  display: flex;
  gap: 2rem;
}

.carbonbadge {
  text-align: left !important;
  margin-top: 0.5rem;
  color: var(--dark) !important;
}

#wcb #wcb_g {
  border-color: var(--secondary) !important;
  background: var(--light) !important;
}

#wcb #wcb_a {
  background: var(--accent-dark) !important;
  border-color: var(--accent-dark) !important;
  color: var(--light) !important;
  transition: 0.2s all ease-in-out;
}

#wcb #wcb_a:hover {
  background: var(--secondary) !important;
  border-color: var(--secondary) !important;
}

.social-icons a {
  margin-bottom: 0;
}

footer nav {
  grid-column-start: 9;
  grid-column-end: 11;
  font-size: 1.2rem;
  font-weight: 500;
}

footer nav ul {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  list-style-type: none;
}

footer a {
  padding: 0.5rem;
}

.copyright {
  font-style: italic;
  padding: 1rem 0;
  cursor: default;
  display: flex;
  align-items: center;
  justify-content: center;
}

.copyright p,
.copyright a {
  font-size: 1rem;
}

.copyright > p:before {
  content: "|";
  margin-left: 1rem;
  margin-right: 1rem;
}

/************ About page styles ************/
.about-hero {
  color: var(--light);
  display: flex;
}

.about-hero .heading {
  font-size: 4.5rem;
  border-right: 2px solid var(--featured);
  padding-right: 2rem;
}

.about-page-bio {
  padding: 5%;
  margin: auto;
  max-width: 75vw;
}

.values-section {
  overflow-x: clip;
  margin-top: 30svh;
}

.values-section .rounded-top {
  top: -28%;
}

.values-section::after {
  content: "";
  z-index: -1;
  background-color: var(--featured-light);
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  top: 24%;
}

.values-block .flex {
  gap: 15%;
  margin: auto;
  align-items: flex-start;
  width: 80%;
  flex-direction: row;
}

.values-block ul {
  list-style-type: none;
}

.values-block hr {
  margin-bottom: 5svh;
}

.values {
  margin-top: -0.5rem;
}

.values li {
  margin-bottom: 2rem;
  font-weight: 600;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 1rem 0.5rem;
  border-radius: 1rem;
  text-align: center;
  transition: 0.2s all ease-in-out;
}

.values li:hover {
  background-color: rgba(252, 251, 252, 0.3);
  box-shadow: 0px 8px 20px 2px rgba(17, 14, 17, 0.1);
}

.values .active {
  background-color: rgba(252, 251, 252, 0.5);
  box-shadow: 0px 8px 20px 2px rgba(17, 14, 17, 0.3);
}

.values .active:hover {
  background-color: rgba(252, 251, 252, 0.5);
  box-shadow: 0px 8px 20px 2px rgba(17, 14, 17, 0.3);
}
/* 
.value-content {
  margin-right: 1rem;
} */

.value-content li {
  display: none;
  opacity: 0;
  font-size: 1.5rem;
  transition: 0.3s opacity ease-in-out;
}

.value-content li:first-child {
  display: block;
  opacity: 100%;
  transition: 0.3s opacity ease-in-out;
}

/************ Services page styles ************/
.services-hero {
  padding-top: 5rem;
}

.services-hero .heading {
  margin-bottom: 1rem;
}

.services-hero p {
  max-width: 50vw;
  margin: 0 auto;
}

.service-list {
  max-width: 80vw;
  margin: auto;
}

.service-list .heading {
  font-size: 3rem;
}

/************ Portfolio page styles ************/
.portfolio-hero {
  margin-top: 10svh;
  padding-bottom: 0;
}

.project-block {
  max-width: 80vw;
  margin: auto;
}

.card-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  padding: 2rem;
}

.project {
  perspective: 1000px;
  width: 30%;
  height: 100%;
  margin: auto;
}

.project h3 {
  margin-top: 2rem;
}

.project p {
  font-weight: 500;
  margin-top: 1rem;
  margin-bottom: 1.5rem;
}

.project .button {
  margin: 0;
  margin-top: auto;
}

.project .card:hover {
  transform: translateZ(1rem);
}

/************ Project page styles ************/
.project-page {
  display: flex;
  flex-direction: column;
}

/************ Contact page styles ************/
.contact-hero {
  padding-bottom: 0;
  margin-top: 10svh;
}

.contact-form {
  display: flex;
  align-items: flex-start;
  gap: 5vw;
}

.contact-form > div {
  width: 100%;
  height: 100%;
  position: relative;
}

.react-grid-item {
  z-index: 1 !important;
}

/* Loading ring */
.loader {
  position: absolute;
  top: 40%;
  left: 50%;
  z-index: -1;
  opacity: 0%;
  animation: disappear 3s 1;
  transform: translateX(-50%);
}

.loading-circle {
  border: 20px solid var(--main);
  border-top: 20px solid var(--featured);
  border-radius: 50%;
  width: 100px;
  height: 100px;
  aspect-ratio: 1/1;
  animation: spin 2s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes disappear {
  0% {
    opacity: 100%;
  }
  99% {
    opacity: 100%;
  }
  100% {
    opacity: 0%;
  }
}

/************ Privacy page styles ************/
.privacy-policy {
  margin-top: 5svh;
}

/************ Form styles ************/
form {
  margin-bottom: 5svh;
}

form input,
form textarea,
form select {
  width: 100%;
  margin: 0.5rem 0;
  padding: 1rem;
  border: 2px solid transparent;
  outline: none;
  font-family: inherit;
  font-size: 1rem;
  background-color: var(--secondary-light);
  transition: 0.15s ease-in;
  line-height: 1.25;
}

form input:focus,
form textarea:focus,
form select:focus {
  border-color: var(--main);
}

form option {
  padding: 0.5rem;
}

form option:hover {
  background-color: var(--secondary);
}

form option:target {
  background-color: var(--main);
}

textarea {
  min-height: 7rem;
}

form label {
  margin-top: 1rem;
  display: block;
  color: var(--dark);
  font-weight: 500;
}

form fieldset {
  border: none;
}

form fieldset input {
  width: auto;
}

form fieldset input:hover {
  border-color: var(--main);
}

form fieldset label {
  display: inline-block;
  padding-left: 0.5rem;
}

form button {
  margin-top: 1rem;
}

/************ Slider styles ************/
.slider {
  /* overflow: hidden; */
  padding: 1rem 3rem;
  position: relative;
  margin: 0 auto;
  transition: 0.3s ease-in-out;
}

.slider-content {
  position: relative;
}

.slide {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  transition: 0.3s ease-in-out;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  padding: 1rem 10%;
  z-index: 2;
  &.active {
    opacity: 1;
    visibility: visible;
  }
}

.slider-nav {
  position: relative;
  top: calc(50% - 2rem);
  height: 50%;
}

.slider-nav p {
  cursor: pointer;
  color: var(--secondary-light);
  font-size: 2rem;
  position: absolute;
  padding: 0.5rem;
  margin: 0;
  z-index: 3;
  width: 4rem;
  transition: 0.2s ease-in-out;
}

.slider-nav p:hover {
  color: var(--secondary);
}

#prev-slide {
  left: 0;
  cursor: pointer;
}

#next-slide {
  right: 0;
  cursor: pointer;
}

.testimonials {
  padding-bottom: 10%;
}

.testimonial-quote {
  margin: 1.5rem auto;
  font-size: 2rem;
  font-weight: 500;
}

.testimonial-name {
  font-size: 1.5rem;
  margin: 2rem auto;
}

/************ Mobile styles ************/
/* Mobile menu styles */
.hamburger-button {
  position: relative;
  transition: all 0.1s ease-in-out;
  z-index: 1;
  font-size: 2rem;
  cursor: pointer;
  margin: 0;
  margin-left: auto;
  color: inherit;
  align-self: center;
  align-items: center;
}

.hamburger-button.active {
  color: var(--secondary);
}

.hamburger-button:hover,
.hamburger-button.active:hover {
  color: var(--light);
}

.mobile-menu {
  display: none;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 0;
  position: fixed;
  background-color: var(--background);
  transition: all 0.3s ease-in-out;
}

.mobile-menu nav {
  display: flex;
  flex-direction: column;
  margin: auto;
  width: 70%;
  gap: 2rem;
  align-items: center;
  justify-content: center;
}

.mobile-menu a {
  text-align: center;
  padding: 0.5rem;
  font-size: 1.2rem;
  color: var(--dark);
}

.mobile-menu a:hover {
  color: var(--secondary);
}

.mobile-menu .button {
  padding: 0.5rem 1rem;
}

.mobile-menu .button:hover {
  color: var(--dark);
}

/************ Mobile size styles ************/
/* Extra-large size */
@media (max-width: 1300px) {
  .hero-card {
    max-width: 40%;
  }

  .corner-image {
    height: 20svh;
  }

  .capped-width {
    max-width: 80vw;
  }

  .project {
    width: 45%;
  }

  .project h3 {
    font-size: 1.2rem;
  }

  .project p {
    font-size: 1rem;
  }
}

/* Large size */
@media (max-width: 1000px) {
  .hero-card p {
    font-size: 1.2rem;
  }

  .corner-image {
    height: 15svh;
    top: -7svh;
    left: -5vw;
  }

  p,
  li {
    font-size: 1rem;
  }

  .button {
    padding: 0.75rem 1.5rem;
  }

  .heading {
    font-size: 3rem;
  }

  .subhead {
    font-size: 1.3rem;
  }

  .service-list {
    max-width: none;
  }

  .service-list .heading {
    font-size: 2.5rem;
  }

  .services-block .card-grid {
    gap: 5%;
  }

  .services-block .card {
    grid-column: span 6 !important;
  }

  .portfolio-section .rounded-top {
    top: -8%;
  }

  .portfolio-block .card-grid {
    gap: 1rem;
  }

  .portfolio-block .card {
    grid-column: span 6;
  }

  .project-block {
    max-width: 100vw;
    margin: auto;
  }

  .project .button {
    font-size: 1rem;
  }

  .slide {
    max-width: 60vw;
  }

  .slider-nav p {
    width: 3.5rem;
  }

  .testimonials {
    padding-bottom: 5%;
  }

  .testimonial-quote {
    font-size: 1.5rem;
  }

  .testimonial-name {
    font-size: 1.1rem;
  }

  .values li {
    font-size: 1.3rem;
  }

  .value-content li {
    font-size: 1.3rem;
  }
}

/* Medium size */
@media (max-width: 700px) {
  .hide-md {
    display: none;
  }

  .show-md {
    display: flex;
  }

  section {
    padding: 2rem;
  }

  .about-block .heading {
    font-size: 2.5rem;
  }

  .hero-card {
    max-width: 50%;
  }

  .corner-image {
    height: 15svh;
    left: 50%;
    top: -8svh;
    transform: translateX(-50%);
  }

  .heading {
    font-size: 2.5rem;
  }

  .capped-width {
    max-width: 100vw;
  }

  .service-list {
    display: flex;
    flex-direction: column;
    gap: 10svh;
  }

  .service-image {
    height: 30svh;
  }

  .slide {
    max-width: 80vw;
  }

  .slider-nav p {
    width: 3rem;
  }

  .testimonials {
    padding: 0;
    padding-bottom: 5%;
  }

  .grid-box-half {
    grid-template-columns: 1fr;
  }

  .grid-flip-alternate:nth-child(2n) > :first-child {
    order: 1;
  }

  .grid-flip-alternate:nth-child(2n) > :nth-last-child(1) {
    order: 2;
  }

  .service-list .grid-box-half {
    padding: 0;
  }

  .about-block .card {
    margin-top: 3rem;
    padding: 3rem;
  }

  .about-hero {
    min-height: 60svh;
  }

  .about-hero .heading {
    font-size: 2rem;
    border-bottom: 2px solid var(--featured);
    padding-bottom: 2rem;
    border-right: none;
  }

  .about-page-bio {
    padding: 2rem 0;
    display: flex;
    flex-direction: column-reverse;
  }

  .about-page-bio .round-image {
    height: 500px;
    max-height: 40svh;
  }

  .values-block .flex {
    gap: 10%;
  }

  .values li {
    font-size: 1.1rem;
  }

  .value-content li {
    font-size: 1.1rem;
  }

  .services-hero p {
    max-width: none;
  }

  .services-block .card-grid {
    display: flex;
    flex-direction: column;
    gap: 5svh;
    max-width: 70vw;
  }

  .project-block .card-grid {
    gap: 2rem;
  }

  .project {
    grid-column: span 12;
    width: 80%;
  }

  .slider {
    padding: 1rem;
  }

  .contact-form {
    flex-direction: column;
    align-items: center;
  }

  .contact-form > div {
    padding: 1rem;
    min-height: 20svh;
  }

  .loader {
    top: 5svh;
  }

  footer {
    display: flex;
    flex-direction: column;
    padding: 2rem;
  }

  footer nav {
    margin-bottom: 1rem;
  }

  footer nav ul {
    gap: 1rem;
  }
}

/* Small size */
@media (max-width: 500px) {
  header {
    padding: 0.5rem 1rem;
  }

  .hero-card p {
    font-size: 1.1rem;
  }

  .corner-image {
    height: 15svh;
    top: -12%;
  }

  .about-block .card {
    margin-top: 10svh;
    padding: 10svh 1.5rem 2rem 1.5rem;
  }

  p,
  li {
    font-size: 1rem;
  }

  footer nav li {
    font-size: 1rem;
  }

  .button {
    font-size: 1rem;
    padding: 0.6rem 1.2rem;
    font-weight: 500;
  }

  .subhead {
    font-size: 1.2rem;
  }

  .logo {
    font-size: 1.8rem;
  }

  .testimonials {
    padding-bottom: 2rem;
  }

  .testimonial-quote {
    font-size: 1.1rem;
  }

  .testimonial-name {
    font-size: 1rem;
  }

  .slide {
    padding: 1rem;
    max-width: 75vw;
  }

  .values-section {
    margin-top: 15svh;
  }

  .values-section .rounded-top {
    top: -20%;
  }

  .rounded-top {
    top: -10%;
  }

  .portfolio-section .rounded-top {
    top: -5%;
  }

  .portfolio-section:after {
    top: 2%;
  }

  .about-block .heading {
    font-size: 1.7rem;
  }

  .values-block .flex {
    flex-direction: column;
    width: 100%;
  }

  .values {
    margin: auto;
    margin-bottom: 2rem;
    width: 100%;
  }

  .values ul {
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
  }

  .values li {
    margin-bottom: 0;
    font-size: 1rem;
  }

  .value-content li {
    font-size: 1rem;
  }

  .services-block .card {
    grid-column: span 12 !important;
    min-height: 40svh;
  }

  .portfolio-block .card-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5svh;
  }

  .portfolio-block .card {
    width: 100%;
  }

  .project-info {
    padding: 1rem;
  }

  .project-info .subhead {
    font-size: 1.1rem;
  }

  .project-info p {
    margin: 0;
  }

  .social-icons svg {
    width: 1.2rem;
    height: 1.2rem;
    margin-top: 1rem;
  }

  .service-list .grid-box-half {
    gap: 5svh;
  }

  .site-preview-image {
    max-width: 80vw;
  }

  .copyright p,
  .copyright a {
    font-size: 0.8rem;
  }
}

/* Extra small size */
@media (max-width: 400px) {
  .logo {
    font-size: 1.3rem;
  }

  .button {
    font-size: 1rem;
    padding: 0.6rem 1.2rem;
  }

  .heading {
    font-size: 2rem;
  }

  .hero {
    min-height: 80svh;
  }

  .hero-card {
    position: relative;
    margin: 3rem auto;
    top: auto;
    right: auto;
    grid-column: span 12;
    max-width: 80%;
  }

  .hero-card p {
    font-size: 1.2rem;
  }

  .corner-image {
    top: -8%;
  }

  .about-page-bio:first-child {
    order: 2;
  }

  .values-section .rounded-top {
    top: -7svh;
  }

  .services-block .card-grid {
    max-width: none;
    padding: 2rem 1rem;
  }

  .service-list .heading {
    font-size: 2rem;
  }

  .value-content li {
    font-size: 1rem;
  }

  .cta .card {
    padding: 2rem;
  }
}
