:root {
    /* Primary Colors */
    --section-primary-color: rgb(250, 250, 250);
    --section-secondary-color: #ffffff;
    --text-color: #333;
    --link-color: #003366;
    --link-hover-color: #00509e;
    --border-color: rgba(245, 245, 245, 0.9);
    --shadow-color: rgba(0, 0, 0, 0.1);

    /* Font Styles */
    --font-primary: Arial, sans-serif;
    --font-size-base: 16px;

    /* Spacing */
    --padding-small: 8px;
    --padding-medium: 12px;
    --padding-large: 20px;

    /* Border Radius */
    --border-radius: 10px;

    /* Transition */
    --transition-speed: 0.3s ease;

    /* Navigation */
    --nav-bg-default: rgba(51, 51, 51, 1);
    --nav-bg-scrolled: rgba(51, 51, 51, 0.7);
    --nav-opacity: 0.9;

    /* Welcome Section */
    --welcome-bg: rgba(51, 51, 51, 1);
    --welcome-font-size: 300%;

    /* Gallery */
    --gallery-gap: 10px;
}

body {
    font-family: var(--font-primary), serif;
    font-size: var(--font-size-base);
    color: var(--text-color);
    margin: 0;
    padding: 0;
}

/* Navigation */
nav {
    position: fixed;
    top: 60%;
    width: 80vw;
    color: white;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gallery-gap);
    transition: background 1.5s ease, opacity 1.5s ease;
}

nav a {
    opacity: var(--nav-opacity);
    background: var(--nav-bg-default);
    padding: var(--padding-medium) var(--padding-large);
    border-radius: var(--border-radius);
    text-align: center;
    color: white;
    text-decoration: none;
    font-size: 200%;
    font-weight: bold;
}

/* Fade effect when scrolling */
body.scrolled nav {
    background: var(--nav-bg-scrolled);
    opacity: 0;
}

/* Sections */
section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-bottom: 2px solid var(--border-color);
}

#zimmer,
#kontakt {
    background-color: var(--section-primary-color);
}

#wohnung,
#konditionen {
    background-color: var(--section-secondary-color);
}

/* Welcome Section */
#willkommen {
    height: 100vh;
    background-image: url(media/Unser-Haus_2.JPG);
}

#willkommen h1 {
    background: var(--welcome-bg);
    color: white;
    padding: var(--padding-medium) var(--padding-large);
    font-size: var(--welcome-font-size);
    border-radius: var(--border-radius);
    text-align: center;
}

/* Gallery */
.gallery {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gallery-gap);
}

.gallery h2 {
    font-size: 2rem;
    margin-bottom: var(--gallery-gap);
}

.gallery img {
    height: auto;
    border-radius: var(--border-radius);
    border: 1px solid gray;
    box-shadow: 0 4px 6px var(--shadow-color);
}

/* Footer */
footer {
    background: var(--section-secondary-color);
    padding: var(--padding-medium);
    text-align: center;
    color: rgb(128, 128, 128);
}

/* List Styles */
ul {
    list-style: none;
    padding: 0;
}

li {
    display: flex;
    align-items: center;
    margin: var(--padding-small) 0;
}

.material-icons {
    margin-right: var(--padding-medium);
}

/* Description Lists */
dl {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gallery-gap);
    width: 80vw;
    max-width: 600px;
}

dt {
    text-align: left;
    margin: 0;
}

dd {
    text-align: right;
    font-weight: bold;
    margin: 0;
}

a {
    color: var(--link-color);
    text-decoration: none;
    font-family: var(--font-primary), serif;
    font-weight: 500;
    padding: var(--padding-small);
    border-bottom: 2px solid transparent;
    transition: border-color var(--transition-speed), color var(--transition-speed);
}

a:hover {
    color: var(--link-hover-color);
    border-bottom: 2px solid var(--link-hover-color);
}

a:active {
    color: #002244;
}

.icon{
    padding: 5px;
}

address p {
    display: flex;
    justify-content: left;
    align-items: center;
    text-align: center;
}