:root {

    /* Color declarations */
    --et-red: #C6342A;
    --et-blue: #1F3D7A;
    --offblack: #242728;
    --dark-gray: #6D7578;
    --medium-gray: #AFB4B6;
    --light-gray: #F8F8F8;

    /* Top margin */
    --top-margin-sm: 68px;
    --top-margin-lg: 110px; /* 992 px */
    --top-margin-xl: 128px; /* 1700 px */
}

/* 
-----------------------------------------
BASE
-----------------------------------------
*/

::selection {
    background-color: var(--offblack);
    color: #fff;
}

.bg-gray {
    background-color: var(--light-gray);
}

.bg-blue {
    background-color: var(--et-blue);
}

a, a:link, a:active {
    color: var(--et-blue);
    text-decoration: none;
    transition: none;
    text-underline-offset: 0.3em;
}

a:focus-visible,
button:focus-visible {
    outline: 3px dotted var(--et-blue);
    color: var(--et-blue);
}

.bg-blue a:focus-visible,
.bg-blue button:focus-visible {
    outline: 3px dotted #FFFFFF;
    color: #FFFFFF;
}

[type=button], [type=reset], [type=submit], button {
    -webkit-appearance: none;
    appearance: none;
}

.scroll-to {
    display: block;
    position: relative;
    top: calc(var(--top-margin-sm) * -1);
    visibility: hidden;
}

@media screen and (min-width: 992px) {

    .scroll-to {
        top: calc(var(--top-margin-lg ) *-1)
    }
}

@media screen and (min-width: 1700px) {

    .scroll-to {
        top: calc(var(--top-margin-xl) * -1)
    }
}

ul {
    padding-left: 1em;
}

ul.list-style-none {
    list-style: none;
    padding: 0;
}

a:hover {
    color: var(--et-red);
    text-decoration: underline;
}

img {
    max-width: 100%;
}

figure {
    margin-bottom: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    width: 100%;
    overflow-x: hidden;
}

body, p, li {
    font-family: 'Inter', sans-serif;
    font-weight: 300;
    font-size: clamp(1rem, 0.964rem + 0.152vw, 1.125rem);
    color: var(--offblack);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

b, strong {
    font-weight: 700;
}

h1 {
    font-size: clamp(1.75rem, 1.414rem + 1.493vw, 3rem); /* 360-1700 */
    color: var(--et-blue);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 0.2em;
    text-transform: none;
}

h2 {
    color: var(--et-blue);
    font-weight: 700;
    font-size: clamp(1.5rem, 1.231rem + 1.194vw, 2.5rem); /* 360-1700 */
    margin-bottom: 0.75rem;
    line-height: 1.15;
    margin-top: 1.3em;
}

h3 {
    color: var(--offblack);
    font-weight: 600;
    font-size: clamp(1.25rem, 1.178rem + 0.303vw, 1.5rem);
    text-transform: none;
    margin-top: 1.5em;
}

h2:first-child,
h3:first-child {
    margin-top: 0;
}

p.ingress {
    font-weight: 400;
    font-size: clamp(1.25rem, 1.214rem + 0.152vw, 1.375rem);
    line-height: 1.4;
}

p:last-child {
    margin-bottom: 0;
}

/* ---------- Padding x space ---------- */

.padding-x-space {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

@media (min-width: 768px) {
    .padding-x-space {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media (min-width: 1400px) {
    .padding-x-space {
        padding-left: calc(50% - 580px);
        padding-right: calc(50% - 580px);
    }
}

@media (min-width: 1700px) {
    .padding-x-space {
        padding-left: calc(50% - 750px);
        padding-right: calc(50% - 750px);
    }
}

/* ---------- Padding y space ---------- */

.padding-y-space {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

@media (min-width: 1200px) {
    .padding-y-space {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }
}

@media (min-width: 1700px) {
    .padding-y-space {
        padding-top: 4.5rem;
        padding-bottom: 4.5rem;
    }
}

/* ---------- BS grid ---------- */

.row {
    margin-left: -1.25rem;
    margin-right: -1.25rem;
}

.row > * {
    padding-right: 1.25rem;
    padding-left: 1.25rem;
}

@media screen and (min-width: 768px) {

    .row {
        margin-left: -2rem;
        margin-right: -2rem;
    }

    .row > * {
        padding-right: 2rem;
        padding-left: 2rem;
    }
}

/* ---------- Button ---------- */

a.btn, button.btn {
    display: inline-block;
    font-size: 1rem;
    background-color: transparent;
    color: var(--et-red);
    border: 2px solid var(--et-red);
    padding: 1rem 1.875rem;
    font-size: 0.875rem;
    font-weight: 600;
    transition: all ease 0.2s;
    border-radius: 0;
    line-height: 1.2;
    text-transform: uppercase;
}

a.btn:hover,
a.btn:focus,
a.btn:focus-visible,
a.btn:active {
    text-decoration: none;
    background-color: var(--et-red) !important;
    color: #FFFFFF !important;
    border-color: var(--et-red) !important;    
}

a.btn-white {
    border-color: #FFFFFF;
    color: #FFFFFF;
}

a.btn-white:hover,
a.btn-white:focus,
a.btn-white:focus-visible,
a.btn-white:active {
    background-color: var(--dark-gray) !important;
    color: #FFFFFF;
    border-color: var(--dark-gray) !important;
}

a.btn:focus-visible {
    outline: 3px dotted var(--et-blue);
    outline-offset: 0.25rem;
}

.bg-blue a.btn:focus-visible {
    outline: 3px dotted #FFFFFF;
}

a.btn-blue {
    border-color: var(--et-blue);
    color: var(--et-blue);
}

a.btn-blue:hover,
a.btn-blue:focus,
a.btn-blue:focus-visible,
a.btn-blue:active {
    background-color: var(--dark-gray) !important;
    color: #FFFFFF;
    border-color: var(--dark-gray) !important;
}

@media (hover: hover) {

    a.btn {
        transition: none;
    }
}

/* ---------- Header section ---------- */

.section-header {
    margin: 0 0 clamp(1.25rem, 0.714rem + 2.381vw, 2.5rem); /* 360-1200 */
}

.section-header h2 {
    font-size: clamp(1.5rem, 1.339rem + 0.714vw, 1.875rem); /*380-1200*/
    margin-bottom: 0;
    color: var(--et-red);
    text-transform: uppercase;
    font-weight: 700;
    hyphens: auto;
    hyphenate-limit-chars: 15;
}

.section-header p {
    font-size: 1.125rem;
    max-width: 70ch;
    margin-left: auto;
    margin-right: auto;
}

.section-header h2 + p {
    margin-top: 0.5em;
}

/* ------- Split blocks ------- */

.split-block {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
}

.split-block .split-block-img {
    flex-basis: 100%;
    width: 100%;
}

.split-block .split-block-content {
    flex-basis: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 1.5rem;
}

@media screen and (min-width: 768px) {

    .split-block .split-block-img {
        flex-basis: 50%;
        width: 50%;
        max-height: 100%;
    }

    .split-block .split-block-content {
        flex-basis: 50%;
        padding: clamp(1.5rem, -0.56rem + 4.292vw, 4rem) /* 768-1700 */
    }
}

/* Split-block variations */

@media screen and (min-width: 768px) {
    .alternating .split-block:nth-child(odd) .split-block-img {
        order: 2;
    }

    .alternating .split-block:nth-child(odd) .split-block-content {
        order: 1;
    }
}

/*
-----------------------------------------
NAVBAR
-----------------------------------------
*/

/* ------- Skip to content ------- */

.skip-to-content {
    position: absolute;
    z-index: 1201;
    opacity: 1;
    left: 1rem;
    height: 0;
}

a.skip-to-content-btn {
    display: inline-block;
    font-weight: 500;
    background-color: var(--et-blue);
    padding: 0.75em 2em;
    color: #FFF;
    transform: translateY(calc(-100% - 1px));
    outline-offset: 0.25rem;
}

a.skip-to-content-btn:hover,
a.skip-to-content-btn:focus {
    color: #FFF;
    transform: translateY(1rem);
}

/* ------- END Skip to content ------- */

.navbar {
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
    top: 0;
    height: var(--top-margin-sm);
    z-index: 1200;
    background-color: #FFFFFF;
    box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.1);
}

@media screen and (min-width: 992px) {
    .navbar {
        height: var(--top-margin-lg);
    }
}

@media screen and (min-width: 1700px) {
    .navbar {
        height: var(--top-margin-xl);
    }
}

/* ---------- Logo ---------- */

.navbar-brand {
    display: flex;
    padding: 0;
}

.navbar-brand img {
    height: 50px;
}

@media screen and (min-width: 992px) {

    .navbar-brand img {
        height: 70px;
    }
}

@media screen and (min-width: 1700px) {

    .navbar-brand img {
        height: 98px;
    }
}

/* ---------- Mobile menu button ---------- */

.navbar-toggler:focus,
.navbar-toggler:active {
    border: none;
    outline: none;
    box-shadow: none;
}

.navbar .navbar-toggler {
    width: 28px;
    height: 23px;
    position: relative;
    transform: rotate(0deg);
    transition: transform .5s ease-in-out;
    cursor: pointer;
    padding: 0;
    box-shadow: none !important;
    border: none !important;
    z-index: 1032;
    outline-offset: 0.25rem;
    border-radius: 0;
}

.navbar-toggler:focus-visible {
    outline: 3px dotted var(--et-blue);
    border: none;
}

.navbar-toggler span {
    display: block;
    position: absolute;
    height: 3px;
    width: 28px;
    background: var(--offblack);
    opacity: 1;
    left: 0;
}

.navbar-toggler span:nth-child(1) {
    top: 0;
}

.navbar-toggler span:nth-child(2) {
    top: 10px;
}

.navbar-toggler span:nth-child(3) {
    top: 20px;
}

@media screen and (min-width: 1200px) {

    .navbar-toggler {
        display: none;
    }
}

/* ----- Offcanvas mobile menu ----- */

#mobile-menu {
    padding: 0;
    border: none;
}

#mobile-menu .nav-item {
    border-bottom: 1px solid #D4D4D6;
}

#mobile-menu .nav-link {
    color: var(--offblack);
    font-weight: 600;
    font-size: 1.125rem;
    padding: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

#mobile-menu button.nav-link {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    border: none;
    background-color: transparent;
    text-align: left;
}

#mobile-menu .nav-link:hover {
    text-decoration: none;
}

#mobile-menu .nav-link svg {
    font-size: 1.25rem;
    color: var(--et-red)
}

#mobile-menu > div { 
    position: fixed;
    top: 0;
    bottom: 0;
    right: 0;
    width: 400px;
    max-width: 100%;
    height: 100%;
    overflow-x: hidden;
}

/* Mobile menu close button and back button */

#mobile-menu .close-button {
    cursor: pointer;
    font-size: 36px;
    padding: 0 0.25rem;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: relative;
    color: var(--offblack);
    height: 30px;
    width: 30px;
    margin-right: 0.75rem;
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background-color: transparent;
}

#mobile-menu .top-nav-item {
    height: 60px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#mobile-menu .top-nav-item span {
    display: block;
    position: absolute;
    height: 3px;
    width: 30px;
    background: var(--offblack);
    opacity: 1;
    right: 0;
}

#mobile-menu .top-nav-item span:nth-child(1) {
    top: 15px;
    transform: rotate(45deg);
}

#mobile-menu .top-nav-item span:nth-child(2) {
    top: 15px;
    transform: rotate(-45deg);
}

#mobile-menu .back-button {
    justify-content: flex-start;
    font-size: 30px;
    margin-left: 1rem;
    color: var(--offblack);
    -webkit-appearance: none;
    appearance: none;
    border: none;
    background-color: transparent;
    padding: 0;
}

/* Mobile submenu */

#mobile-menu .offcanvas-submenu-collapse {
    position: fixed;
    top: 0;
    bottom: 0;
    right: 0;
    width: 400px;
    max-width: 100%;
    height: 100%;
    overflow-x: hidden;
    transition: all 0.4s ease-in-out;
    transform: translateX(100%);
    z-index: 10;
    padding: 0;
    opacity: 1;
    visibility: hidden;
    background-color: #FFFFFF;
    box-shadow: 0 3px 3px rgba(0, 0, 0, 0.075);
}

#mobile-menu .offcanvas-submenu-collapse.open {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
}

#mobile-menu .offcanvas-submenu-collapse .top-nav-item {
    justify-content: space-between;
}

#mobile-menu .submenu {
    list-style: none;
    padding-left: 0;
}

#mobile-menu .offcanvas-submenu-collapse .submenu:first-child .nav-item:first-child .nav-link {
    border-top: none;
}

#mobile-menu .nav-link.submenu-title {
    font-weight: 600;
}

#mobile-menu .submenu-submenu {
    list-style: none;
    padding-left: 0;
}

#mobile-menu .main-menu-mobile .submenu-submenu .nav-item .nav-link:not(.submenu-title) {
    white-space: normal;
    font-weight: 300;
}

#mobile-menu .submenu-submenu .nav-item:first-child .nav-link {
    border-top: none;
}

#mobile-menu .submenu-submenu > .nav-item:last-child {
    border-bottom: 1px solid #D4D4D6;
}

#mobile-menu .submenu .submenu .nav-item:last-child .nav-link {
    border-bottom: none;
}

#mobile-menu .submenu-item .nav-link {
    text-transform: none;
}

/* ---------- Desktop menu ---------- */

#desktopMenu {
    display: none;
}

@media screen and (min-width: 1200px) {

    #desktopMenu {
        display: flex;
    }
}

#main-menu {
    height: 100%;
    flex-direction: row;
    align-items: flex-end;
    margin-right: -0.5rem;
}

#main-menu .nav-item {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

#main-menu .nav-item.dropdown {
    position: unset;
}

#main-menu .nav-link {
    font-weight: 500;
    color: var(--offblack);
    padding: 0.5rem;
    transition: color ease 0.15s;
    font-size: 1.125rem;
}

#main-menu button.nav-link {
    -webkit-appearance: none;
    appearance: none;
    background-color: transparent;
    border: none;
}

#main-menu .nav-link:hover {
    color: var(--et-red);
    text-decoration: none;
}

#main-menu > .nav-item > .nav-link {
    margin-right: 1.5rem;
}

#main-menu > .nav-item:last-child > .nav-link {
    margin-right: 0;
}

@media screen and (min-width: 1700px) {

    #main-menu > .nav-item > .nav-link {
        margin-right: 2rem;
    }
}

/* Desktop dropdown menus */

#main-menu .dropdown-toggle::after {
    display: none;
}

#main-menu .dropdown-menu:not(.mega-menu) {
    padding: 0;
}

#main-menu .dropdown-menu {
    background-color: var(--light-gray);
    border: none;
    border-radius: 0;
    position: absolute;
    top: calc(100% - 2px);
    min-width: 260px;
    border: none;
    box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.15);
}

#main-menu .dropdown-menu .nav-link {
    color: var(--offblack);
    font-size: 0.875rem;
    font-weight: 400;
    padding: 1rem;
    border-bottom: 2px solid #FFFFFF;
    line-height: 1;
}

#main-menu .dropdown-menu .nav-link:hover {
    text-decoration: none;
    background-color: #FFFFFF;
}

#main-menu .dropdown-menu .nav-item:last-child .nav-link {
    border-bottom: none;
}

/* Mega menu */

#main-menu .nav-item.mega {
    position: unset;
}

#main-menu .mega-menu {
    right: 0;
    left: 0;
    justify-content: flex-start;
    padding-top: 0;
    padding-bottom: 0;
}

#main-menu .mega-menu-content-wrap {
    padding: 3rem 0;
}

#main-menu .mega-menu-column-wrap {
    display: flex;
    justify-content: flex-start;
    margin: 0 -1.25rem;
}

#main-menu .mega-menu-column-wrap > a {
    display: block;
    flex: 0 0 calc(25% - 2.5rem);
    margin: 0 1.25rem;
}

#main-menu .products-mega-menu .mega-menu-column-wrap {
    justify-content: space-between;
}

#main-menu .products-mega-menu .mega-menu-column-wrap > a {
    flex: 0 0 calc(20% - 2.5rem);
    max-width: 224px;
}

p.mega-menu-headline {
    font-size: 1.875rem;
    font-weight: 600;
    color: var(--et-blue);
    margin-bottom: 0.75rem;
    line-height: 1.15;
}

#main-menu a.mega-menu-nav-link:hover {
    text-decoration: none;
}

#main-menu a.mega-menu-nav-link:hover p.mega-menu-link-title {
    border-color: var(--et-red);
}

#main-menu .mega-menu ul {
    list-style: none;
    padding: 0;
}

#main-menu .mega-menu .nav-item {
    padding-bottom: 2.5rem;
    break-inside: avoid;
}

p.mega-menu-link-title {
    color: var(--offblack);
    font-size: 1.125rem;
    font-weight: 600;
    padding: 0;
    padding: 0.875rem 0;
    border: none;
    position: relative;
    line-height: 1.3;
    margin-top: 0;
    border-top: 2px solid #CCCCCC;
    text-align: center;
}

#main-menu .default-mega-menu p.mega-menu-link-title {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #CCCCCC;
    border-top: none;
    margin-bottom: 0.5rem;
}

.default-mega-menu p.mega-menu-link-title span {
    padding-right: 2rem;
}

.mega-menu p.nav-link-description {
    font-size: 1rem;
    position: relative;
}

.products-mega-menu-image {
    width: 100%;
    aspect-ratio: 1 / 1;
}

.products-mega-menu-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
}

@media screen and (min-width: 1700px) {

    #main-menu .mega-menu-content-wrap {
        padding: 4rem 0;
    }

    #main-menu .mega-menu-column-wrap {
        margin: 0 -1.5rem;
    }

    #main-menu .mega-menu-column-wrap > a {
        flex: 0 0 calc(25% - 3rem);
        margin: 0 1.5rem;
    }

    #main-menu .products-mega-menu .mega-menu-column-wrap > a {
        flex: 0 0 calc(20% - 3rem);
    }

    #main-menu .mega-menu .nav-item {
        padding-bottom: 3rem;
    }
}

/*
-----------------------------------------
BREADCRUMB
-----------------------------------------
*/

.breadcrumbs {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.breadcrumbs li {
    font-size: 0.875rem;
    text-transform: uppercase;
    color: var(--et-blue);
    font-weight: 500;
}

.breadcrumbs li a {
    color: var(--dark-gray);
}

.breadcrumbs span.divider {
    margin: 0 0.5em;
    color: var(--dark-gray);
}

/* 
–––––––––––––––––––––––––––––––––––––––––––––––––
STICKY BUTTON
–––––––––––––––––––––––––––––––––––––––––––––––––
*/

.sticky-service-button {
    position: fixed;
    right: 0;
    bottom: 2rem;
    width: fit-content;
    z-index:1030;
    display: none;
}

@media screen and (min-width: 768px) {

    .sticky-service-button {
        display: block;
    }
}

a.sticky-service-button-content-wrap {
    background-color: #FFFFFF;
    border-radius: 4px 0 0 4px;
    box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.25);
    width: 160px;
}

a.sticky-service-button-content-wrap:hover {
    text-decoration: none;
}

a.sticky-service-button-content-wrap:focus-visible {
    outline-offset: 3px;
}

.sticky-service-button-icon {
    background-color: var(--et-red);
    border-radius: 4px 0 0 4px;
    flex-basis: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 12px;
}

.sticky-service-button-icon img {
    width: 48px;
    height: auto;
}

.sticky-service-button-text {
    flex-basis: calc(100% - 60px);
    background-color: var(--et-blue);
    color: #FFFFFF;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 12px;
}

.sticky-service-button-text p {
    color: #FFFFFF;
    margin: 0;
    font-weight: 600;
    line-height: 1.2;
    font-size: 1rem;
    text-transform: uppercase;
}

.sticky-service-button:hover .sticky-service-button-icon {
    background-color: var(--et-blue);
}

.sticky-service-button:hover .sticky-service-button-text {
    background-color: var(--et-red);
}


/*
-----------------------------------------
SUBPAGE MENU
-----------------------------------------
*/

.subpage-menu-wrap {
    order: 2;
    background-color: var(--light-gray);
    margin-top: 2rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
    margin-bottom: -3rem;
}

@media screen and (min-width: 992px) {

    .subpage-menu-wrap {
        order: 1;
        margin-top: 0;
        margin-bottom: 0;
        padding-top: 0;
        padding-bottom: 0;
        background: transparent;
    }

    .subpage-article {
        order: 2;
    }
}

.subpage-menu {
    list-style: none;
    padding: 0;
    margin:0;
    border-top: 1px solid var(--medium-gray);
}

@media screen and (min-width: 992px) {

    .subpage-menu {
        max-width: 418px;
        padding-right: 1rem;
        border-top: none;
    }
}

h3.subpage-menu-header {
    color: var(--et-red);
    font-size: clamp(1.25rem, 1.178rem + 0.303vw, 1.5rem);
    text-transform: uppercase;
    font-weight: 800;
    margin: 0.5em 0 0;
    width: 100%;
    margin: 0 0 1rem;
}

.subpage-menu .nav-link {
    font-weight: 500;
    color: var(--offblack);
    border-bottom: 1px solid var(--medium-gray);
    padding: 0.75rem 0;
    font-size: 1.125rem;
    display: flex;
    align-items: center;
}

.subpage-menu .nav-link.active {
    color: var(--et-red);
}

.subpage-menu .nav-link:hover {
    color: var(--et-red);
    text-decoration: none;
}

/*
-----------------------------------------
FOOTER
-----------------------------------------
*/

footer {
    background-color: var(--light-gray);
}

footer a,
footer a:link,
footer a:active,
footer a:hover,
footer p,
footer li,
footer h2,
footer h3 {
    color: var(--et-blue);
}

footer h2 {
    font-size: 1.25rem;
    font-weight: 600;
    border-top: 1px solid #BBBBBB;
    padding-top: 1rem;
    margin-bottom: 1rem;
    margin-top: 1.25rem;
}

footer h3 {
    font-size: 1rem;
    font-weight: 500;
    margin-top: 1.25rem;
    margin-bottom: 0.125em;
}

footer p,
footer li {
    font-size: 1rem;
}

footer ul:last-child {
    margin-bottom: 0;
}

.footer-contact-box:has(+ .footer-contact-box) {
    margin-bottom: 0.5rem;
}

.footer-contact-box svg {
    width: 1.25em;
    margin-right: 0.1em;
}

/* ------- Footer top row ------- */

.footer-main-row > div {
    flex: 0 0 100%;
    margin-bottom: 1.5rem;
}

@media screen and (min-width: 768px) {

    .footer-main-row {
        margin-left: -1rem;
        margin-right: -1rem;
    }

    .footer-main-row > div {
        flex-basis: calc(33.33% - 2rem);
        margin-left: 1rem;
        margin-right: 1rem;
    }
}

footer .sm-icons {
    margin-top: 1.25rem;
    line-height: 1;
}

footer .sm-icons > a {
    display: inline-block;
    outline-offset: 0.25rem;
}

footer .sm-icons svg {
    font-size: 2rem;
}

ul.footer-links-list {
    margin-bottom: 0;
}

ul.footer-links-list li {
    line-height: 1;
}

ul.footer-links-list li:has(+ li) {
    margin-bottom: 1rem;
}

/* ------- Footer bottom row ------- */

.footer-bottom-row {
    border-top: 1px solid #BBBBBB;
    padding-top: 1rem;
    justify-content: space-between;
}

.footer-bottom-row div:first-child {
    padding-right: 2rem;
}

.footer-bottom-row div:first-child p {
    margin-bottom: 0.5em;
}

.footer-bottom-row,
.footer-bottom-row a,
.footer-bottom-row p {
    font-size: 0.875rem;
}

@media screen and (min-width: 768px) {

    .footer-bottom-row {
        margin-top: 1rem;
    }
}

/*
-----------------------------------------
START PAGE
-----------------------------------------
*/

/* ------- Hero section ------- */

.hero-section {
    background-color: #F8F8F8;
}

.hero-mobile {
    background-size: auto 66vw;
    background-position: center top;
    background-repeat: no-repeat;
    position: relative;
    padding-top: 60vw;
    background-color: var(--light-gray)
}

.hero-desktop {
    position: relative;
}

@media screen and (min-width: 768px) {

    .hero-mobile {
        background-position: center top -10vw;
        padding-top: 45vw;
    }
}

@media screen and (min-width: 1200px) {

    .hero-section {
        background: #FFFFFF;
    }

    .hero-desktop {
        min-height: unset;
        aspect-ratio: 5/2;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-color: var(--light-gray)
    }
}

@media screen and (min-width: 2100px) {

    .hero-desktop {
        max-width: 1920px;
        margin: 0 auto;
    }
}

/* Hero video */

.hero-section video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
    filter: brightness(0.8);
}

.hero-mobile video {
    height: unset;
    aspect-ratio: 3 /2;
}

/* Hero desktop image */

.hero-desktop-image {
    width: 70%;
    z-index: 1;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
}

.hero-desktop-image img {
    height: 100%;
    width: 100%;
    object-fit:cover;
}

/* Hero caption */

.hero-caption {
    background-color: #FFFFFF;
    box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.1);
    text-align: center;
    position: relative;
    z-index: 2;
}

.hero-caption h1 {
    font-size: clamp(2rem, 1.731rem + 1.194vw, 3rem);
    line-height: 1.1;
    font-weight: 800;
    margin-bottom: 2.5rem;
    position: relative;
    color: var(--offblack);
}

.hero-caption h1::after {
    content: '';
    background-color: var(--et-red);
    width: 224px;
    height: 4px;
    position: absolute;
    bottom: -1.5rem;
    left: calc(50% - 112px)
}

.hero-caption p {
    font-size: clamp(1.125rem, 1.053rem + 0.303vw, 1.375rem);
    line-height: 1.3;
    margin-bottom: 0;
}

.hero-caption p + .hero-buttons {
    margin-top: 1.5rem;
}

.hero-caption a.btn {
    width: fit-content;
    margin-right: auto;
    margin-left: auto;
}

.hero-caption a.btn:not(:first-child) {
    margin-top: 0.75em;
}

@media screen and (min-width: 1200px) {

    .hero-caption {
        text-align: left;
        width: 40%;
        padding: 2rem;
        position: relative;
        z-index: 2;
        transform: translateX(2rem);
    }

    .hero-caption h1::after {
        left: 0;
    }    

    .hero-caption a.btn {
        margin: 0;
        display: inline-block;
    }

    .hero-caption a.btn:not(:first-child) {
        margin-top: 0;
        margin-left: 0.5em;
    }
}

@media (min-width: 1400px) {

    .hero-caption {
        width: 35%;
        transform: translateX(4rem);
    }
}

@media screen and (min-width: 1700px) {

    .hero-caption {
        width: 30%;
        transform: translateX(5rem);
        padding: 4rem 3rem;
    }
}

/* ------- Our products ------- */

.start-page-product-boxes {
    margin: 0 -1rem -1.5rem;
}

.start-page-product-boxes > a {
    flex-basis: 100%;
    margin: 0 1rem;    
}

@media screen and (min-width: 576px) {
    .start-page-product-boxes > a {
        flex-basis: calc(50% - 2rem);
    }
}

@media screen and (min-width: 768px) {
    .start-page-product-boxes > a {
        flex-basis: calc(33.33% - 2rem);
    }
}

@media screen and (min-width: 1200px) {
    .start-page-product-boxes > a {
        flex-basis: calc(20% - 2rem);
    }
}

.product-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 275px;
}

a.product-box:hover {
    text-decoration: none;
}

.product-box img {
    display: block;
    width: 100%;
}

.product-box h3 {
    color: var(--offblack);
    font-size: 1.125rem;
    font-weight: 600;
    padding: 0.875rem 0;
    border-top: 2px solid #CCCCCC;
    line-height: 1.3;
    margin-top: 0;
    text-align: center;
    width: 100%;
}

a.product-box:hover h3 {
    border-color: var(--et-red);
}

/* ------- Service banner ------- */

.service-banner-section > div {
    flex-basis: 100%;
}
@media screen and (min-width: 768px) {

    .service-banner-section > div:first-child {
        flex-basis: 50%;
    }

    .service-banner-section > div:last-child {
        flex-basis: 50%;
    }
}

@media screen and (min-width: 992px) {

    .service-banner-section > div:first-child {
        flex-basis: 36%;
    }

    .service-banner-section > div:last-child {
        flex-basis: 64%;
    }
}

.service-banner-section h2 {
    font-size: 1.875rem;
    color: #FFFFFF;
    margin-bottom: 1rem;
}

.service-banner-section p {
    font-size: clamp(1.125rem, 1.058rem + 0.299vw, 1.375rem);
    color: #FFFFFF;
}

.service-banner-section p:has(+ a.btn) {
    margin-bottom: 1.5rem;
}

@media screen and (min-width: 768px) {

    .service-banner-headline {
        padding-right: 2rem;
    }

    .service-banner-text {
        padding-left: 2rem;
        border-left: 3px solid #FFFFFF
    }

    .service-banner-section h2 {
        font-size: clamp(1.875rem, 1.36rem + 1.073vw, 2.5rem); /* 768-1700 */
    }
}

/* ------- Offer banner ------- */

.banner {
    position: relative;
    background-color: var(--light-gray);
}

@media screen and (min-width: 768px) {

    .banner {
        padding-left: 2rem;
        padding-right: 2rem;
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
        background-color: #FFFFFF;
    }
}

@media (min-width: 1200px) {
    .banner {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }
}

@media (min-width: 1400px) {
    .banner {
        padding-left: calc(50% - 580px);
        padding-right: calc(50% - 580px);
    }
}

@media (min-width: 1700px) {
    .banner {
        padding-left: calc(50% - 750px);
        padding-right: calc(50% - 750px);
        padding-top: 4.5rem;
        padding-bottom: 4.5rem;
    }
}

.banner-caption {
    background-color: #FFFFFF;
    padding: 1rem;
    position: relative;
    width: calc(100% - 2rem);
    margin: -90px 1rem 1rem;
    z-index: 2;
}

@media screen and (min-width: 768px) {

    .banner-caption {
        width: calc(50% - 1rem);
        margin: 0;
        padding: 1.5rem;
    }
}

@media screen and (min-width: 1200px) {

    .banner-caption {
        padding: 2.25rem;
    }
}

@media screen and (min-width: 1700px) {

    .banner-caption {
        width: calc(50% - 1.5rem);
        padding: 3rem;
    }
}

.banner-caption h2 {
    color: var(--et-red);
    font-weight: 300;
    font-size: 1.875rem;
    margin-bottom: 0;
}

.banner-caption h2 strong {
    font-weight: 800;
}

.banner-caption h2 + p {
    margin-top: 0.5rem;
}

.banner-caption p {
    font-size: 1.125rem;
    margin-bottom: 0;
}

.banner-caption .banner-btn-wrap {
    width: 100%;
    border-top: 4px solid var(--et-red);
    padding-top: 1.5rem;
    margin-top: 1.5rem;
}

.banner-caption .banner-btn-wrap a.btn:has(+ a.btn) {
    margin-right: 0.5rem;
}

@media screen and (min-width: 768px) {

    .banner-caption h2 {
        font-size: clamp(1.875rem, 1.573rem + 1.343vw, 3rem); /* 768 - 1700*/
    }
}

/* Banner with text and image */

@media screen and (min-width: 768) {

    .banner-text-image {
        justify-content: space-between;
    }
}

.banner-text-image-image {
    width: 100%;
    aspect-ratio: 1 / 1;
}

.banner-text-image-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center left;;
}

@media screen and (min-width: 576px) {

    .banner-text-image-image {
        aspect-ratio: 3 / 2;
    }
}

@media screen and (min-width: 768px) {

    .banner-text-image-image {
        flex-basis: calc(50% - 1rem);
    }

    .banner-text-image .banner-caption {
        padding: 0;
    }
}

@media screen and (min-width: 768px) {

    .banner-text-image-image {
        flex-basis: calc(50% - 1.5rem);
    }
}

/* ------- Quote section ------- */

.quote-section > div {
    flex-basis: 100%;
}
@media screen and (min-width: 768px) {

    .quote-section > div:first-child {
        flex-basis: 50%;
    }

    .quote-section > div:last-child {
        flex-basis: 50%;
    }
}

@media screen and (min-width: 992px) {

    .quote-section > div:first-child {
        flex-basis: 36%;
    }

    .quote-section > div:last-child {
        flex-basis: 64%;
    }
}

.quote-section h2 {
    font-size: 1.875rem;
    margin-bottom: 1rem;
    color: var(--et-red);
}

.quote-section p {
    font-size: clamp(1.125rem, 1.058rem + 0.299vw, 1.375rem);
}

.quote-section p:has(+ a.btn) {
    margin-bottom: 1.5rem;
}

.quote-text-wrap {
    border-top: 4px solid var(--et-red);
    padding: 1rem 0 0;
}

@media screen and (min-width: 576px) {

    .quote-text-wrap {
        border-top: 0;
        margin-top: 0;
        border-left: 4px solid var(--et-red);
        padding: 0 0 0 1rem;
    }
}

.quote-text {
    font-size: 1.375rem;
}

.quote-name-wrap {
    margin-left: 48px;
    position: relative;
    margin-top: 1rem;
}

p.quote-name {
    position: relative;
    margin-bottom: 0;
    font-weight: 700;
    font-size: 1.375rem;
}

p.quote-name::before {
    content: '';
    height: 4px;
    width: 36px;
    position: absolute;
    left: -48px;
    background-color: var(--et-red);
    top: 0.625em;
}

p.quote-title {
    font-size: 1.375rem;
}

@media screen and (min-width: 768px) {

    .quote-headline {
        padding-right: 2rem;
    }

    .quote-text-wrap {
        padding-left: 1rem;
        border-left: 4px solid var(--et-red);
    }

    .quote-section h2 {
        font-size: clamp(1.875rem, 1.36rem + 1.073vw, 2.5rem); /* 768-1700 */
    }
}

/* ------- Awards section ------- */

.our-awards-section {
    background-color: var(--dark-gray);
    align-items: center;
    flex-direction: column;
    margin-bottom: -1.5rem;
}
.our-awards-section img {
    display: block;
    max-height: 60px;
}
.our-awards-section div {
    padding: 0 0.5rem;
}
.our-awards-section div {
    margin-bottom: 1.5rem;
}

@media screen and (min-width: 576px) {

    .our-awards-section {
        flex-direction: row;
    }
    .our-awards-section div {
        padding: 0 1.5rem;
    }
}

@media screen and (min-width: 768px) {

    .our-awards-section div {
        padding: 0 2rem;
    }

    .our-awards-section img {
        display: block;
        max-height: 90px;
    }
}

/* ------- Visit us banner ------- */

.visit-us-banner {
    background-color: var(--et-blue);
}
.visit-us-banner > .split-block-content {
    padding: 0;
}
.visit-us-banner > .split-block-img {
    padding: 0;
}

.visit-us-banner h2 {
    color: #FFFFFF;
    font-weight: 700;
    font-size: clamp(1.75rem, 1.132rem + 1.288vw, 2.5rem) /* 768-1700 */
}

.visit-us-banner p {
    color: #FFFFFF;
}

.visit-us-banner p:has(+ a.btn) {
    margin-bottom: 2rem;
    color: #FFFFFF;
}

@media screen and (min-width: 768px) {

    .visit-us-banner > .split-block-content {
        order: 1;
        padding: 3rem 2rem 3rem 0;
    }
    .visit-us-banner > .split-block-img {
        order: 2;
    }
}

/* ------- Info text section ------- */

.info-text-header {
    margin-bottom: 2rem;
}

@media screen and (min-width: 1200px) 
{
    .info-text-header {
        margin-bottom: 2.5rem;
    }
}

.info-text-header h2 {
    max-width: 30ch;
    margin: 0 auto 1rem;;
}

.info-text-header p.info-text-sub-headline {
    color: var(--et-blue);
    font-size: clamp(1.125rem, 1.058rem + 0.299vw, 1.375rem); /* 360-1700 */
}

.info-text-blocks > div {
    flex: 0 0 100%;
}

.info-text-blocks > div:has(+ div) {
    margin-bottom: 1.5rem;
}


@media screen and (min-width: 1200px) {

    .info-text-blocks > div {
        flex-basis: calc(50% - 1.5rem);
    }

    .info-text-blocks > div:has(+ div) {
        margin-bottom: 0;
    }
}

.info-text-block p,
.info-text-block li {
    font-weight: 300;
}

.info-text-block h3 {
    font-size: clamp(1.25rem, 1.149rem + 0.448vw, 1.625rem);
}

/* 
-----------------------------------------
SUBPAGE HEADER
-----------------------------------------
*/

/* ------- Header with headline and short text ------- */

.subpage-ingress-header > div {
    flex: 0 0 100%;
}

.subpage-ingress-header > div:first-child {
    margin-bottom: 1rem;
}

.subpage-ingress-header > div:last-child {
    border-top: 4px solid var(--et-red);
    padding-top: 1rem;
}

@media screen and (min-width: 768px) {

    .subpage-ingress-header > div {
        flex-basis: 50%;
    }

    .subpage-ingress-header > div:first-child {
        padding-right: 1rem;
        margin-bottom: 0;
    }

    .subpage-ingress-header > div:last-child {
        padding-top: 0;
        border-top: none;
        border-left: 4px solid var(--et-red);
        padding-left: 1.5rem;
    }
}

.subpage-header h1 {
    margin: 0;
}

p.header-ingress {
    font-size: clamp(1rem, 0.691rem + 0.644vw, 1.375rem); /* 768-1700*/
    margin-bottom: 0;
}

.subpage-header h1 + p.header-ingress {
    margin-top: 0.5em;
}

/* ------- Header with anchor links ------- */

header.anchor-links-header div:last-child {
    display: flex;
    flex-direction: column;
}

ul.header-links {
    margin: 0.5rem 0;
}

ul.header-links li {
    position: relative;
    color: var(--ret-blue);
    padding-left: 1.25rem;
}

ul.header-links li a {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 600;
    display: block;
    text-wrap: balance;
    width: 100%;
}

@media screen and (pointer: coarse) {

    ul.header-links li a {
        text-wrap: unset;
    }
}

ul.header-links li img {
    height: 0.875rem;
    width: 0.875rem;
    left: 0;
    top: 0.3rem;
    position: absolute;
}

ul.header-links li:has(+ li) {
    margin-bottom: 0.375rem;
}

/* ------- Header with image ------- */

.subpage-image-header > div {
    flex: 0 0 100%;
}

.subpage-image-header > div:first-child {
    aspect-ratio: 3 / 2;
}    

@media screen and (min-width: 768px) {

    .subpage-image-header > div {
        flex-basis: 50%;
    }    
}

@media screen and (min-width: 992px) {

    .subpage-image-header > div:first-child {
        flex-basis: 40%;
        width: 40%;
    }    

    .subpage-image-header > div:last-child {
        flex-basis: 60%;
        width: 60%
    }    
}

@media screen and (min-width: 2100px) {

    .subpage-image-header {
        max-width: 1920px;
        margin: 0 auto;
    }    
}

.subpage-image-header-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.subpage-image-header-text p.top-headline {
    font-size: clamp(1.375rem, 1.339rem + 0.152vw, 1.5rem);
    font-weight: 500;
    margin-bottom: 0;
}

.subpage-image-header-text h1 {
    font-size: clamp(1.875rem, 1.573rem + 1.343vw, 3rem); /*360-1700*/
    margin-bottom: 0.5em;
    max-width: 25ch;
}

.image-header-ingress {
    border-left: 4px solid var(--et-red);
    padding-left: 1em;
}

.image-header-ingress p {
    margin-top: 0;
    max-width: 80ch;
}

/* 
-----------------------------------------
PRODUCTS CATEGORY PAGE
-----------------------------------------
*/

/* ------- List of products ------- */

.product-block-image img {
    max-height: 600px;
    display: block;
    margin: 0 auto;
}

.product-block-content h3 {
    color: var(--offblack);
    font-weight: 700;
    margin-bottom: 0.5rem;
    font-size: clamp(1.75rem, 1.132rem + 1.288vw, 2.5rem); /* 768-1700 */
    line-height: 1.1;
}

p.product-sub-headline {
    text-transform: uppercase;
    font-weight: 500;
    font-size: 1.125rem;
}

.product-block-content p:has( + a.btn) {
    margin-bottom: 2rem;
}

.product-block-buttons a.btn {
    margin-top: 0.5rem;
}


.product-block-buttons a.btn:has(+ a.btn) {
    margin-right: 0.5rem;
}

.product-block-buttons a.btn svg {
    margin-right: 0.5em;
}
/*
-----------------------------------------
TEXT PAGE
-----------------------------------------
*/

.subpage-article h4 {
    color: var(--dark-gray);
    font-size: clamp(1.125rem, 1.071rem + 0.238vw, 1.25rem);
    text-transform: uppercase;    
    margin-top: 1.5em;
}

.subpage-article a {
    text-decoration: underline;
    text-underline-offset: 0.3em;
}

/*
-----------------------------------------
VIDEOS MAIN PAGE
-----------------------------------------
*/

.video-category:nth-of-type(2n) {
    background-color: #F8F8F8;
}

.video-product-boxes {
    margin: 0 -1rem -1.5rem;
}

.video-product-boxes > a {
    flex-basis: 100%;
    margin: 0 1rem;    
}

@media screen and (min-width: 576px) {
    .video-product-boxes > a {
        flex-basis: calc(50% - 2rem);
    }
}

@media screen and (min-width: 768px) {
    .video-product-boxes > a {
        flex-basis: calc(33.33% - 2rem);
    }
}

@media screen and (min-width: 1200px) {
    .video-product-boxes > a {
        flex-basis: calc(20% - 2rem);
    }
}

.video-product-boxes img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.video-product-boxes .product-box-image {
    width: 100%;
}

.video-product-boxes .product-box-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
}

/*
-----------------------------------------
VIDEOS PAGE
-----------------------------------------
*/

.video-boxes {
    margin: 0 -0.5rem -2rem;
}

.video-boxes > div {
    flex: 0 0 calc(100% - 1rem);
    margin: 0 0.5rem 2rem;
    overflow: hidden;
}

@media screen and (min-width: 600px) {

    .video-boxes > div {
        flex-basis: calc(50% - 1rem);
        margin: 0 0.5rem 1.5rem;
    }
}

@media screen and (min-width: 900px) {

    .video-boxes > div {
        flex-basis: calc(33.33% - 1rem);
    }
}

@media screen and (min-width: 1200px) {

    .video-boxes {
        margin: 0 -1rem;
    }

    .video-boxes > div {
        flex-basis: calc(33.33% - 2rem);
        margin: 0 1rem 2rem;
    }
}

.video-box video {
    width: 100%;
    height: auto !important;
}

.video-box h3 {
    margin-top: 1rem;
}

.video-box p {
    font-weight: 300;
    margin-bottom: 0;
}

/*
-----------------------------------------
TIPS PAGE
-----------------------------------------
*/

/* ------- Control items ------- */

.control-items-content * {
    color: #FFFFFF;
}

.control-items-content h2 {
    margin-bottom: 1rem;
}

.control-items-content p:has(+ a.btn) {
    margin-bottom: 1.375em;
    margin-bottom: 24px;
}

.control-items-img img {
    aspect-ratio: 3 / 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ------- Tips with images ------- */

.control-items-section + .image-tips-section {
    padding-top: 0;
}


.image-tips-boxes {
    margin: 0 -1rem -1.5rem;
}

.image-tips-boxes > div {
    flex-basis: 100%;
    margin: 0 1rem;    
}

@media screen and (min-width: 576px) {
    .image-tips-boxes > div {
        flex-basis: calc(50% - 2rem);
    }
}

@media screen and (min-width: 768px) {
    .image-tips-boxes > div {
        flex-basis: calc(33.33% - 2rem);
    }
}

@media screen and (min-width: 1200px) {
    .image-tips-boxes > div {
        flex-basis: calc(20% - 2rem);
    }
}

.image-tips-box h3 {
    border-color: var(--et-red)
}


/*
-----------------------------------------
SERVICE PAGE
-----------------------------------------
*/
.service-page-info-box {
    padding: clamp(1.25rem, 0.511rem + 3.284vw, 4rem);
} 

.service-page-info-box h2,
.service-page-info-box p,
.service-page-info-box li,
.service-page-info-box a,
.service-page-info-box svg {
    color: #FFFFFF;
} 

.service-page-info-box p,
.service-page-info-box li {
    font-size: clamp(1rem, 0.899rem + 0.448vw, 1.375rem); /* 360-1700 */
    font-weight: 400;
}

.service-page-info-box a {
    text-decoration: underline;
    text-underline-offset: 0.3em;
    font-weight: 500;
}
.service-page-info-box svg {
    height: 1.25em;
    margin-right: 0.25em;
    vertical-align: middle;
}

.service-page-info-box .service-page-info-link {
    font-size: 1rem;
}

/* ------- Formulär -------- */

.service-page-form-box {
    padding: clamp(1.25rem, 0.511rem + 3.284vw, 4rem);
}

@media screen and (min-width: 1200px) {

    .service-page-form-box {
        padding-left: calc(50% - 496px);
        padding-right: calc(50% - 496px);
    }
}

.service-page-form-box h2 {
    color: var(--offblack);
}

.service-page-form-box a.btn {
    margin-top: 0.5rem;
}

.service-page-form-box a.btn:has(+ a.btn) {
    margin-right: 1rem;
}

/* Umbraco forms */

.styled-contact-form {
    margin-top: 1.5rem;
}

@media screen and (min-width: 1200px) {
    .styled-contact-form {
        margin-top: 2.5rem;
    }
}

.styled-contact-form .umbraco-forms-form {
    width: 100%;
    margin: 0 auto;
}

.umbraco-forms-submitmessage {
    display: block;
    width: 100%;
    background-color: #FFFFFF;
    padding: 180px 0 100px;
}

@media screen and (min-width: 992px) {

    .styled-contact-form .umbraco-forms-form {
        box-shadow: none;
    }

    .umbraco-forms-submitmessage {
        box-shadow: none;
    }
}

.styled-contact-form .col-md-6 {
    flex: 0 0 100%;
}

.styled-contact-form .col-md-12 {
    flex: 0 0 100%;
}

@media screen and (min-width: 576px) {

    .styled-contact-form .col-md-6 {
        flex-basis: 50%;
    }
}

@media screen and (min-width: 992px) {

    .styled-contact-form .col-md-6 {
        flex-basis: 100%;
    }
}

@media screen and (min-width: 1200px) {

    .styled-contact-form .col-md-6 {
        flex-basis: 50%;
    }
}

.styled-contact-form .row-fluid {
    display: flex;
    flex-wrap: wrap;
    margin-left: -0.5rem;
    margin-right: -0.5rem;
}

.styled-contact-form .col-md-6 {
    padding: 0 0.5rem;
}

.styled-contact-form .col-md-12 {
    padding: 0 0.5rem;
}

.umbraco-forms-field {
    position: relative;
    margin-bottom: 1.5rem;
}

.umbraco-forms-field.address {
    margin-bottom: 1rem;
}

.styled-contact-form input.text,
.styled-contact-form textarea {
    border: none;
    background-color: #F8F8F8;
    border-radius: 0;
    padding: 1em 1.25em;
    width: 100%;
    font-size: 1rem;
}

.styled-contact-form input:focus,
.styled-contact-form input:active,
.styled-contact-form textarea:focus,
.styled-contact-form textarea:active {
    outline: 1px solid var(--et-blue);
    border: none;
}

.styled-contact-form label {
    margin-bottom: 0.25em;
    font-weight: 500;
    font-size: 1rem;
}
.umbraco-forms-hidden {
    display: none;
}

/* Jour Yes/No */

.umbraco-forms-field.ifjour {
    margin-bottom: 1rem;
}

.styled-contact-form .umbraco-forms-legend {
    margin-bottom: 0.25em;
    font-weight: 500;
    font-size: 1rem;
    color: var(--offblack);
}

.radiobuttonlist {
    display: flex;
    position: relative; 
}

.radiobuttonlist > div {
    flex-basis: auto;
    flex-grow: 1;
}

.radiobuttonlist > div:has(+ div){
    margin-right: 1rem;
    flex-grow: 0;
}

.radiobuttonlist label {
    font-weight: 300;
    width: fit-content;  
}

input[type="radio"][value="Ja"]:checked+label::after {
    content: "OBS! Välj endast detta om du har läst villkoren nedan.";
    font-weight: 700;
    color: var(--et-red);
    position: absolute;
    z-index: 2;
    background-color: white;
    width: 100%;
    bottom: 0rem;
    left: 0;
} 

.radiobuttonlist:has(input[type="radio"][value="Ja"]:checked) {
    padding-bottom: 3rem;
}

@media screen and (min-width: 620px) {

    input[type="radio"][value="Ja"]:checked+label::after {
        position: relative;
        z-index: 2;
        background-color: white;
        width: unset;
        margin-left: 0.5em;
    } 

    .radiobuttonlist:has(input[type="radio"][value="Ja"]:checked) {
        padding-bottom: 0;
    }

}

.styled-contact-form input[type="radio"]:active,
.styled-contact-form input[type="radio"]:focus {
    outline: none;
    border: none;
}

/* Anchor link to jour info */

p.form-jour-link {
    background-image: url(/media/gufnx2gq/circle-info-sharp-regular-full.svg);
    background-repeat: no-repeat;
    background-size: 1.75rem 1.75rem;
    background-position: top left -2px;
    padding-left: 2rem;
    margin-top: 1rem;
    padding-bottom: 1rem;
    padding-bottom:1px;
}

p.form-jour-link a {
    text-decoration: underline;
    color: var(--offblack);
    font-size: 1rem;
    font-weight: 500;
    text-underline-offset: 0.3em;
}

p.form-jour-link a:hover {
    color: var(--et-red);
}

/* Check box */

.styled-contact-form input[type="checkbox"] {
    position: absolute;
    top: 0.13em;
    left: 0;
    appearance: none;
    border: 1px solid var(--medium-gray);
    background-color: #FFFFFF;
    margin: 0;
    font: inherit;
    width: 21px;
    height: 21px;
    padding: 0 !important;
    border-radius: 0;
}

.styled-contact-form input[type="checkbox"]:active,
.styled-contact-form input[type="checkbox"]:focus {
    outline: none;
    border: 1px solid var(--et-blue);
}

.styled-contact-form input[type="checkbox"]::before {
    content: "";
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    position: absolute;
    top: 0;
    left: 0;
    box-shadow: inset 1em 1em #FFFFFF;
    transform: scale(0);
    transform-origin: center;
    clip-path: polygon(37% 65%,85% 12%,95% 21%,38% 81%,0 48%,8% 39%);
}

.styled-contact-form input[type="checkbox"]:checked {
    background-color: var(--et-red);
    border-color: var(--et-red);
}
  
.styled-contact-form input[type="checkbox"]:checked::before {
    transform: scale(0.75);
}

.styled-contact-form .dataconsent {
    position: relative;
    z-index: 2;
}

.styled-contact-form .dataconsent > .umbraco-forms-field-wrapper {
    position: absolute;
}

.styled-contact-form .dataconsent > label {
    display: none;
}

.styled-contact-form .dataconsentlink {
    padding-left: 32px;
    margin-top: 2px;
    margin-left: 0;
}

.styled-contact-form .dataconsent label {
    padding-left: 38px;
}

.styled-contact-form .dataconsentlink p {
    font-size: 1rem;
    font-weight: 300;
    padding-top: 1px;
}

.styled-contact-form .dataconsentlink a {
    color: var(--et-red)
}

/* Submit */

.umbraco-forms-navigation {
    margin-top: 0.5rem;
}

.styled-contact-form .btn {
    display: inline-block;
    font-size: 1rem;
    background-color: transparent;
    color: var(--et-red);
    border: 2px solid var(--et-red);
    padding: 1rem 1.875rem;
    font-size: 0.875rem;
    font-weight: 600;
    transition: all ease 0.2s;
    border-radius: 0;
    line-height: 1.2;
    text-transform: uppercase;
    min-width: 160px;
}

.styled-contact-form .btn:hover,
.styled-contact-form .btn:active,
.styled-contact-form .btn:focus {
    text-decoration: none;
    background-color: var(--et-red);
    color: #FFFFFF;
    border: 2px solid var(--et-red);
    outline: none;
}

.styled-contact-form .btn:focus-visible {
    text-decoration: none;
    background-color: var(--et-red);
    border: 2px solid var(--et-red);
    color: #FFFFFF;
    outline: 3px dotted var(--et-blue);
    outline-offset: 0.25rem;
    transition: none;
}

/* Error */

.field-validation-error {
    color: var(--et-red);
    font-size: 0.875rem;
    font-weight: 600;
    max-width: 70%;
    text-align: right;
    transform: translateY(1.5em);
}

.dataconsent .field-validation-error {
    position: relative;
    display: block;
    margin-top: -1.5em;
    margin-left: 38px;
    max-width: 100%;
    text-align: left;
    transform: none;    
}

.dataconsent:has(.field-validation-error) .umbraco-forms-field-wrapper {
    position: relative;
}

/* ------- Call service information ------- */

.call-service-box {
    padding: clamp(1.25rem, 0.78rem + 2.09vw, 3rem);  /* 360-1700 */
}

.call-service-header *,
.call-service-lower-text * {
    color: #FFFFFF;
}

.call-service-header p {
    font-weight: 400;
    font-size: clamp(1.125rem, 1.058rem + 0.299vw, 1.375rem); /* 360-1700 */
}

.call-service-box h3 {
    font-size: clamp(1.375rem, 1.241rem + 0.597vw, 1.875rem);
}

.call-service-info-box {
    padding: clamp(1rem, 0.731rem + 1.194vw, 2rem); /* 360-1700 */
    margin: 1.5rem 0;
}

@media screen and (min-width: 768px) {

    .call-service-info-box {
        margin: 2rem 0;
    }
}

.call-service-info-box h3,
.call-service-info-box h4,
.call-service-info-box p,
.call-service-info-box li {
    color: var(--et-blue);
}

.call-service-info-box h3 {
    margin-bottom: 1rem;
}

.call-service-info-box-list-item > div {
    flex: 0 0 100%;
}

@media screen and (min-width: 450px) {

    .call-service-info-box-list-item > div:first-child {
        flex-basis: 140px;
        padding-right: 1rem;
    }
    .call-service-info-box-list-item > div:last-child {
        flex-basis: calc(100% - 140px);
    }
}

.call-service-info-box-list-item h4 {
    font-size: clamp(1rem, 0.964rem + 0.152vw, 1.125rem);
    font-weight: 700;
    margin-bottom: 0.25em;
}

.call-service-info-box-list-item:last-child ul {
    margin-bottom: 0;
}

/* ------- Service agreement ------- */

.service-agreement-box .split-block-img img {
    width: 100%;
    aspect-ratio: 3 / 2;
    height: 100%;
    object-fit: cover;
}

.service-agreement-box .split-block-content * {
    color: #FFFFFF;
}

.service-agreement-box a {
    text-decoration: underline;
}

.service-agreement-box .split-block-content h3 {
    margin-top: 0;
    font-size: clamp(1.125rem, 1.091rem + 0.149vw, 1.25rem);
    font-weight: 600;
}

ul.contact-info-list a {
    text-decoration: none;
}

ul.contact-info-list li {
    margin-bottom: 0.25rem;
    font-size: 1rem;
    font-weight: 400;
}

ul.contact-info-list a:hover {
    text-decoration: underline;
}

ul.contact-info-list svg {
    width: 1.25em;
    margin-right: 0.1em;
}

/*
-----------------------------------------
OFFER PAGE
-----------------------------------------
*/

.offer-info-box-content * {
    color: #FFFFFF;
}

.offer-info-box-content h2 {
    hyphens: auto;
    hyphenate-limit-chars: 18;
}

@media screen and (min-width: 1200px) {

    .offer-info-box-content h2 {
        hyphenate-limit-chars: 24;
    }
}

.offer-info-box-content h3 {
    margin-top: 0;
    font-size: clamp(1.125rem, 1.091rem + 0.149vw, 1.25rem);
    font-weight: 600;
}

.offer-info-box-content ul.contact-info-list a {
    color: #FFFFFF;
}

.offer-info-box-img img {
    width: 100%;
    aspect-ratio: 3 / 2;
    height: 100%;
    object-fit: cover;
}

.offer-page-form-box > div {
    flex: 0 0 100%;
}

@media screen and (min-width: 992px) {

    .offer-page-form-box > div {
        flex-basis: calc(50% - 1rem);
    }
}

@media screen and (min-width: 1700px) {

    .offer-page-form-box > div {
        flex-basis: calc(50% - 2rem);
    }
}

.offer-page-form-box-image {
    display: none;
}

@media screen and (min-width: 992px) {

    .offer-page-form-box-image {
        display: block;
    }
}

.offer-page-form-box h2 {
    color: var(--offblack);
}

/*
-----------------------------------------
CONTACT PAGE
-----------------------------------------
*/

/* ------- Gray info boxes ------- */

.contact-info-boxes > div {
    flex: 0 0 100%;
    margin-bottom: 1.5rem;
}

@media screen and (min-width: 576px) {

    .contact-info-boxes {
        margin-left: -1rem;
        margin-right: -1rem;
    }

    .contact-info-boxes > div {
        flex-basis: calc(50% - 1rem);
        margin: 0 0.5rem 1rem;
    }
}

@media screen and (min-width: 992px) {

    .contact-info-boxes > div {
        flex-basis: calc(25% - 1rem);
    }
}

.contact-info-box {
    padding: 1.25rem;
}

.contact-info-box h2 {
    font-size: clamp(1.375rem, 0.85rem + 0.847vw, 1.75rem);
    color: var(--offblack);
    font-weight: 600;
    margin-bottom: 0.25rem;
    hyphens: auto;
    hyphenate-limit-chars: 10;
}

@media screen and (min-width: 1200px) {

    .contact-info-box {
        padding: 1.5rem;
    }
}

ul.contact-box-list {
    margin-bottom: 0;
}

ul.contact-box-list li span {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.875em;
}

ul.contact-box-list a {
    color: var(--offblack);
}

/* ------- Contact form ------- */

.contact-page-form-box > div {
    flex: 0 0 100%;
}

@media screen and (min-width: 992px) {

    .contact-page-form-box > div {
        flex-basis: 50%;
    }
}

.contact-page-form-box-text {
    padding: clamp(1.5rem, -0.56rem + 4.292vw, 4rem);
}

.contact-page-form-box-text * {
    color: #FFFFFF;
}

.contact-page-form-box-text a {
    text-decoration: underline;
    text-underline-offset: 0.3em;
    color: #FFFFFF;
}

.contact-page-form-box-text a:hover{
    color: #FFFFFF;
}

.contact-page-form-box-form {
    padding: clamp(1.5rem, -0.56rem + 4.292vw, 4rem);
}

.contact-page-form-box-form h2 {
    color: var(--offblack);
}

/* ------- Coworkers ------- */

.coworker-box {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 1rem;
    background-color: #FFFFFF;
    border-radius: 4px;
    overflow: hidden;
    flex-wrap: wrap;
}

@media screen and (min-width: 768px) {

    .coworker-box {
        flex-basis: calc(50% - 1rem);
        max-width: calc(50% - 1rem);
        margin-bottom: 2rem;
    }
}

/* column */

.coworker-box {
    flex-direction: column;
}

.coworker-box > div {
    flex: 0 0 auto;
    width: 100%;
}

.coworker-box > div:last-child {
    flex-grow: 1;
}

@media screen and (min-width: 576px) {

    /* row */
    .coworker-box {
        flex-direction: row;
    }

    .coworker-box > div {
        flex-direction: row;
        flex-basis: 50%;
        max-width: 50%;
        height: 100%;
    }


    .coworker-box > div:last-child {
        flex-grow: 0;
    }
}

@media screen and (min-width: 768px) {

    /* column */
    .coworker-box {
        flex-direction: column;
    }

    .coworker-box > div {
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
        height: auto;
    }

    .coworker-box > div:last-child {
        flex-grow: 1;
    }
}

@media screen and (min-width: 992px) {

    /* row */
    .coworker-box {
        flex-direction: row;
    }

    .coworker-box > div {
        flex-direction: row;
        flex-basis: 50%;
        max-width: 50%;
        height: 100%;
    }

    .coworker-box > div:last-child {
        flex-grow: 0;
    }
}

.coworker-image {
    background-color: #f0f0f0;
    aspect-ratio: 3 / 2;
}

.coworker-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.coworker-text {
    padding: 1rem;
}

@media screen and (min-width: 1200px) {

    .coworker-text {
        padding: 1.5rem;
    }
}

.coworker-text h3 {
    color: var(--offblack);
    margin-bottom: 0;
}

.coworker-text ul {
    border-top: 1px solid #CCCCCC;
    padding-top: 1rem;
}

.coworker-text li {
    line-height: 1.8;
    font-size: 1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;

}

.coworker-text li span {
    font-size: 0.875em;
    font-weight: 600;
    text-transform: uppercase;
}

.coworker-text a,
.coworker-text a:link {
    color: var(--offblack);
}

.coworker-text svg {
    color:var(--et-red);
    width: 1.5em;
}


/* 
-----------------------------------------
REFERENCES PAGE
-----------------------------------------
*/

.reference-blocks-section {
    margin-top: 1.5rem;
}

.customer-case-block {
    background-color: var(--light-gray);
    padding: 2rem 1.5rem;
}

.customer-case-block:not(:last-child) {
    margin-bottom: 2rem;
}

@media screen and (min-width: 1700px) {

    .customer-case-block {
        padding: 2.5rem;
    }
}

.ref-content-block:not(:last-child) {
    margin-bottom: 1.5rem;
}

.ref-text-block h3 {
    margin-bottom: 1em;
    border-top: 2px solid var(--medium-gray);
    padding-top: 1em;
}

p.ref-image-caption {
    font-style: italic;
    margin-top: 0.5em;
}

.ref-quote-block {
    padding-left: 2rem;
    padding-right: 2rem;
}

.ref-quote-wrap {
    padding-left: 1rem;
    border-left: 4px solid var(--et-red);
}

p.ref-quote {
    font-size: clamp(1.125rem, 1.058rem + 0.299vw, 1.375rem);
    max-width: 60ch;
    margin-bottom: 0.75rem;
}

p.ref-quote-name {
    font-size: clamp(1rem, 0.966rem + 0.149vw, 1.125rem);
    font-weight: 500;
}

.ref-quote-name-wrap.quote-name-wrap {
    margin-left: 32px;
}

p.ref-quote-name.quote-name::before {
    width: 24px;
    height: 2px;
    left: -30px;
    top: 0.75em;
}

.career-blocks-section {
    margin-top: 2rem;
}

.job-listing-block {
    background-color: var(--light-gray);
    padding:1.5rem;
    margin-bottom: 1.5rem;
}

.job-listing-block:has(+ .career-content-block) {
    background-color: var(--light-gray);
    padding:1.5rem;
    margin-bottom: 1.5rem;
}

p.job-listing-date {
    margin-bottom: 0.5rem;
    font-size: 1rem;
}

.job-listing-block h3 {
    margin-top: 0.5rem;
}


/*
-----------------------------------------
404 PAGE
-----------------------------------------
*/

.four-o-four-page h1 {
    font-size: clamp(2.5rem, 1.963rem + 2.388vw, 4.5rem);
}

.four-o-four-page p {
    font-size: clamp(1.5rem, 1.366rem + 0.597vw, 2rem);
    max-width: 40ch;
    margin: 0 auto 1em;
}