body.admin-bar {
  margin-top: 32px;
}

/*--------------------------------------------------------------
  >> : Pictures
--------------------------------------------------------------*/
  picture {
    display: inline-block;
    width: 100%;
    height: 100%;
    vertical-align: middle;
    position: relative;
  }

  .container-fluid.section-background picture {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
  }

  /*picture.picture-1x1,
  picture.picture-square {
    aspect-ratio: 1/1;
  }

  picture.picture-4x3 {
    aspect-ratio: 4/3;
  }

  picture.picture-16x9 {
    aspect-ratio: 16/9;
  }
*/
  .service-card-small picture.service-card-thumbnail {
    aspect-ratio: 1/1.15;
  }


  picture.product-loop-thumbnail {
    aspect-ratio: 3/4.75;
  }

  picture.product-loop-thumbnail img {
    height: 100% !important;
  }

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

  [data-section="text-image"] picture img,
  [data-section="image-text"] picture img,
  [data-section="image-text-offset"] picture img,
  [data-section="text-image-offset"] picture img,
  [data-section="text-image-contained"] picture img,
  [data-section="image-text-contained"] picture img,
  [data-section="header-sub-service"] picture img {
    position: absolute;
    top:0;
    left:0;
  }


/*--------------------------------------------------------------
  >> : The WordPress CSS class screen-reader-text
  https://make.wordpress.org/accessibility/handbook/markup/the-css-class-screen-reader-text/
--------------------------------------------------------------*/

  /* Text meant only for screen readers. */
  .screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
  }

  .screen-reader-text:focus {
    background-color: #eee;
    clip: auto !important;
    clip-path: none;
    color: #444;
    display: block;
    font-size: 1em;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000; /* Above WP toolbar. */
  }

/*--------------------------------------------------------------
  >> : AppMain
--------------------------------------------------------------*/
  #AppMain {
    margin-top: 0;
  }

/*--------------------------------------------------------------
  >> : Header
--------------------------------------------------------------*/

  .admin-bar header#AppHeader {
    top:33px
  }

  .logo {
    height: 50px;
    padding: 0;
  }

  .logo img {
    height: 100%;
    width:auto;
    object-fit: contain;
    object-position: left;
  }

  .logo-dark {
    position: relative;
    width: auto;
  }

  #AppHeader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
    background: #ffffff;
    box-shadow: 0px 3px 8px #0000000f;
    display: inline-flex;
    align-items: center;
  }
  
  a.menu-logo {
    display: flex;
    height: auto;
    width: auto;
    align-items: center;
    padding: 15px;
  }

  #desktop-nav-menu nav ul {
    display:flex;
    align-items:center;
    padding:0;
    list-style:none;
  }

  #desktop-nav-menu nav .page_item a {
    display:flex;
    padding: 12px;
    text-decoration:none;
  }


/*--------------------------------------------------------------
  >> : Off Canvas
--------------------------------------------------------------*/
  #AppOffcanvas {
    position: fixed;
    z-index: 999;
    right:0;
    width: 100vw;
    height: calc(100vh - 76px);
    background: #fff;
    top: 76px;
    pointer-events: none;
    -webkit-transform:translateX(100%);
        -ms-transform:translateX(100%);
            transform:translateX(100%);
    -webkit-transition: -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    -o-transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1), -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    overflow-y: scroll;
  }

  .admin-bar #AppOffcanvas {
    top: 109px;
  }

  #AppOffcanvas.show {
    -webkit-transform:translateX(0%);
        -ms-transform:translateX(0%);
            transform:translateX(0%);
    pointer-events: all;
    -webkit-transition: -webkit-transform 500ms cubic-bezier(0, 0.39, 0.71, 1.02);
    transition: -webkit-transform 500ms cubic-bezier(0, 0.39, 0.71, 1.02);
    -o-transition: transform 500ms cubic-bezier(0, 0.39, 0.71, 1.02);
    transition: transform 500ms cubic-bezier(0, 0.39, 0.71, 1.02);
    transition: transform 500ms cubic-bezier(0, 0.39, 0.71, 1.02), -webkit-transform 500ms cubic-bezier(0, 0.39, 0.71, 1.02);
  }

  section#AppOffcanvas .container {
    padding:0;
    max-width:100%;
  }

  .off-canvas-nav .menu-item-has-children a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }

  .off-canvas-nav .menu-item {
    padding: 22px 15px;
    border-bottom: 1px solid #e5e5e5;
    margin: 0px;
    border-left: 0 !important;
  }

  .off-canvas-nav .menu-item a {
    font-size: 1.4rem;
    line-height: 1.4;
    font-weight: 400;
    font-family:var(--heading-font-family);
    text-decoration: none;
    color:var(--brand-black);
  }

  .off-canvas-nav .menu-item.sub-menu-prev {
    margin-bottom: 0px;
    padding: 10px;
    border: none;
    background: #d7d6d6;
  }

  .off-canvas-nav ul {
    list-style: none;   
  }

  .off-canvas-nav ul.sub-menu {
    position: absolute;
    top: 0;
    left:0;
    -webkit-transform:translateX(100%);
        -ms-transform:translateX(100%);
            transform:translateX(100%);
    -webkit-transition: -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    -o-transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1), -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    width: 100vw;
    height: 100%;
    padding: 0;
    z-index: 9999;
    background: #fff;
    -webkit-transition: all .5s ease;
    -o-transition: all .5s ease;
    transition: all .5s ease;
    overflow: hidden !important;
    overflow-y: auto !important;
    padding: 0px !important;
  }

  .off-canvas-nav ul.sub-menu.open-sub-menu {
    -webkit-transform:translateX(0%);
        -ms-transform:translateX(0%);
            transform:translateX(0%);
    -webkit-transition: -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    -o-transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
    transition: transform 500ms cubic-bezier(0.77, 0.46, 1, 1), -webkit-transform 500ms cubic-bezier(0.77, 0.46, 1, 1);
  }

  .off-canvas-nav {
    padding:0;
    list-style:none;
  }

  #off-canvas-nav > ul.off-canvas-nav .menu-item-has-children > a:after {
    content:'';
    height:20px;
    width:20px;
    background:url(/site/themes/devignstudios-toolkit/resources/icons/chevron-left.svg) no-repeat;
    background-size:contain;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg)
  }

  .off-canvas-nav .menu-item.sub-menu-title {
    font-size: 0.81em;
    text-transform: uppercase;
    letter-spacing: 4px;
    font-weight: 300;
    background: #f7f7f7;
  }

  .off-canvas-nav .sub-menu .menu-item a {
    -ms-flex-wrap:wrap;
        flex-wrap:wrap;
  }

  .off-canvas-nav .sub-menu .menu-item  span {
    display:block;
    font-size:0.6em;
    width:100%;
    color:#777777;
  }


  #AppOffcanvas p.service-mega-menu-header a {
    font-size: 1.3rem !important;
    line-height: 1.4;
    font-weight: 400;
    font-family: var(--heading-font-family);
    text-decoration: none;
    color: var(--brand-black);
    text-transform:none;
  }

  #AppOffcanvas p.service-mega-menu-header {
      padding: 0px;
      border:none;
      letter-spacing: unset !important;
  }


  #AppOffcanvas .service-mega-menu .col:nth-child(2) p.service-mega-menu-header {
      margin-top: 30px !important;
  }

  #AppOffcanvas .service-mega-menu hr {
      display: none;
  }


  #AppOffcanvas .off-canvas-nav .menu-item a {
      font-family:var(--body-font);
      font-size:1rem;
      text-transform:uppercase;
      letter-spacing:0.05rem
  }

  #AppOffcanvas .service-card-menu.position-relative {
      margin-top:30px;
      margin-bottom:30px
  }

  #AppOffcanvas .service-card-menu.position-relative img {
      height:200px;
  }


  #AppOffcanvas address {
      padding: 22px 15px;
      background: #f7f7f7;
      margin: 0;
  }

  #AppOffcanvas address p {
      margin-bottom: 10px;
      display: flex;
  }

  #AppOffcanvas address p:last-child {
      margin: 0;
  }

  #AppOffcanvas address strong {
      width: 25%;
  }

  #AppOffcanvas address span {
      width: 75%;
  }

  @media (max-width: 380px) {
      #AppOffcanvas address p {
          flex-wrap: wrap;
          display: inline-flex;
      }
      #AppOffcanvas address strong,
      #AppOffcanvas address span {
          width: 100%;
      }
  }


  footer address {
      margin: 0;
      margin-top: 15px;
      display: inline-block;
      width: 100%;
  }

  footer address p {
      margin-bottom: 10px;
      display: flex;
  }

  footer address p:last-child {
      margin: 0;
  }

  footer address strong {
      width: 25%;
  }

  footer address span {
      width: 75%;
  }

  @media (max-width: 768px) {
      footer address p {
        flex-wrap: wrap;
        display: inline-flex;
        width: 100%;
        margin-bottom: 1rem;
      }

      footer address strong,
      footer address span {
          width: 100%;
      }
  }

/*--------------------------------------------------------------
  >> : Hamburger
--------------------------------------------------------------*/

  .hamburger .line {
    width: 36px;
    -webkit-transform:skew(12deg);
        -ms-transform:skew(12deg);
            transform:skew(12deg);
    height: 2px;
    background-color: #000000;
    display: block;
    margin: 6px auto;
    -webkit-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
  }

  [data-header-color="light"] .hamburger .line {
    background: #ffffff;
  }

  .scrolled .hamburger .line {
    background: #000000;
  }

  .hamburger:hover{
    cursor: pointer;
  }

  .hamburger {
    position: relative;
    -webkit-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
    border: none;
    background: transparent;
    height: 75px;
  }

  .hamburger.is-active{
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }

  .hamburger.is-active:before{
    border: 5px solid #ecf0f1;
  }

  .hamburger.is-active .line:nth-child(2){
    opacity: 0;
  }

  .hamburger.is-active .line:nth-child(1){
    -webkit-transform: translateY(8px);
    -ms-transform: translateY(8px);
    transform: translateY(8px);
  }

  .hamburger.is-active .line:nth-child(3){
    -webkit-transform: translateY(-8px) rotate(90deg);
    -ms-transform: translateY(-8px) rotate(90deg);
    transform: translateY(-8px) rotate(90deg);
  }


  .mobile-basket {
    height: 75px;
    align-items: center;
    position: relative;
    margin-right: 10px;
    padding-right: 10px;
    border-right: 1px solid lightgrey;
    text-decoration: none;
    width: 50px;
  }

  .mobile-basket svg {
    width: 30px;
    height: 30px;
    fill: none;
    stroke-width: 1px;
    stroke: #ffffff;
  }

  .scrolled .mobile-basket svg {
    stroke: #000000;
  }

  .mobile-basket .menu-item-basket-count {
    position: absolute;
    top: 7px;
    right: 7px;
    font-size: 90%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
  }

  .scrolled .menu-item-basket-count {
    color: #000000;
  }

  .post-card picture {
    aspect-ratio:4 / 3;
  }

  select#blog-orderby,
  .orderby {
    border:none;
  }

  .post-card {
    position: relative;
  }

  .post-card-date {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #fff;
    padding: 4px 10px;
    font-family: var(--heading-font-family);
    font-weight: 600;
    font-size: 0.9em;
  }

  .post-card h2.h3 {
    font-size:1.7rem;
    margin-top:1rem;
  }

  .post-card picture {
    aspect-ratio:4 / 3;
  }


/*--------------------------------------------------------------
  >> : Blog Single
--------------------------------------------------------------*/
.post-author {
    display: flex;
    align-items: center;
    justify-content:center;
    gap:20px;
}

.post-author picture {
    height:40px;
    width: auto;
    aspect-ratio:1/1;
}

.post-author picture img {
    height:40px !important;
    border-radius:30px;
}

.post-author p {
    margin-bottom:0px !important;
    text-transform:uppercase;
    font-size:0.8em;
    font-weight:600;
}

/*--------------------------------------------------------------
  >> : Footer
--------------------------------------------------------------*/

footer#AppFooter {
  padding-top: 2rem;
  padding-bottom: 2rem;
  background:#f5f5f5;
}

footer#AppFooter a {
    color:var(--brand-black);
    text-decoration: none;
}
footer#AppFooter ul {
    list-style:none;
    padding:0;
}

ul.social-icons {
    display: flex;
    align-items: center;
}

ul.social-icons li {
    margin-right:10px;
}


footer#AppFooter p,
footer#AppFooter a {
    font-size:0.9em;
}

.wrap-links ul {
    display:flex;
    flex-wrap:wrap;
}

.wrap-links ul li {
    width:50%;
}

button.back-to-top {
    background: #fff;
    border: none;
    font-size: 16px !important;
}

.footer-breadcrumbs * {
    font-size: 16px !important;
}


@media (max-width: 768px) {
  ul.social-icons {
      justify-content: center;
  }
}

/*--------------------------------------------------------------
  >> : Pagination
--------------------------------------------------------------*/

.page-numbers {
    padding:10px;
    color:#000;
}
a.next.page-numbers,
a.prev.page-numbers {
    border:1px solid black;
    padding:15px 20px;
    color:#000;
    text-decoration:none;
    text-transform:uppercase;
    transition:all 300ms ease;
}


a.next.page-numbers:hover,
a.prev.page-numbers:hover {
    color:#fff;
    background:#000;
    transition:all 300ms ease;
}


.page-numbers[aria-current="page"] {
    font-weight:600;
}




/*--------------------------------------------------------------
  >> : General Media
--------------------------------------------------------------*/
@media (max-width: 1200px) {
  picture.picture-4x3 {
      aspect-ratio: unset;
  }
}

/*--------------------------------------------------------------
  >> : Forms
--------------------------------------------------------------*/

.acf-field input[type=text], .acf-field input[type=password], .acf-field input[type=date], .acf-field input[type=datetime], .acf-field input[type=datetime-local], .acf-field input[type=email], .acf-field input[type=month], .acf-field input[type=number], .acf-field input[type=search], .acf-field input[type=tel], .acf-field input[type=time], .acf-field input[type=url], .acf-field input[type=week], .acf-field textarea, .acf-field select {
    padding: 12px;
    border: 1px solid black;
}

.acf-form-fields .acf-fields>.acf-field {
    padding:0 !important;
    border:none !important;
}


.acf-fields.acf-form-fields.-top .acf-field {
    border:none !important;
    padding-left:0;
}
