/* CODESTITCH STYLES, RESET, HEADER/NAVIGATION AND FOOTER */
/*-- -------------------------- -->
<---        Core Styles         -->
<--- -------------------------- -*/
/* CodeStitch Root and Helpers */
@media only screen and (min-width: 0rem) {
  :root {
    --primary: #EF476F;
    --primaryLight: #FFD166;
    --secondary: #06d6a0;
    --secondaryLight: #001f3f;
    --headerColor: #5aa9e6;
    --subHeaderColor: #0000ff;
    --colorOne: #a9e5bb;
    --colorTwo: #ff6392;
    --colorThree: #7fc8f8;
    --colorFour: #f87c7c;
    --colorFive: #ff0000;
    --bodyTextColor: #4e4b66;
    --bodyTextColorWhite: #fafbfc;
    --bodyBackground: #FEF3EF;
    /* 13px - 16px */
    --topperFontSize: clamp(0.8125rem, 1.6vw, 1rem);
    /* 31px - 49px */
    --headerFontSize: clamp(1.9375rem, 3.9vw, 3.0625rem);
    --bodyFontSize: 1rem;
    /* 60px - 100px top and bottom */
    --sectionPadding: clamp(1.75rem, 2.82vw, 2.25rem) 1rem;
  }


  .cs-topper {
    display: block;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: var(--topperFontSize);
    line-height: 1.2em;
    font-weight: 700;
    color: var(--secondary);
    text-align: inherit;
  }

  .cs-title {
    position: relative;
    margin: 0 0 1rem 0;
    max-width: 43.75rem;
    font-size: var(--headerFontSize);
    line-height: 1.2em;
    font-weight: 900;
    color: var(--headerColor);
    text-align: center;
  }

  .cs-text {
    margin: 0;
    max-width: 40.625rem;
    width: 100%;
    font-size: var(--bodyFontSize);
    line-height: 1.5em;
    color: var(--bodyTextColor);
    text-align: inherit;
  }

  .cs-button-solid {
    z-index: 1;
    position: relative;
    display: inline-block;
    background-color: var(--primary);
    width: auto;
    padding: 0 1.875rem;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 1rem;
    line-height: 3.125em;
    font-weight: bold;
    color: #000;
    transition: color 0.3s;
    transition-delay: 0.1s;
    text-align: center;
  }

  .cs-button-solid:hover {
    color: #fff;
  }

  .cs-button-solid:hover:before {
    width: 100%;
  }

  .cs-button-solid:before {
    z-index: -1;
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    opacity: 1;
    display: block;
    background-color: var(--secondary);
    height: 100%;
    width: 0;
    transition: width 0.3s;
  }

  .cs-hide-on-mobile {
    display: none;
  }
}

/*===============================================================================/
/                                Header                                          /
/===============================================================================*/
.cs-header-container::before {
  content: '';
  width: 100%;
  height: 100%;
  background-color: var(--primary);
  opacity: 0.05;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.cs-header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px;
  background: none;
  flex-wrap: nowrap;
  max-width: 80rem;
  margin: 0 auto;
}

.cs-header-icon,
.cs-decorative-image {
  flex: 1 1 auto;
  max-width: 6rem;
  background-color: var(--bodyBackground);
}

.cs-header-icon img,
.cs-decorative-image img {
  width: 100%;
  height: auto;
  max-height: 9rem;
  display: block;
}

.cs-logo-container {
  flex: auto;
  display: flex;
  justify-content: center;
  padding: 0 10px;
  max-width: 20rem;
}

.cs-logo {
  width: 100%;
  object-fit: contain;
}

.cs-etsy {
  display: none;
}

/* Responsive tweaks */
@media (max-width: 768px) {

  .cs-header-icon,
  .cs-decorative-image {
    display: none;
  }

  .cs-logo {
    max-height: 12rem;
  }

  .cs-etsy {
    display: contents;
  }
}


.cs-background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* makes the top of the image start at the top of the parent */
  object-position: top;
  position: absolute;
  opacity: 0.25;
  top: 0;
  left: 0;
  z-index: -1;
}

.cs-background {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  .cs-hide-on-mobile {
    display: block;
  }

  .cs-hide-on-desktop {
    display: none;
  }

}

/*===============================================================================/
/                                Header end                                      /
/===============================================================================*/
/* Fonts and general styles */
@media only screen and (min-width: 0rem) {

  body,
  html {
    margin: 0;
    overflow-x: hidden;
    padding: 0;
    font-family: "Roboto", Arial, sans-serif;
    font-size: 100%;
    color: var(--bodyTextColor);
  }

  *,
  *:before,
  *:after {
    margin: 0;
    box-sizing: border-box;
    padding: 0;
  }

  body {
    transition: background-color 0.3s;
  }

  .container {
    position: relative;
    margin: auto;
    width: 92%;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: 0;
    color: var(--headerColor);
  }

  p,
  li,
  a {
    margin: 0;
    font-size: 1rem;
    line-height: 1.5em;
  }

  p,
  li {
    color: #353535;
  }

  a:hover,
  button:hover {
    cursor: pointer;
  }

  .skip {
    z-index: -1111111;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
  }

  /* roboto-regular - latin */
  @font-face {
    font-style: normal;
    font-family: "Roboto";
    font-weight: 400;
    font-display: swap;
    src: local(""), url("/assets/fonts/roboto-v29-latin-regular.woff2") format("woff2"), url("/assets/fonts/roboto-v29-latin-regular.woff") format("woff");
    /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
  }

  /* roboto-700 - latin */
  @font-face {
    font-style: normal;
    font-family: "Roboto";
    font-weight: 700;
    font-display: swap;
    src: local(""), url("/assets/fonts/roboto-v29-latin-700.woff2") format("woff2"), url("/assets/fonts/roboto-v29-latin-700.woff") format("woff");
    /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
  }

  /* roboto-900 - latin */
  @font-face {
    font-style: normal;
    font-family: "Roboto";
    font-weight: 900;
    font-display: swap;
    src: local(""), url("/assets/fonts/roboto-v29-latin-900.woff2") format("woff2"), url("/assets/fonts/roboto-v29-latin-900.woff") format("woff");
    /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
  }
}

/* Reset Margins */
@media only screen and (min-width: 1024px) {

  body,
  html {
    margin: 0;
    padding: 0;
  }
}

/* Scale full website with the viewport width */
@media only screen and (min-width: 3000px) {

  body,
  html {
    font-size: 0.55vw;
  }
}



/*-- -------------------------- -->
<---   Interior Page Header     -->
<--- -------------------------- -*/
/* Mobile */
@media only screen and (min-width: 0rem) {
  #int-hero {
    z-index: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 30vh;
    padding-top: 3.125rem;
  }

  #int-hero picture {
    z-index: -2;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
  }

  #int-hero picture img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
  }

  #int-hero h1 {
    position: relative;
    margin: 0 auto;
    margin-top: 4.375rem;
    margin-bottom: 1.875rem;
    max-width: 31.25rem;
    width: 96%;
    font-size: 2.1333333333rem;
    color: #fff;
    text-align: center;
  }

  #int-hero p {
    display: block;
    margin: auto;
    margin-bottom: 1.875rem;
    max-width: 25rem;
    width: 96%;
    color: #fff;
    text-align: center;
  }

  #int-hero:before {
    z-index: -1;
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    opacity: 0.7;
    display: block;
    background: #000;
    height: 100%;
    width: 100%;
  }

  #services-1972 .cs-container {
    max-width: 20rem;
  }

  #services-1972 .cs-container {
    max-width: 20rem;
  }

  #services-1972 .cs-extra-pic {
    display: none;
  }
}

/* Tablet */
@media only screen and (min-width: 48rem) {
  #int-hero {
    font-size: 100%;
  }

  #int-hero h1 {
    font-size: 4rem;
  }
}

/* Small Desktop */
@media only screen and (min-width: 64rem) {
  #int-hero {
    background-attachment: fixed;
    min-height: 18.75rem;
    height: auto;
    padding-top: 11.25rem;
    font-size: inherit;
    padding-block-end: 6.25rem;
  }
}

/*-- -------------------------- -->
<---           Footer           -->
<--- -------------------------- -*/
/* Mobile */
@media only screen and (min-width: 0rem) {
  #footer {
    background: #1c1c1c;
    padding: 5.25rem 0 1.25rem;
    font-size: min(4vw, 1.2em);
  }

  #footer .left-section {
    margin: auto;
    margin-bottom: 3.125rem;
    text-align: center;
  }

  #footer .left-section .logo {
    display: inline-block;
    margin: auto;
    margin-bottom: 1.875em;
    height: 2em;
    width: auto;
    text-align: center;
  }

  #footer .left-section .logo img {
    display: block;
    height: 100%;
    width: auto;
  }

  #footer .left-section p {
    opacity: 0.9;
    margin: auto;
    width: 100%;
    font-size: 0.875rem;
    line-height: 1.9285714286rem;
    color: #fff;
    text-align: center;
  }

  #footer .right-section {
    margin: auto;
    max-width: 25.4375rem;
    width: 96%;
  }

  #footer .right-section .lists {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: auto;
    max-width: 19.1875rem;
    width: 96%;
  }

  #footer .right-section .lists ul {
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;
  }

  #footer .right-section .lists ul li {
    opacity: 0.9;
    margin-bottom: 0.75rem;
    list-style: none;
    font-size: 1.125rem;
    color: #fff;
  }

  #footer .right-section .lists ul li a {
    text-decoration: none;
    line-height: 1.1666666667em;
    color: #fff;
    transition: color 0.3s;
  }

  #footer .right-section .lists ul li a:hover {
    color: var(--primary);
  }

  #footer .right-section .lists ul h2 {
    position: relative;
    margin-bottom: 2.3125rem;
    text-transform: uppercase;
    font-size: 1.125rem;
    line-height: 1.1666666667em;
    font-weight: bold;
    color: #fff;
  }

  #footer .right-section .lists ul h2:before {
    position: absolute;
    bottom: -1rem;
    left: 0;
    content: "";
    opacity: 1;
    display: block;
    background: var(--primary);
    height: 0.125rem;
    width: 6.0625rem;
  }

  #footer .right-section .lists ul:nth-of-type(3) {
    margin-top: 3.125rem;
  }

  #footer .right-section .lists ul:nth-of-type(3) li {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 1rem;
  }

  #footer .right-section .lists ul:nth-of-type(3) li:last-of-type {
    margin-bottom: 0;
  }

  #footer .right-section .buttons {
    display: flex;
    justify-content: center;
  }

  #footer .right-section .cs-button-solid {
    margin: 0;
    height: 3.3125rem;
    width: 15.625rem;
    padding-top: 0.1875rem;
  }

  #footer .credit {
    margin: auto;
    margin-top: 6.25rem;
    width: 96%;
    font-size: 1rem;
    line-height: 2.25rem;
    color: #fff;
    text-align: center;
  }

  #footer .credit a {
    text-decoration: none;
    font-size: 1rem;
    color: var(--primary);
  }

  #footer .credit a:hover {
    text-decoration: underline;
  }

  #footer .credit .copyright {
    display: block;
    font-size: 1rem;
  }
}

/* Small Desktop */
@media only screen and (min-width: 64rem) {
  #footer {
    font-size: min(1.2vw, 1em);
  }

  #footer .container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin: auto;
    max-width: 82.5rem;
    width: 96%;
    padding: 0;
  }

  #footer .left-section {
    margin: 0;
    width: 25.5625rem;
    text-align: left;
  }

  #footer .left-section .logo {
    margin-left: 0;
    height: 2.5rem;
    text-align: left;
  }

  #footer .left-section p {
    margin-left: 0;
    text-align: left;
  }

  #footer .right-section {
    margin: 0;
    max-width: none;
    width: 38.0625rem;
  }

  #footer .right-section .lists {
    margin: 0;
    max-width: 48.0625rem;
    width: 96%;
  }

  #footer .right-section .lists ul li a {
    position: relative;
  }

  #footer .right-section .lists ul li a:before {
    position: absolute;
    bottom: -0.1875rem;
    left: 0;
    content: "";
    opacity: 1;
    display: block;
    background: var(--primary);
    height: 0.125rem;
    width: 0%;
    transition: width 0.3s;
  }

  #footer .right-section .lists ul li a:hover:before {
    width: 100%;
  }

  #footer .right-section .lists ul:nth-of-type(3) {
    margin-top: 0;
  }

  #footer .right-section .lists ul:nth-of-type(3) li:first-of-type {
    margin-bottom: 0;
  }

  #footer .right-section .buttons {
    justify-content: flex-start;
  }

  #footer .credit .copyright {
    display: inline-block;
  }
}

/*-------------------------------------------------------------
--                      WhatsApp styling                     --
--------------------------------------------------------------*/
.icon-whatsapp {
  position: fixed;
  /* Keeps the button in a fixed position on the screen */
  z-index: 9998;
  /* Ensures the button is above other elements */
  right: 20px;
  /* Positions the button 20px from the right-hand side of the screen */
  top: 10px;
  /* Positions the button 10px from the bottom of the screen */
  display: flex;
  /* Uses Flexbox for the internal button layout */
  align-items: centre;
  /* Centres the content (icon) vertically */
  justify-content: center;
  /* Centers the content (icon) horizontally */
  padding: 35px;
  /* Internal spacing around the icon */
  border-radius: 50%;
  /* Makes the button circular */
  background: #25D366 !important;
  /* Background colour of the button */
  box-shadow: 0 0 20px transparent;
  /* Soft shadow around the button */
  color: #25D366 !important;
  /* Icon colour */
  font-size: 40px;
  /* Size of the icon inside the button */
  line-height: 47px;
  /* Line height for text/icon */
  text-align: center;
  /* Alignment of the text/icon */
  text-decoration: none;
  /* Removes any text decoration from the link */
}

.icon-whatsapp:hover {
  background: #128C7E !important;
  /* Background color on mouseover */
  box-shadow: 0 0 20px rgb(75 57 75 / 50%);
  /* Shadow more prominent on mouseover */
  color: var(--primary) !important;
  /* Mouse-over icon color */
}

/*# sourceMappingURL=root.css.map */