/* ========== Allmänna stilar (används på alla sidor) ========== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    color: #333333;
    margin: 0; /* Säkerställer ingen marginal högst upp */
    overflow-x: hidden;
    background-color: #FFF0F5; /* Light pink */
}

/* ========== Header (används på alla sidor) ========== */
header {
    background-color: transparent;
    padding: 0 2rem; /* Ta bort top-padding för att nå toppen */
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    top: 0;
    z-index: 1000;
    min-height: 300px; /* Ökad höjd för bilden */
}

.index-header-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

.header-logo {
    max-width: 500px; /* Stor logga */
    width: 100%;
    display: block;
    margin: 0 auto 1rem auto; /* Centrerad med avstånd under */
    z-index: 1; /* Säkerställer att loggan är över bakgrundsbilden */
}

.header-top {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 110%; /* Full bredd */
    position: relative;
    z-index: 2; /* Över bakgrundsbilden */
    justify-content: center; /* Centrera navbaren */
    background-color: #000000a8; /* Mörkgrå, halvtransparent bakgrund */
    padding: 0.5rem 0; /* Liten padding för bättre utseende */
    margin: 0; /* Säkerställer att den når toppen */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Svag skugga för djup */
}

.menu-toggle {
    display: none; /* Dold i skrivbordsvy */
    color: #5ee3ff; /* Ljusblå för att matcha menytexter */
    font-size: 2rem; /* Stor ikon */
    cursor: pointer;
    padding: 0.5rem 1rem;
    position: absolute;
    right: 1rem;
    top: 0.5rem; /* Fast position inom header-top */
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

nav {
    position: relative;
    width: 100%; /* Full bredd för att sträcka ut navbaren */
}

nav ul {
    display: flex; /* Alltid synlig, horisontell i skrivbordsvy */
    flex-direction: row; /* Horisontell layout */
    list-style-type: none; /* Ta bort punkter */
    margin: 0;
    padding: 0;
    background-color: transparent;
    z-index: 1;
    justify-content: center; /* Centrera menyobjekten */
    width: 100%; /* Full bredd */
}

nav ul li {
    margin: 0 2rem; /* Ökat avstånd mellan länkar för att sträcka ut */
    flex: 1; /* Fördela utrymmet jämnt */
    text-align: center; /* Centrera text i varje länk */
}

nav ul li a {
    color: #5ee3ff;
    text-decoration: none;
    font-size: 1.1rem;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

.header-content {
    text-align: center;
    margin-top: 6rem; /* Ökat avstånd från menyn */
    margin-bottom: 3rem;
    position: relative;
    z-index: 1;
}

.header-content h1 {
    font-size: 3.5rem; /* Larger text */
    margin-bottom: 0.5rem;
    text-shadow: none; /* Ta bort rosa outline */
    color: #5ee3ff; /* Light blue to match .btn */
    font-family: 'Georgia', serif; /* Ändrad font för annan stil */
    font-weight: bold;
}

.header-content p {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    text-shadow: none; /* Ta bort outline */
    color: #FDF5E6; /* Creamvit färg */
    font-family: 'Georgia', serif; /* Ändrad font för annan stil */
}

.header-content .header-update {
    font-size: 1.5rem; /* Larger text for update message */
    margin-bottom: 1rem;
    text-shadow: none;
    color: #FDF5E6;
    font-family: 'Georgia', serif;
}

.header-content .btn {
    font-size: 1rem;
}

/* ========== Knappstil (används på alla sidor) ========== */
.btn {
    display: inline-block;
    padding: 0.8rem 1.5rem;
    background-color: #5ee3ff; /* Ljusblå färg */
    color: #333333; /* Mörkgrå textfärg */
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s, transform 0.3s; /* Lägg till transform för hover-effekt */
}

.btn:hover {
    background-color: #4cc9e6; /* Mörkare variant av ljusblå för hover-kontrast */
    transform: translateY(-2px); /* Liten lyft-effekt för proffsig känsla */
}

/* ========== Hero-sektion (hemsida: index.html) ========== */
.hero {
    position: relative;
    text-align: center;
    padding: 0;
    margin: 0;
    min-height: calc(100vh - 300px); /* Anpassar efter headerns höjd */
    color: #FFFFFF;
    overflow: hidden;
}

.hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

.hero-content {
    position: relative;
    z-index: 1;
}

/* ========== Om-sektion (hemsida: index.html) ========== */
.about {
    padding: 4rem 2rem;
    text-align: center;
    background-color: #FFF8E7; /* Ljus cream-variant för variation */
}

.about-content {
    display: flex;
    align-items: flex-start; /* Align items to the top for images */
    justify-content: center;
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.about-content img {
    max-width: 300px;
    border-radius: 10px;
    align-self: flex-start; /* Ensure image aligns to the top */
    margin-top: 0; /* Remove any top margin */
}

.about-text {
    text-align: left; /* Vänsterjusterar texten för bättre läsbarhet */
    max-width: 600px; /* Begränsar bredden för textblocket */
}

.about-text h2 {
    font-size: 2rem;
    margin-bottom: 1rem; /* Avstånd under rubriken */
    color: #333333; /* Mörkgrå för rubriker */
}

.about-text p {
    font-size: 1.1rem;
    margin-bottom: 1rem; /* Extra avstånd under paragrafen */
}

/* ========== Tjänster-sektion (hemsida: index.html) ========== */
.services {
    padding: 4rem 2rem;
    text-align: center;
    background-color: #FFF0F5; /* Match updated body background */
}

.services h2 {
    font-size: 2rem;
    margin-bottom: 2rem;
    color: #333333; /* Mörkgrå för rubriker */
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3x2 grid for desktop */
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

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

.service img {
    max-width: 100%;
    border-radius: 10px;
    align-self: flex-start; /* Ensure image aligns to the top */
    margin-top: 0; /* Remove any top margin */
}

.service h3 {
    margin: 1rem 0;
    font-size: 1.5rem;
    color: #333333;
}

.service p {
    margin-bottom: 1rem;
}

/* ========== Om-sida (about.html) och Friskvårdsbidrag-sida (friskvardsbidrag.html) ========== */
.about-page {
    padding: 4rem 2rem;
    text-align: center;
    background-color: #FFF8E7; /* Cream-variant */
}

.about-page h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    color: #333333; /* Mörkgrå för rubriker */
}

.about-page .about-content {
    display: flex;
    align-items: flex-start; /* Aligna högst upp för att bilden startar med rubrik */
    justify-content: center;
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    margin-bottom: 2rem;
}

.about-page img {
    max-width: 400px;
    border-radius: 10px;
    align-self: flex-start; /* Säkerställer att bilden startar högst upp */
    margin-top: 0; /* Remove any top margin */
}

.about-page .diploma-image {
    max-width: 600px;
    display: block;
    margin: 2rem auto;
    border-radius: 10px;
}

.about-page .about-text {
    text-align: left;
    max-width: 600px;
}

.about-page .about-text h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: #333333;
}

.about-page .about-text p {
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

/* ========== Tjänster-sida (services.html) ========== */
.services-page {
    padding: 4rem 2rem;
    text-align: center;
    background-color: #FFF0F5; /* Match body background */
}

.services-page h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    color: #333333;
}

.services-page .service-grid {
    display: flex;
    flex-direction: column;
    gap: 4rem; /* Ökat avstånd för bättre känsla mellan sektioner */
    max-width: 1000px; /* Begränsad bredd för centrering */
    margin: 0 auto;
}

.services-page .service {
    display: flex;
    flex-direction: row; /* Bild vänster, text höger för varje sektion */
    align-items: flex-start; /* Align items to the top for images */
    background-color: #FFF8E7; /* Ljus cream-variant för kort */
    padding: 2.5rem; /* Ökat padding för mer utrymme */
    border-radius: 20px; /* Mjukare, rundare hörn för modern känsla */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08); /* Mjuk skugga för djup */
    transition: transform 0.3s ease, box-shadow 0.3s ease; /* Hover-effekt */
}

.services-page .service:nth-child(even) {
    flex-direction: row-reverse; /* Alternera bildposition för variation och intresse */
}

.services-page .service:hover {
    transform: translateY(-5px); /* Lätt lyft vid hover */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12); /* Starkare skugga vid hover */
}

.services-page .service img {
    max-width: 40%; /* Bild tar upp ca 40% av bredden */
    border-radius: 15px; /* Mjukare hörn på bilder */
    margin: 0 2rem 0 0; /* Avstånd till text */
    object-fit: cover; /* Säkerställer snygg beskärning */
    align-self: flex-start; /* Ensure image aligns to the top */
    margin-top: 0; /* Remove any top margin */
}

.services-page .service:nth-child(even) img {
    margin: 0 0 0 2rem; /* Justera marginal för omvänd riktning */
}

.services-page .service-text {
    flex: 1; /* Text tar upp resten av utrymmet */
    text-align: left; /* Vänsterjusterad text för bättre läsbarhet */
}

.services-page .service h2 {
    font-size: 2rem; /* Större rubrik för impact */
    margin-bottom: 1.2rem;
    color: #333333; /* Mörkgrå för rubriker */
    font-weight: bold;
}

.services-page .service p {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    color: #444444;
}

.services-page .service h3 {
    font-size: 1.6rem;
    margin: 1.5rem 0 1rem;
    color: #333333; /* Mörkgrå för rubriker */
    font-weight: bold;
}

.services-page .service ul {
    list-style-type: disc;
    margin-left: 1.5rem;
    margin-bottom: 2rem;
    font-size: 1rem;
    color: #555555;
}

.services-page .service ul li {
    margin-bottom: 0.8rem;
}

.services-page .service .btn {
    margin-top: 1rem;
}

.services-page .payment-info {
    font-size: 1.1rem;
    margin-top: 4rem;
    color: #555555;
    font-style: italic;
}

/* ========== Kontakt-sida (contact.html) ========== */
.contact-page {
    padding: 4rem 2rem;
    text-align: center;
    background-color: #FFF0F5; /* Match body background */
}

.contact-page h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    color: #333333;
}

.contact-page p {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    color: #444444;
}

.contact-form {
    max-width: 600px;
    margin: 0 auto;
    background-color: #FFF8E7; /* Cream-variant för kontrast */
    padding: 2rem;
    border-radius: 15px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.contact-form .form-group {
    margin-bottom: 1.5rem;
    text-align: left;
}

.contact-form label {
    display: block;
    font-size: 1.1rem;
    color: #333333;
    margin-bottom: 0.5rem;
    font-weight: bold;
}

.contact-form input,
.contact-form textarea {
    width: 100%;
    padding: 0.8rem;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 5px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.contact-form input:focus,
.contact-form textarea:focus {
    border-color: #5ee3ff; /* Ljusblå för fokus */
    box-shadow: 0 0 5px rgba(94, 227, 255, 0.5);
    outline: none;
}

.contact-form textarea {
    min-height: 150px;
    resize: vertical;
}

.contact-form button.btn {
    width: 100%;
    padding: 1rem;
    font-size: 1.1rem;
    margin-top: 1rem;
}

/* ========== Footer (används på alla sidor) ========== */
footer {
    background-color: #5ee3ff; /* Ny färg, ljusblå för att matcha tema */
    color: #333333; /* Mörkgrå text för kontrast */
    text-align: center;
    padding: 1rem;
}

footer p {
    font-size: 1rem;
}

/* ========== Responsiv design (mobil och mindre skärmar) ========== */
@media (max-width: 768px) {
    /* Header: Navbar */
    header {
        min-height: auto;
        padding: 4rem 1rem 0 1rem; /* Lägg till padding-top för att kompensera för fixed header-top */
    }

    .header-top {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end; /* Placera menu-toggle till höger */
        background-color: #000000a8; /* Mörkgrå, halvtransparent bakgrund */
        padding: 0.5rem 0;
        position: fixed; /* Fäster navbaren högst upp */
        top: 0;
        left: 0;
        width: 100vw; /* Full bredd inklusive scrollbars */
        min-height: 4rem; /* Ökad höjd för att täcka hamburgermeny-ikonen */
        z-index: 2;
    }

    .menu-toggle {
        display: block; /* Visa hamburgermeny i mobilvy */
        top: 0rem; /* Flyttad upp pytte lite */
        transform: none; /* Ta bort transform för att undvika klippning */
    }

    .header-logo {
        max-width: 300px; /* Minska loggans storlek på mobil */
        margin-bottom: 0.5rem;
    }

    nav {
        width: 100%; /* Full bredd */
    }

    nav ul {
        display: none; /* Dold som standard i mobilvy */
        flex-direction: column; /* Stapla vertikalt */
        width: 100vw; /* Full bredd inklusive scrollbars */
        text-align: center;
        background-color: #000000a8; /* Mörkgrå, halvtransparent bakgrund */
        position: absolute;
        top: 2.03rem; /* Placera under header-top (min-height: 4rem) */
        left: 0;
        padding: 1rem 0;
        z-index: 3; /* Över header-content */
    }

    nav ul.active {
        display: flex; /* Visa när active-klassen läggs till */
    }

    nav ul li {
        margin: 1rem 0; /* Större avstånd för bättre klickbarhet */
        flex: none; /* Ta bort flex för vertikal layout */
    }

    nav ul li a {
        color: #5ee3ff; /* Ljusblå text */
        font-size: 1.2rem; /* Större text för mobil */
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
        padding: 0.5rem 1rem; /* Större klickområde */
        display: block; /* Gör hela raden klickbar */
    }

    .header-content {
        margin-top: 1.5rem;
    }

    .header-content h1 {
        font-size: 2.2rem; /* Larger text */
    }

    .header-content p {
        font-size: 1rem;
    }

    .header-content .header-update {
        font-size: 1.3rem; /* Larger text for update message */
    }

    .hero {
        padding: 2rem 1rem;
        min-height: calc(100vh - 150px);
    }

    .about-content,
    .about-page .about-content {
        flex-direction: column;
    }

    .about-content img,
    .about-page img {
        max-width: 100%;
        align-self: center; /* Center images on mobile */
    }

    .service-grid {
        grid-template-columns: 1fr; /* Stack services on mobile */
    }

    .services-page .service-grid {
        gap: 3rem; /* Mindre gap på mobil */
    }

    .services-page .service {
        flex-direction: column; /* Stapla bild över text på mobil */
        align-items: center;
        padding: 2rem;
    }

    .services-page .service img {
        max-width: 100%; /* Full bredd på mobil */
        margin: 0 0 1.5rem 0; /* Avstånd under bild */
        align-self: center; /* Center images on mobile */
    }

    .services-page .service:nth-child(even) {
        flex-direction: column; /* Återställ för mobil */
    }

    .services-page .service:nth-child(even) img {
        margin: 0 0 1.5rem 0;
    }

    .services-page .service-text {
        text-align: center; /* Centrera text på mobil för bättre flöde */
    }

    .about-page h1 {
        font-size: 2rem;
    }

    .contact-page h1 {
        font-size: 2rem;
    }

    .contact-page .contact-form {
        padding: 1.5rem;
    }

    .contact-form .form-group {
        margin-bottom: 1rem;
    }

    .contact-form input,
    .contact-form textarea {
        padding: 0.6rem;
        font-size: 0.9rem;
    }

    .contact-form button.btn {
        padding: 0.8rem;
        font-size: 1rem;
    }

    .services-page h1 {
        font-size: 2rem;
    }

    .services-page h2 {
        font-size: 1.5rem;
    }
}

/* ========== Responsiv design för mindre skärmar (t.ex. iPhone 13 Pro, ≤450px) ========== */
@media (max-width: 450px) {
    .header-logo {
        max-width: 200px; /* Ytterligare minskning för små skärmar */
    }

    .menu-toggle {
        font-size: 1.5rem; /* Minska ikonstorlek för små skärmar */
        top: 0.4rem; /* Flyttad upp pytte lite */
    }

    nav ul {
        top: 3.8rem; /* Justera för mindre header-top höjd */
    }

    nav ul li a {
        font-size: 1rem; /* Minska textstorlek på små skärmar */
        padding: 0.4rem 0.8rem;
    }

    .contact-form input,
    .contact-form textarea {
        font-size: 0.85rem;
    }

    .contact-form button.btn {
        font-size: 0.9rem;
    }
}