/* ___________________________________________________________________________  
    
    This CSS is for Child Theme's Gutenberg editor
    
    List of usable CSS classes can be found in base's editor.css
  
 ______________________________________________________________________________ */

 
/* === Fonts === */
@font-face {
  font-family: 'Inter';
  src: url('fonts/inter-regular.woff2') format('woff2');
  font-weight: 400;                       /* Unify weight with theme.json */
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('fonts/inter2-semibold.woff2') format('woff2');
  font-weight: 600;                       /* Unify weight with theme.json */
  font-style: bold;
  font-display: swap;
}

body, input, label, textarea, button {
  font-family: 'Inter', Helvetica, sans-serif;
}
h1, h2, h3, h4, h5, h6, summary {
  font-family: 'Inter', Helvetica, sans-serif;
}

 /* === Headings === */

h1, h2, h3, h4, h5, h6, summary {
  font-weight: var(--wp--custom--font-weight--bold);
  line-height: var(--wp--custom--line-height--heading);
  letter-spacing: var(--wp--custom--letter-spacing--heading);
  margin: var(--wp--preset--spacing--12) 0 var(--wp--preset--spacing--8);
  scroll-margin-top: var(--wp--custom--gap);
  color: inherit;
}

h1, .has-h-1-font-size {
  font-size: var(--wp--preset--font-size--h-1);
}

h2, .has-h-2-font-size {
  font-size: var(--wp--preset--font-size--h-2);
}

h3, .has-h-3-font-size {
  font-size: var(--wp--preset--font-size--h-3);
}

h4, .has-h-4-font-size {
  font-size: var(--wp--preset--font-size--h-4);
}

h5, .has-h-5-font-size {
  font-size: var(--wp--preset--font-size--h-5);
}

/* === HTML === */

body {
  font-size: 1rem;
  font-style: normal;
  color: var(--wp--preset--color--black);
  font-weight: var(--wp--custom--font-weight--default);
  line-height: var(--wp--custom--line-height--default);
  background: var(--wp--preset--color--white);
}
  
/**
 * Images
 * --------------------------------------------------------------------------- */

.reviews img {
  opacity: 1;
}

.wp-block-image.is-style-default img {
  border-radius: var(--wp--custom--radius--default);
}

/**
 * Accordions
 * --------------------------------------------------------------------------- */

details {
  border-bottom: 1px solid var(--wp--preset--color--black);
  padding-bottom: unset;
  counter-increment: accordion;
  padding-left: unset;
}

details summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: baseline;
  margin: 0;
  padding: unset;
}

details summary::before {
  display: none;
}
  
/**
 * Inputs, Buttons
 * --------------------------------------------------------------------------- */

   input, select, textarea{
    margin: var(--wp--preset--spacing--16) 0 0.3rem;
   }

   input[type="checkbox"]{
    width: var(--wp--preset--spacing--20);
    height: var(--wp--preset--spacing--20);
    border-radius: 2px;
    border: 1px solid var(--wp--preset--color--dark-blue);
    background-color: transparent;
    padding-top: 5px;
   }
  
  button, input[type='submit'],
  .wp-element-button, .wp-block-button__link, 
  .wp-block-button .wp-block-button__link,
  .submitted-message a {
    background: var(--wp--preset--color--dark-blue);
    color: var(--wp--preset--color--white);
    border-radius: 0;
    padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--40);
    gap: var(--wp--preset--spacing--16);
    border-radius: var(--wp--preset--spacing--12);
    width: fit-content;
  }
  
  button:hover, input[type='submit']:hover, button:focus, input[type='submit']:focus, .wp-element-button:hover, .wp-element-button:focus, .button:hover, .button:focus, .submitted-message a:hover {
    color: var(--wp--preset--color--white);
    background: var(--wp--preset--color--primary) !important;
  }

  .wp-block-button__link.has-light-blue-gradient-background, 
  .wp-block-button .wp-block-button__link.has-light-blue-gradient-background{
    background: var(--wp--preset--gradient--light-blue) !important;
    color: var(--wp--preset--color--dark-blue);
  }
  .wp-block-button__link:hover.has-light-blue-gradient-background,
  .wp-block-button .wp-block-button__link:hover.has-light-blue-gradient-background{
    background: var(--wp--preset--color--white) !important;
  }

  .is-style-link .wp-element-button,
  .is-style-link.wp-element-button {
    border: 0;
    background-color: transparent !important;
    color: var(--wp--preset--color--black);
    justify-content: flex-start;
    padding: 0;
  }

  /* a[target="_blank"]::after, */
  .is-style-link .wp-element-button::after,
  .is-style-link.wp-element-button::after {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: var(--wp--preset--color--dark-blue);
    -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="black" d="M7.5 3H10.5C11.33 3 12 3.67 12 4.5C12 5.27 11.42 5.9 10.68 5.99L10.5 6H7.5C6.73 6 6.1 6.58 6.01 7.33L6 7.5V28.5C6 29.27 6.58 29.9 7.33 29.99L7.5 30H28.5C29.27 30 29.9 29.42 29.99 28.67L30 28.5V25.5C30 24.67 30.67 24 31.5 24C32.27 24 32.9 24.58 32.99 25.33L33 25.5V28.5C33 30.9 31.13 32.86 28.76 32.99L28.5 33H7.5C5.1 33 3.15 31.13 3.01 28.76L3 28.5V7.5C3 5.1 4.87 3.14 7.24 3.01L7.5 3ZM31.5 3H22.5C21.67 3 21 3.67 21 4.5C21 5.33 21.67 6 22.5 6H27.88L18.44 15.44C17.9 15.99 17.86 16.84 18.32 17.43C18.84 18.02 19.72 18.03 20.27 17.49L29.71 8.06V13.5C29.71 14.33 30.67 15 31.5 15C32.33 15 33 14.33 33 13.5V4.5C33 3.67 32.33 3 31.5 3Z"/></svg>');
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="black" d="M7.5 3H10.5C11.33 3 12 3.67 12 4.5C12 5.27 11.42 5.9 10.68 5.99L10.5 6H7.5C6.73 6 6.1 6.58 6.01 7.33L6 7.5V28.5C6 29.27 6.58 29.9 7.33 29.99L7.5 30H28.5C29.27 30 29.9 29.42 29.99 28.67L30 28.5V25.5C30 24.67 30.67 24 31.5 24C32.27 24 32.9 24.58 32.99 25.33L33 25.5V28.5C33 30.9 31.13 32.86 28.76 32.99L28.5 33H7.5C5.1 33 3.15 31.13 3.01 28.76L3 28.5V7.5C3 5.1 4.87 3.14 7.24 3.01L7.5 3ZM31.5 3H22.5C21.67 3 21 3.67 21 4.5C21 5.33 21.67 6 22.5 6H27.88L18.44 15.44C17.9 15.99 17.86 16.84 18.32 17.43C18.84 18.02 19.72 18.03 20.27 17.49L29.71 8.06V13.5C29.71 14.33 30.67 15 31.5 15C32.33 15 33 14.33 33 13.5V4.5C33 3.67 32.33 3 31.5 3Z"/></svg>');
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
  }

  .is-style-link .wp-element-button:hover,
  .is-style-link.wp-element-button:hover {
    color: var(--wp--preset--color--primary) !important;
    text-decoration: underline;
    background-color: transparent !important;
  }

  .is-style-link .wp-element-button:hover::after,
  .is-style-link.wp-element-button:hover::after {
    background-color: var(--wp--preset--color--primary);
  }

  input,
  select,
  textarea {
    line-height: normal;
  }

  label {
    font-weight: var(--wp--custom--font-weight--default);
    font-size: var(--wp--preset--font-size--normal);
  }


/**
* Containers & Columns
* --------------------------------------------------------------------------- */

/* === Groups  === */

.wp-block-group { 
  gap: var(--wp--custom--gap);
  border-radius: var(--wp--custom--radius--default);
}

@media screen and (max-width: 781px) {
  .gap-22-on-mobile > * {
    margin-block-start: var(--wp--preset--spacing--22) !important;
  }
}

/* === Covers === */

.wp-block-cover, .wp-block-cover-image {
  padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--64);
  margin-bottom: 0;
  border-radius: var(--wp--custom--radius--default);
}
@media screen and (max-width: 600px) {
  .wp-block-cover .wp-block-cover__inner-container, 
  .wp-block-cover-image .wp-block-cover__inner-container {
    text-align: center;
    align-items: center;
  }
}

/* Homepage Cover - for PageSpeed */
.wp-block-cover.hero .wp-block-cover__image-background {
  aspect-ratio: 4 / 3;
}

/* === Columns === */

/* image inside a column cannot be too high on mobile */
.wp-block-columns:not(.is-not-stacked-on-mobile) .wp-block-column:has(>.wp-block-image:only-child) figure {
  margin-left: auto;
  margin-right: auto;
}
.wp-block-columns:not(.is-not-stacked-on-mobile) .wp-block-column:has(>.wp-block-image:only-child) figure img {
  object-fit: contain;
  max-height: 22em;
}

.wp-block-columns.is-style-default.cards .wp-block-column, .wp-block-group.cards {
  border-radius: var(--wp--custom--radius--default);
  box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.25);
}

/* === Media + Text === */

.wp-block-media-text {
  padding: var(--wp--preset--spacing--12);
  border-radius: var(--wp--custom--radius--large);
  border: 2px solid var(--wp--preset--color--light-grey);
}
.wp-block-media-text__media img {
  border-radius: var(--wp--custom--radius--default);
  object-position: 50% 20% !important;
}
.wp-block-media-text>.wp-block-media-text__content {
  padding-left: unset;
}
@media screen and (max-width: 1080px) {
  .wp-block-media-text{
    padding: var(--wp--preset--spacing--64) !important;
    display: flex;
    flex-direction: column-reverse;
    gap: var(--wp--preset--spacing--32);
  }
  .wp-block-media-text__content{
    padding: unset !important;
  }
  .wp-block-media-text.is-image-fill-element>.wp-block-media-text__media img{
    position: relative;
  }
}
@media screen and (max-width: 781px) {
  .wp-block-media-text {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--wp--preset--spacing--32);
    padding: var(--wp--preset--spacing--56) !important;
  }
  .wp-block-media-text>.wp-block-media-text__media {
    width: 100%;
  }
  .wp-block-media-text>.wp-block-media-text__content {
    padding: 0;
  }
}
@media screen and (max-width: 600px) {
  .wp-block-media-text {
    padding: 0 var(--wp--preset--spacing--32) !important;
  }
  .wp-block-group.cards.cards-hide {
    box-shadow: unset;
  }
  .wp-block-group.cards.cards-hide {
    background: transparent !important;
  }
  .wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{
    min-height: unset;
  }
}

/* === Grid === */
.wp-block-group.our-services-grid{
  align-items: start;
}

.wp-block-group.our-services-grid{
    grid-template-columns: auto auto auto auto;
  }

@media screen and (max-width: 1080px) {
  .wp-block-group.our-services-grid{
    grid-template-columns: auto auto;
  }
}
@media screen and (max-width: 781px) {
  .wp-block-group.our-services-grid img{
    width: 112px !important;
    height: 112px !important;
  }
  .wp-block-group:has(.wp-block-group.our-services-grid){
    padding: var(--wp--preset--spacing--64) 0 !important;
  }
  .wp-block-group.our-services-grid .wp-block-group.is-vertical{
    padding: 0 var(--wp--preset--spacing--16);
  }
}
@media screen and (max-width: 600px) {
  .wp-block-group.our-services-grid{
    grid-template-columns: auto;
  }
  .wp-block-group:has(.wp-block-group.our-services-grid){
    max-width: 400px;
    margin: 0 auto;
  }
}

/* === Process Works === */
.wp-block-group.process{
  max-width: 610px;
  margin: auto;
}
.wp-block-group.process .wp-block-image img{
  min-width: 60px;
  min-height: 60px;
}

.wp-block-group.process > .wp-block-group:not(:last-child)::after {
  content: "";
  position: absolute;
  top: unset;
  left: 30px; 
  width: 3px;
  height: calc(100% - 500px);
  background-color: var(--wp--preset--color--primary);
  z-index: -1;
}

@media screen and (max-width: 1080px) {
  .wp-block-group.process > .wp-block-group:not(:last-child)::after {
    left: 94px;
    height: calc(100% - 457px);
  }
}
@media screen and (max-width: 600px) {
  .wp-block-group.process > .wp-block-group:not(:last-child)::after {
    left: 53px;
    height: calc(100% - 450px);
  }
}
@media screen and (max-width: 480px) {
    .wp-block-group.process > .wp-block-group:not(:last-child)::after {
    height: calc(100% - 435px);
  }
}
@media screen and (max-width: 414px) {
    .wp-block-group.process > .wp-block-group:not(:last-child)::after {
    height: calc(100% - 502px);
  }
}
@media screen and (max-width: 360px) {
    .wp-block-group.process > .wp-block-group:not(:last-child)::after {
    left: 45px;
  }
}

.wp-block-group.process .wp-block-group{
  align-items: self-start;
}
.wp-block-group.process .wp-block-group.process-center{
  align-items: unset;
}
@media screen and (max-width: 1080px) {
  .wp-block-group.process {
    margin: auto;
    padding: 0 var(--wp--preset--spacing--64);
  }
}
@media screen and (max-width: 600px) {
  .wp-block-group.process {
    padding: 0 var(--wp--preset--spacing--32);
  }
}
@media screen and (max-width: 360px) {
  .wp-block-group.process {
    padding: 0 var(--wp--preset--spacing--16);
  }
}

@media screen and (max-width: 1080px) {
  .wp-block-group.our-services-grid{
    grid-template-columns: auto auto;
  }
}
@media screen and (max-width: 600px) {
  .wp-block-group.our-services-grid{
    grid-template-columns: auto;
  }
}

/* ___________________________________________________________________________  
   
   6. RESPONSIVENESS - GENERAL
______________________________________________________________________________ */

/* === Large Desktop === */

@media screen and (max-width: 1440px) {
  body {
    --wp--style--global--wide-size: calc(100% + var(--wp--preset--spacing--32) * 2);
  }
  .alignwide {
    margin-left: calc(0rem - var(--wp--preset--spacing--32));
    margin-right: calc(0rem - var(--wp--preset--spacing--32));
    width: var(--wp--style--global--wide-size);
    max-width: var(--wp--style--global--wide-size);
    border-radius: 0;
  }
}

/* === Smaller Desktop === */

@media screen and (max-width: 1280px) {
}

/* === Tablet === */

@media screen and (max-width: 1080px) {
  /* smaller typography */
  body {
    --wp--preset--font-size--h-1: 3.5em;
    --wp--preset--font-size--h-2: 2em;
    --wp--preset--font-size--h-3: 1.75em;
    --wp--preset--font-size--h-4: 1.375em;
    --wp--preset--font-size--h-5: 1.125em;
    --wp--preset--font-size--large: 1.125em;
    
    /* --wp--preset--spacing--8: 0.375rem;
    --wp--preset--spacing--12: 0.5rem;
    --wp--preset--spacing--16: 0.75rem;
    --wp--preset--spacing--24: 1.25rem;
    --wp--preset--spacing--22: 1.375rem;
    --wp--preset--spacing--32: 1.75rem; */
    --wp--preset--spacing--64: 4rem;
    --wp--preset--spacing--80: 5rem;
  }
}

/* === Mobile === */

/* WordPress mobile breakpoint - stacking columns */
@media screen and (max-width: 781px) {
  /* smaller type and spacing */
  body {
    --wp--preset--font-size--h-1: 3em;
    --wp--preset--font-size--h-2: 1.75em;
    --wp--preset--font-size--h-3: 1.5em;
    --wp--preset--font-size--h-4: 1.25em;
    --wp--preset--font-size--h-5: 1.125em;
    --wp--preset--font-size--large: 1.125em;
    --wp--preset--font-size--small: 0.875em;

    --wp--preset--spacing--24: 1rem;
    --wp--preset--spacing--32: 1.5rem;
    --wp--preset--spacing--40: 1.75em;
    --wp--preset--spacing--56: 2rem;
    --wp--preset--spacing--80: 3rem;
  }
}

/* === Small Mobile === */
@media screen and (max-width: 600px) {
  /* buttons stretch */
  .wp-block-buttons, .wp-block-button {
    width: 100%;
  }
  button, input[type='submit'], .button,
  .wp-element-button, .wp-block-button__link, 
  .wp-block-button .wp-block-button__link {
    width: 100%;
  } 
}

/* === Small Mobile === */
@media screen and (max-width: 480px) {
  body {
    font-size: 1em;
  }
}
