:root {
    --font-color: #333;
    --background-color: #fff;
    --contrast-color: #000;
    --footer-color: #222;
    --error-color: #721c24;
    --success-color: #155724;
    --grey: #ccc;
    --title-type: "Teko";
}

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

body {
    font-family: "Barlow Condensed", "Segoe UI", Arial, system-ui, -apple-system, sans-serif;
    font-size: 18px;
    font-weight: 400;
    background-color: var(--background-color);
    color: var(--font-color);
    margin: 0;
    line-height: 1.6;
}

    .contact-form {
        max-width: 400px;
        margin: 0px auto;
        padding: 0px;
    }

    h1 {
        margin-bottom: 20px;
        color: var(--font-color);
    }

    .messages {
        margin-bottom: 20px;
    }

    .message {
        padding: 12px;
        border-radius: 6px;
        margin-bottom: 10px;
        font-size: 0.95rem;
    }

    .message.success {
        background-color: #d4edda;
        color: var(--success-color);
        border: 1px solid #c3e6cb;
    }

    .message.error {
        background-color: #f8d7da;
        color: var(--error-color);
        border: 1px solid #f5c6cb;
    }

    .form-group {
        margin-bottom: 10px;
    }

    label {
        display: block;
        margin-bottom: 5px;
        font-weight: 500;
        color: var(--font-color);
    }

    input[type="text"],
    input[type="email"],
    textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid var(--grey);
        border-radius: 4px;
        background-color: #f9f9f9;
        color: var(--font-color);
        font-family: Arial, sans-serif;
        font-size: 0.95rem;
        transition: border-color 0.2s ease;
    }

    input[type="text"]:focus,
    input[type="email"]:focus,
    textarea:focus {
        outline: none;
        border-color: var(--contrast-color);
        background-color: var(--background-color);
    }

    textarea {
        min-height: 100px;
        resize: vertical;
    }

    .errorlist {
        list-style: none;
        color: var(--error-color);
        background-color: #f8d7da;
        border: 1px solid #f5c6cb;
        border-radius: 4px;
        padding: 8px 12px;
        margin-top: 5px;
        font-size: 0.85rem;
    }

    .errorlist li {
        margin: 2px 0;
    }

    button[type="submit"] {
        width: 100%;
        padding: 12px;
        background-color: var(--contrast-color);
        color: var(--background-color);
        font-family: inherit;
        font-weight: bold;
        font-size: 1.3rem;
        border: none;
        border-radius: 6px;
        cursor: pointer;
        transition: background-color 0.2s ease, transform 0.1s ease;
        margin-top: 10px;
    }

    button[type="submit"]:hover:not(:disabled) {
        background-color: var(--contrast-color);
        transform: translateY(-1px);
    }

    button[type="submit"]:active {
        transform: translateY(0);
    }

    button[type="submit"]:disabled {
        background-color: var(--grey);
        cursor: not-allowed;
        opacity: 0.6;
    }

    /* Auto-hide messages after 5 seconds */
    .message.fade-out {
        animation: fadeOut 0.5s ease-out forwards;
        animation-delay: 4.5s;
    }

    @keyframes fadeOut {
        from {
            opacity: 1;
        }
        to {
            opacity: 0;
            display: none;
        }
    }

    footer {
        display: block;
        background-color: var(--footer-color);
        color: var(--background-color);
        line-height: 1;
        min-height: 82px;
        width: 100%;
        position: fixed;
        font-size: 12px;
        z-index: 3000;
        bottom: -2px;
        font-family: "Barlow Condensed", sans-serif
    }
    
    div.footer-content {
        display: flex;
        justify-content: space-between;
        margin: 1rem 3rem;
        font-size: 1.5em;
        line-height: 1.4;
        font-weight: 200
    }
    
    div.link-grid {
        display: grid;
        grid-auto-flow: column;
        grid-auto-rows: auto;
        grid-template-rows: repeat(2, auto);
        gap: .3rem 1rem
    }
    
    footer a,
    footer a:visited {
        color: var(--background-color);
        padding: 0 .5em;
        margin-left: 0;
        text-decoration: none
    }
    
    footer a:hover {
        opacity: .8
    }
    
    div.partners {
        font-weight: 100;
        font-size: 30px;
        align-content: center
    }
    
    div.partners a:not(:first-of-type) {
        border-left: 1px solid var(--grey);
    }
    
    footer a.icon {
        background-size: 18px;
        background-position: 0 50%;
        padding-left: 25px
    }
    
    footer .download-link {
        background: url(https://data.dh.gu.se/ui-icons/download_white_circle.png) no-repeat center
    }
    
    footer .site-link {
        background: url(https://data.dh.gu.se/ui-icons/arrow_link_white_circle.png) no-repeat center
    }

    nav ul {
        margin: 0.5rem 0 2rem 0;
        width: 100%;
        display: flex;
        gap: 2rem;
        list-style: none;
        padding-left: 0;
    }
    
    nav ul li a {
        color: var(--font-color);
        font-weight: 700;
    }
    
    nav ul li a:hover {
        opacity: .8;
    }

    /* didoc custom */
    @media screen {
        header {
            background-size: auto !important;
            background-position-x: right !important;
            margin-bottom: 0;
            padding-left: 1.6em;
        }
    }
    
    @media screen {
        a.site-title {
            font-size: 32px;
            padding: 24px;
            border-bottom: 0;
            display: block;
            color: #444 !important
        }
    }

    nav ul {
        padding-left: 20px;
    }

    nav ul li a {
        text-decoration: none;
        color: #646464;
        font-family: var(--title-type);
        font-weight: 500;
        font-size: 2rem;
    }

    @media screen {

        nav ul .sub-nav-toggle:after,
        nav ul [aria-haspopup=true]:after {
            font-family: "Font Awesome 5 Free";
            font-weight: 900;
            content: "";
            font-size: 14px;
            float: right;
            transition-property: transform;
            transition: .5s ease;
            display: inline-block
        }
    }

    a.site-title, a.site-title:link, a.site-title:visited, a.site-title:active, a.site-title:hover, .sub-nav-toggle:after{
        text-decoration: none;
        margin-left:0px;
        padding:0px;
        padding-bottom:10px;
        padding-left:20px;
        width:370px;
        font-size:2.0em;
        font-family: var(--title-type);
        font-style: normal;
        font-weight: 100;
        line-height:0.73;
        padding-top:20px;
    }
        
    .beta {
        font-size: 24px;
        font-weight: bold;
        color:  #dc6464;
        }
    
    main {
        padding-left: 1.6em;
    }


    #primary-nav ul.navigation {
        border-top: 1px solid #ababab;
        position: relative;
        display: none;
        margin-top: 0
    }

    #primary-nav ul.navigation.open {
        display: block
    }

    #primary-nav ul.navigation ul {
        margin: 0;
        padding: 0;
        border-top: 0;
        list-style-type: none
    }

    #primary-nav ul.navigation ul li {
        width: 100%;
        box-sizing: border-box;
        margin: 0
    }

    #primary-nav ul.navigation ul li a {
        padding: 12px 24px 12px 48px
    }

    #primary-nav ul.navigation ul li ul li a {
        padding-left: 4em
    }

    #primary-nav ul.navigation ul.sub-nav {
        display: none
    }

    #primary-nav ul.navigation .open>ul,
    #primary-nav ul.navigation .sub-nav.open {
        display: block;
        top: 0;
        left: 0;
        width: 100%;
        overflow: hidden
    }

    #primary-nav ul.navigation>li {
        padding: 0;
        list-style-type: none;
        width: 100%
    }
    
    .contact-form {
        margin: 0 20px;
    }

    #matomo {
        border-width:0px;
        width: 50%;
        max-width:650px;
        border-radius:12px;
         box-shadow: rgba(0,0,0,0.2) 0 0px 20px;
        padding:40px 40px 20px 40px;
        font-weight:300;
        font-size:0.9em;
    }
        
    #matomo p{
        line-height:1.2;
    }
    
    #matomo button.close {
        display: block;
        margin-top: 1.5em;
        margin-left:calc(50% - 30px);
        border-radius:4px;
        font-family: "Barlow Condensed", system-ui;
    }
        