/* ==========================================================================
Global variables
========================================================================== */
header.out {
  transition: all 0.4s ease-in-out;
  background: rgba(255, 255, 255, 0);
}

header.in {
  background: var(--wp--preset--color--black);
  transition: all 0.4s ease-in-out;
}

body {
  background-color: var(--wp--preset--color--snow);
}

main {
  margin-top: 98px;
  text-wrap: pretty;
}

.grecaptcha-badge {
  visibility: hidden;
}

@media (max-width: 768px) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin-bottom: var(--wp--preset--spacing--10);
  }
}

@media (max-width: 1100px) {
  :root {
    --wp--custom--header-height--pre-header: 45px;
    --wp--custom--header-height--header-top: 70px;
  }
}

/* ==========================================================================
Base styles

Styles that are consistent site-wide.
========================================================================== */

/* Body
========================================================================== */

/* Headings
========================================================================== */

/* Paragraphs 
========================================================================== */

p {
	line-height: 1.5;
}

/* Typography spacing
========================================================================== */

/* Links
========================================================================== */

/* Lists
========================================================================== */

.wp-block-list {
	list-style-position: outside;
	padding-left: 2rem;
	
}

/* Buttons
========================================================================== */
.qt-section.has-snow-background-color
  .is-style-outline
  .wp-block-button__link:hover {
  color: var(--wp--preset--color--snow);
  background-color: var(--wp--preset--color--dark);
}

/* Inputs
========================================================================== */

/* Colors
========================================================================== */

/* Images & videos
========================================================================== */

.wp-block-image img:not(footer .wp-block-image img) {
  height: 100%;
  width: 100%;
  object-fit: cover;
  border-radius: 6px;
}

/* Iframe & embedded
========================================================================== */

/* ==========================================================================
Layout
========================================================================== */

footer .qt-section:has(.is-style-footer-top) {
  padding: 0;
}

/* Paddings & margins
========================================================================== */

.qt-section.container-fullwidth,
.qt-section.has-background {
  margin-bottom: 0;
}

/* Grids
========================================================================== */

/* Max widths
========================================================================== */

/* Containers
========================================================================== */

/* Columns
========================================================================== */

/* Header
========================================================================== */

header .is-style-header-flex .qt-section__inner {
  max-width: 100%;
  height: 80px;
  display: flex;
  margin: auto;
  justify-content: space-between;
  align-items: center;
  padding: 1rem var(--wp--preset--spacing--20);
  font-size: 14px;
}

header .header-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
}

#overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 0;
  transition: transform 0.3s ease-in-out;
}

#overlay.is-open {
  display: block;
}

.menu-icon {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 3rem;
  height: 3rem;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 3;
  position: relative;
  transition: all 350ms linear;
}

.menu-icon.is-open {
  filter: none;
}

.menu-icon span {
  width: 1.875rem;
  height: 2px;
  background-color: var(--wp--preset--color--black);
  cursor: pointer;
  transition: all 350ms linear;
}

.menu-icon.is-open span {
  transform: translateX(0);
  background: transparent;
}

.menu-icon span::before,
.menu-icon span::after {
  content: '';
  position: absolute;
  width: 1.875rem;
  height: 2px;
  transition: all 350ms linear;
  background-color: var(--wp--preset--color--dark);
}

.menu-icon span::before {
  transform: translateY(-0.625rem);
}

.menu-icon span::after {
  transform: translateY(0.625rem);
}

.menu-icon.is-open span::before {
  transform: rotate(45deg);
  top: 0;
  background: var(--wp--preset--color--dark);
}

.menu-icon.is-open span::after {
  transform: rotate(135deg);
  top: 0;
  background: var(--wp--preset--color--dark);
}

.hamburger-menu-container {
  display: block;
  position: fixed;
  top: 98px;
  right: 0;
  height: 100vh;
  width: 100vw;
  z-index: 2;
  transform: translateX(100%);
  transition: transform 0.3s ease-in-out;
  background: var(--wp--preset--color--snow);
}

.hamburger-menu-container.is-open {
  transform: translateX(0);
  overflow-y: scroll;
}

.hamburger-menu-container .menu-mobile {
  padding: 2rem;
}

.hamburger-menu-container .menu .menu-item {
  list-style: none;
}

.hamburger-menu-container .menu .menu-item a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: var(--wp--custom--font-weight--medium);
  font-size: 1.125rem;
  border-bottom: 1px solid var(--wp--preset--color--dark);
  padding: 1rem 0;
}

.hamburger-menu-container .menu li:has(.sub-menu) > a::after {
  content: '';
  display: inline-block;
  width: 12px;
  height: 10px;
  margin-left: 0.5rem;
  border-radius: 50%;
  background-image: url(../images/icon-select-dropdown.svg);
  background-size: contain;
  background-repeat: no-repeat;
}

@media (max-width: 425px) {
  nav div.hamburger-menu-container.is-open {
    width: 100vw;
  }
}

/* ----- desktop menu ----- */

.menu-desktop .menu {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  letter-spacing: 0.04em;
  gap: 2rem;
}

.menu-desktop .menu > li:last-child {
  padding: 0.5rem 1.5rem;
  color: var(--wp--preset--color--white);
  background-color: var(--wp--preset--color--red);
  border-radius: 3px;
}

.menu-desktop .menu > li:last-child:hover {
  background-color: #ff4247;
}

.menu-desktop .menu li:has(.sub-menu) {
  position: relative;
  padding: 0.5rem 1.5rem;
  border-radius: 3px;
  cursor: pointer;
  border: 2px solid var(--wp--preset--color--dark);
}

.menu-desktop .menu li:has(.sub-menu)::after {
  content: '';
  display: inline-block;
  width: 12px;
  height: 10px;
  margin-left: 0.5rem;
  border-radius: 50%;
  background-image: url('../images/icon-select-dropdown.svg');
  background-size: contain;
  background-repeat: no-repeat;
}

.menu-desktop .menu li:has(.sub-menu):hover {
  background-color: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--snow);
}

.menu-desktop .menu li:has(.sub-menu):hover::after {
  filter: invert(1);
}

.menu-desktop .menu li:hover .sub-menu {
  display: block;
  color: var(--wp--preset--color--dark);
}

.menu-desktop .menu .menu-item a {
  font-size: 1.125rem;
  font-weight: var(--wp--custom--font-weight--medium);
}

/* destop menu hidden */
@media (max-width: 1195px) {
  .header-nav .menu-desktop {
    display: none;
  }
}

/* hambuger menu hidden */
@media (min-width: 1196px) {
  .header-nav .menu-icon {
    display: none;
  }
}

/* ----- submenu desktop menu ----- */
.menu-desktop .sub-menu {
  display: none;
  position: absolute;
  top: 39px;
  left: -2px;
  border-radius: 3px;
  background: var(--wp--preset--color--snow);
  list-style: none;
  width: max-content;
}

.menu-desktop .sub-menu li {
  padding: 1rem 1.5rem;
  border-radius: 3px;
}

.menu-desktop .sub-menu li:hover {
  color: var(--wp--preset--color--snow);
  background-color: var(--wp--preset--color--dark);
}

.sub-menu.is-open {
  display: block;
}

/* ----- submenu hamburger menu ----- */
.hamburger-menu-container.is-open .sub-menu {
  max-height: 0;
  overflow: hidden;
  padding-left: 2rem;
  transition: max-height 150ms linear;
}

.hamburger-menu-container.is-open .sub-menu li a {
  font-weight: var(--wp--custom--font-weight--light);
}

/* ----- menu items ----- */

.sub-menu .current-menu-item > a {
  color: var(--wp--preset--color--celadon-blue);
}

@media screen and (max-width: 1195px) {
  .menu .current-menu-item > a {
    color: var(--wp--preset--color--celadon-blue);
  }
}

/* ----- */

.is-style-header-top {
  border-bottom: 1px solid var(--wp--custom--border--color);
  font-size: 14px;
  color: var(--wp--preset--color--white);
}

.is-style-header-bottom {
  border-bottom: 1px solid var(--wp--custom--border--color);
}

.is-style-header-top .grid {
  grid-template-columns: 1fr 1.5fr 1fr;
  align-items: center;
}

.wp-block-site-logo img {
  width: 192px;
  height: 50px;
}

header .qt-search-results {
  box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.07);
}

@media (min-width: 1101px) {
  header .qt-search__container {
    position: relative;
  }

  header .qt-search-results {
    top: 42px;
    padding: 1rem 1.5rem;
  }
}

@media (min-width: 1100px) {
  .is-style-header-top .grid {
    grid-template-columns: auto 1fr;
  }

  .is-style-header-bottom {
    display: none;
  }

  header .qt-container:has(.user-toolbar) {
    grid-column: 3;
    justify-content: flex-end;
  }
}

/* Footer
========================================================================== */

@media (max-width: 768px) {
}

/* ==========================================================================
Utility classes

Reusable classes for global styles.
========================================================================== */

.icon::before {
  content: '';
  display: inline-block;
  vertical-align: sub;
  width: 1.25rem;
  height: 1.25rem;
  background-repeat: no-repeat !important;
}

.phone::before {
  background: url(../images/icon-phone-line.svg);
  background-size: 1.25rem 1.25rem;
  margin-right: 0.625rem;
}

.adress::before {
  background: url(../images/icon-google-maps-pin.svg);
  background-size: 1.25rem 1.25rem;
  margin-right: 0.625rem;
}

.trash::before {
  background: url(../images/icon-trash-can.svg);
  background-size: 25px 25px;
  margin-right: 0.625rem;
}

/* ==========================================================================
Component styles

Make sure the styles are neutral so it can be customized in theme style.
========================================================================== */

/* Services
========================================================================== */

.is-style-services .grid {
  grid-gap: 3.125rem;
  row-gap: 4.375rem;
}

.qt-section.is-style-services .wp-block-image img {
  height: 219px;
}

.is-style-services .is-style-h2-style {
  font-size: var(--wp--preset--font-size--l);
  font-weight: var(--wp--custom--font-weight--medium);
  margin-top: 2rem !important;
  margin-bottom: 1rem !important;
  position: relative;
}

.is-style-services .is-style-h2-style-arrow {
  font-size: var(--wp--preset--font-size--l);
  font-weight: var(--wp--custom--font-weight--medium);
  margin-top: 2rem !important;
  margin-bottom: 1rem !important;
  position: relative;
}

.is-style-services .is-style-h2-style-arrow::after {
  content: '';
  position: absolute;
  top: 3px;
  right: 0;
  width: 20px;
  height: 18px;
  background-image: url('../images/icon-arrow-right.svg');
  background-size: cover;
  background-repeat: no-repeat;
}

@media (max-width: 1024px) {
  .is-style-services .grid {
    grid-gap: 2rem;
  }
}

/* Navbar
========================================================================== */

.is-style-navbar {
  color: var(--wp--preset--color--dark);
  background-color: var(--wp--preset--color--snow);
  padding: 1.5rem 2rem;
  box-shadow: rgba(149, 157, 165, 0.2) 0px 0px 8px;
}

.is-style-navbar .qt-section__inner {
  display: flex;
  grid-gap: 0;
  justify-content: space-between;
  align-items: center;
}

/* Cta
========================================================================== */

.qt-section.is-style-cta {
  color: var(--wp--preset--color--snow);
  margin-top: 5rem;
  margin-bottom: 5rem;
}

.is-style-cta .wp-block-heading {
  margin-bottom: 2rem;
}

/* Buttons
========================================================================== */

.wp-block-buttons {
  gap: 1.25rem;
}

.wp-block-button__link {
  font-size: var(--wp--preset--font-size--button);
}

/* Button primary */

/* Button secondary */
.is-style-button-secondary .wp-block-button__link {
  color: var(--wp--preset--color--snow);
  padding: 0.5rem 1.5rem;
  border-radius: 3px;
  background-color: var(--wp--preset--color--red);
}

.is-style-button-secondary .wp-block-button__link:hover {
  background-color: #ff4247;
}

/* Button outline */
.is-style-outline .wp-block-button__link {
  color: var(--wp--preset--color--dark);
  padding: 0.5rem 1.5rem;
  border-radius: 3px;
  border: 2px solid var(--wp--preset--color--dark);
  background-color: var(--wp--preset--color--snow);
}

/* Button outline inverted */

/* Button on background */
.is-style-button-on-background .wp-block-button__link {
  padding: 0.5rem 1.5rem;
  border-radius: 3px;
  border: 2px solid var(--wp--preset--color--snow);
  background-color: transparent;
}

.is-style-button-on-background .wp-block-button__link:hover {
  color: var(--wp--preset--color--dark);
  background-color: var(--wp--preset--color--snow);
}

/* Button only text */
.is-style-button-only-text .wp-block-button__link {
  background-color: transparent;
  color: var(--wp--custom--text-color--primary);
  padding-left: 0;
  padding-right: 0;
  display: inline-flex;
  align-items: center;
}

.is-style-button-only-text .wp-block-button__link::after {
  content: url('../images/icon-arrow-right.svg');
  filter: invert(9%) sepia(68%) saturate(538%) hue-rotate(152deg)
    brightness(93%) contrast(94%);
  margin-left: 0.5rem;
  bottom: -1px;
  position: relative;
}

/* Forms
========================================================================== */

.wpcf7-form {
  grid-template-columns: minmax(0, 1fr);
  color: var(--wp--preset--color--snow);
}

.wpcf7-form p > a {
  border-bottom: 1px solid var(--wp--preset--color--snow);
}

.wpcf7-form p > a:hover {
  text-decoration: none;
  border-bottom: none;
}

.wpcf7-form p:last-of-type {
  text-align: left;
}

.wpcf7-form label {
  font-size: var(--wp--preset--font-size--m);
}

.wpcf7-form label::after {
  display: none;
}

.wpcf7-form select,
.wpcf7-form input,
.wpcf7-form textarea {
  padding: 1rem 1.25rem;
  color: var(--wp--preset--color--dark);
  border-radius: 4px;
  margin-top: 0.5rem;
}

.wpcf7-form select:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border: none;
}

.wpcf7-form input[type='submit'] {
  color: var(--wp--preset--color--snow);
  padding: 0.5rem 1.5rem;
  background-color: var(--wp--preset--color--red);
  border-radius: 3px;
  font-size: var(--wp--preset--font-size--regular);
}

.wpcf7-form input[type='submit']:hover {
  background-color: #ff4247;
}

/* ----- */

.has-background[style='background-color:#0c222b'] :is(label, .acceptance),
.has-background[style='background-color:#163039'] :is(label, .acceptance) {
  color: var(--wp--custom--text-color--inverted);
}

.wpcf7-form p:nth-last-of-type(-n + 4) {
  grid-column: 1 / -1;
}

@media (max-width: 980px) {
  .wpcf7-form p {
    grid-column: 1/-1;
  }
}

/* Cards
========================================================================== */

.card-employee .wp-block-image {
  margin-bottom: var(--wp--preset--spacing--10);
  aspect-ratio: var(--wp--custom--aspect-ratio--portrait);
}

.card-employee .wp-block-image img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.card-employee__name {
  font-size: var(--wp--preset--font-size--l);
  font-family: var(--wp--preset--font-family--heading);
  font-weight: 400;
  color: var(--wp--custom--text-color--primary);
  margin-bottom: var(--wp--preset--spacing--05);
}

.card-employee__title {
  margin-bottom: var(--wp--preset--spacing--05);
}

.card-employee__phone {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.card-employee__phone img {
  filter: invert(20%) sepia(30%) saturate(2402%) hue-rotate(319deg)
    brightness(110%) contrast(95%);
}

/* Accordion
========================================================================== */

/* Splide slider
========================================================================== */

.splide__list {
  display: flex;
  align-items: center;
}

/* Breadcrumbs
========================================================================== */

.is-style-breadcrumbs .qt-section__inner {
  max-width: var(--wp--custom--maxwidth--l);
}

.is-style-breadcrumbs a {
  border-bottom: 1px solid var(--wp--preset--color--dark);
}

.is-style-breadcrumbs a:hover {
  text-decoration: none;
}

.is-style-breadcrumbs .separator {
  margin-inline: 0.5rem;
}

.is-style-breadcrumbs .last {
  font-weight: bold;
}

/* ==========================================================================  
Custom Sections & Blocks  
========================================================================== */

.is-style-copyright-footer {
  margin-top: -1.25rem;
}

.is-style-copyright-footer a:hover {
  color: var(--wp--preset--color--white);
  opacity: 1;
}

/* Hero 
========================================================================== */

.is-style-hero .wp-block-cover {
  height: 770px;
  max-height: 770px;
}

.is-style-hero .wp-block-cover__inner-container {
  max-width: var(--wp--custom--maxwidth--default);
}

.is-style-hero .wp-block-heading {
  display: inline-block;
  max-width: var(--wp--custom--maxwidth--m);
}

/* Eyebrow 
========================================================================== */

.is-style-eyebrow {
  color: var(--wp--custom--text-color--primary);
}

/* Header col 2
========================================================================== */

.is-style-header-col-2 .grid {
  grid-gap: 2.5rem;
}

.is-style-header-col-2 .wp-block-image img {
  aspect-ratio: 4/3;
}

/* Stacked boxes
========================================================================== */

.is-style-stacked-boxes .grid {
  grid-gap: 2.5rem;
}

.is-style-stacked-boxes .wp-block-image img {
  aspect-ratio: 4/3;
}

@media (max-width: 670px) {
  .is-style-stacked-boxes .is-vertically-aligned-center {
    order: 1;
  }
}

/* Logo slider 
========================================================================== */

.qt-section.is-style-logo-slider {
  padding: 5rem 2rem;
}

.is-style-logo-slider .wp-block-heading {
  margin-bottom: 5rem;
}

/* Footer Top
========================================================================== */

.qt-section.is-style-footer-top {
  color: var(--wp--preset--color--snow);
  padding-bottom: 0;
}

.is-style-footer-top {
  color: var(--wp--preset--color--dark);
}

.is-style-footer-top .qt-section__inner {
  padding-top: 0;
  padding-bottom: 3.125rem;
}

.is-style-footer-top .grid-col-4 {
  grid-template-columns: repeat(4, minmax(0, auto));
  grid-gap: 2rem;
}

.is-style-footer-top .wp-block-image img {
  width: 192px;
  height: 50px;
  margin-bottom: 1rem;
}

.is-style-footer-top .is-style-footer-heading {
  font-weight: var(--wp--custom--font-weight--medium);
  font-size: var(--wp--preset--font-size--regular-medium);
  margin-bottom: 1.5rem;
}

@media (max-width: 767px) {
  .is-style-footer-top .grid-col-4 {
    grid-template-columns: repeat(2, minmax(0, auto));
  }

  .is-style-footer-top .grid-col-4 .qt-container:first-child {
    grid-column: 1 / -1;
  }
}

/* Footer bottom
========================================================================== */

.qt-section.is-style-footer-bottom {
  padding-top: 0;
  padding-bottom: 0;
}

.is-style-footer-bottom {
  color: var(--wp--preset--color--snow);
}

.is-style-footer-bottom .qt-section__inner {
  padding-top: 0;
  padding-bottom: 1rem;
}

.is-style-footer-bottom .grid-col-3 {
  grid-template-columns: 1fr 1.1fr 1.7fr;
}

.is-style-footer-bottom .grid-col-3 .qt-container:nth-child(2) {
  display: flex;
  justify-content: end;
  align-items: center;
  gap: 1.25rem;
}

.is-style-footer-bottom .grid-col-3 .qt-container:nth-child(2) a {
  text-decoration: none;
  border-bottom: 1px solid var(--wp--preset--color--snow);
}

.is-style-footer-bottom .grid-col-3 .qt-container:nth-child(2) a:hover {
  border: none;
}

.is-style-footer-bottom .grid-col-3 .qt-container:nth-child(2) p {
  margin-bottom: 0;
}

.is-style-footer-bottom .grid-col-3 .qt-container:last-child {
  display: flex;
  justify-content: end;
  align-items: center;
}

@media (max-width: 767px) {
  .is-style-footer-bottom .grid-col-3 {
    grid-template-columns: 1fr;
  }

  .is-style-footer-bottom .grid-col-3 .qt-container:nth-child(2) {
    margin-right: auto;
    margin-left: 0;
  }

  .is-style-footer-bottom .grid-col-3 .qt-container:last-child {
    justify-content: start;
  }
}

/* Footer image container
========================================================================== */

.is-style-footer-image-container {
  display: flex;
  justify-content: start;
  align-items: center;
  gap: 0.625rem;
}

.is-style-footer-image-container img {
  width: 100%;
  height: 100%;
  max-width: 160px;
  max-height: 60px;
}

/* Phone icon
========================================================================== */

.is-style-phone-icon::before {
  content: '';
  display: inline-block;
  vertical-align: sub;
  width: 1rem;
  aspect-ratio: 1;
  background-image: url('../images/icon-phone-fill.svg');
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.625rem;
}

/* Email icon
========================================================================== */

.is-style-email-icon::before {
  content: '';
  display: inline-block;
  vertical-align: sub;
  width: 1rem;
  aspect-ratio: 1;
  background-image: url('../images/icon-envelop-fill.svg');
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.625rem;
}

/* Facebook icon
========================================================================== */

.is-style-facebook-icon::before {
  content: '';
  display: inline-block;
  vertical-align: sub;
  width: 1rem;
  aspect-ratio: 1;
  background-image: url('../images/facebook-circular-fill.svg');
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.625rem;
}

/* Instagram icon
========================================================================== */

.is-style-instagram-icon::before {
  content: '';
  display: inline-block;
  vertical-align: sub;
  width: 1rem;
  aspect-ratio: 1;
  background-image: url('../images/instagram-circular-fill.svg');
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.625rem;
}

/* Nested link
========================================================================== */

.is-style-nested-link a {
  text-decoration: underline;
}

/* FAQ
========================================================================== */

.faq {
  background-color: var(--wp--custom--background--secondary);
  border-radius: 10px;
}

.faq .accordion-item:not(:last-of-type) {
  border-bottom: 1px solid var(--wp--preset--color--dark-gray);
}

/* Right aligned section
========================================================================== */

.qt-section.is-style-right-aligned .qt-section__inner,
.qt-section.is-style-left-aligned .qt-section__inner {
  grid-template-columns: 42% 42%;
  padding: var(--wp--custom--section--spacing-y)
    var(--wp--custom--section--spacing-x);
}

.qt-section.is-style-right-aligned .qt-section__inner {
  justify-content: end;
}

/* Left alignt - lägg till padding på denna och ovan */
.qt-section.is-style-left-aligned .qt-section__inner {
  justify-content: start;
}

/* Center alignt container */
.is-style-container-align-center {
  display: flex;
  flex-direction: column;
}

/* Right alignt container */
.is-style-container-align-right {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

/* Left alignt container */
.is-style-container-align-left {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Negative margin top
========================================================================== */

.is-style-negative-margin-top {
  margin-top: calc(-3 * var(--wp--custom--section--spacing-y));
}

/* ==========================================================================
Responsive styles
========================================================================== */

.hidden {
  display: none;
}

.qt-section.has-background.no-padding-top {
	padding-top: 0;
}

.qt-section.margin-top-bottom {
	margin-top:2rem;
	margin-bottom: 2rem;
}


.qt-section.margin-top-bottom img {
	width: 100%;
	height: 100%;
	/* max-height: 300px; */
	aspect-ratio: 4 / 3;
}