/* #region Set up format variable */
:root
{
  --gutter: 20px;

  /* --bg-colour: #eeebf1; */
  --bg-colour: #040b31;
  --bg-colour-trans: #040b31c9;
  --bg-colour-dim:#17171d;
  --bg-colour-section: rgb(172, 173, 177);
  --bg-colour-card: #ece9e9;
  --section-gradient: 180deg, #ece9e9, 85%, #ece9e92a;
 
  --text-colour: #e0e0e0;
  --text-colour-cred: #9ea4f5;
  --text-section:rgb(47, 48, 88);
  --highlight-colour: #d21635;
  --button-colour:#d5d5d5;
  --button-highlight:#44444460;
  
  --font-normal: 0.9rem;
  --font-heading: 4.5rem;
  --font-nav: 0.6rem;
  --font-card: 0.75rem;

  --font-family: Roboto,sans-serif;
  --font-weight: 400;

  --blur: 0px;

  --exp_height: 75vh;
  --exp_width: 50vw;
}

/* #endregion */

/* #region Body */

html
{
  scroll-behavior:smooth;
}

body
{
  height: auto;
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px 10px 20px;
  background-color: var(--bg-colour);
}

.std_text
{
  font-family: var(--font-family);
  font-weight: var(--font-weight);
  font-size: var(--font-normal);
  color:var(--text-colour);
}

.just
{
  text-align: start;
}

.blur
{
  -webkit-filter: blur(var(--blur));
  -moz-filter:  blur(var(--blur));
  -o-filter:  blur(var(--blur));
  -ms-filter:  blur(var(--blur));
  filter:  blur(var(--blur));
}

/* #endregion */

/* #region Nav Style */

.nav-wrapper
{
    margin: 0px 0 20px 0;
    max-width: 1024px;
    width: 93.5vw;
    z-index: 1;
    
    position: fixed;
    top: 0px;

    display: flex;
    justify-content: space-between;
    
    background-color: var(--bg-colour-trans);
}

.logo-wrapper
{
  margin-top: 20px;
}

.logo
{
    height: 60px;
    width: auto;
    margin-top: auto;
    margin-bottom: auto;    
}

.nav-btns
{
    width: 50%;
    margin-left: 250px;
    margin-right: 20px;

    display: flex;
    justify-content: space-between;

    margin-top: auto;
    margin-bottom: 10px; 
}

.nav-btns a
{
    width: 65px;
    padding-top: 10px;

    display: inline-block;
    text-align: left;

    color: var(--text-colour);
    font-size: var(--font-nav);
    text-decoration:none;
   
    border-style: solid none none none;
    border-width: 1px;
    border-color: var(--text-colour);
}

.nav-btns a:hover, .nav-btns a:focus
{
    color: var(--highlight-colour);
}

.menu-wrapper
{
    margin-top: auto;
    margin-bottom: auto; 
    margin-right: 0;
}

.menu
{
    width:30px;
    height:auto;
    padding-top: 7px;
}

/* #endregion */

/* #region Main Sections */

.parallax
{
  width: auto;
  height: 400px;

  background-attachment: scroll;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.video-container
{
  position: relative;
  width: 100%;
  height: auto;

  margin-top: 75px;
}

.mainVideo
{
  width: 100%;
  max-height: 400px;
  object-fit: cover;
}

.video-overlay
{
  left: 0;
  width: 65%;
  padding: 5px 10px 5px 10px;

  margin-bottom: -50px;
}

.video-overlay.top
{
  position: absolute;
  top: 0;
}

.video-overlay.bottom
{
  position: relative;
  top:-60px;
}

.cred
{
  width: auto;
  text-align: center;
  margin: 10px 20px 25px 20px;
  font-weight: 500;
  font-style: italic;
  font-size: 0.95rem;
  color: var(--text-colour-cred);
}

.privacy-overlay
{
  position: absolute;
  top: 10%;
  left: 0;
  width: auto;
  height: auto;
  padding: 10px 20px 10px 20px;

  background-color: var(--section-gradient-trans);
}

.privacy-background
{
  background-image:url("images/head-video-poster.png");
  background-position: center;
  background-size: cover;

  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.section-wrapper
{
  margin: 20px 20px 20px 20px;
  padding: 10px 25px;
  color: var(--text-colour);
  font-size: var(--font-normal);
  border-radius: 5px;
}

.m-left
{
  margin-right: 200px;
}

.m-right
{
  margin-left: 200px;
}

/* #endregion */

/* #region Services Section */

.h_scroll
{
  max-width: 1024px;
  margin: 0 auto;
  overflow-y: none;

  padding: var(--gutter) 0;
  display: grid;
  grid-gap: var(--gutter) 0;
  align-content: start;
}

.h_scroll > *
{
  grid-column: 2 / -2;
}

.h_scroll > .full
{
  grid-column: 1 / -1;
}

.card_list
{
  display: grid;
  grid-gap: calc(var(--gutter) / 2);
  grid-template-columns: 10px;
  grid-template-rows: minmax(150px, 1fr);
  grid-auto-flow: column;
  grid-auto-columns: 500px;

  overflow-x: scroll;
  scroll-snap-type: x proximity;
  padding-bottom: calc(.75 * var(--gutter));
  margin-bottom: calc(-.25 * var(--gutter));
}

.card_list:before, .card_list:after
{
  content: '';
  width: 10px;
}

ul
{
  list-style: none;
  padding: 0;
}

.service_card
{
  scroll-snap-align: center;
  padding: calc(var(--gutter) / 2 * 1.5);
  display: flex;
  flex-direction: column;
  justify-content: start;
  align-items: center;
  border-radius: 8px;

  background-color: var(--bg-colour-card);
  color: var(--text-section);
  font-family: var(--font-family);
  font-size: var(--font-card);

  height: 350px;
  overflow: hidden;

  background: linear-gradient(to bottom, #ece9e9, 85%, #ece9e92a);
  background: -webkit-linear-gradient(to bottom, #ece9e9, 85%, #ece9e92a);
  background: -o-linear-gradient(to bottom, #ece9e9, 85%, #ece9e92a);
  background: -moz-linear-gradient((18to bottom0deg, #ece9e9, 85%, #ece9e92a));
}

.card_list::-webkit-scrollbar
{
    height: 5px;
}

.card_list::-webkit-scrollbar-track
{
  background: none; 
}

.card_list::-webkit-scrollbar-thumb
{
  width: 50px;
  background-color:var(--bg-colour-card);    
  border-radius: 5px;     
}

/* Firefox scrollbar */

.card_list
{
  scrollbar-width: thin;
  scrollbar-color: var(--bg-colour-card) var(--bg-colour);
}

/* #endregion */

/* #region Card Animation */

@keyframes exp
{
    from
    {
        left:var(--c_left);
        top: var(--c_top);
        height: var(--c_height);
        width: var(--c_width);
        transform: translate(0,0);
    }
    
    to
    {
        left: 50vw;
        top: 50vh;
        width: var(--exp_width);
        height: var(--exp_height);
        transform: translate(-50%,-50%);
    }
}

@keyframes slideDown
{
    100%
    {
        transform: translateY(0);
        opacity: 1;
    }
}

.slidedown
{
    transform: translateY(-35px);
    opacity: 0;

    animation: slideDown 0.5s ease-out 1s forwards;
}

.selected
{
    background-color: cornflowerblue;
}

.expand_card
{
    position: fixed;
    max-width: none;
    max-height: none;
    z-index: 10;

    left: 50vw;
    top: 50vh;
    width: var(--exp_width);
    height: var(--exp_height);
    transform: translate(-50%,-50%);

    background-color: var(--bg-colour-card);

    overflow:auto;

    animation-name: exp;
    animation-duration: var(--duration);
}

.anim_expand
{
    animation-name: exp;
    animation-duration: var(--duration);
}

.anim_shrink
{
    left:var(--c_left);
    top: var(--c_top);
    height: var(--c_height);
    width: var(--c_width);
    transform: translate(0,0);
    
    animation-name: exp;
    animation-duration: var(--duration);
    animation-direction: reverse;
}

/* #endregion */

/* #region Side Nav Style */

.sidenav {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 2;
    top: 0;
    background-color: #111;
    overflow-x: hidden;
    transition: 0.5s;
    padding-top: 60px;

    right: 0;
  }

  .sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: var(--font-normal);
    color: #818181;
    display: block;
    transition: 0.3s;
  }

  .sidenav a:hover {
    color:var(--highlight-colour);
  }

  .sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
  }

  .sidenav .nav_bottom
  {
    position: absolute;
    bottom: 10%;
  }

/* #endregion */

/* #region Contact Page */

.MD-container
{
  display: flex;
  flex-wrap: wrap;
}

.bio-text
{
  width: 70%;
  padding-right: 20px;
}

.MD-container img
{
  padding-top: 20px;
  width: 150px;
  height: auto;
}

.contact_Us
{
  text-decoration: none;
  font-size: 1.75rem;
}

/* #endregion */

/* #region Clients */

.client_wrapper
{
  width: 65%;
  margin: 0 auto 20px auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
  grid-template-rows: 100px;

  justify-items: center;
  align-items: center;
  align-content: start;
}

.wide
{
  width: 75%;
  grid-template-rows: 60px;
}

.btm
{
  padding-bottom: 50px;
}

.client_logo
{
  max-width: 100%;
  max-height: 100%;
  object-fit: fill;
}


/* #endregion */

/* #region Cookie */

.cookie-container
{
    position: fixed;
    bottom: 10px;
    left: 45px;
    right: 45px;
    background: rgba(51, 51, 51, 0.733);
    color: rgb(216, 216, 216);
    font-family: var(--font-family);
    font-size: 0.75rem;
    font-weight: var(--font-weight);
    text-align: center;
    padding: 5px 5px 0 5px;
    box-shadow: 0 -2px 16px rgba(47, 54, 64, 0.39);
    border-radius: 8px;
  
    transition: opacity 1s ease;
  }

  .cookie-container.opaque
  {
      opacity: 0;
  }
  
  .cookie-container.hide
  {
    display: none;
  }

  .cookie-container a
  {
    color: rgb(216, 216, 216);
  }
  
  .cookie-btn
  {
    background: #e84118;
    border: 0;
    margin-top: -10px;
    color: #f5f6fa;
    padding: 10px 28px;
    font-size: 0.75rem;
    margin-bottom: 5px;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-family);
    font-size: var(--font-nav);
    font-weight: var(--font-weight);
  }

  .privacy-btn
  {
    background: #e84118;
    border: 0;
    margin-top: 20px;
    color: #f5f6fa;
    padding: 10px 28px;
    font-size: 0.75rem;
    margin-bottom: 5px;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-family);
    font-size: var(--font-nav);
    font-weight: var(--font-weight);
  }

  .center-btn
  {
    display: flex;
    justify-content: center;
  }

  .button-margin
  {
    margin-top: 20px;
  }

/* #endregion */

/* #region display formats */

/* @media only screen and (max-device-width: 812px) */
@media
  only screen 
  and (min-device-width: 375px) 
  and (max-device-width: 667px) 
  and (-webkit-min-device-pixel-ratio: 2),

  only screen 
  and (min-device-width: 375px) 
  and (max-device-width: 812px) 
  and (-webkit-min-device-pixel-ratio: 3)
{
  :root
  {
    --exp_height: 90vh;
    --exp_width: 80vw;
  }

  .nav-btns
  {
      width: 50%;
      margin-left: 0;

      display: flex;
      justify-content: space-between;
  }

  .nav-btns
  {
      display: none;
  }

  .menu-wrapper
  {
      margin-right: 20px;
  }

  .menu
  {
      width:30px;
      height:auto;
      padding-top: 7px;
  }

  .sidenav
  {
      padding-top: 15px;
  }

  .logo
  {
      height: 40px;
      width: auto;
  }

  .section-wrapper
  {
    margin: 10px 10px 10px 10px;
    padding: 2px 15px;
  }

  .m-left
  {
    margin-right: 10px;
  }

  .m-right
  {
    margin-left: 10px;
  }

  .video-overlay
  {
    width: auto;
  }

  .cred
  {
    width: auto;
    text-align: center;
    font-size: var(--font-normal);
    margin: 0 5px 15px 5px;
  }

  .parallax
  {
    height: 300px;
  }

  .card_list
  {
    grid-auto-columns: 85%;
  }

  .bio-text
  {
    width: auto;
  }

  .contact_Us
  {
    width: 40%;
    font-size: 1.25rem;
  }

  .MD-container img
  {
    width: 40%;
    height: 40%;
    margin: -20px 0 -10PX auto;
  }

  .client_wrapper
  {    
    width: auto;
    margin: 0 auto 20px auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(35px, 1fr));
    grid-template-rows: 45px;
    justify-content: space-evenly;
    align-items: center;
    align-content: start;
  }

  .wide
  {
    width: auto;
    grid-template-rows: 45px;
  }

  .client_logo
  {
    background-color: var(--bg-colour);
    
    max-width: 65%;
    /* max-height: 55%; */
    object-fit: fill;
  }
}

/* #endregion */




