﻿@import url('https://fonts.googleapis.com/css2?family=Macondo+Swash+Caps&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;700;900&display=swap');



:root {
    --c-primary: #00B89F;
    --c-primary-hover: #009980;
    --c-accent: #D00E25;
    --c-accent-hover: #b00018;
    --c-background: #ffffff;
    --c-background-dark: #f5f5f5;
    --c-surface: #ffffff;
    --c-surface-dark: #121212;
    --c-text-main: #121212;
    --c-text-light: #ffffff;
    --c-text-muted: rgba(18, 18, 18, 0.6);
    --c-text-accent: #00B89F;
    --c-text-light-muted: rgba(255, 255, 255, 0.7);
    --c-text-light-soft: rgba(255, 255, 255, 0.8);
    --c-text-light-subtle: rgba(255, 255, 255, 0.6);
    --c-border: rgba(18, 18, 18, 0.1);
    --c-border-light: rgba(255, 255, 255, 0.1);
    --c-glass: rgba(255, 255, 255, 0.9);
    --c-glass-dark: rgba(255, 255, 255, 0.1);
    --c-input-bg: #f0f0f0;
    --c-input-border: #cccccc;
    --f-mont: 'Montserrat', sans-serif;
    --f-accent: 'Macondo Swash Caps', cursive;
    --size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
    --size-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
    --size-base: clamp(1rem, 0.95rem + 0.4vw, 1.125rem);
    --size-lg: clamp(1.125rem, 1.05rem + 0.5vw, 1.25rem);
    --size-xl: clamp(1.25rem, 1.15rem + 0.75vw, 1.5rem);
    --size-2xl: clamp(1.5rem, 1.35rem + 1vw, 2rem);
    --size-3xl: clamp(2rem, 1.7rem + 1.5vw, 3rem);
    --size-4xl: clamp(2.5rem, 2rem + 2.5vw, 4rem);
    --size-hero: clamp(3rem, 2.5rem + 4vw, 6rem);
    --sp-xs: clamp(0.25rem, 0.2rem + 0.25vw, 0.5rem);
    --sp-sm: clamp(0.5rem, 0.4rem + 0.5vw, 1rem);
    --sp-md: clamp(1rem, 0.8rem + 1vw, 2rem);
    --sp-lg: clamp(2rem, 1.5rem + 2vw, 4rem);
    --sp-xl: clamp(3rem, 2.5rem + 3vw, 6rem);
    --container-padding: 1.5rem;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 16px;
    --radius-full: 9999px;
    --shadow-sm: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.filter-byn {
    filter: grayscale(100%) contrast(1.3);
}

.highlight {
    font-weight: 700;
}

.pos-bottom {
    object-position: center bottom;
}

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

body {
    font-family: var(--f-mont);
    background-color: var(--c-background);
    color: var(--c-text-main);
    line-height: 1.6;
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
    transition: color 0.3s ease;
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

ul {
    list-style: none;
}

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

.title-section {
    font-size: clamp(1.75rem, 5vw, var(--size-4xl));
    text-align: center;
    color: inherit;
    margin-bottom: var(--sp-lg);
    font-family: var(--f-mont);
    padding: 0 var(--sp-md);

    &.text-left {
        text-align: left;
    }
}

.subtitle-section {
    text-align: center;
    font-size: var(--size-lg);
    color: var(--c-text-main);
    font-style: italic;
    margin-top: calc(var(--sp-md) * -1);
    margin-bottom: var(--sp-lg);
    opacity: 0.7;
}

.text-intro {
    font-size: var(--size-lg);
    color: inherit;
    opacity: 0.8;
    max-width: 900px;
    margin: 0 auto var(--sp-xl);
    line-height: 1.8;

    em {
        color: var(--c-text-accent);
    }
}

.text-center-block {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.text-center-lg {
    text-align: center;
    margin-top: var(--sp-lg);
}

.section-hero {
    position: relative;
    width: 100%;
    min-height: 100vh;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--c-background-dark);

    &.hero-sub {
        min-height: 60vh;
        max-height: 500px;
    }

    .bg-overlay {
        position: absolute;
        inset: 0;
        z-index: 0;
        background-size: cover;
        background-position: center;

        &::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.6));
        }

        &.bg-hero-index {
            background-image: url('../img/home/pexels-jonastogo-2812697.jpg');
        }

        &.bg-destinations {
            background-image: url('../img/destinations/Copenhagen-HD-Desktop-Wallpaper-95415.jpg');

        }

        &.bg-routes {
            background-image: url('../img/routes/abs.jpg');

        }

        &.bg-hero-contact {
            background-image: url('../img/contact/download.jpeg');
        }

    }

    .hero-content {
        position: relative;
        z-index: 10;
        text-align: center;
        padding: 0 var(--container-padding);
        max-width: 1400px;
        margin: 0 auto;

        .hero-title {
            font-family: var(--f-accent);
            font-size: clamp(2.5rem, 10vw, var(--size-hero));
            line-height: 1;
            text-transform: uppercase;
            color: var(--c-text-light);
            margin-bottom: var(--sp-md);
            padding: 0 var(--sp-md);
            white-space: nowrap;
        }

        p {
            font-size: var(--size-lg);
            color: var(--c-text-light);
            max-width: 800px;
            margin: 0 auto;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
        }
    }

    .sidebar-social {
        position: absolute;
        left: var(--sp-lg);
        top: 50%;
        transform: translateY(-50%);
        z-index: 20;
        display: flex;
        flex-direction: column;
        gap: var(--sp-md);

        a {
            color: var(--c-text-light);
            font-size: var(--size-lg);
            transition: all 0.3s ease;

            &:hover {
                opacity: 1;
                color: var(--c-primary);
                transform: translateY(-3px);
            }
        }

        @media (max-width: 768px) {
            flex-direction: row;
            left: 50%;
            top: auto;
            bottom: var(--sp-lg);
            transform: translateX(-50%);
        }
    }

    .bar-stats {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        z-index: 10;

        .item-stat {
            flex: 1;
            min-width: 150px;
            padding: var(--sp-md);
            background: var(--c-background);
            border-top: 1px solid var(--c-border);
            text-align: center;

            .stat-value {
                display: block;
                font-family: var(--f-mont);
                font-size: var(--size-2xl);
                font-weight: 700;
                color: var(--c-primary);
                line-height: 1.2;
            }

            .stat-label {
                font-family: var(--f-mont);
                font-size: var(--size-sm);
                text-transform: uppercase;
                letter-spacing: 1px;
                color: var(--c-text-main);
            }

            .stat-desc {
                font-size: var(--size-xs);
                color: var(--c-text-muted);
                font-style: italic;
            }
        }

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

.section-content {
    padding: var(--sp-xl) var(--container-padding);
    background-color: var(--c-background);

    &.bg-light {
        background-color: var(--c-background-dark);
        color: var(--c-text-main);
    }

    &.bg-dark {
        background-color: var(--c-surface-dark);
        color: var(--c-text-light);

        .title-section,
        h2,
        h3,
        h4 {
            color: var(--c-text-light);
        }

        .text-intro {
            color: var(--c-text-light-muted);
        }

        .faq-item {
            background: rgba(255, 255, 255, 0.05);
            border-left-color: var(--c-primary);

            h4 {
                color: var(--c-text-light);
            }

            p {
                color: var(--c-text-light-muted);
            }
        }
    }
}

.container-grid {
    container-type: inline-size;
    display: grid;
    gap: var(--sp-lg);
    max-width: 1600px;


    &.grid-4-cols {
        grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    }

    &.grid-3-cols {
        grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    }

    &.grid-2-cols {
        grid-template-columns: repeat(auto-fit, minmax(min(350px, 100%), 1fr));
    }

    &.grid-align-center {
        align-items: center;
    }
}

.span-2 {
    grid-column: span 2;

    @media (max-width: 768px) {
        grid-column: span 1;
    }
}

.btn-group {
    display: flex;
    gap: var(--sp-md);
    justify-content: center;
    flex-wrap: wrap;
}

.btn,
.btn-primary,
.btn-secondary,
.btn-accent,
.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-sm) var(--sp-lg);
    border-radius: var(--radius-md);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
    text-decoration: none;
    font-size: var(--size-base);
}

.btn-primary {
    background: var(--c-primary);
    color: var(--c-text-main);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);

    &:hover {
        background: var(--c-primary-hover);
        transform: translateY(-2px);
        box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
        color: var(--c-text-main);
    }
}

.btn-secondary {
    background: var(--c-text-main);
    color: var(--c-text-light);

    &:hover {
        background: var(--c-surface-dark);
        color: var(--c-text-light);
        transform: translateY(-2px);
    }
}

.btn-accent {
    background: var(--c-accent);
    color: var(--c-text-light);

    &:hover {
        background: var(--c-accent-hover);
        transform: translateY(-2px);
    }
}

.btn-outline {
    background: transparent;
    border-color: var(--c-text-light);
    color: var(--c-text-light);

    &:hover {
        background: var(--c-text-light);
        color: var(--c-text-dark);
        transform: translateY(-2px);
    }
}

.card-info {
    container-type: inline-size;
    container-name: card-info;
    background: var(--c-surface-dark);
    padding: var(--sp-lg);
    border-radius: var(--radius-md);
    text-align: center;

    i {
        font-size: var(--size-3xl);
        color: var(--c-primary);
        margin-bottom: var(--sp-md);
        display: block;
    }

    h3 {
        color: var(--c-text-light);
        font-size: var(--size-lg);
        margin-bottom: var(--sp-xs);
    }

    p {
        color: var(--c-text-light-muted);
        font-size: var(--size-sm);
    }

    @container card-info (max-width: 300px) {
        padding: var(--sp-md);

        i {
            font-size: var(--size-2xl);
            margin-bottom: var(--sp-sm);
        }

        h3 {
            font-size: var(--size-base);
        }
    }
}

.card-feature {
    position: relative;
    width: 100%;
    min-height: 400px;
    margin-bottom: var(--sp-md);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    border-radius: var(--radius-md);

    .card-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.9), transparent);
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: var(--sp-md);
        transition: background 0.3s;

        h3 {
            color: var(--c-text-light);
            font-size: var(--size-xl);
            font-family: var(--f-mont);
            margin-bottom: var(--sp-xs);
        }

        span {
            text-transform: uppercase;
            font-size: var(--size-sm);
            letter-spacing: 1px;
            color: var(--c-text-light-soft);
        }

        p {
            color: var(--c-text-light-muted);
            font-size: var(--size-sm);
            margin-top: var(--sp-xs);
        }
    }

    &:hover {
        transform: translateY(-5px);
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);

        .card-bg {
            transform: scale(1.1);
        }

        .card-overlay {
            background: linear-gradient(to top, rgba(0, 184, 159, 0.95), transparent 80%);
        }
    }

    .card-bg {
        position: absolute;
        inset: 0;
        background-size: cover;
        background-position: center;
        z-index: -1;
        background-image: url('../img/imported-img-1.jpg');
        transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    &.card-bg-index.top-1 .card-bg {
        background-image: url('../img/home/top1.jpg');
    }

    &.card-bg-index.top-2 .card-bg {
        background-image: url('../img/home/top2.jpeg');
    }

    &.card-bg-index.top-3 .card-bg {
        background-image: url('../img/home/top3.jpeg');
    }

    &.dest-copenhagen .card-bg {
        background-image: url('../img/destinations/falta.jpeg');
    }

    &.dest-mons .card-bg {
        background-image: url('../img/destinations/Møns_Klint_7.jpg');
    }

    &.dest-odense .card-bg {
        background-image: url('../img/destinations/odense.jpg');
    }

    &.dest-bornholm .card-bg {
        background-image: url('../img/destinations/bornholm.jpg');
    }

    &.dest-aarhus .card-bg {
        background-image: url('../img/destinations/aarhus.webp');
    }

    &.dest-wadden .card-bg {
        background-image: url('../img/destinations/wadden_sea.jpg');
    }

    &.dest-billund .card-bg {
        background-image: url('../img/destinations/billund.jpg');
    }

    &.dest-skagen .card-bg {
        background-image: url('../img/destinations/skagen.jpg');
    }

    &.card-large {
        height: 500px;
    }

    &.card-wide {
        height: 350px;
    }
}


.bg-greenland {
    background-image: url('../img/masonry/Northern Lights - Visit Greenland.jpeg');
}

.bg-faroe {
    background-image: url('../img/imported-img-2.jpg');
}

.card-cta {
    .card-overlay {
        justify-content: flex-end;
        padding-bottom: var(--sp-xl);
    }

    .btn {
        margin-top: var(--sp-md);
        display: inline-flex;
        align-items: center;
        gap: var(--sp-sm);
    }
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: var(--sp-md) var(--container-padding);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(18, 18, 18, 0.9);

    .logo {
        display: flex;
        align-items: center;
        z-index: 1002;

        img {
            height: clamp(28px, 24px + 1vw, 40px);
        }
    }

    nav {
        display: flex;
        align-items: center;

        .nav-items {
            display: flex;
            gap: var(--sp-md);

            li a {
                font-family: var(--f-mont);
                font-weight: 500;
                font-size: var(--size-sm);
                text-transform: uppercase;
                letter-spacing: 1px;
                color: var(--c-text-light);

                &:hover,
                &.active {
                    color: var(--c-primary);
                }
            }
        }

        .menu-icon {
            display: none;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            width: 32px;
            height: 32px;
            cursor: pointer;
            z-index: 1002;
            position: relative;

            span {
                display: block;
                width: 24px;
                height: 3px;
                background-color: var(--c-text-light);
                border-radius: 2px;
                position: absolute;
                transition: all 0.4s cubic-bezier(0.68, -0.6, 0.32, 1.6);

                &:nth-child(1) {
                    top: 8px;
                }

                &:nth-child(2) {
                    top: 50%;
                    transform: translateY(-50%);
                }

                &:nth-child(3) {
                    bottom: 8px;
                }
            }

            &.active span:nth-child(1) {
                top: 50%;
                transform: translateY(-50%) rotate(45deg);
            }

            &.active span:nth-child(2) {
                opacity: 0;
                transform: translateX(-20px);
            }

            &.active span:nth-child(3) {
                bottom: auto;
                top: 50%;
                transform: translateY(-50%) rotate(-45deg);
            }
        }

        @media (max-width: 768px) {
            .nav-items {
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                height: auto;
                max-height: 70vh;
                padding: 90px var(--sp-md) var(--sp-xl);
                background: var(--c-surface-dark);
                flex-direction: column;
                justify-content: flex-start;
                align-items: center;
                gap: 0;
                opacity: 0;
                visibility: hidden;
                transform: translateY(-100%);
                transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
                border-radius: 0 0 var(--radius-lg) var(--radius-lg);
                overflow: hidden;
                box-sizing: border-box;

                &.active {
                    opacity: 1;
                    visibility: visible;
                    transform: translateY(0);
                }

                li {
                    width: 100%;
                    text-align: center;
                    border-bottom: 1px solid var(--c-border-light);

                    &:last-child {
                        border-bottom: none;
                    }
                }

                li a {
                    font-size: var(--size-lg);
                    display: block;
                    padding: var(--sp-md) var(--sp-md);
                    color: var(--c-text-light);

                    &:hover {
                        background: var(--c-glass-dark);
                        color: var(--c-primary);
                    }
                }
            }

            .menu-icon {
                display: flex;
            }
        }
    }
}

footer {
    background-color: var(--c-background);
    color: var(--c-text-main);

    .social-bar {
        background-color: var(--c-primary);
        color: var(--c-text-light);
        padding: var(--sp-sm) 0;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: var(--sp-md);

        span {
            font-family: var(--f-mont);
            font-weight: 500;
        }

        .social-icons {
            display: flex;
            gap: var(--sp-sm);
        }
    }

    .grid-footer {
        padding: var(--sp-xl) var(--container-padding);
        display: grid;
        grid-template-columns: 1.5fr repeat(3, 1fr);
        gap: var(--sp-lg);

        h4 {
            font-size: var(--size-sm);
            text-transform: uppercase;
            font-weight: 700;
            margin-bottom: var(--sp-md);
        }

        ul li {
            margin-bottom: var(--sp-xs);

            a {
                color: var(--c-text-main);
                opacity: 0.7;
            }

            a:hover {
                color: var(--c-primary);
                opacity: 1;
            }
        }

        @media (max-width: 1024px) {
            grid-template-columns: 1fr 1fr;
        }

        @media (max-width: 600px) {
            grid-template-columns: 1fr;
            text-align: center;
        }
    }

    .copyright {
        text-align: center;
        padding: var(--sp-md);
        border-top: 2px solid var(--c-primary);
        color: var(--c-text-main);
        opacity: 0.7;
    }
}