/* 
Theme Name: S2A
Theme URI: https://www.robineaster.com
Description: Custom Theme for S2A
Author: Robin Easter Design
Author URI: https://www.robineaster.com
Template: hello-elementor
Version: 3.4.7
Text Domain: s2a
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: 
*/


*{
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* variables */
:root{
  /*colors*/
  --black: #191919;
  --violet: #8080F6;
  --periwinkle: #BBBBFF;
  --font_gro: darker-grotesque, 'Dark Grotesque', sans-serif;
  --font_int: inter-variable, 'Inter', sans-serif; 
}


/** Set html to 62.5% so that all the REM measurements throughout are based on 10px sizing. ~1.5rem = 15px **/
html{font-size:62.5%;background-color:var(--black)}
body{background-color:#FFF}


/* nav */
nav{
  color: #FFF;
  font-family: var(--font_gro);
  font-weight: 800;
  font-size: 1.8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
nav a:hover{color:#FFF}
.elementor-nav-menu--main .elementor-nav-menu a,
.elementor-nav-menu--main .elementor-nav-menu a:hover,
.elementor-nav-menu--main .elementor-nav-menu a:focus{padding-right:0;padding-left:0}
.elementor-nav-menu--main .elementor-nav-menu li{padding-right:58px;padding-left:58px;}
.elementor-nav-menu--main .elementor-nav-menu li:first-of-type{padding-left:0}
.elementor-nav-menu--main .elementor-nav-menu li:last-of-type{padding-right:0}


/* links */
a{color:inherit;transition:color .4s ease}
p a{color:var(--violet)}
a:active, a:hover,p a:hover{color:var(--periwinkle)}


/* typography */
body{
  color: var(--black);
  font-family: var(--font_int);
  font-weight: 500;
}
/** headings **/
.elementor-widget-heading .elementor-heading-title{line-height:inherit}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
  font-family: var(--font_gro);
  font-weight: 600;
}
h1,.h1,.h1 h2,.h1 h3,.h1 h4,.h1 h5,.h1 h6{
  font-size: 6rem;
  line-height: 1.0875 !important;
}
h2,.h2,.h2 h3,.h2 h4,.h2 h5,.h2 h6,.h2 p{
  font-size: 6rem;
  line-height: 1.0875 !important;
}
h3,.h3,.h3 h2,.h3 h4,.h3 h5,.h3 h6,.h3 p{
  color: var(--violet);
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
h4,.h4,.h4 h2,.h4 h3,.h4 h5,.h4 h6,.h4 p{
  font-family: var(--font_int);
  font-size: 1.6rem;
  font-weight: 500;
}
h5,.h5,.h5 h2,.h5 h3,.h5 h4,.h5 h6, .h6 p,
h6,.h6,.h6 h2,.h6 h3,.h6 h4,.h6 h5, .h6 p{
  font-family: var(--font_int);
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: .1em;
}
p{
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.75;
  margin-block-end: 3rem;
}
.elementor-widget-text-editor p:last-of-type{margin-block-end:0}


/* gallery images */
:where(figure){margin-bottom:50px}
.gallery-item:where(figure):last-of-type{margin-bottom:0}


/** dark bgs **/
.dark{
  background-color: var(--black);
  color: #FFF;
}
.dark h1,.dark .h1,.dark .h1 h2,.dark .h1 h3,.dark .h1 h4,.dark .h1 h5,.dark .h1 h6{color: #FFF}


/** elementor **/
.elementor-widget-text-editor .elementor-widget-container p:last-child{margin-bottom:0}


/* elementor lightbox */
.elementor-slideshow__footer{padding-bottom:50px!important}
.elementor-lightbox .elementor-lightbox-image{max-height:90%!important}


/* forms */
button,
input,
optgroup,
select,
textarea{
  font-family: var(--font_gro);
  font-size: 1.8em;
  font-weight: 800;
  line-height: 1.5;
  margin: 0;
}
input,
input[type="date"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
input[type="url"],
select,
textarea{
  width: 100%;
  border: 2px solid var(--violet);
  border-radius: 0;
  padding: 0.5rem 1rem;
  transition: all 0.4s;
}
textarea{padding:1rem !important}
input:focus,
input[type="date"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus{
  border-color: var(--black);
  outline: none;
}
button,input{overflow:visible}
button,select{text-transform:none}
[type="button"],
[type="reset"],
[type="submit"],
button{
  width: auto;
  -webkit-appearance: button;
}
[type="button"],
[type="submit"],
button,
[type="button"]:not(:disabled),[type="submit"]:not(:disabled),button:not(:disabled){cursor:pointer}
[type="button"]:focus:not(:focus-visible),[type="submit"]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}
[type="button"]:focus,[type="button"]:hover,[type="submit"]:focus,[type="submit"]:hover,button:focus,button:hover,.elementor-button:hover{text-decoration:none}
/* elementor buttons */
.elementor-button{
  background-color: var(--violet);
  border: none;
  border-radius: 0;
  color: #FFF;
  display: inline-block;
  font-family: var(--font_gro);
  font-size: 1.8em;
  font-weight: 800;
  letter-spacing: .1em;
  padding: 32.5px 34px;
  text-transform: uppercase !important;
  transition: all .4s;
  user-select: none;
   -webkit-user-select: none;
   -moz-user-select: none;
  white-space: nowrap;
}
.elementor-button-content-wrapper{gap:12px}
.elementor-button-icon svg{font-size:1.4rem}
.e-con .elementor-widget.elementor-widget-button{min-width:auto;}
.btn_right .elementor-button{
  background-color: #19191900;
  color: var(--violet);
  fill: var(--violet);
  padding: 0;
}
.btn_right .elementor-button-text{
  display: inline-block;
  padding-top: 2px;
  position: relative;
}
.btn_right svg{font-size:1.6rem;}
.btn_right .elementor-button-content-wrapper{gap:9px}

.elementor-widget-button:not(.btn_right) .elementor-button .elementor-button-content-wrapper{transition:all .4s ease;}
.elementor-widget-button:not(.btn_right) .elementor-button:hover .elementor-button-content-wrapper{gap:24px;transition:all .4s ease;}


/* gravity forms plugin */
.eael-gravity-form input{
  border-color: var(--black) !important;
  color: var(--black) !important;
}
.gform_footer input[type="submit"]{
  background-color: var(--violet) !important;
  border: none !important;
  border-radius: 0 !important;
  color: #FFF !important;
  font-family: var(--font_gro) !important;
  font-size: 1.8em !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  padding: 22px 34px !important;
  text-transform: uppercase !important;
  transition: all .4s;
  width: auto !important;
}
.gform_footer input[type="submit"]:hover,
.gform_footer input[type="submit"]:focus,
.eael-gravity-form input:focus,
.eael-gravity-form textarea:focus{outline:none !important}
.eael-gravity-form legend,
.eael-gravity-form label{
  font-family: var(--font_gro) !important;
  font-weight: 800 !important;
  font-size: 1.8rem !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}
.eael-gravity-form label{color:var(--violet) !important;text-transform:uppercase !important}
.eael-gravity-form input,.eael-gravity-form textarea{
  border-radius: 0 !important;
  box-shadow: none !important;
}
.gform_confirmation_message{
  font-size: 1.6rem !important;
  font-weight: 500 !important;
  line-height: 1.75 !important;
}
.gform_ajax_spinner{
  width: 24px;
   height: 24px;
}

/* hover underline animation */
@media screen and (min-width:768px) {
  /* nav hover animation */
  .e--pointer-double-line .elementor-item::after, .e--pointer-double-line .elementor-item::before, .e--pointer-overline .elementor-item::after, .e--pointer-overline .elementor-item::before, .e--pointer-underline .elementor-item::after, .e--pointer-underline .elementor-item::before{
    background-color: #FFF;
    bottom: 5.5px;
    height: 2px;
    width: 99.25%;
  }
  /* nav hover slide transition */
  .e--pointer-underline .elementor-item::after{
    opacity: 0;
    transform: scaleX(.001);
    transform-origin: 100% 50%;
    transition: transform 0.8s cubic-bezier(.2, 1, .3, 1), opacity 0.1s linear 0.2s;
  }
  .e--pointer-underline .elementor-item:hover::after{
    opacity: 1;
    transform: scaleX(1);
    transform-origin: 0 50%;
    transition: transform 0.8s cubic-bezier(.2, 1, .3, 1), opacity 0.1s linear;
  }
  /* active nav item */
  .e--pointer-underline .current-menu-item .elementor-item::after{
    opacity: 1;
    transform: scale(1);
  }
  /* elementor button */
  .btn_right .elementor-button-text::after{
    background-color: var(--violet);
    content: '';
    display: block;
    margin-top: 4px;
    transition: transform .4s ease;
    width: 99.25%;
      height: 2px;
    /* transition animation */
    opacity: 0;
    transform: scaleX(.001);
    transform-origin: 100% 50%;
    transition: color 0.4s ease, transform 0.8s cubic-bezier(.2, 1, .3, 1), opacity 0.1s linear 0.2s;
  }
  .btn_right .elementor-button-text:hover::after{
    opacity: 1;
    transform: scaleX(1);
    transform-origin: 0 50%;
    transition: color 0.4s ease, transform 0.8s cubic-bezier(.2, 1, .3, 1), opacity 0.1s linear;
  }
}


/* elementor testimonial widget */
.elementor-widget-testimonial-carousel .swiper-slide{padding:0 9%}
.elementor-testimonial--align-center .elementor-testimonial{
  display: flex;
   flex-direction: column;
   height: 100%;
   justify-content: center;
  text-align:left;
}
.elementor-element .swiper .elementor-swiper-button svg{fill:var(--black)}
.elementor-widget-testimonial-carousel .elementor-testimonial__text{
  font-size: 1.6rem;
  font-style: normal;
  line-height: 1.75;
}
.elementor-testimonial__name{
  color: var(--violet);
  font-family: var(--font_gro);
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.elementor-testimonial__title{
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.75;
}
.elementor-testimonial--align-center.elementor-testimonial--layout-image_above .elementor-testimonial__footer, .elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{justify-content:flex-start}
.elementor-swiper-button-prev svg,.elementor-swiper-button-next svg{display:none}
.elementor-swiper-button-prev::before,
.elementor-swiper-button-next::before{
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  display: block;
  height: 24px;
  width: 16px;
}
.elementor-swiper-button-prev::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 21'%3E%3Cpolygon points='11.56 20.75 0 10.5 11.56 .25 12.88 1.75 3.01 10.5 12.88 19.25 11.56 20.75' fill='currentColor'/%3E%3C/svg%3E");
}
.elementor-swiper-button-next::before{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 21'%3E%3Cpolygon points='2.44 20.75 14 10.5 2.44 .25 1.12 1.75 10.99 10.5 1.12 19.25 2.44 20.75' fill='currentColor'/%3E%3C/svg%3E");
}


/* elementor accordion widget */
.elementor-widget-n-accordion{border-bottom: 2px solid var(--black);}
.elementor-widget-n-accordion .e-n-accordion-item-title{
  justify-content: space-between;
  padding: 0;
}
.elementor-widget-n-accordion .e-n-accordion-item-title-text{
  font-size: 1.6rem;
  padding: 24px 0;
}
.elementor-widget-n-accordion .e-n-accordion-item > .e-con{border:0;/*padding-bottom:24px;*/padding:24px 0;}
.elementor-widget-n-accordion .e-n-accordion-item-title{border:0;border-top:2px solid var(--black)}
.elementor-widget-n-accordion .e-n-accordion-item-title,
.elementor-widget-n-accordion .e-n-accordion-item:not([open]):hover > .e-n-accordion-item-title,
.elementor-widget-n-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title{color:var(--black)}
.dark .elementor-widget-n-accordion .e-n-accordion-item-title,
.dark .elementor-widget-n-accordion .e-n-accordion-item:not([open]):hover > .e-n-accordion-item-title,
.dark .elementor-widget-n-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title{color:#FFF}
.dark .elementor-widget-n-accordion .e-n-accordion-item-title{border-color:#FFF}
.dark .elementor-widget-n-accordion{border-color:#FFF}
.e-n-accordion{--n-accordion-icon-size:10px !important}


/* team bios accordion */
.teamgrid .e-n-accordion-item-title-icon svg polygon{fill:var(--black)}
.teamgrid .elementor-widget-n-accordion,
.teamgrid .elementor-widget-n-accordion .e-n-accordion-item-title{
  border: 0;
  gap: 24px;
  justify-content: flex-start;
}
.teamgrid .elementor-widget-n-accordion .e-n-accordion-item-title-text{padding-top:0}
.teamgrid .elementor-widget-n-accordion .e-n-accordion-item-title-icon{
  align-self: flex-start;
  margin-top: 10px;
}
.teamgrid .e-n-accordion-item-title-text{
  color: var(--violet);
  font-family: var(--font_gro);
  font-size: 1.8rem;
  font-weight: 800 !important;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.teamgrid .e-n-accordion-item-title-text span{
  color: var(--black);
  font-family: var(--font_int);
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
}
/*  longer bio widths in team accordion */
@media only screen and (min-width: 768px) {
  .teamgrid .e-n-accordion-item > .e-con{
    max-width: 1024px;
    /* width: calc( 100vw - 560px); */
    width: calc( 100vw - 360px);
  }
  .teamgrid > .e-con:nth-child(2) .e-n-accordion-item  > .e-con{left: calc( -100% - 50px);}
  .teamgrid > .e-con:nth-child(3) .e-n-accordion-item  > .e-con{left: calc( -200% - 100px);}
}


/* elementor divider */
.elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider-separator{
  border-block-start: 2px solid var(--violet);
}


/* elementor counter */
.elementor-counter .elementor-counter-title{
  font-family: var(--font_gro);
  font-size: 1.8rem;
  font-weight: 800 !important;
  justify-content: flex-start;
  letter-spacing: .1em;
  padding-left: 3px;
  text-transform: uppercase;
}
.elementor-counter-number,.elementor-counter-number-suffix{
  font-family: var(--font_gro);
  font-weight: 400 !important;
}
.elementor-counter .elementor-counter-number-wrapper{
  font-size: 83px;
  text-align: left;
}


/* smooth elementor carousels */
.elementor-swiper .swiper-wrapper{
   -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important;
}
.clients .elementor-carousel-image{
  height: 68px;
  max-height: 68px;
  margin-right: 0px;
}


/* afc projects */
.elementor-pagination,.elementor-pagination a{color:var(--black)}
/* afc project grid */
.grid_img{
  background-size: cover;
}
.elementor-widget-theme-post-content{
  font-size: 1.6rem;
  line-height: 1.75;
}
.e-load-more-spinner,.e-load-more-spinner svg{font-size:10.1rem;}
.e-load-more-spinner{padding-top:67px;}
.elementor-grid .h2 p{
  /* font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: .01em; */
  font-family: var(--font_int);
  font-size: 1.6rem;
  font-weight: 500;
  text-transform: none;
}
/* afc project single posts */
.elementor-post-info{
  color: var(--violet);
  /* font-family: var(--font_int); */
  /* font-variation-settings: "slnt" 0, "wght" 700; */
  font-family: var(--font_gro);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}


/* footer */
footer,footer p{
  font-size: 1.1em;
  font-weight: 700;
  letter-spacing: .1em;
  line-height : 25px;
  text-transform: uppercase;
}


/* responsive */
/* mobile nav */
.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin:0}
.elementor-nav-menu--dropdown{background-color:transparent;font-size:1.8rem;}
.elementor-nav-menu--dropdown .elementor-item.elementor-item-active{background-color:transparent}
.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-nav-menu--dropdown .elementor-item:focus{background-color:transparent;padding-left:0}
.elementor-nav-menu--dropdown .elementor-nav-menu a{padding-left:0}
.elementor-nav-menu--dropdown a{color:#FFF}

/* to-top elementor addon */
.eael-ext-scroll-to-top-wrap .eael-ext-scroll-to-top-button{right:67px;margin-right:10px;}
/* tablet landscape */
@media screen and (max-width: 1400px){
}
/* tablet portrait */
@media screen and (max-width: 1048px){
}
/* mobile landscape */
@media screen and (max-width: 876px){
.eael-ext-scroll-to-top-wrap .eael-ext-scroll-to-top-button{right:48px;margin:0;}
}
/* mobile portrait */
@media screen and (max-width: 767px){
.eael-ext-scroll-to-top-wrap .eael-ext-scroll-to-top-button{right:24px}
}