:root {
    /* Fargepalett */
    --primary-color: #2A4B5F; /* Dyp sjøblå/grå */
    --secondary-color: #6B8B9B; /* Lysere havblå */
    --accent-color: #E6B800; /* Gylden gul */
    --background-color: #F8F8F8; /* Nesten hvit bakgrunn */
    --text-color: #333333; /* Mørk grå tekst */
    --light-text-color: #F0F0F0; /* Lysere tekst for mørke bakgrunner */
    --dark-grey-text: #666666; /* Mellomgrå tekst */
    --border-color: #E0E0E0; /* Lys grå for kanter */
    --shadow-color: rgba(0, 0, 0, 0.1); /* Standard skygge */
    --error-color: #D8000C; /* Rød for feilmeldinger */

    /* Typografi */
    --font-family-heading: 'Montserrat', sans-serif;
    --font-family-body: 'Open Sans', sans-serif;
    --font-size-base: 1rem; /* 16px */
    --line-height-base: 1.6;

    /* Mellomrom og størrelser */
    --spacing-extra-small: 0.5rem;
    --spacing-small: 1rem;
    --spacing-medium: 1.5rem;
    --spacing-large: 2rem;
    --spacing-extra-large: 3rem;

    /* Overganger */
    --transition-speed: 0.3s ease-in-out;
}

html {
    scroll-behavior: smooth;
    font-size: 16px; /* Sikrer minimum fontstørrelse for tilgjengelighet */
}

body {
    font-family: var(--font-family-body);
    line-height: var(--line-height-base);
    color: var(--text-color);
    background-color: var(--background-color);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Grunnleggende Bulma-overstyringer for fargepaletten */
.has-text-primary { color: var(--primary-color) !important; }
.has-text-secondary { color: var(--secondary-color) !important; }
.has-text-accent { color: var(--accent-color) !important; }
.has-text-grey { color: var(--dark-grey-text) !important; }
.has-text-white { color: #ffffff !important; }
.has-text-white-ter { color: var(--light-text-color) !important; }
.has-text-danger-dark { color: var(--error-color) !important; }

.has-background-primary { background-color: var(--primary-color) !important; }
.has-background-secondary { background-color: var(--secondary-color) !important; }
.has-background-accent { background-color: var(--accent-color) !important; }
.has-background-light { background-color: #F0F0F0 !important; } /* Litt mørkere enn --background-color */
.has-background-white { background-color: #ffffff !important; }

.button.is-primary {
    background-color: var(--primary-color);
    border-color: transparent;
    color: #ffffff;
    transition: background-color var(--transition-speed), transform var(--transition-speed);
}
.button.is-primary:hover {
    background-color: darken(var(--primary-color), 5%);
    transform: translateY(-2px);
}

.button.is-secondary {
    background-color: var(--secondary-color);
    border-color: transparent;
    color: #ffffff;
    transition: background-color var(--transition-speed), transform var(--transition-speed);
}
.button.is-secondary:hover {
    background-color: darken(var(--secondary-color), 5%);
    transform: translateY(-2px);
}

.button.is-accent {
    background-color: var(--accent-color);
    border-color: transparent;
    color: var(--primary-color); /* Kontrastfarge for knappen */
    font-weight: bold;
    transition: background-color var(--transition-speed), transform var(--transition-speed), box-shadow var(--transition-speed);
    box-shadow: 0 4px 8px var(--shadow-color);
}
.button.is-accent:hover {
    background-color: lighten(var(--accent-color), 5%);
    transform: translateY(-3px);
    box-shadow: 0 6px 12px var(--shadow-color);
}

/* Globale typografistiler */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading);
    color: var(--primary-color);
    line-height: 1.2;
    margin-bottom: var(--spacing-small);
}

h1 { font-size: 3.5rem; font-weight: 700; }
h2 { font-size: 2.5rem; font-weight: 700; }
h3 { font-size: 2rem; font-weight: 700; }
h4 { font-size: 1.5rem; font-weight: 600; }
h5 { font-size: 1.25rem; font-weight: 600; }
h6 { font-size: 1rem; font-weight: 600; }

p {
    margin-bottom: var(--spacing-medium);
}

a {
    color: var(--primary-color);
    text-decoration: none;
    transition: color var(--transition-speed);
}
a:hover {
    color: var(--accent-color);
}

/* Seksjons-spacing */
.section.is-medium {
    padding: 4rem 1.5rem;
}

.section.is-small {
    padding: 2rem 1.5rem;
}

/* Skjulte elementer */
.is-hidden {
    display: none !important;
}

/* Modaler */
.modal-content.age-modal-content {
    background-color: #ffffff;
    padding: 2rem;
    border-radius: 8px;
    max-width: 450px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    text-align: center;
}

/* Utility for flex sentrering */
.is-flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Overstyrer Bulma for å tilpasse ikoner */
.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}

.icon svg {
    width: 1em;
    height: 1em;
}

.icon.is-large svg {
    width: 1.5em; /* Større ikoner i f.eks. footer */
    height: 1.5em;
}

/* CSS for darken og lighten funksjoner (simulert, da CSS ikke har dette direkte) */
/* Disse må justeres manuelt eller via en preprosessor som Sass/Less */
/* For nå brukes faste verdier for hover-tilstander */

/* Fargefunksjoner for CSS-variabler (uten Sass/Less) */
/* Kan utvides ved behov med JS-basert fargejustering */
/* Eksempel:
.button.is-primary:hover {
    background-color: color-mix(in srgb, var(--primary-color) 90%, black);
}
*/