commit 5d1a0486246dd58d323ca67621926b3f60b5923f Author: Martin Date: Sun May 10 01:47:00 2026 +0200 Fotogalerie mit CSS Columns Masonry - alle 12 Bilder eingebaut diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..285ae69 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.git +.gitignore +*.ps1 +*.py +.dockerignore +Dockerfile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8ab218 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.ps1 +*.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..34d109e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM nginx:alpine + +# Eigene Nginx-Konfiguration kopieren +COPY nginx.conf /etc/nginx/conf.d/default.conf + +# Website-Dateien werden per Volume-Mount eingebunden +# Siehe: docker run -v ... +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/bilder/Außenansicht-2.png b/bilder/Außenansicht-2.png new file mode 100644 index 0000000..94624bc Binary files /dev/null and b/bilder/Außenansicht-2.png differ diff --git a/bilder/Bad.jpg b/bilder/Bad.jpg new file mode 100644 index 0000000..3a4e629 Binary files /dev/null and b/bilder/Bad.jpg differ diff --git a/bilder/Kinderzimmer 2.jpg b/bilder/Kinderzimmer 2.jpg new file mode 100644 index 0000000..3bfd88e Binary files /dev/null and b/bilder/Kinderzimmer 2.jpg differ diff --git a/bilder/Kinderzimmer 3.jpg b/bilder/Kinderzimmer 3.jpg new file mode 100644 index 0000000..f66e374 Binary files /dev/null and b/bilder/Kinderzimmer 3.jpg differ diff --git a/bilder/Kinderzimmer.png b/bilder/Kinderzimmer.png new file mode 100644 index 0000000..2f61696 Binary files /dev/null and b/bilder/Kinderzimmer.png differ diff --git a/bilder/Küche 1.jpg b/bilder/Küche 1.jpg new file mode 100644 index 0000000..5e1cc9e Binary files /dev/null and b/bilder/Küche 1.jpg differ diff --git a/bilder/WhatsApp Image 2026-03-30 at 07.50.42 (1).jpeg b/bilder/WhatsApp Image 2026-03-30 at 07.50.42 (1).jpeg new file mode 100644 index 0000000..7f19fb4 Binary files /dev/null and b/bilder/WhatsApp Image 2026-03-30 at 07.50.42 (1).jpeg differ diff --git a/bilder/WhatsApp Image 2026-03-30 at 07.50.42 (2).jpeg b/bilder/WhatsApp Image 2026-03-30 at 07.50.42 (2).jpeg new file mode 100644 index 0000000..a94c80f Binary files /dev/null and b/bilder/WhatsApp Image 2026-03-30 at 07.50.42 (2).jpeg differ diff --git a/bilder/WhatsApp Image 2026-03-30 at 07.50.42.jpeg b/bilder/WhatsApp Image 2026-03-30 at 07.50.42.jpeg new file mode 100644 index 0000000..5319714 Binary files /dev/null and b/bilder/WhatsApp Image 2026-03-30 at 07.50.42.jpeg differ diff --git a/bilder/kinderzimmer 2 2.jpeg b/bilder/kinderzimmer 2 2.jpeg new file mode 100644 index 0000000..8dc10d7 Binary files /dev/null and b/bilder/kinderzimmer 2 2.jpeg differ diff --git a/bilder/schlafzimmer.png b/bilder/schlafzimmer.png new file mode 100644 index 0000000..7e01dc4 Binary files /dev/null and b/bilder/schlafzimmer.png differ diff --git a/bilder/wohnzimmer2.png b/bilder/wohnzimmer2.png new file mode 100644 index 0000000..85e0be5 Binary files /dev/null and b/bilder/wohnzimmer2.png differ diff --git a/css/haus-schleusingen.css b/css/haus-schleusingen.css new file mode 100644 index 0000000..3016379 --- /dev/null +++ b/css/haus-schleusingen.css @@ -0,0 +1,498 @@ +:root { + --cream: #F5F0E8; + --warm: #E8DFD0; + --stone: #9E9485; + --dark: #1C1A17; + --charcoal: #2E2B26; + --accent: #8B6914; + --accent-light: #C49A2A; + --white: #FDFCFA; +} +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } +html { scroll-behavior: smooth; } +body { + font-family: 'DM Sans', sans-serif; + background: var(--white); + color: var(--dark); + overflow-x: hidden; +} + +/* NAV */ +nav { + position: fixed; top: 0; left: 0; right: 0; z-index: 100; + display: flex; justify-content: space-between; align-items: center; + padding: 1.25rem 3rem; + background: transparent; + transition: background 0.4s, padding 0.4s; +} +nav.scrolled { + background: rgba(253,252,250,0.96); + backdrop-filter: blur(12px); + padding: 0.85rem 3rem; + border-bottom: 1px solid rgba(158,148,133,0.2); +} +.nav-logo { + font-family: 'Cormorant Garamond', serif; + font-size: 1.15rem; + font-weight: 600; + letter-spacing: 0.04em; + color: var(--white); + transition: color 0.4s; +} +nav.scrolled .nav-logo { color: var(--dark); } +.nav-links { display: flex; gap: 2.5rem; list-style: none; } +.nav-links a { + font-size: 0.8rem; font-weight: 500; letter-spacing: 0.1em; + text-transform: uppercase; text-decoration: none; + color: rgba(255,255,255,0.85); + transition: color 0.3s; +} +nav.scrolled .nav-links a { color: var(--stone); } +.nav-links a:hover, nav.scrolled .nav-links a:hover { color: var(--accent); } +.nav-cta { + font-family: 'DM Sans', sans-serif; + font-size: 0.78rem; font-weight: 500; letter-spacing: 0.1em; + text-transform: uppercase; + background: var(--accent); + color: var(--white); + border: none; + padding: 0.65rem 1.5rem; + cursor: pointer; + transition: background 0.3s, transform 0.2s; +} +.nav-cta:hover { background: var(--accent-light); transform: translateY(-1px); } + +/* HERO */ +.hero { + position: relative; height: 100vh; min-height: 650px; + display: flex; align-items: flex-end; + overflow: hidden; +} +.hero-bg { + position: absolute; inset: 0; + background-size: cover; background-position: center 20%; + transform: scale(1.05); + transition: transform 8s ease-out; +} +.hero-bg.loaded { transform: scale(1); } +.hero-overlay { + position: absolute; inset: 0; + background: linear-gradient(to top, rgba(28,26,23,0.85) 0%, rgba(28,26,23,0.3) 50%, rgba(28,26,23,0.1) 100%); +} +.hero-content { + position: relative; z-index: 2; + padding: 0 3rem 5rem; + max-width: 900px; + opacity: 0; transform: translateY(30px); + transition: opacity 0.9s ease, transform 0.9s ease; +} +.hero-content.visible { opacity: 1; transform: translateY(0); } +.hero-tag { + display: inline-flex; align-items: center; gap: 8px; + font-size: 0.72rem; font-weight: 500; letter-spacing: 0.18em; + text-transform: uppercase; color: var(--accent-light); + margin-bottom: 1.25rem; +} +.hero-tag::before { content: ''; width: 28px; height: 1px; background: var(--accent-light); } +.hero h1 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2.8rem, 6vw, 5rem); + font-weight: 300; line-height: 1.08; + color: var(--white); + letter-spacing: -0.01em; + margin-bottom: 1.5rem; +} +.hero h1 em { font-style: italic; color: var(--accent-light); } +.hero-meta { + display: flex; gap: 2.5rem; align-items: center; + font-size: 0.82rem; color: rgba(255,255,255,0.6); + letter-spacing: 0.05em; +} +.hero-meta strong { color: var(--white); } +.hero-scroll { + position: absolute; bottom: 2rem; right: 3rem; + display: flex; flex-direction: column; align-items: center; gap: 6px; + font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; + color: rgba(255,255,255,0.5); cursor: pointer; +} +.scroll-line { width: 1px; height: 40px; background: rgba(255,255,255,0.3); animation: scrollAnim 2s infinite; } +@keyframes scrollAnim { 0%,100%{transform:scaleY(1);opacity:0.3} 50%{transform:scaleY(0.5);opacity:0.8} } + +/* FACTS STRIP */ +.facts-strip { + display: grid; grid-template-columns: repeat(4, 1fr); + background: var(--dark); +} +.fact { + padding: 2.25rem 2rem; + border-right: 1px solid rgba(255,255,255,0.07); + text-align: center; + opacity: 0; transform: translateY(20px); + transition: opacity 0.6s ease, transform 0.6s ease; +} +.fact:last-child { border-right: none; } +.fact.visible { opacity: 1; transform: translateY(0); } +.fact-val { + font-family: 'Cormorant Garamond', serif; + font-size: 2.2rem; font-weight: 600; + color: var(--accent-light); + line-height: 1; + margin-bottom: 0.4rem; +} +.fact-label { font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--stone); } + +/* INTRO */ +.intro { + display: grid; grid-template-columns: 1fr 1fr; + gap: 0; + padding: 6rem 3rem; + max-width: 1200px; margin: 0 auto; + align-items: center; +} +.intro-text { padding-right: 4rem; } +.section-eyebrow { + font-size: 0.72rem; font-weight: 500; letter-spacing: 0.2em; + text-transform: uppercase; color: var(--accent); + margin-bottom: 1rem; +} +.intro-text h2 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2rem, 3.5vw, 3rem); + font-weight: 300; line-height: 1.2; + margin-bottom: 1.5rem; + color: var(--charcoal); +} +.intro-text p { + font-size: 0.95rem; line-height: 1.85; + color: var(--stone); margin-bottom: 1rem; +} +.intro-stats { + display: flex; gap: 2rem; margin-top: 2rem; + padding-top: 2rem; + border-top: 1px solid var(--warm); +} +.istat-val { + font-family: 'Cormorant Garamond', serif; + font-size: 1.8rem; font-weight: 600; color: var(--accent); line-height: 1; +} +.istat-label { font-size: 0.72rem; letter-spacing: 0.08em; color: var(--stone); margin-top: 4px; } +.intro-img { + position: relative; height: 480px; overflow: hidden; +} +.intro-img img { width: 100%; height: 100%; object-fit: cover; } +.intro-img-badge { + position: absolute; bottom: -1px; left: -1px; + background: var(--accent); + color: var(--white); + padding: 1rem 1.5rem; + font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; +} + +/* GALLERY — CSS Columns Masonry */ +.gallery-section { + padding: 0 0 6rem; + background: var(--cream); +} +.gallery-header { + padding: 5rem 3rem 3rem; + max-width: 1400px; + margin: 0 auto; +} +.gallery-header h2 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2rem, 3vw, 2.8rem); + font-weight: 300; + color: var(--charcoal); +} + +.masonry-grid { + max-width: 1400px; + margin: 0 auto; + padding: 0 1.5rem; + column-count: 4; + column-gap: 8px; +} + +/* Hide the sizer – not needed for CSS columns */ +.grid-sizer { display: none; } + +.grid-item { + break-inside: avoid; + margin-bottom: 8px; + overflow: hidden; + cursor: pointer; + position: relative; + border-radius: 3px; +} + +.grid-item img { + width: 100%; + display: block; + border-radius: 3px; + transition: transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94), + filter 0.5s ease; +} +.grid-item:hover img { + transform: scale(1.04); + filter: brightness(0.9); +} + +.grid-item-label { + position: absolute; + bottom: 0; left: 0; right: 0; + padding: 2rem 1rem 0.85rem; + background: linear-gradient(transparent, rgba(28,26,23,0.75)); + font-size: 0.72rem; + letter-spacing: 0.12em; + text-transform: uppercase; + color: rgba(255,255,255,0.9); + border-radius: 0 0 3px 3px; + transform: translateY(6px); + opacity: 0; + transition: transform 0.35s ease, opacity 0.35s ease; + pointer-events: none; +} +.grid-item:hover .grid-item-label { + transform: translateY(0); + opacity: 1; +} + +@media (max-width: 1100px) { + .masonry-grid { column-count: 3; } +} +@media (max-width: 768px) { + .masonry-grid { column-count: 2; column-gap: 6px; padding: 0 1rem; } + .grid-item { margin-bottom: 6px; } + .gallery-header { padding: 3rem 1.5rem 2rem; } +} +@media (max-width: 480px) { + .masonry-grid { column-count: 1; padding: 0 1.5rem; } +} + +/* FLOORS */ +.floors-section { padding: 6rem 3rem; max-width: 1200px; margin: 0 auto; } +.floors-section h2 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2rem, 3vw, 2.8rem); + font-weight: 300; margin-bottom: 3rem; color: var(--charcoal); +} +.floor-accordion { border-top: 1px solid var(--warm); } +.floor-item { + border-bottom: 1px solid var(--warm); + overflow: hidden; +} +.floor-header { + display: flex; justify-content: space-between; align-items: center; + padding: 1.5rem 0; cursor: pointer; + transition: color 0.2s; +} +.floor-header:hover .floor-title { color: var(--accent); } +.floor-title { + font-family: 'Cormorant Garamond', serif; + font-size: 1.35rem; font-weight: 400; + transition: color 0.2s; +} +.floor-size { + font-size: 0.78rem; letter-spacing: 0.1em; color: var(--stone); + display: flex; align-items: center; gap: 1rem; +} +.floor-icon { + width: 24px; height: 24px; + border: 1px solid var(--warm); + border-radius: 50%; + display: flex; align-items: center; justify-content: center; + font-size: 0.8rem; color: var(--stone); + transition: transform 0.3s, border-color 0.3s; +} +.floor-item.open .floor-icon { transform: rotate(45deg); border-color: var(--accent); color: var(--accent); } +.floor-body { + display: none; + padding: 0 0 1.5rem; +} +.floor-rooms-grid { + display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); + gap: 8px; +} +.room-chip { + background: var(--cream); + padding: 0.75rem 1rem; + font-size: 0.82rem; color: var(--charcoal); + display: flex; justify-content: space-between; align-items: center; +} +.room-chip-area { font-size: 0.72rem; color: var(--stone); } + +/* PRICING */ +.pricing-section { + background: var(--dark); + padding: 6rem 3rem; +} +.pricing-inner { max-width: 1200px; margin: 0 auto; } +.pricing-section .section-eyebrow { color: var(--accent-light); } +.pricing-section h2 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2rem, 3vw, 2.8rem); + font-weight: 300; color: var(--white); + margin-bottom: 3rem; +} +.price-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.07); } +.price-card { + background: var(--charcoal); + padding: 2.5rem 2rem; + transition: background 0.3s; +} +.price-card:hover { background: #383530; } +.price-card.highlight { background: var(--accent); } +.price-card.highlight:hover { background: var(--accent-light); } +.pc-label { font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--stone); margin-bottom: 1rem; } +.price-card.highlight .pc-label { color: rgba(255,255,255,0.7); } +.pc-val { + font-family: 'Cormorant Garamond', serif; + font-size: 2.8rem; font-weight: 600; line-height: 1; + color: var(--white); margin-bottom: 0.3rem; +} +.pc-sub { font-size: 0.78rem; color: var(--stone); } +.price-card.highlight .pc-sub { color: rgba(255,255,255,0.7); } +.price-note { + margin-top: 2.5rem; + padding-top: 2.5rem; + border-top: 1px solid rgba(255,255,255,0.07); + display: flex; gap: 3rem; +} +.pn-item { font-size: 0.85rem; color: var(--stone); line-height: 1.7; } +.pn-item strong { color: var(--white); display: block; font-weight: 500; margin-bottom: 2px; } + +/* LAGE */ +.lage-section { padding: 6rem 3rem; max-width: 1200px; margin: 0 auto; } +.lage-section h2 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2rem, 3vw, 2.8rem); + font-weight: 300; margin-bottom: 3rem; color: var(--charcoal); +} +.lage-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--warm); } +.lage-item { + background: var(--white); + padding: 2rem; + display: flex; gap: 1.25rem; align-items: flex-start; + transition: background 0.3s; +} +.lage-item:hover { background: var(--cream); } +.lage-icon { + width: 40px; height: 40px; flex-shrink: 0; + background: var(--cream); + display: flex; align-items: center; justify-content: center; + font-size: 1.1rem; color: var(--accent); +} +.lage-title { font-size: 0.9rem; font-weight: 500; margin-bottom: 4px; } +.lage-desc { font-size: 0.82rem; color: var(--stone); line-height: 1.6; } + +/* CONTACT */ +.contact-section { + background: var(--cream); + padding: 6rem 3rem; +} +.contact-inner { + max-width: 700px; margin: 0 auto; text-align: center; +} +.contact-inner h2 { + font-family: 'Cormorant Garamond', serif; + font-size: clamp(2.2rem, 4vw, 3.5rem); + font-weight: 300; line-height: 1.15; + color: var(--charcoal); margin-bottom: 1rem; +} +.contact-inner h2 em { font-style: italic; color: var(--accent); } +.contact-inner p { font-size: 0.9rem; color: var(--stone); line-height: 1.8; margin-bottom: 2.5rem; } +.contact-form { text-align: left; } +.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; } +.form-field { display: flex; flex-direction: column; gap: 0.4rem; } +.form-field label { font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--stone); } +.form-field input, .form-field textarea, .form-field select { + font-family: 'DM Sans', sans-serif; + font-size: 0.88rem; + background: var(--white); + border: 1px solid var(--warm); + padding: 0.75rem 1rem; + color: var(--dark); + outline: none; + transition: border-color 0.2s; + resize: none; +} +.form-field input:focus, .form-field textarea:focus, .form-field select:focus { + border-color: var(--accent); +} +.form-field.full { grid-column: span 2; } +.btn-submit { + font-family: 'DM Sans', sans-serif; + font-size: 0.78rem; font-weight: 500; letter-spacing: 0.15em; + text-transform: uppercase; + background: var(--accent); + color: var(--white); + border: none; width: 100%; + padding: 1.1rem; + cursor: pointer; + margin-top: 0.5rem; + transition: background 0.3s, transform 0.2s; +} +.btn-submit:hover { background: var(--accent-light); transform: translateY(-1px); } +.form-success { + display: none; text-align: center; padding: 3rem; + background: var(--white); border: 1px solid var(--warm); +} +.form-success p { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; color: var(--charcoal); } +.form-success small { font-size: 0.82rem; color: var(--stone); } + +/* FOOTER */ +footer { + background: var(--dark); + padding: 2.5rem 3rem; + display: flex; justify-content: space-between; align-items: center; + border-top: 1px solid rgba(255,255,255,0.06); +} +.footer-logo { + font-family: 'Cormorant Garamond', serif; + font-size: 1rem; font-weight: 600; color: var(--white); + letter-spacing: 0.04em; +} +.footer-links { display: flex; gap: 2rem; } +.footer-links a { + font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; + color: var(--stone); text-decoration: none; + transition: color 0.2s; +} +.footer-links a:hover { color: var(--accent-light); } + +/* LIGHTBOX */ +.lightbox { + display: none; position: fixed; inset: 0; z-index: 1000; + background: rgba(28,26,23,0.96); + align-items: center; justify-content: center; +} +.lightbox.open { display: flex; } +.lightbox img { max-width: 90vw; max-height: 85vh; object-fit: contain; } +.lightbox-close { + position: absolute; top: 1.5rem; right: 2rem; + font-size: 1.5rem; color: var(--white); cursor: pointer; + background: none; border: none; + transition: color 0.2s; +} +.lightbox-close:hover { color: var(--accent-light); } + +/* RESPONSIVE */ +@media (max-width: 900px) { + nav { padding: 1rem 1.5rem; } + nav.scrolled { padding: 0.75rem 1.5rem; } + .nav-links { display: none; } + .hero-content { padding: 0 1.5rem 4rem; } + .facts-strip { grid-template-columns: repeat(2, 1fr); } + .fact { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.07); } + .intro { grid-template-columns: 1fr; padding: 3rem 1.5rem; } + .intro-text { padding-right: 0; margin-bottom: 2rem; } + .masonry-grid { column-count: 2; } + .gallery-header { padding: 3rem 1.5rem 2rem; } + .price-cards { grid-template-columns: 1fr; } + .price-note { flex-direction: column; gap: 1.5rem; } + .lage-grid { grid-template-columns: 1fr; } + .form-row { grid-template-columns: 1fr; } + .form-field.full { grid-column: span 1; } + .floors-section, .lage-section, .contact-section { padding: 4rem 1.5rem; } + footer { flex-direction: column; gap: 1.5rem; text-align: center; } +} \ No newline at end of file diff --git a/fonts/CormorantGaramond-Light.ttf b/fonts/CormorantGaramond-Light.ttf new file mode 100644 index 0000000..fed2b01 Binary files /dev/null and b/fonts/CormorantGaramond-Light.ttf differ diff --git a/fonts/CormorantGaramond-Regular.ttf b/fonts/CormorantGaramond-Regular.ttf new file mode 100644 index 0000000..3fab5e0 Binary files /dev/null and b/fonts/CormorantGaramond-Regular.ttf differ diff --git a/fonts/CormorantGaramond-SemiBold.ttf b/fonts/CormorantGaramond-SemiBold.ttf new file mode 100644 index 0000000..2fc889a Binary files /dev/null and b/fonts/CormorantGaramond-SemiBold.ttf differ diff --git a/fonts/DMSans-Light.ttf b/fonts/DMSans-Light.ttf new file mode 100644 index 0000000..842166b Binary files /dev/null and b/fonts/DMSans-Light.ttf differ diff --git a/fonts/DMSans-Medium.ttf b/fonts/DMSans-Medium.ttf new file mode 100644 index 0000000..dc44754 Binary files /dev/null and b/fonts/DMSans-Medium.ttf differ diff --git a/fonts/DMSans-Regular.ttf b/fonts/DMSans-Regular.ttf new file mode 100644 index 0000000..6c789ea Binary files /dev/null and b/fonts/DMSans-Regular.ttf differ diff --git a/fonts/fonts.css b/fonts/fonts.css new file mode 100644 index 0000000..64fccdb --- /dev/null +++ b/fonts/fonts.css @@ -0,0 +1,47 @@ +@font-face { + font-family: 'Cormorant Garamond'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('CormorantGaramond-Light.ttf') format('truetype'); +} + +@font-face { + font-family: 'Cormorant Garamond'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('CormorantGaramond-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Cormorant Garamond'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('CormorantGaramond-SemiBold.ttf') format('truetype'); +} + +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('DMSans-Light.ttf') format('truetype'); +} + +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('DMSans-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url('DMSans-Medium.ttf') format('truetype'); +} \ No newline at end of file diff --git a/haus-schleusingen.html b/haus-schleusingen.html new file mode 100644 index 0000000..0db61b7 --- /dev/null +++ b/haus-schleusingen.html @@ -0,0 +1,345 @@ + + + + + +Einfamilienhaus zur Miete - Schleusingen + + + + + + + + + + + + +
+
+
+
+
Zur Langzeitmiete · Ab sofort verfügbar
+

Großzügiges
Einfamilienhaus
in Schleusingen

+
+ Schleusinger Bahnhofstraße 10 + 227 m² Wohnfläche + 6 Zimmer + 3 Etagen + Dachterrasse +
+
+
+ Entdecken +
+
+
+ +
+
+
227
+
m² Wohnfläche
+
+
+
6
+
Zimmer
+
+
+
3
+
Etagen
+
+
+
1.300
+
€ Kaltmiete
+
+
+ +
+
+
Das Objekt
+

Wohnen mit Charakter und viel Raum

+

Vermietet wird ein vollständiges Einfamilienhaus in ruhiger Lage von Schleusingen. Das Haus verbindet historischen Charme mit modernem Wohnkomfort auf drei großzügigen Etagen.

+

Garage für zwei Fahrzeuge, großzügige Dachterrasse mit 35,8 m², vollausgestattete Küche, Vollbad sowie Abstell- und Nutzräume machen das Haus zu einem außergewöhnlichen Mietobjekt.

+
+
113 m²
Nutzfläche
+
35,8 m²
Dachterrasse
+
2 Stpl.
Garage
+
+
+
+ +
Wohnzimmer · 24,7 m²
+
+
+ + + +
+
Raumaufteilung
+

Großzügig auf allen Etagen

+
+
+
+ Erdgeschoss +
+ 99,4 m² +
+
+
+
+
+
+
Flur 20,1 m²
+
WC 0,8 m²
+
Garage / Partykeller 42,6 m²
+
Abstellraum 1 9,9 m²
+
Abstellraum 2 7,8 m²
+
Heizungskeller 18,3 m²
+
+
+
+
+
+ 1. Obergeschoss +
+ 100,3 m² +
+
+
+
+
+
+
Flur 20,1 m²
+
Wohnzimmer 24,7 m²
+
Gästezimmer 11,5 m²
+
Badezimmer 9,8 m²
+
Küche 18,4 m²
+
Schlafzimmer 18,0 m²
+
+
+
+
+
+ 2. Obergeschoss +
+ 68 m² +
+
+
+
+
+
+
Flur 13,9 m²
+
Kinderzimmer 1 21,7 m²
+
Kinderzimmer 2 15,7 m²
+
Spielzimmer 6,3 m²
+
Ankleidezimmer 1,4 m²
+
Dachterrasse 35,8 m²
+
+
+
+
+
+ Dachboden +
+ 52 m² Nutzfläche +
+
+
+
+
+
+
Dachboden (ungeheizt) 52 m²
+
+
+
+
+
+ +
+
+
Mietkonditionen
+

Transparente Preisgestaltung

+
+
+
Kaltmiete
+
1.300 €
+
pro Monat
+
+
+
Gesamtmiete warm
+
1.600 €
+
inkl. 300 € Nebenkosten
+
+
+
Kaution
+
2.600 €
+
2 Nettokaltmieten
+
+
+
+
VerfügbarkeitAb sofort · unbefristete Laufzeit
+
NebenkostenVorauszahlung 300 €/Monat, jährliche Abrechnung
+
EnergieausweisWird bei Mietbeginn übergeben · Erdgasheizung
+
HaustiereAuf Anfrage
+
+
+
+ +
+
Standort
+

Zentral und ruhig zugleich

+
+
+
🛒
+
Einkaufen & Versorgung
Supermärkte, Ärzte, Apotheken und Schulen sind fußläufig erreichbar
+
+
+
🚌
+
Öffentlicher Nahverkehr
Zentrale Bushaltestelle ca. 200 m entfernt — direkte Verbindungen in die Region
+
+
+
🏛
+
Innenstadt Schleusingen
Wochenmarkt und Stadtmitte nur ca. 500 m entfernt
+
+
+
📍
+
Genaue Adresse
Schleusinger Bahnhofstraße 10
98533 Schleusingen, Thüringen
+
+
+
+ +
+
+
Kontakt
+

Interesse?
Schreiben Sie uns.

+

Wir freuen uns über Ihre Anfrage und melden uns innerhalb von 24 Stunden. Besichtigungstermine sind jederzeit möglich.

+
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+

Vielen Dank für Ihre Anfrage!

+
+ Wir melden uns schnellstmöglich bei Ihnen. +
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/js/haus-schleusingen.js b/js/haus-schleusingen.js new file mode 100644 index 0000000..1130708 --- /dev/null +++ b/js/haus-schleusingen.js @@ -0,0 +1,70 @@ +$(function() { + // Navbar scroll + $(window).on('scroll', function() { + if ($(this).scrollTop() > 60) $('#navbar').addClass('scrolled'); + else $('#navbar').removeClass('scrolled'); + }); + + // Hero animation on load + setTimeout(function() { + $('#heroContent').addClass('visible'); + $('#heroBg').addClass('loaded'); + }, 200); + + // Scroll animations + function checkVisible() { + $('.fact, [data-animate]').each(function() { + var el = $(this); + var top = el.offset().top; + var windowBottom = $(window).scrollTop() + $(window).height(); + if (windowBottom > top + 60) { + el.addClass('visible'); + el.css({opacity: 1, transform: 'translateY(0)'}); + } + }); + } + $('[data-animate]').css({opacity: 0, transform: 'translateY(30px)', transition: 'opacity 0.8s ease, transform 0.8s ease'}); + $(window).on('scroll', checkVisible); + checkVisible(); + + // Floor accordion + $('.floor-header').on('click', function() { + var item = $(this).closest('.floor-item'); + var isOpen = item.hasClass('open'); + $('.floor-item').removeClass('open'); + $('.floor-body').slideUp(300); + if (!isOpen) { + item.addClass('open'); + item.find('.floor-body').slideDown(300); + } + }); + + // Lightbox – gallery grid items + $(document).on('click', '.grid-item', function() { + var src = $(this).data('img') || $(this).find('img').attr('src'); + $('#lightboxImg').attr('src', src); + $('#lightbox').addClass('open'); + $('body').css('overflow', 'hidden'); + }); + $('#lightboxClose, #lightbox').on('click', function(e) { + if (e.target === this) { + $('#lightbox').removeClass('open'); + $('body').css('overflow', ''); + } + }); + $(document).on('keydown', function(e) { + if (e.key === 'Escape') { $('#lightbox').removeClass('open'); $('body').css('overflow', ''); } + }); + + // Form submit + $('#contactForm').on('submit', function(e) { + e.preventDefault(); + var btn = $(this).find('.btn-submit'); + btn.text('Wird gesendet...').prop('disabled', true); + setTimeout(function() { + $('#contactForm').hide(); + $('#formSuccess').fadeIn(400); + }, 1200); + }); +}); + diff --git a/js/masonry.pkgd.min.js b/js/masonry.pkgd.min.js new file mode 100644 index 0000000..53386ae --- /dev/null +++ b/js/masonry.pkgd.min.js @@ -0,0 +1,9 @@ +/*! + * Masonry PACKAGED v4.2.2 + * Cascading grid layout library + * https://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;oe;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); \ No newline at end of file diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..4f75c83 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,11 @@ +server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + index haus-schleusingen.html; + + location / { + try_files $uri $uri/ /haus-schleusingen.html; + } +} \ No newline at end of file