/*
Theme Name: LIMB
Theme URI: https://limb.co
Description: LIMB Projects Pagebuilder (October 2023)
Author: LIMB
Author URI: https://limb.co
*/
/* TOC:
Generic
Utility
Scaffolding / Grid
Backgrounds & Colors
Double Media
Single Media
*/
/* ---------------------------------------- Universal (Do Not Include) */
*,
:after,
:before {
box-sizing: border-box;
text-rendering: optimizeLegibility;
}

*:focus {
outline: 0;
}

body,
html {
margin: 0;
font-size: 15px;
line-height: 26px;
color: #2F2B27;
font-family: "Montserrat", sans-serif;
}

body {
width: 100%;
top: 0;
left: 0;
overflow-x: hidden;
}

body.loading-timeout {
overflow: hidden;
}
body.loading-timeout .home-banner:before {
opacity: 0;
animation-delay: 4s;
}
body.loading-timeout .home-banner__slider:before {
animation-delay: 4s;
}

body.loading-complete .home-banner {
z-index: 2;
}
body.loading-complete .home-banner:before {
opacity: 0.64;
}

main {
position: relative;
/*overflow: hidden;*/
}

/* ---------------------------------------- Scaffolding / Grid */
.columns {
margin: 0 auto;
display: flex;
flex-wrap: wrap;
background-repeat: no-repeat;
background-size: cover;
padding-top: 60px;
padding-bottom: 60px;
max-width: 100%;
position: relative;
padding-left: calc(50vw - 720px);
padding-right: calc(50vw - 720px);
}

.columns--no-padding {
padding: 0;
}

.columns--no-side-padding {
padding-left: 0;
padding-right: 0;
}

.columns--no-right-padding {
padding-right: 0;
}

.columns--no-top-bottom-padding,
.columns--no-bottom-top-padding {
padding-top: 0;
padding-bottom: 0;
}

.columns--no-top-padding {
padding-top: 0;
}

.columns--no-bottom-padding {
padding-bottom: 0;
}

.columns--tall-padding {
padding-top: 70px;
padding-bottom: 70px;
}

.column {
padding: 30px 16px;
margin: 0 auto;
width: 100%;
display: flex;
flex-wrap: wrap;
flex-direction: column;
background-repeat: no-repeat;
background-size: cover;
position: relative;
}

.column > * {
max-width: 100%;
}

.column[class*=bg--] {
padding: 60px;
margin-left: 30px;
margin-right: 30px;
}

.column--center {
justify-content: center;
align-items: center;
align-content: center;
text-align: center;
}

.column--center-left {
text-align: left;
justify-content: center;
}

.column--center-right {
text-align: right;
justify-content: center;
}

.column--center-bottom {
text-align: center;
justify-content: end;
}

.column--center .button {
margin-left: auto;
margin-right: auto;
}

.column--center-top {
text-align: center;
}

.column--left {
align-content: flex-start;
}

.column--left-middle {
align-items: center;
}

.column--left-bottom {
justify-content: flex-end;
}

.column--right {
align-content: flex-end;
}

.column--right .button {
margin-right: 0;
}

.column--right-middle {
align-items: center;
text-align: right;
justify-content: center;
}

.column--right-middle .button {
margin: auto 0 auto auto;
}

.column--right-bottom {
justify-content: flex-end;
align-content: flex-end;
}

.column--right-bottom .button {
margin: auto 0 0 auto;
}

.column--no-padding {
padding: 0;
}

.column--no-side-padding {
padding-left: 0;
padding-right: 0;
}

.column--no-right-padding {
padding-right: 0;
}

.column--no-top-bottom-padding,
.column--no-bottom-top-padding {
padding-top: 0;
padding-bottom: 0;
}

.column--no-top-padding {
padding-top: 0;
}

.column--no-bottom-padding {
padding-bottom: 0;
}

.column--narrow {
max-width: 520px;
}

.m0 {
width: 0;
padding: 0;
}

.m1 {
width: 8.33%;
}

.m2 {
width: 16.66%;
}

.m3 {
width: 25%;
}

.m4 {
width: 33.33%;
}

.m5 {
width: 41.66%;
}

.m6 {
width: 50%;
}

.m7 {
width: 58.33%;
}

.m8 {
width: 66.66%;
}

.m9 {
width: 75%;
}

.m10 {
width: 83.33%;
}

.m11 {
width: 91.66%;
}

.m12 {
width: 100%;
}

@media (min-width: 768px) {
.t0 {
  width: 0;
  padding: 0;
}
.t1 {
  width: 8.33%;
}
.t2 {
  width: 16.66%;
}
.t3 {
  width: 25%;
}
.t4 {
  width: 33.33%;
}
.t5 {
  width: 41.66%;
}
.t6 {
  width: 50%;
}
.t7 {
  width: 58.33%;
}
.t8 {
  width: 66.66%;
}
.t9 {
  width: 75%;
}
.t10 {
  width: 83.33%;
}
.t11 {
  width: 91.66%;
}
.t12 {
  width: 100%;
}
}
@media (min-width: 1200px) {
.d0 {
  width: 0;
  padding: 0;
}
.d1 {
  width: 8.33%;
}
.d2 {
  width: 16.66%;
}
.d3 {
  width: 25%;
}
.d4 {
  width: 33.33%;
}
.d5 {
  width: 41.66%;
}
.d6 {
  width: 50%;
}
.d7 {
  width: 58.33%;
}
.d8 {
  width: 66.66%;
}
.d9 {
  width: 75%;
}
.d10 {
  width: 83.33%;
}
.d11 {
  width: 91.66%;
}
.d12 {
  width: 100%;
}
}
/* ---------------------------------------- Backgrounds & Colors */
.bg--white,
.bg--white:after,
.bg--white:before {
background-color: white;
border-color: white;
}

.bg--black,
.bg--black:after,
.bg--black:before {
background-color: #000000;
border-color: #000000;
}

.bg--light-teal,
.bg--light-teal:after,
.bg--light-teal:before {
background-color: #75BDAE;
border-color: #75BDAE;
}

.bg--teal,
.bg--teal:after,
.bg--teal:before {
background-color: #00A79A;
border-color: #00A79A;
}

.bg--light-green,
.bg--light-green:after,
.bg--light-green:before {
background-color: #CCD96B;
border-color: #CCD96B;
}

.bg--green,
.bg--green:after,
.bg--green:before {
background-color: #005031;
border-color: #005031;
}

.bg--dark-green,
.bg--dark-green:after,
.bg--dark-green:before {
background-color: #005031;
border-color: #005031;
}

.bg--image {
position: relative;
background-size: cover;
background-position: center;
background-repeat: no-repeat !important;
background-size: cover !important;
background-position: center center !important;
}

.bg--image.bg--white:after,
.bg--image.bg--black:after,
.bg--video.bg--white:after,
.bg--video.bg--black:after {
content: "";
opacity: 0.8;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 2;
}

.bg--image.bg--black:after,
.bg--video.bg--black:after {
opacity: 0.6;
}

.bg--image > * {
position: relative;
z-index: 3;
}

.bg--video {
overflow: hidden;
}

.bg--video video {
width: 100%;
min-height: 100%;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}

.bg--video > * {
position: relative;
z-index: 3;
}

.text-color--white,
.text-color--white *,
.text-color--white form input[type=text],
.text-color--white form input[type=tel],
.text-color--white form input[type=number],
.text-color--white form input[type=email],
.text-color--white form input[type=password],
.text-color--white form textarea {
color: white;
}

.text-color--white p,
.text-color--white h1,
.text-color--white h2,
.text-color--white h3,
.text-color--white h4,
.text-color--white h5,
.text-color--white h6 {
color: white !important;
}

.text-color--white h3 {
font-weight: 300;
}

.text-color--white hr {
border-top-color: white;
}

.text-color--white form input::placeholder {
color: white;
}

.text-color--white form input:-ms-input-placeholder {
color: white;
}

.text-color--white form input::-ms-input-placeholder {
color: white;
}

.text-color--white form textarea::placeholder {
color: white;
}

.text-color--white form textarea:-ms-input-placeholder {
color: white;
}

.text-color--white form textarea::-ms-input-placeholder {
color: white;
}

.text-color--white form input[type=text],
.text-color--white form input[type=tel],
.text-color--white form input[type=number],
.text-color--white form input[type=email],
.text-color--white form input[type=password],
.text-color--white form textarea {
border-color: white;
}
/* ---------------------------------------- Full Width Video */
.video-banner { 
  position: relative; 
  padding-bottom: 56.25%;
  overflow: hidden;
  max-width: 100%;
  height: auto;
} 
.video-banner iframe,
.video-banner object,
.video-banner embed { 
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* ---------------------------------------- Button */
a.underline {
  --line: #414042;
  --color: #414042;
  text-decoration: none;
  color: var(--color);
  position: relative;
}
a.underline span {
  background-image: linear-gradient(0deg, var(--line) 0%, var(--line) 100%);
  background-position: 100% 100%;
  background-repeat: no-repeat;
  background-size: var(--background-size, 100%) 1px;
  transition: background-size 0.2s linear var(--background-delay, 0.15s);
  font-size: 18px;
  line-height: 20px;
  transform: translateZ(0);
}
a.underline svg {
  vertical-align: top;
  display: inline;
  line-height: 1;
  width: 17px;
  height: 24px;
  position: relative;
  left: -2px;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1px;
  stroke: var(--line);
  stroke-dasharray: 7.95 30;
  stroke-dashoffset: var(--stroke-dashoffset, 46);
  transition: stroke-dashoffset var(--stroke-duration, 0.15s) var(--stroke-easing, linear) var(--stroke-delay, 0s);
}
a.underline:hover {
  --background-size: 0%;
  --background-delay: 0s;
  --stroke-dashoffset: 26;
  --stroke-duration: 0.3s;
  --stroke-easing: cubic-bezier(0.3, 1.5, 0.5, 1);
  --stroke-delay: 0.195s;
}
/* ---------------------------------------- Double Media */
.double-media {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 30px;
position: static;
}
.double-media__left, .double-media__right {
width: 100%;
height: 400px;
position: relative;
overflow: hidden;
z-index: 2;
}
.double-media img {
object-fit: cover;
width: 100%;
height: 100%;
}

@media (min-width: 768px) {
.double-media {
  position: absolute;
}
.double-media__left, .double-media__right {
  height: 611px;
}
}
/* ---------------------------------------- Single Media */
.image-gallery-2col {
display: flex;
flex-direction: row;
gap: 32px;
}
.single-media--wide {
width: 100%;
}
.single-media--wide img {
width: 100%;
height: auto;
}
.single-media img {
object-fit: cover;
width: 100%;
height: 100%;
}
.single-media a[data-fancybox=video]:after {
content: "";
margin-top: 50px;
width: 60px;
height: 60px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: url("assets/images/icon-play.svg") center center no-repeat transparent;
}

.has-single-media {
flex-direction: column-reverse;
}
.has-single-media.bg-accent--left:after {
bottom: -505px;
}
.has-single-media.bg-accent--right:after {
bottom: -385px;
}

@media (min-width: 768px) {
.single-media--half {
  width:50%;
}
.single-media--skewed {
  position: absolute;
  left: 0;
  right: 0;
}
.single-media--tall .single-media__inner {
  height: 600px;
  top: -60px;
}
.has-single-media {
  min-height: 440px;
  margin-bottom: 130px;
  flex-direction: row;
}
}