/* ===========================
   Grundstil
   =========================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
    background: #05070a;
    color: #f5f5f5;
    line-height: 1.6;
}

/* ===========================
   Logotyp
   =========================== */
.logo {
    width: min(40vw, 320px);
    height: auto;
    display: block;
    margin: 0 auto 1rem auto;
}

/* ===========================
   Hero
   =========================== */
.hero {
    padding: 3rem 1.5rem;
    text-align: center;
    background: radial-gradient(circle at top, #1f2933 0%, #05070a 55%);
    border-bottom: 1px solid #222;
}

.hero h1 {
    font-size: 2.8rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

.hero p {
    font-size: 1.1rem;
    color: #cbd2d9;
}

.tagline {
    font-size: 1.2rem;
    margin-top: 0.5rem;
    margin-bottom: 1.5rem;
    color: #ccc;
}

/* ===========================
   Sektioner
   =========================== */
section {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    border-bottom: 1px solid #111827;
}

section h2 {
    font-size: 1.6rem;
    margin-bottom: 1rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #e5e7eb;
}

/* ===========================
   Prislista
   =========================== */
.prices ul {
    list-style: none;
}

.prices li {
    padding: 0.6rem 0;
    border-bottom: 1px solid #111827;
    display: flex;
    justify-content: space-between;
    color: #e5e7eb;
}

.prices li:last-child {
    border-bottom: none;
}

/* ===========================
   Bokningsformulär
   =========================== */
.booking form {
    display: grid;
    gap: 0.8rem;
    margin-top: 1rem;
}

.booking label {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #9ca3af;
}

.booking input,
.booking select,
.booking textarea {
    padding: 0.6rem 0.8rem;
    border-radius: 4px;
    border: 1px solid #374151;
    background: #020617;
    color: #f9fafb;
}

.booking input:focus,
.booking select:focus,
.booking textarea:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 1px #3b82f6;
}

/* ===========================
   Knapp
   =========================== */
.booking button {
    margin-top: 0.8rem;
    padding: 0.8rem 1rem;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, #3b82f6, #0ea5e9);
    color: #f9fafb;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform 0.1s ease, box-shadow 0.1s ease, filter 0.1s ease;
}

.booking button:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.8);
    filter: brightness(1.05);
}

/* ===========================
   Kalender — container
   =========================== */
.calendar-container {
    margin-top: 20px;
}

/* ===========================
   Kalender — veckor (mån–sön)
   =========================== */
.calendar-week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    margin-bottom: 4px;
}

/* ===========================
   Kalender — dagar
   =========================== */
.calendar-day,
.calendar-empty {
    padding: 6px;
    text-align: center;
    border-radius: 4px;
    font-size: 0.9rem;
}

/* tom ruta */
.calendar-empty {
    background: transparent;
    border: none;
}

/* normal dag */
.calendar-day {
    background: #e5e7eb;
    color: #000;
    border: 1px solid #999;
    cursor: pointer;
    user-select: none;
}

/* hover */
.calendar-day:hover {
    background: #d1d5db;
}

/* blockerad */
.calendar-day.blocked {
    background: #555;
    color: #aaa;
    border-color: #444;
    cursor: not-allowed;
}

/* vald */
.calendar-day.selected {
    background: #3b82f6;
    color: #fff;
    border-color: #2563eb;
}

/* ===========================
   Kontakt
   =========================== */
.contact p {
    margin-bottom: 0.3rem;
    color: #d1d5db;
}

/* ===========================
   Footer
   =========================== */
footer {
    text-align: center;
    padding: 1.5rem;
    font-size: 0.85rem;
    color: #6b7280;
    border-top: 1px solid #111827;
}

/* ===========================
   Mobilanpassning
   =========================== */
@media (max-width: 640px) {
    .hero h1 {
        font-size: 2.2rem;
    }

    section {
        padding: 1.5rem 1.2rem;
    }

    .prices li {
        font-size: 0.95rem;
    }

    .calendar-day {
        padding: 4px;
        font-size: 0.8rem;
    }
}


