@font-face {
    font-family: 'Albert Sans';
    src: url('https://cdn.taurusnetwork.uk/static/fonts/AlbertSans/AlbertSans-Regular.ttf') format('truetype');
}

a[href="#"] {
    text-decoration: line-through;
}

html {
    scrollbar-width: thin;
}

body {
    background-color: var(--colourBackground);
    font-family: 'Albert Sans', sans-serif;
}

h1, h2, h3, h4, h5 {
    font-family: 'Inter Black';
    font-weight: bold;   

    &.seo-hidden {
        font-size: 0;
    }
}

span.keyword {
    color: var(--colourBrand);
}

span.block {
    display: block;
}

div.container {
    max-width: var(--layoutWidth);
    margin: 0 auto;
    padding: 0 18px;
}

body.loading {
    header a.brand > img.cog {
        animation: rotation-anim 1.5s infinite linear;
    }
}

*.spinner {
    animation: rotation-anim 1s infinite linear;
}

@keyframes rotation-anim {
    0% {
        transform: rotate(0deg);
    }
    50% {
        transform: rotate(180deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

div.alert {
    border-left: solid 4px var(--colourBrand);
    padding: 9px 18px;
}

button,.button {
    --buttonColour: var(--colourBrand);

    &.secondary {
        --buttonColour: var(--colourBrandSecondary);
    }

    padding: 10px 20px;
    border-radius: 5px;
    color: white;
    display: block;
    margin: 0 auto;
    width: fit-content;
    background-color: var(--buttonColour);
    cursor: pointer;
    border: none;
    text-decoration: none;

    &:hover {
        background-color: color-mix(in srgb, var(--buttonColour) 80%, black 20%);
    }

    &:active {
        background-color: color-mix(in srgb, var(--buttonColour) 70%, black 30%);
    }    
}

body:has(div.hero) {
    header {
        background-color: transparent;
        box-shadow: none;
        /*margin-top: -30px;
        a.brand {
            img.cog {
                width: 200px;
            }
        }*/
    }
}

header {
    margin: 0 auto;
    padding: 0 18px;
    position: relative;
    z-index: 100;
    background-color: white;
    box-shadow: var(--layoutShadow);

    > div.container {
        display: flex;
        align-items: stretch;
        justify-content: space-between;
        height: var(--headerHeight);

        a.brand {
            display: flex;
            align-items: center;
            gap: 18px;

            img.cog {
                width: 120px;
                aspect-ratio: 1/1;
            }

            img {
                filter: drop-shadow(0px 0px 50px rgba(0, 0, 0, 0.25));
            }

            img.text {
                height: 80px;
            }
        }

        nav {
            height: calc(var(--headerHeight) - 80px);
            display: flex;
            justify-content: flex-end;
            align-items: flex-end;

            div.item {
                font-size: 1.2rem;
                font-weight: bold;
                color: black;
                text-decoration: none;
                cursor: pointer;
                position: relative;
                padding: 0 24px;

                a {
                    color: black;
                    text-decoration: none;
                }

                &.burger-menu {
                    display: none;
                }

                &:hover {
                    text-decoration: underline;
                }

                &.active {
                    &::before {
                        content: ' ';
                        background-color: var(--colourBrand);
                        width: 100%;
                        height: 10px;
                        position: absolute;
                        top: -29px;
                        left: 0;
                    }

                    &::after {
                        content: ' ';
                        background-color: white;
                        width: 100%;
                        height: 150px;
                        position: absolute;
                        top: -24px;
                        left: 0;
                        z-index: -1;
                        box-shadow: var(--layoutShadow);
                    }
                }

                &:has(svg) {
                    display: flex;
                    flex-direction: column;
                    align-items: center;

                    a {
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                    }

                    svg {
                        width: auto;
                        height: 30px;
                    }

                    span {
                        margin-top: 8px;
                        font-size: 1rem;
                    }
                }
            }
        }
    }

    aside.menu {
        display: none;
        position: absolute;
        top: calc(var(--headerHeight) - 18px);
        left: 0;
        width: 100%;
        background-color: white;
        padding: 36px;
        box-shadow: var(--layoutShadow);

        div.columns {
            /*display: flex;
            gap: 24px;
            justify-content: space-evenly;
            flex-wrap: wrap;*/

            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 24px;

            p.title {
                font-family: 'Inter Black';
                font-size: 1.2rem;
            }

            .decorated {
                display: flex;
                flex-direction: column;
                justify-content: flex-end;
                flex-grow: 1;
                flex-basis: 0;
                aspect-ratio: 16/12;
                cursor: pointer;
                position: relative;
                min-width: 250px;
                max-width: 350px;
                width: 100%;

                background-color: var(--colourPlaceholder);
                background-image: var(--image);
                background-size: cover;
                background-position: center center;
                padding: 18px;
                border-radius: 5px;
                box-shadow: var(--layoutShadow);

                p {
                    font-size: 1.2rem;
                    margin-bottom: 0;
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    right: 0;
                    background-color: var(--colourBrand);
                    color: white;
                    border-bottom-left-radius: 5px;
                    border-bottom-right-radius: 5px;
                    padding: 9px;
                    display: flex;
                    justify-content: space-between;
                    align-items: center;

                    svg {
                        display: none;
                        fill: white;
                        height: 25px;
                        width: auto;
                    }
                }

                &:hover {
                    svg {
                        display: block;
                    }
                }

                @media (max-width: 768px) {
                    aspect-ratio: 16/7;
                }
            }
        }

        &[data-menu="solutions"] {
            div.column {
                display: flex;
                flex-direction: column;

                div.solutions {
                    flex-grow: 1;
                }

                a.and-more {
                    text-align: right;
                    font-style: italic;
                    margin-top: 9px;
                    display: block;
                }

                a.learn {
                    margin-top: 18px;
                    background-color: var(--colourBrand);
                    padding: 8px;
                    border-radius: 4px;
                    box-shadow: var(--layoutShadow);
                    width: 100%;
                    color: white;
                    display: flex;
                    justify-content: space-between;

                    svg {
                        fill: white;
                        display: none;
                        height: 20px;
                        width: auto;
                    }

                    &:hover {
                        svg {
                            display: block;
                        }
                    }
                }
            }
        }

        &[data-menu="client-area"] {
            div.columns {
                display: flex;
                justify-content: center;
                gap: 36px;
                max-width: 1100px;
                margin: 0 auto;
                flex-wrap: wrap;
            }

            div.details {
                flex: 1;
                :not(:first-child) {
                    margin-top: 18px;
                }
            }
        }

        a {
            font-weight: normal;
            color: black;
            text-decoration: none;
            display: block;
            width: fit-content;

            &:hover {
                font-weight: bold;
            }
        }

        &.active {
            display: block !important;
        }
    }

    @media (max-width: 1150px) {
        div.item:not(:has(svg)) {
            display: none;
        }

        div.item.burger-menu {
            display: flex !important;
        }
    }

    @media (max-width: 768px) {
        nav {
            height: calc(var(--headerHeight) - 40px) !important;
        }
    }

    @media (max-width: 650px) {
        div.item.client-area {
            display: none !important;
        }

        div.container {
            flex-direction: row-reverse;
            justify-content: space-between;
            gap: 20px;
        }

        nav {
            justify-content: flex-start !important;
        }

        a.brand {
            img.cog {
                width: 70px !important;
            }

            img.text {
                height: 50px !important;
            }
        }
    }

    @media (max-width: 420px) {
        a.brand {
            img.cog {
                width: 50px !important;
            }

            img.text {
                height: 40px !important;
            }
        }

        nav > div.item {
            padding: 10px !important;
        }
    }
}

footer {
    box-shadow: var(--layoutShadow);
    background-color: white;
    margin-top: 36px;
    padding: 18px;

    div.partners {
        margin-bottom: 36px;
    }

    p {
        text-align: center; 
    }

    div.columns {
        display: flex;
        justify-content: space-between;
        align-items: center;
        
        div.contact {
            display: flex;
            flex-direction: column;
            gap: 18px;
        }

        @media (max-width: 768px) {
            div.contact {
                display: none;
            }

            margin-bottom: 36px;
        }
    }

    p.taurusnetwork {
        font-weight: bold;
    }
}

div.contact-method {
    display: flex;
    gap: 20px;
    align-items: center;

    div.icon {
        width: 60px;
        height: 60px;
        border-radius: 50%;
        background-color: #015973;
        display: flex;
        align-items: center;
        justify-content: center;

        svg {
            fill: white;
            width: 50%;
        }
    }

    div.info {
        text-align: left;

        p.label {
            font-weight: bold;
        }
    }
}

div.container.strip {
    margin: 36px auto;
    display: flex;
    align-items: center;

    &.flip {
        flex-direction: row-reverse;
    }

    div.content, img {
        flex: 1;
    }

    img {
        width: 50%;
        height: 500px;
        box-shadow: var(--layoutShadow);
        object-fit: cover;

        &:not([src]) {
            background-color: var(--colourPlaceholder);
        }
    }

    div.content {
        padding: 36px;
        display: flex;
        flex-direction: column;
        gap: 32px;
        justify-content: center;
        text-align: left;

        h3 {
            font-size: 3rem;
        }

        div.copy {
            font-size: 1.2rem;
        }

        p {
            margin-top: 18px;
        }
    }

    @media (max-width: 992px) {
        flex-direction: column !important;
        align-items: center;

        div.content {
            width: 100%;
            max-width: unset;
            text-align: center;

            h3 {
                font-size: 2rem;
            }

            ul,ol {
                text-align: left;
            }
        }

        img {
            width: 100%;
            max-width: unset;
            height: auto;
        }
    }

    @media (max-width: 768px) {
        div.content {
            h3 {
                font-size: 1.6rem;
            }

            div.copy {
                font-size: 1rem;
            }
        }
    }
}

div.interruptor {
    background-color: white;
    box-shadow: var(--layoutShadow);
    margin: 36px 0;
    padding: 18px;

    &.no-mb {
        margin-bottom: 0;
    }

    div.title {
        font-size: 1.8rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 36px;  
        margin-bottom: 18px;
        text-align: center;
        white-space: nowrap;

        &::before, &::after {
            content: ' ';
            border-top: solid black 1px;
            display: block;
            width: 200px;
        }
    }

    @media (max-width: 768px) {
        div.title {
            font-size: 1.4rem;
            white-space: wrap;
            gap: 18px;

            &::before, &::after {
                flex: 1;
            }
        }
    }
}

div.interruptor.news-and-updates {
    div.articles {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 18px;

        article {
            border: solid var(--colourBorder) 1px;
            border-radius: 4px;
            min-width: 300px;
            max-width: 400px;
            text-align: left;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            display: flex;
            flex-direction: column;

            img {
                aspect-ratio: 16 / 9;
                border-bottom: solid var(--colourBorder) 1px;
                border-radius: 4px 4px 0 0;
                background-color: var(--colourPlaceholder);
                object-fit: cover;
            }

            div.content {
                flex-grow: 1;
                display: flex;
                flex-direction: column;
                gap: 18px;
                padding: 18px;
                justify-content: space-between;

                h4 {
                    font-size: 1.6rem;
                }

                p {
                    flex-grow: 1;
                }

                a {
                    margin-right: 0;
                }
            }
        }
    }
}

div.partners {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    gap: 36px;
    flex-wrap: wrap;

    div.partner {
        display: flex;
        flex-direction: column;
        justify-content: center;

        img {
            max-height: 100px;
            max-width: 150px;
        }

        &.background {
            background-color: var(--colourBrand);
        }
    }
}
             
div.contact-method {
    display: flex;
    flex-direction: row;
    gap: 18px;

    p {
        text-align: left;
    }

    &.flip {
        flex-direction: row-reverse;

        p {
            text-align: right;
        }
    }
}

div.interruptor.enquiry {
    div.columns {
        display: flex;
        gap: 90px;
        justify-content: center;
        align-items: center;

        div.contact-methods {
            display: flex;
            flex-direction: column;
            gap: 18px;
        }

        div.or {
            width: 20%;
            flex: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 18px;

            &::before, &::after {
                content: '';
                display: block;
                height: 30px;
                border-left: solid 1px var(--colourBorder);
            }
        }

        @media (max-width: 768px) {
            flex-direction: column;
            gap: 36px;

            div.or {
                flex-direction: row;
                width: unset;

                &::before, &::after {
                    flex-shrink: 0;
                    border-top: solid 1px var(--colourBorder);
                    border-left: none;
                    width: 30px;
                    height: unset;
                }
            }
        }
    }
}

div.headline {
    max-width: var(--layoutWidth);
    margin: 0 auto;
    box-shadow: var(--layoutShadow);
    padding: 0 !important;

    div.title {
        font-size: 1.4rem;
        background-color: var(--colourBrand);
        color: white;
        padding: 18px;
    }

    div.image {
        height: 300px;
        background-color: var(--colourPlaceholder);
        background-image: var(--imageUrl);
        background-size: cover;
        background-position: var(--imagePosition, center center);
        width: 100%;
    }

    &.short {
        div.image {
            height: 125px;
        }
    }

    &.blur {
        div.image {
            overflow: hidden;
        }
    }
}

div.quote {
    font-size: 1.8rem;
    text-align: center;
    font-family: 'Merriweather', serif;
    position: relative;
    width: fit-content;
    margin: 72px auto;
    margin-bottom: 0;
    padding-left: 40px;
    padding-right: 40px;

    &::before {
        content: '“';
        font-size: 3rem;
        position: absolute;
        left: 0;
        top: -40px;
    }

    &::after {
        content: '”';
        font-size: 3rem;
        position: absolute;
        right: 0;
        bottom: -60px;
    }
}

div.hero.container {
    position: relative;
    height: 700px;
    overflow: hidden;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    box-shadow: var(--layoutShadow);
    width: 100%;
    max-width: unset;

    video,img {
        height: inherit;
        width: 100%;
        object-fit: cover;
        position: absolute;
        z-index: -1;
        opacity: 0.5;
    }

    h1,p.title {
        margin-top: 120px;
        font-size: 5rem;
        font-family: 'Inter Black';
        padding: 18px;

        @media (max-width: 768px) {
            font-size: 4rem;
        }

        @media (max-width: 576px) {
            font-size: 3rem;
        }
    }

    p.subtitle {
        padding: 18px;
        margin-top: 18px;
        font-size: 2rem;
        font-weight: bold;
    }

    &:not(.mid-page) {
        margin-top: calc(0px - var(--headerHeight));
    }
}