/*
 * Theme Name: Unloch
 * Author: Chris at P4P
*/

:root {
  --white: #fff;
  --pink: #FF7A6D;
  --black: #0B131A;
  --beige: #EAD6BB;
  --beige-75: #F0E3D2;
  --beige-50: #FAF4EB;
  --beige-25: #FFFCF8;

  /* @link https://utopia.fyi/type/calculator?c=360,16,1.2,1600,20,1.25,5,2,1600&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
  --font-scale--2: clamp(0.6944rem, 0.6638rem + 0.1362vw, 0.8rem);
  --font-scale--1: clamp(0.8333rem, 0.7849rem + 0.2151vw, 1rem);
  --font-scale-0: clamp(1rem, 0.9274rem + 0.3226vw, 1.25rem);
  --font-scale-1: clamp(1.2rem, 1.0948rem + 0.4677vw, 1.5625rem);
  --font-scale-2: clamp(1.44rem, 1.291rem + 0.6621vw, 1.9531rem);
  --font-scale-3: clamp(1.728rem, 1.5209rem + 0.9205vw, 2.4414rem);
  --font-scale-4: clamp(2.0736rem, 1.7896rem + 1.2621vw, 3.0518rem);
  --font-scale-5: clamp(2.4883rem, 2.1032rem + 1.7115vw, 3.8147rem);

  --padding-xsmall: 0.25rem;
  --padding-small: 1rem;
  --padding-medium: 3rem;
  --padding-large: 7rem;
  --padding-xlarge: 15rem;

  --gap-xsmall: 0.25rem;
  --gap-small: 1rem;
  --gap-medium: 2.5rem;
  --gap-large: 4rem;
  --gap-xlarge: 7rem;

  --transition-time-quick: 0.25s;
  --transition-time: 0.5s;

  --width-full: 1600px;
  --width-laptop: 1280px;
  --width-tablet: 1024px;
  --width-tablet-small: 800px;
  --width-phone-large: 640px;

  --border-radius-button: 1.5em;
  --border-radius-small: 0.35rem;
  --border-radius-medium: 0.75rem;
  --border-radius-large: 1.5rem;

  --button-line-height: 1.25;
  --button-padding-v: 0.5em;
  --button-padding-h: 1em;
}

@font-face {
  font-family: 'ES Build';
  src: url('static/fonts/ES-Build-Bold.eot');
  src: url('static/fonts/ES-Build-Bold.eot?#iefix') format('embedded-opentype'),
    url('static/fonts/ES-Build-Bold.woff2') format('woff2'),
    url('static/fonts/ES-Build-Bold.woff') format('woff');
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'ES Build';
  src: url('static/fonts/ES-Build-Regular.eot');
  src: url('static/fonts/ES-Build-Regular.eot?#iefix') format('embedded-opentype'),
    url('static/fonts/ES-Build-Regular.woff2') format('woff2'),
    url('static/fonts/ES-Build-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* * {
  outline: 1px solid red;
} */

h1,
h2,
h3,
h4 {
  font-family: "farnham-headline", serif;
  font-weight: 700;
  font-style: normal;
}

h1,
.h1 {
  font-size: var(--font-scale-5);
  line-height: 1.1;
}

h2,
.h2 {
  font-size: var(--font-scale-3);
  line-height: 1.3;
}

h3,
.h3 {
  font-size: var(--font-scale-2);
}

h4,
.h4 {
  font-size: var(--font-scale-1);
}

body {
  font-family: 'ES Build', Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
  font-weight: normal;
  font-size: 16px;
  line-height: 1.6;
  font-size: var(--font-scale--1);

  color: var(--black);
  background-color: var(--beige-50);

  a {
    color: var(--black);
    text-decoration: none;
  }

  margin: 0;
}

#hero_block {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 5;
  
  #strapline {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--beige-50);
    text-align: center;
  }
}

.bump-top {
  position: absolute;
  top: -4px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 375px;
}

.bump-bottom {
  position: absolute;
  bottom: -7px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 375px;
}

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

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

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

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

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

.bg-black {
  color: var(--beige-50);
  background-color: var(--black);

  a {
    color: var(--beige-50);
  }
}

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

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

.darken {
  filter: brightness(0.75);
}

.row {
  flex-direction: row;
}

.row-reverse {
  flex-direction: row-reverse;
}

.justify-center {
  justify-content: center;
}

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

.gap-xsmall {
  gap: var(--gap-xsmall);
}

.gap-small {
  gap: var(--gap-small);
}

.gap-medium {
  gap: var(--gap-medium);
}

.gap-large {
  gap: var(--gap-large);
}

.gap-xlarge {
  gap: var(--gap-xlarge);
}

.pad-small {
  padding-top: var(--padding-small);
  padding-bottom: var(--padding-small);
}

.pad-medium {
  padding-top: var(--padding-medium);
  padding-bottom: var(--padding-medium);
}

.pad-large {
  padding-top: var(--padding-large);
  padding-bottom: var(--padding-large);
}

.pad-xlarge {
  padding-top: var(--padding-xlarge);
  padding-bottom: var(--padding-xlarge);
}

.pad-top-small {
  padding-top: var(--padding-small);
}

.pad-top-medium {
  padding-top: var(--padding-medium);
}

.pad-top-large {
  padding-top: var(--padding-large);
}

.pad-top-xlarge {
  padding-top: var(--padding-xlarge);
}

.pad-bottom-small {
  padding-bottom: var(--padding-small);
}

.pad-bottom-medium {
  padding-bottom: var(--padding-medium);
}

.pad-bottom-large {
  padding-bottom: var(--padding-large);
}

.pad-bottom-xlarge {
  padding-bottom: var(--padding-xlarge);
}

@keyframes rotate-once {
  0% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(30deg);
  }

  /* 25% {
        transform: rotate(-90deg);
    }
    
    50% {
        transform: rotate(-180deg);
    }
    
    75% {
        transform: rotate(-270deg);
    } */

  60% {
    transform: rotate(-360deg);
  }
  
  100% {
    transform: rotate(-360deg);
  }
}

.header {
  position: relative;
  color: var(--white);

  height: calc(100dvh - 2rem);
  min-height: 720px;
  aspect-ratio: unset;
  width: 100%;

  #hero_block {
    position: absolute;
    top: 0;
    object-fit: cover;
    width: 100%;
    height: 100%;
    z-index: 0;

    img {
      object-fit: cover;
      width: 100%;
      height: 100%;
    }
  }

  .wrapper-header {
    max-width: var(--width-full);
    margin: 0 auto;
    padding: var(--padding-small);

    display: grid;
    grid-template-columns: 3fr 1fr 3fr;

    z-index: 5;
    
    @media screen and (max-width: 960px) {
      /* Switch to mobile */
    }

    >* {
      z-index: 10;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    
    .hdr-logo-link {
      position: relative;
      .bump-top {
        top: -1.5rem;
      }
      .logo {
        width: 100%;
        max-width: 220px;
        z-index: 50;
        &:hover .animated-letter {
          animation: rotate-once 3s infinite;
        }
      }
    }

    .animated-letter {
      /* Ensure object animates from its centre */
      transform-origin: 50% 51%;
      transform-box: fill-box;
      animation: rotate-once 3s;
      transition: transform var(--transition-time) ease-in-out;
    }

    .nav-main {
      &#nav-right ul {
        justify-content: flex-end;
      }

      ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        list-style-position: inside;

        display: flex;
        flex-direction: row;
        align-items: center;
        gap: var(--gap-medium);

        li {


          a {
            text-underline-offset: 0em;
            text-decoration: underline;
            text-decoration-thickness: 0.15em;
            text-decoration-color: transparent;
            transition: text-decoration-color var(--transition-time-quick) ease-in-out, text-underline-offset var(--transition-time-quick) ease-in-out;
            padding: var(--button-padding-v);
            height: 100%;
            line-height: var(--button-line-height);
            white-space: nowrap;
          }

          &:hover:not(.wrapped-button) a,
          &.current-menu-item a {
            text-underline-offset: 0.35em;
            text-decoration-color: var(--white);
          }

          &.wrapped-button {

            a {
              border: 1px solid var(--white);
              transition: color var(--transition-time-quick) ease-in-out, border-color var(--transition-time-quick) ease-in-out;
              padding: var(--button-padding-v) var(--button-padding-h);
              border-radius: var(--border-radius-button);
              width: 100%;
              height: 100%;
            }

            &:hover a {
              color: var(--pink);
              border-color: var(--pink);
            }
          }
        }
      }
    }
  }
}

#toggle {
    display: none;
}

#nav-mobile {
    display: none;
    opacity: 0;
    pointer-events: none;
}

#nav-mobile.is-visible {
    display: block;
    opacity: 1;
    pointer-events: all;
}
@media screen and (min-width: 960px) { 
    #nav-mobile.is-visible {
        display: none;
        opacity: 0;
        pointer-events: none;
    }
}

.hide {
    opacity: 0;
    pointer-events: none;
}

.wrapper-mobile {
  display: none;
}

@media screen and (max-width: 960px) { 
    .wrapper-header {
      display: none !important;
    }
    .wrapper-mobile {
      display: block;
      z-index: 15;
      position: absolute;
      top: 0;
      width: 100%;
      height: 4.5rem;
      
      .hdr-logo-link {
        position: absolute;
        max-width: 200px;
        z-index: 500;
        left: 50%;
        top: 4.5rem;
        transform: translate(-50%, -50%);
        
        svg {
          width: 100%;
          max-width: 240px;
          z-index: 500;
        }
      }
    }
    #toggle,
    #toggle-close {
        display: block;
        position: absolute;
        right: 0.5rem;
        top: 2.25rem;
        transform: translateY(-50%);
        text-align: center;
        background-color: transparent;
    }

    #toggle-close {
        z-index: 25;
    }

    #toggle:hover,
    #toggle-close:hover {
        cursor: pointer;
    }


    #nav-mobile {
        
        transition: opacity 0.125s ease-in-out;

        position: absolute;
        top: 0;
        

        display: flex;
        flex-direction: column;
        justify-content: space-around;

        align-items: center;

        width: 100%;
        height: 100vh;

        z-index: 15;

        text-align: center;
        
        .hdr-logo-link {
          position: absolute;
          max-width: 200px;
          z-index: 500;
          left: 50%;
          top: 4.5rem;
          transform: translate(-50%, -50%);
          
          svg {
            width: 100%;
            max-width: 240px;
            z-index: 500;
          }
        }

    }

    #nav-mobile ul {
        padding-inline-start: 0;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        gap: var(--gap-small);
        align-items: center;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-60%);
        position: absolute;
    }

    #nav-mobile ul li {
        list-style-type: none;
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    #nav-mobile ul li a {
        color: var(--black);
        background-color: var(--beige-25);
        border: 1px solid var(--beige-25);
        border-radius: 1em;
        width: 100%;

        padding: 0.5em 1.5em;
        line-height: 1.15;

        text-decoration: none;

        transition: color var(--transition-time-quick) ease-in-out, background-color var(--transition-time-quick) ease-in-out;
        white-space: nowrap;
    }

    #nav-mobile ul li a:hover,
    #nav-mobile ul li.current-menu-item:not(.anchor) a {
        background-color: var(--black);
        color: var(--beige-25);
    }
}


.inner-wrapper {
  width: 100%;
  max-width: var(--width-laptop);
  margin: 0 auto;

  &.pad-small {
    padding-left: var(--padding-small);
    padding-right: var(--padding-small);
  }

  &.pad-medium {
    padding-left: var(--padding-medium);
    padding-right: var(--padding-medium);
  }

  &.pad-large {
    padding-left: var(--padding-large);
    padding-right: var(--padding-large);
  }

  &.pad-xlarge {
    padding-left: var(--padding-xlarge);
    padding-right: var(--padding-xlarge);
  }
}

.text {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  padding-left: var(--padding-small);
  padding-right: var(--padding-small);

  .eyebrow {
    color: var(--pink);
    font-weight: 600;
  }

  h2 {
    text-align: center;
  }

  .text-block {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .button {
    background-color: var(--pink);
    white-space: nowrap;
    transition: color var(--transition-time-quick) ease-in-out, border-color var(--transition-time-quick) ease-in-out;
    padding: var(--button-padding-v) var(--button-padding-h);
    border-radius: var(--border-radius-button);
    
    &:hover {
      color: var(--pink);
      background-color: var(--white);
    }
  }
}


/* Flex Layouts */
/* 50-50 */
.layout-50-50 {
  display: flex;
  
  >* {
    width: 50%;
    height: 100%;
    aspect-ratio: 1;
  }
  
  @media screen and (max-width: 1024px) {
    flex-direction: column-reverse;
    
    >* {
      width: 100%;
    }
  }

  /* flex-direction: row; */
  

  .text>* {
    max-width: 75%;
  }

  .image_or_map>* {
    width: 100;
    height: 100%;
    object-fit: cover;
  }
}

/* Accordion */
.layout-faq {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--padding-medium);

  h2 {
    text-align: center;
  }

  .accordion {
    display: flex;
    flex-direction: column;
    gap: var(--gap-small);
    align-items: center;
    width: 100%;
    max-width: 640px;
    padding-inline: var(--padding-small);

    summary {
      padding: var(--padding-small);
      text-align: left;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      border-radius: var(--border-radius-small);
      width: 100%;

      &:hover {
        cursor: pointer;
      }

      /* Remove default marker for Safari */
      &::-webkit-details-marker {
        display: none;
        width: 0.66em;
        height: 0.66em;
        margin-inline-end: 0em;
      }

      /* Remove marker for Chrome */
      &::marker {
        content: "";
        display: none;
      }

      /* Add custom marker */
      &:after {
        display: flex;
        flex-direction: column;
        /* justify-content: center; */
        content: url('data:image/svg+xml,<svg viewBox="0 0 13 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.26813 8.07814C6.86833 8.55789 6.13148 8.55789 5.73169 8.07813L0.366799 1.64018C-0.175967 0.988852 0.287189 -2.45138e-07 1.13502 -1.71018e-07L11.8649 7.67022e-07C12.7128 8.41142e-07 13.1759 0.988864 12.6332 1.64019L7.26813 8.07814Z" fill="%230B131A"/></svg>');
        text-align: right;
        height: 1em;
        width: 1em;
        transition: transform var(--transition-time-quick) ease-in-out;
        transform-origin: center 60%;
      }
    }

    details {
      border-radius: var(--border-radius-small);
      width: 100%;

      .content {
        padding: var(--padding-small) var(--padding-medium);
      }
    }

    /* Add close marker */
    details[open]>summary:after {
      transform: rotate(180deg);
    }
  }
}

/* Arch with Text */
.layout-arch-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  
  @media screen and (max-width: 1280px) {
    padding-inline: var(--padding-medium);
    
    &:has(.inner-wrapper:not(.bg-none)) {
      padding-inline: 0;
    }
    
    /* If the arch has an inner wrapper then it's safe to remove its extra padding on smaller screens */
    &.pad-bottom-large:has(.inner-wrapper:not(.bg-none)) {
      padding-bottom: 0;
    }
    &.pad-large:has(.inner-wrapper:not(.bg-none)) {
      padding-top: 0;
      padding-bottom: 0;
    }
  }

  .inner-wrapper {
    display: flex;
    justify-content: space-between;
    border-radius: var(--border-radius-small);
    row-gap: var(--gap-medium);
    
    @media screen and (max-width: 1280px) {
      border-radius: 0;
    }

    >* {
      width: 50%;
      height: 100%;
      aspect-ratio: 1;
    }
    
    @media screen and (max-width: 1024px) {
      flex-direction: column-reverse;
      /* padding-inline: var(--padding-small); */
      
      >* {
        width: 100%;
        height: auto;
        aspect-ratio: unset;
      }
      .image {
        aspect-ratio: 1;
        
      }
    }

    .text {
        padding-top: var(--padding-small);
        
        >* {
        max-width: 75%;
        /* padding-block: var(--padding-medium); */
        
        @media screen and (max-width: 1024px) {
          /* padding-block: var(--padding-medium); */
        }
      }
    }

    .image {
      
      >* {
        width: 100;
        height: 100%;
        object-fit: cover;
        border-radius: var(--border-radius-small);
        border-top-left-radius: 50%;
        border-top-right-radius: 50%;
      }
    }
  }
}

/* Image */
.layout-image {

  .inner-wrapper {
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    min-height: initial;
    gap: 1rem;
    flex-wrap: nowrap;
    height: initial;
    align-items: center;
    padding-inline: var(--padding-small);
    
    @media screen and (max-width: 720px) {
      flex-direction: column;
    }

    .image-wrap {
      flex-shrink: 1;
      align-content: center;

      img {
        border-radius: var(--border-radius-small);
        object-fit: cover;
      }
    }
  }
}

/* Contact form */
.layout-contact-form {
  
  .inner-wrapper {
    max-width: var(--width-phone-large);
    padding-inline: var(--padding-small);
    
    form {
      p {
        width: 100%;
        > * {
          width: 100%;
        }
        span,
        input,
        label,
        textarea {
          width: 100%;
          
        }
        span.wpcf7-spinner {
          width: 24px;
          background-color: var(--pink);
        }
        
        input,textarea {
          border: 1px solid var(--black);
          border-radius: var(--border-radius-small);
        }
        
        input[type="submit"] {
          margin: 0 auto;
          max-width: 32ch;
          border-radius: var(--border-radius-button);
          padding: 0.5em 1.5em;
          border: 1px solid var(--pink);
          background-color: var(--pink);
          color: var(--white);
          transition: color var(--transition-time-quick) ease-in-out, background-color var(--transition-time-quick) ease-in-out;
          
          &:hover {
            color: var(--pink);
            background-color: var(--white);
            cursor: pointer;
          }
        }
      }
      &.invalid.wpcf7-response-output,
      span.wpcf7-not-valid-tip {
        margin-top: 0.125em;
        color: var(--pink);
      }
    }
  }
}

/* Layout Pull text */
.layout-pull-text {
  display: flex;
  flex-direction: column;
  align-items: center;

  .text {
    max-width: var(--width-tablet-small);

  }
}

/* Layout Text */
.layout-text-block {
  display: flex;
  flex-direction: column;
  align-items: center;

  .inner-wrapper {
    max-width: var(--width-tablet);
    padding-inline: var(--padding-small);
    
    h2, h3, h4 {
      margin-bottom: 0.5em;
    }
  }
}

/* Layout Blog Posts */
.layout-blog-posts {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--gap-xlarge);
  
  .inner-wrapper {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-medium);
    
    @media screen and (max-width: 960px) {
      grid-template-columns: repeat(3, 1fr);
    }
    
    @media screen and (max-width: 720px) {
      grid-template-columns: repeat(2, 1fr);
    }
    
    @media screen and (max-width: 550px) {
      grid-template-columns: repeat(1, 1fr);
    }
    
    .post-tease {
      display: flex;
      flex-direction: column;
      gap: var(--gap-medium);
      
      h3 {
        line-height: 1.6;
      }
      
      .image-wrapper {
        position: relative;
        
        &::after {
          content: '';
          display: block;
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
          background: RGBA(255, 255, 255, 0.55);
          background: linear-gradient(180deg,rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
          
          border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
          border-bottom-left-radius: var(--border-radius-small);
          border-bottom-right-radius: var(--border-radius-small);
        }
        
        img {
          position: relative;
          object-fit: cover;
          border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
          border-bottom-left-radius: var(--border-radius-small);
          border-bottom-right-radius: var(--border-radius-small);
        }
        a {
          display: flex;
          flex-direction: row;
          justify-content: space-between;
          align-items: center;
          color: var(--white);
          transition: color var(--transition-time-quick) ease-in-out;
          width: 90%;
          z-index: 5;
          
          position: absolute;
          
          bottom: var(--padding-small);
          left: 50%;
          transform: translateX(-50%);
          
          font-size: var(--font-scale--1);
          
          span {
            line-height: 1.25;
            padding-top: 0.75em;
          }
        
          &:hover {
            color: var(--pink);
            
            svg .arrow {
              animation-duration: 0.5s;
              animation-delay: -0.25s;
              animation-iteration-count: infinite;
              animation-direction: alternate;
              animation-timing-function: ease-in-out;
              animation-name: hint;
            }
          }
        }
      }
    }
  }
}

/* Layout Carousel Arch */

.layout-carousel-arch {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap-large);
  padding-left: var(--padding-small);
  padding-right: var(--padding-small);
  
  h2 {
    text-align: center;
  }
  
  .inner-wrapper {
    max-width: var(--width-full);
    margin: 0 auto;
  }
  
  .tease-arch {
    position: relative;
    aspect-ratio: 6/7;
    border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
    border-bottom-left-radius: var(--border-radius-small);
    border-bottom-right-radius: var(--border-radius-small);
    width: 100%;
    
    .content-wrapper {
      position: absolute;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: var(--gap-medium);
      align-items: center;
      text-align: center;
      height: 100%;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      
      .text {
        padding-top: 1em;
        height: unset;
      }
    }
    

    
    .image-wrapper {
      height: 100%;
      
      img.main-image {
        position: relative;
        object-fit: cover;
        height: 100%;
        
        border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
        border-bottom-left-radius: var(--border-radius-small);
        border-bottom-right-radius: var(--border-radius-small);
      }
    }
  }
}

/* Layout Carousel Review */

.layout-carousel-review {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap-large);
  padding-left: var(--padding-small);
  padding-right: var(--padding-small);
  
  h2 {
    text-align: center;
  }
  
  .inner-wrapper {
    max-width: var(--width-laptop);
    margin: 0 auto;
    
    .tease-review {
      border-radius: var(--border-radius-small);
      padding: var(--padding-small);
      display: flex;
      flex-direction: column;
      gap: var(--gap-small);
      align-items: center;
      text-align: center;
      height: 100%;
      
      .review {
        flex-grow: 1;
        padding: 0 var(--padding-small);
      }
      
      .date {
        color: var(--beige-50);
        background-color: var(--black);
        border-radius: var(--border-radius-small);
        padding: 0.5em 1em;
        width: 100%;
      }
    }
  }
}

/* Layout Carousel Features */

.layout-carousel-features {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap-large);
  padding-left: var(--padding-small);
  padding-right: var(--padding-small);
  
  h2 {
    text-align: center;
  }
  
  .inner-wrapper {
    max-width: var(--width-laptop);
    margin: 0 auto;
    
    .tease-feature {
      border-radius: var(--border-radius-small);
      padding: var(--padding-small);
      display: flex;
      flex-direction: column;
      gap: var(--gap-small);
      align-items: center;
      text-align: center;
      height: 100%;
      img {
        margin-top: var(--padding-small);
        margin-bottom: var(--padding-small);
      }
      .feature {
        color: var(--beige-50);
        background-color: var(--black);
        border-radius: var(--border-radius-small);
        padding: 0.5em 1em;
        width: 100%;
        white-space: nowrap;
      }
    }
  }
}

/* Layout Carousel and Carousel 3 */
.layout-carousel,
.layout-carousel-three {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap-large);
  padding-left: var(--padding-small);
  padding-right: var(--padding-small);
  
  h2 {
    text-align: center;
  }
  
  .inner-wrapper {
    max-width: var(--width-laptop);
    margin: 0 auto;
    
    img {
      border-radius: var(--border-radius-small);
    }
  }
}

/* Layout Essentials */
.layout-essentials {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap-large);
  padding-left: var(--padding-small);
  padding-right: var(--padding-small);
  
  h2 {
    text-align: center;
  }
  
  .inner-wrapper {
    max-width: var(--width-laptop);
    margin: 0 auto;
    columns: 3 auto;
    column-gap: var(--gap-medium);
    
    @media screen and (max-width: 960px) {
      columns: 2 auto;
    }
    @media screen and (max-width: 640px) {
      columns: 1 auto;
    }
    
    .usp {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      padding: var(--padding-small);
      border-top: 2px var(--pink) solid;
    }
  }
  
}

@keyframes hint {
  from {
    transform: translateX(0.25rem);
  }

  to {
    transform: translateX(-0.25rem);
  }
}

/* Page Navigation */
#page-navigation {
  
  padding: var(--padding-large) var(--padding-small);
  
  .inner-wrapper {
    margin: 0 auto;
    max-width: var(--width-laptop);
    
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-medium);
    
    @media screen and (max-width: 800px ){
      grid-template-columns: 1fr;
    }
  }

  article {
    position: relative;
    
    width: 100%;
    max-width: 800px;
    
    &::after {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background: RGBA(255, 255, 255, 0.55);
      background: linear-gradient(180deg,rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
      
      border-radius: 50% 50% 50% 50% / 70% 70% 30% 30%;
      border-bottom-left-radius: var(--border-radius-small);
      border-bottom-right-radius: var(--border-radius-small);
    }

    img {
      position: relative;
      object-fit: cover;
      border-radius: 50% 50% 50% 50% / 70% 70% 30% 30%;
      border-bottom-left-radius: var(--border-radius-small);
      border-bottom-right-radius: var(--border-radius-small);
      
      
    }

    a {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      color: var(--white);
      transition: color var(--transition-time-quick) ease-in-out;
      width: 90%;
      z-index: 5;
      
      position: absolute;
      
      bottom: var(--padding-medium);
      
      @media screen and (max-width: 960px ){
        bottom: var(--padding-small);
      }
      left: 50%;
      transform: translateX(-50%);

      &:hover {
        color: var(--pink);
        
        svg .arrow {
          animation-duration: 0.5s;
          animation-delay: -0.25s;
          animation-iteration-count: infinite;
          animation-direction: alternate;
          animation-timing-function: ease-in-out;
          animation-name: hint;
        }
      }
    }
  }
}

/* Footer */
footer {
  #upper {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 480px;

    .logo {
      margin-bottom: 150px;
      width: 100%;
      max-width: 320px;
    }

  }

  #lower {
    #column_wrapper {

      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: var(--gap-medium);

      max-width: var(--width-full);
      margin: 0 auto;

      border-bottom: 1px solid var(--beige);
      padding: var(--padding-large) var(--padding-small);
      
      @media screen and (max-width:960px) {
        grid-template-columns: repeat(3, 1fr);
      }
      
      @media screen and (max-width:720px) {
        grid-template-columns: repeat(2, 1fr);
        padding: var(--padding-medium) var(--padding-small);
      }
      
      @media screen and (max-width:515px) {
        grid-template-columns: repeat(1, 1fr);
      }

      .column {
        border-top: 1px solid var(--beige);
        padding: var(--padding-small) 0;
        display: flex;
        flex-direction: column;
        line-height: 1.3;
      }

      address {
        font-style: normal;
        line-height: 1.3;
      }

      h3 {
        font-family: 'ES Build', Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;
        font-weight: bold;
        font-size: 1rem;
        text-transform: uppercase;
        margin-bottom: 0.5em;
      }
      
      .footer-menu,
      .policy-menu {
        ul {
          list-style-type: none;
        }
      }
    }

    #portals {
      display: flex;
      flex-direction: row;
      justify-content: center;
      flex-wrap: wrap;
      gap: var(--gap-medium);

      padding: var(--padding-medium) var(--padding-small);
    }

  }

}

#holding {
  header {
    display: none;
  }
  #holding_logo_container {
    padding: var(--padding-xlarge);
    height: 100dvh;
  }
}
