@font-face {
  font-family: 'DMSans-Regular';
  src: url('/wp-content/themes/theprintbanktest/assets/fonts/DMSans-Regular.ttf');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-primary: 'DMSans-Regular', system-ui, -apple-system, sans-serif;
  --max-container-width: 1920px;

  --desktop-side-margin: 20px;

  --font-colour-black: #000000;
  --font-size-p: 24px;
  --font-size-p-mobile: 20px;
  --font-size-h2: 48px;
  --font-size-heading-mobile: 28px;
}

* {
  box-sizing: border-box;
  margin: 0;
}

html {
  font-family: var(--font-primary);
  font-weight: 400;
  letter-spacing: 0;
}

/* Display only in WP admin */
.admin-bar .pb-heading-wrap {
  top: 20px;
}

.site-header[data-page='home'] {
  .pb-header-menu {
    a {
      color: white;
    }
  }
}
.site-header[data-page='inner'] {
  .pb-header-menu {
    a {
      color: var(--font-colour-black);
    }
  }
}

.pb-heading-wrap {
  width: 100%;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 2;
}

.pd-heading-container {
  /* max-width: var(--max-container-width); */
  margin: 0 auto;
  display: flex;
  align-items: center;
  position: relative;
  padding: 18px 20px;
}

.pb-header-menu {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;

  a {
    text-decoration: none;
    /*  color: white; */
    font-size: 24px;
  }
}

/* Using text-decoration for underline
   Can switch to a::after for a more precise thicker underline */

.pb-header-menu a.current-menu-item {
  text-decoration: underline;
  text-underline-offset: 6px;
}

/* Hero Section */

.pb-hero-section {
  position: relative;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  max-height: 1080px;
  aspect-ratio: 16 / 9;
  flex-direction: column;
  overflow: hidden;

  .pb-hero-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;

    img {
      width: 100%;
      height: 100%;
      display: block;
    }
  }
}

.pb-hero-container {
  position: relative;
  width: 100%;
  max-width: 922px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
  z-index: 2;

  .pb-hero-content {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;

    img {
      width: 100%;
      height: auto;
    }
  }
}

/* About Home Section */

.pb-about-home {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  padding: 153px 0 136px 0;
}

.pb-about-home-container {
  display: flex;
  max-width: 1574px;
  color: var(--font-colour-black);
  flex-direction: row;
  gap: 94px;
  align-items: flex-start;
  margin: 0 var(--desktop-side-margin);

  .header-wrap {
    flex: 0 0 auto;
    max-width: 40%;

    h2 {
      /* Figma says font size is 48px which does not match the design layout in browser
      lowered to 43px to match the design layout closer  */
      font-size: clamp(43px, 0.8vw, 48px);
      font-weight: 400;
      max-width: 381px;
      letter-spacing: -2.22px;
    }
  }

  .content-wrap {
    display: flex;
    flex-direction: column;
    gap: 36px;

    p {
      font-size: var(--font-size-p);
      font-weight: 400;
      letter-spacing: -1.2px;
    }
  }
}

/* Homepage Services List */
.pb-service-section {
  display: flex;
  flex-direction: column;

  padding-bottom: 93px;
  width: min(1880px, calc(100% - 40px));
  margin-inline: auto;

  .pb-list-container {
    flex: 0 0 100%;
    margin: 0 auto;
    padding-bottom: 42px;

    .pb-services-list {
      display: flex;
      flex-wrap: wrap;
      gap: 4px;
      list-style: none;
      padding: 0px;
      margin: 0px;

      li {
        font-size: clamp(43px, 0.8vw, 48px);
        letter-spacing: -1.2px;
      }
    }

    .pb-services-list li::after {
      content: ' //';
    }

    .pb-services-list li:last-child::after {
      content: '';
    }
  }

  .pb-services-image-gallery {
    flex: 0 0 100%;

    margin: 0 auto;
  }

  .pb-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 21px;
    max-width: 1879px;

    .pb-gallery-card {
      .pb-card-image {
        overflow: hidden;
      }

      img {
        display: block;
        width: 100%;
        height: auto;
        transition: transform 300ms ease;
      }
    }

    .pb-gallery-card:hover img {
      transform: scale(1.15);
    }
  }
}

/* Contact Page */

.pb-contact-content {
  padding-top: 228px;
  padding-left: 20px;
  margin-right: 20px;
}

.pb-contact-wrapper {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  max-width: 1564px;
  margin: 0 auto;
  gap: 32px;
}

.pb-contact-detail-wrapper {
  display: flex;
  flex-direction: column;
  flex: 0 0 calc(50% - 32px);

  .pb-contact-header {
    padding-bottom: 74px;
    h2 {
      font-size: var(--font-size-h2);
      letter-spacing: -2.2px;
      font-weight: 400;
    }
  }

  .pb-details-wrap {
    font-style: normal;
    dl {
      display: flex;
      flex-direction: column;
      gap: 22px;
    }

    .pb-contact-child {
      .pb-contact-label,
      .pb-address-details {
        font-size: var(--font-size-p);
        letter-spacing: -1.2px;
        color: #000000;
        font-family: var(--font-primary);
        font-weight: 400;
      }

      .pb-address-label {
        padding-top: 24px;
        padding-bottom: 8px;
      }

      .pb-address-details {
        display: flex;
        flex-direction: column;
        gap: 4px;
      }

      a {
        font-family: var(--font-primary);
        font-size: var(--font-size-h2);
        text-decoration: underline;
        text-underline-offset: 12px;
        color: #000000;
      }
    }
  }
}

/* Contact Map */

.pb-map-wrapper {
  flex: 0 0 100%;
  padding-top: 55px;
  padding-bottom: 94px;
}

/* Footer */
.site-footer {
  display: flex;
  flex-direction: column;
  width: 100%;
  justify-content: flex-start;
  margin-inline: auto;
  padding-bottom: 13px;
  padding-left: 20px;

  .container {
    p {
      font-size: 24px;
    }

    span {
      text-decoration: underline;
    }
  }
}

/* Media Queries Land */

@media (max-width: 1080px) {
  .pb-contact-detail-wrapper {
    flex: 0 0 calc(100%);
  }
}

@media (max-width: 768px) {
  .pb-hero-section {
    aspect-ratio: auto;
    height: 688px;
  }

  .pb-about-home-container {
    gap: 26px;
    flex-direction: column;

    .header-wrap {
      max-width: 100%;
      order: 1;
    }

    .content-wrap {
      order: 2;
    }
  }
  .pb-service-section {
    .pb-list-container {
      order: 2;
      .pb-services-list {
        li {
          font-size: var(--font-size-heading-mobile);
          letter-spacing: -2.7px;
        }
      }
    }

    .pb-services-image-gallery {
      order: 1;
      padding-bottom: 78px;
    }

    .pb-gallery-grid {
      grid-template-columns: repeat(1, 1fr);
      gap: 15px;
    }
  }

  /* Contact Page Mobile */

  .pb-contact-content {
    padding-top: 84px;
  }

  .pb-contact-detail-wrapper {
    .pb-contact-header {
      padding-bottom: 19px;
      h2 {
        font-size: var(--font-size-heading-mobile);
      }
    }

    .pb-details-wrap {
      dl {
        gap: 18px;
      }

      .pb-contact-child {
        .pb-contact-label,
        .pb-address-details {
          font-size: var(--font-size-p-mobile);
        }

        .pb-address-label {
          padding-top: 12px;
          padding-bottom: 8px;
        }

        a {
          font-size: var(--font-size-heading-mobile);
          text-underline-offset: 8px;
        }
      }
    }
  }

  .pb-map-wrapper {
    height: 626px;
    padding-top: 0px;
    padding-bottom: 0px;
    margin-bottom: 24px;
  }
} /* END OF 768 media */

@media (max-width: 468px) {
  /* Mobile Header */

  .pb-header-menu {
    a {
      font-size: 18px;
    }
  }

  /* Mobile Hero Section */
  .pb-hero-section {
    aspect-ratio: auto;
    height: 688px;
  }

  .pb-about-home {
    padding-top: 46px;
    padding-bottom: 43px;
  }

  .pb-about-home-container {
    gap: 26px;
    flex-direction: column;

    .header-wrap {
      order: 1;
      max-width: 100%;

      h2 {
        font-size: var(--font-size-heading-mobile);
      }
    }

    .content-wrap {
      order: 2;

      p {
        font-size: var(--font-size-p-mobile);
        letter-spacing: 0px;
      }
    }
  }

  /* Mobile Service Section */
  .pb-service-section {
    .pb-list-container {
      order: 2;
      padding-bottom: 0px;

      .pb-services-list {
        li {
          font-size: var(--font-size-heading-mobile);
          letter-spacing: -2.7px;
        }
      }
    }
  }

  /* Mobile Gallery */
  .pb-service-section {
    .pb-services-image-gallery {
      order: 1;
      padding-bottom: 78px;
    }

    .pb-gallery-grid {
      grid-template-columns: repeat(1, 1fr);
      gap: 15px;
    }
  }

  /* Mobile Footer */
  .site-footer {
    padding-bottom: 20px;

    .container {
      p {
        font-size: 18px;
      }
    }
  }
} /* End Media */
