/*
© 2025 AltiBedrift / Haut Forvalting AS (Org.nr: 926 873 954)
Dette materialet er beskyttet av åndsverkloven.
Uautorisert kopiering, distribusjon eller endring er forbudt.
Kunden har kun bruksrett iht. avtale.
Eierskap til kode, struktur og design forblir hos Altibedrift.
*/
@keyframes page-fade-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes bob-up-down { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

:root {
    --brand-color: #69522e;
    --glow-color-soft: rgba(105, 82, 46, 0.25);
    --glow-color-medium: rgba(105, 82, 46, 0.35);
}

/* Accessibility: Add visible focus styles for keyboard navigation */
a:focus-visible, 
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--brand-color);
    outline-offset: 3px;
    box-shadow: 0 0 0 4px rgba(105, 82, 46, 0.4);
    border-radius: 2px;
    transition: outline 0.2s ease, box-shadow 0.2s ease;
}
#header a:focus-visible {
    border-radius: 0; /* Remove radius for nav links to avoid odd shapes */
}
/* End Accessibility */


body { 
    animation: page-fade-in 1s ease-out;
}
.bob-1 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.1s; }
.bob-2 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.3s; }
.bob-3 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.5s; }
.bob-4 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.2s; }
.bob-5 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.4s; }
.bob-6 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.6s; }
.bob-7 { animation: bob-up-down 2.8s ease-in-out infinite; animation-delay: 0.3s; }
.bob-icon-1 { animation: bob-up-down 2.2s ease-in-out infinite; }
.bob-icon-2 { animation: bob-up-down 2.2s ease-in-out infinite; animation-delay: 0.2s; }
.bob-icon-3 { animation: bob-up-down 2.2s ease-in-out infinite; animation-delay: 0.4s; }

.fade-in, .fly-in-right { 
    opacity: 0; 
}
.fly-in-right { 
    transform: translateX(100px); 
}
.fade-in { 
    transform: translateY(30px); 
}
.fade-in, .fly-in-right { 
    transition: opacity 0.8s ease-out, transform 0.8s ease-out; 
}
.fade-in.visible, .fly-in-right.visible { 
    opacity: 1; transform: translateY(0) translateX(0); 
}
.faq-answer { 
    transition: max-height 0.4s ease-out, padding 0.4s ease-out; 
    max-height: 0; 
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0;
}
.faq-item.active .faq-answer { 
    max-height: 300px;
    padding-top: 0; 
    padding-bottom: 1.5rem;
}
#hamburger-btn.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
#hamburger-btn.is-open span:nth-child(2) {
    opacity: 0;
}
#hamburger-btn.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
#nav-menu.is-open {
    transform: translateX(0);
}

/* Nav Link Styling */
.nav-link {
    position: relative;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 400;
    color: #333333; /* Default color for mobile menu */
    transition: color 0.3s ease;
}
#header:not(.scrolled) .md\:flex .nav-link {
    color: #1D1D1D;
    text-shadow: none;
}
#header.scrolled .nav-link {
    color: #333333;
    text-shadow: none;
}
.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: var(--brand-color);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.5s;
}
.nav-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}
/* START Growth Injection: New/Updated CSS classes V7 */
.growth-stat-value {
  font-family: 'Cormorant Garamond', serif;
  color: var(--brand-color);
}
.cta-button-secondary {
  background-color: transparent;
  color: white;
  border: 1px solid white;
}
.cta-button-secondary:hover {
  background-color: var(--brand-color);
  color: white;
  border-color: var(--brand-color);
}

main section:not(#hero) {
    transition: box-shadow 0.4s ease-in-out;
}
main section:not(#hero):hover {
    box-shadow: 0 0 65px -15px var(--glow-color-soft);
}
.card-glow {
    transition: box-shadow 0.4s ease-in-out, transform 0.4s ease-in-out;
    box-shadow: 0 5px 15px rgba(0,0,0,0.04), 0 0 20px -15px var(--glow-color-soft);
}
.card-glow:hover {
    transform: translateY(-8px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.08), 0 0 45px -10px var(--glow-color-medium);
}
.section-with-bg {
    position: relative;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    z-index: 1;
}
.section-with-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(248, 247, 245, 0.92);
    z-index: -1;
}

/* Enhanced Header Styles */
#header {
    background-color: transparent;
    border-bottom: 1px solid transparent;
}
.header-logo, #header #hamburger-btn span {
    transition: all 0.3s ease;
}
#header.scrolled {
    background-color: rgba(255, 255, 255, 0.85);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0,0,0,0.07);
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
#header.scrolled #hamburger-btn span {
    background-color: #333333;
}

/* Adaptive Logo Styles */
.header-logo img {
    height: 40px; /* Initial height for mobile */
    transition: height 0.3s ease;
}
@media (min-width: 768px) {
    .header-logo img {
        height: 48px; /* Initial height for desktop */
    }
}
/* Shrink logo on scroll for all screen sizes */
#header.scrolled .header-logo img {
    height: 35px;
}
#header:not(.scrolled) .header-logo img {
    filter: drop-shadow(0 1px 3px rgba(0,0,0,0.5));
}
#header.scrolled .header-logo img {
    filter: brightness(0.2);
}


/* Enhanced Button Hover Effects */
.cta-button-secondary, a[href^="#kontakt"], button[type="submit"] {
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, background-color 0.2s ease-out, border-color 0.2s ease-out;
}
a[href^="#kontakt"]:hover, button[type="submit"]:hover, a.cta-button-secondary:hover {
    transform: scale(1.05) translateY(-2px);
    box-shadow: 0 8px 20px rgba(127, 101, 66, 0.3);
}

/* Gallery Hover Effect */
.gallery-item {
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
}
.gallery-item img {
    transition: transform 0.3s ease-out;
}
.gallery-item:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}
.gallery-item:hover img {
    transform: scale(1.1);
}

.faq-question span {
    transition: transform 0.3s ease-out;
}
.faq-item.active .faq-question span {
    transform: rotate(45deg);
}

.faq-answer p {
    color: #555;
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1.0);
        box-shadow: 0 8px 20px var(--glow-color-soft);
    }
    50% {
        transform: scale(1.03);
        box-shadow: 0 12px 25px var(--glow-color-medium);
    }
}
.finn-cta-pulse {
    animation: pulse 2.5s infinite ease-in-out;
}
#finn-cta .finn-cta-pulse {
    transform: scale(1.1); /* Keep the static scale from HTML */
}
#finn-cta .finn-cta-pulse:hover {
    transform: scale(1.15) translateY(-2px); /* Combine static scale with hover effect */
}
@keyframes pulse-finn-large {
    0%, 100% {
        transform: scale(1.1);
        box-shadow: 0 8px 20px var(--glow-color-soft);
    }
    50% {
        transform: scale(1.13);
        box-shadow: 0 12px 25px var(--glow-color-medium);
    }
}
#finn-cta .finn-cta-pulse {
    animation: pulse-finn-large 2.5s infinite ease-in-out;
}