.mrhost-menu,
.mrhost-menu * {
    font-family: "DM Sans", sans-serif !important;
}

/* ================= ICONS ================= */

.info-icon i,
.info-icon,
.mrhost-caret i {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Pro" !important;
}

/* ================= BASE ================= */

.mrhost-menu {
    position: relative;
    z-index: 9999;
    --gap: 50px;
}

/* ================= NAV ================= */

.mrhost-nav {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 30px;
    position: relative;
}

.mrhost-nav-item {
    position: relative;
}

/* LINKS */

.mrhost-nav a,
.mrhost-nav-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    padding: 0;
    font-size: 15px;
    color: #1f1f1f;
    cursor: pointer;
    text-decoration: none;
    transition: color .2s ease;
}

.mrhost-nav a:hover,
.mrhost-nav-trigger:hover,
.mrhost-nav-trigger.is-active,
.mrhost-nav-trigger.is-current {
    color: #7253ED;
}

/* Desktop touch/click fix */
.mrhost-nav-trigger:focus {
    outline: none;
}

@media (hover: hover) {

    .mrhost-nav-trigger:hover {
        color: #7253ED;
    }
}

/* ================= CARET ================= */

.mrhost-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    transition: transform .2s ease;
}

.mrhost-nav-trigger.is-active .mrhost-caret {
    transform: rotate(180deg);
}

/* Current state */
.mrhost-nav-trigger.is-current .mrhost-caret {
    transform: rotate(0deg);
}

/* När aktiv root hovras */
.mrhost-nav-trigger.is-current:hover .mrhost-caret {
    transform: rotate(180deg);
}

/* ================= HIDE TOGGLE WHEN MOBILE OPEN ================= */

.mrhost-menu.is-mobile > .mrhost-menu-toggle {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* ================= PANEL ================= */

.mrhost-panel {
    position: absolute;
    top: calc(100% + var(--gap));
    left: -60px;
	max-width: calc(100vw - 60px);
   	width: max-content;
    background: #fff;
    border-radius: 10px;
    border: 1px solid #ECECFF;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    transition:
        opacity .18s ease,
        transform .18s ease;
}

.mrhost-menu.is-hover .mrhost-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* HOVER BRIDGE */

.mrhost-panel::before {
    content: "";
    position: absolute;
    top: -40px;
    left: 0;
    right: 0;
    height: 40px;
}

/* ================= CONTENT ================= */

.mrhost-content {
    display: none;
}

.mrhost-content.is-active {
    display: block;
}

/* ================= GRID ================= */

.mrhost-mega-menu-grid {
    display: grid;
    grid-template-columns: repeat(4, 240px);
    gap: 18px;
    padding: 30px;
}

/* ================= CARD ================= */

.mega-menu-square {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    background: #fff;
    width: 100%;
    padding: 18px;
    border-radius: 12px;
    border: 1px solid transparent;
    text-decoration: none;
    transition:
        background-color .25s ease,
        border-color .25s ease,
        transform .2s ease;
}

.mega-menu-square:hover,
.mega-menu-square.is-active {
    background: #f4f5ff;
    border-color: #ECECFF;
}

/* ICON */

.info-icon {
    font-size: 26px;
    color: #7253ED;
    margin-bottom: 14px;
    display: inline-flex !important;
}

/* TITLE */

.mega-menu-square h3 {
    font-size: 18px;
    color: #000;
    margin: 0 0 8px;
    font-weight: 600;
    text-align: left;
}

/* DESC */

.mega-menu-square p {
    font-size: 14px;
    color: #8b8b8b;
    margin: 0;
    text-align: left;
    transition: color .2s ease;
}

.mega-menu-square:hover p,
.mega-menu-square.is-active p {
    color: #000;
}

/* ================= MOBILE TOGGLE ================= */

.mrhost-menu-toggle {
    display: none;
    border: none;
    background: none;
    cursor: pointer;
    color: #111;
    font-size: 34px;
    padding: 0;
    line-height: 1;
    -webkit-tap-highlight-color: transparent;
	margin-left: auto;
}

/* ICONS */
.mrhost-menu-toggle .close {
    opacity: 0;
    pointer-events: none;
}

/* ================= MOBILE ================= */

.mrhost-mobile {
    display: none;
}

.mrhost-menu.is-mobile {
    position: fixed;
    inset: 0;
    overflow: hidden;
}

/* OVERLAY */

.mrhost-menu.is-mobile .mrhost-mobile {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: white;
    backdrop-filter: blur(10px);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 100px 20px 40px;
    animation: mobileFade .22s ease;
}

/* HEADER */

.mrhost-mobile-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
	border-bottom: 1px solid #eee;
    padding: 0 20px;
    background: rgba(255,255,255,.98);
    backdrop-filter: blur(10px);
    z-index: 10006;
}

.mrhost-mobile-logo img {
    height: 42px;
    width: auto;
    object-fit: contain;
}

/* ================= MOBILE CLOSE ================= */

.mrhost-mobile-close {
    width: 44px;
    height: 44px;
    border: none;
    background: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
    color: #111;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
    appearance: none;
}

.mrhost-mobile-close:focus {
    outline: none;
    box-shadow: none;
}

/* CLOSE BTN */

.mrhost-menu-toggle {
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
}

.mrhost-menu.is-mobile .mrhost-menu-toggle {
    position: fixed !important;

    top: 17px !important;
    right: 20px !important;

    width: 44px;
    height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 !important;
    padding: 0 !important;

    z-index: 999999 !important;

    transform: none !important;
    will-change: auto !important;

    pointer-events: auto;
}

/* MOBILE LINKS */

.mrhost-mobile > a,
.mobile-trigger {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;

    width: 100%;

    padding: 18px 0;

    border-bottom: 1px solid #eee;

    font-size: 20px;
    color: #111;

    text-decoration: none;

    cursor: pointer;
}

/* ACTIVE ROOT */

.mobile-group.is-current > .mobile-trigger,
.mrhost-mobile > a.is-current {
    color: #7253ED;
    font-weight: 400;
}

.mobile-trigger.is-active,
.mrhost-mobile > a.is-active {
    color: #7253ED;
}

/* När användaren börjar interagera */
.mobile-group.user-interacted.is-current > .mobile-trigger,
.mrhost-mobile.user-interacted > a.is-current {
    color: #111;
    font-weight: 400;
}

/* ACCORDION */

.mobile-content {
    display: none;
    padding-top: 18px;
    max-height: 70vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.mobile-group.is-open .mobile-content {
    display: block;
}

/* MOBILE GRID */

.mobile-content .mrhost-mega-menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding: 0;
}

.mobile-content .mega-menu-square {
    width: 100%;
    border: none !important;
    padding: 15px;
}

/* ARROW */

.arrow {
    transition: transform .2s ease;
}

.mobile-group.is-open .arrow {
    transform: rotate(90deg);
}

/* LOCK */

body.no-scroll {
    overflow: hidden;
}

/* ================= ANIMATIONS ================= */

@keyframes mobileFade {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ================= TABLET ================= */

@media (max-width: 1200px) {

    .mrhost-mega-menu-grid {
        grid-template-columns: repeat(2, 260px);
        padding: 20px;
        gap: 14px;
    }

    .mega-menu-square {
        width: 100%;
        padding: 16px;
    }

    .mega-menu-square h3 {
        font-size: 16px;
    }

    .mega-menu-square p {
        font-size: 13px;
    }

    .info-icon {
        font-size: 22px;
        margin-bottom: 10px;
    }
}

/* ================= MOBILE ================= */

@media (max-width: 767px){

    .mrhost-nav,
    .mrhost-panel {
        display: none !important;
    }

	.mrhost-menu {
        display: flex;
        justify-content: flex-end;
        width: 100%;
    }

    .mrhost-menu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
		color: black;
		margin-left: auto;
    }

	.mrhost-menu-toggle .open {
		order: 2;
		font-size: 40px;
	}

	.mrhost-menu-toggle .close {
		order: 1;
	}
	
	.mega-menu-square h3 {
		font-weight: 400;
	}
	.mega-menu-square .info-icon {
		font-size: 18px;
	}
}

/* ================= MID DESKTOP ================= */

@media (min-width: 1201px) and (max-width: 1490px) {

    .mrhost-panel {
        left: -40px;
    }

    .mrhost-mega-menu-grid {
        grid-template-columns: repeat(2, minmax(240px, 1fr));
        padding: 24px;
        gap: 16px;
    }

    .mega-menu-square {
        min-width: 0;
    }
}

/* ================= DESKTOP RESET ================= */

@media (min-width: 768px) {

    .mrhost-mobile {
        display: none !important;
    }

    .mrhost-menu {
        position: relative !important;
        inset: auto !important;
        overflow: visible !important;
    }
}

/* ================= IOS TOUCH FIX ================= */

.mrhost-menu-toggle,
.mobile-trigger,
.mrhost-mobile a,
.mega-menu-square,
.mrhost-nav-trigger {
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
    outline: none;
}

.mrhost-menu-toggle:focus,
.mobile-trigger:focus,
.mrhost-mobile a:focus,
.mrhost-nav-trigger:focus {
    outline: none;
    box-shadow: none;
}