Files
landingpage-haus-schleusingen/css/haus-schleusingen.css
Claw 958f52fd5d Fix #11: Kontakt-Section mit Email hinzufügen
- Email mki@kies-media.de als direkter Kontaktlink unter dem Formular
- Neues .contact-details CSS passend zum bestehenden Design
- Minimaler Eingriff: bestehendes Design bleibt erhalten
2026-05-11 06:38:28 +00:00

1105 lines
18 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

: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: rgb(253 252 250 / 96%);
backdrop-filter: blur(12px);
padding: 0.85rem 3rem;
border-bottom: 1px solid rgb(158 148 133 / 20%);
}
.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: rgb(255 255 255 / 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,
rgb(28 26 23 / 85%) 0%,
rgb(28 26 23 / 30%) 50%,
rgb(28 26 23 / 10%) 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: rgb(255 255 255 / 60%);
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: rgb(255 255 255 / 50%);
cursor: pointer;
}
.scroll-line {
width: 1px;
height: 40px;
background: rgb(255 255 255 / 30%);
animation: scroll-anim 2s infinite;
}
@keyframes scroll-anim {
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 rgb(255 255 255 / 7%);
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, rgb(28 26 23 / 75%));
font-size: 0.72rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: rgb(255 255 255 / 90%);
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 (width <= 1100px) {
.masonry-grid {
column-count: 3;
}
}
@media (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 (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;
max-width: 100%;
overflow: hidden;
}
.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);
}
.floor-plan {
margin-top: 1.5rem;
border: 1px solid var(--warm);
background: var(--white);
overflow: hidden;
max-width: 100%;
}
.floor-plan img {
width: 100%;
max-width: 100%;
height: auto;
display: block;
object-fit: contain;
}
.floor-plan-multi {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1px;
background: var(--warm);
}
.floor-plan-multi img {
width: 100%;
max-width: 100%;
height: auto;
display: block;
object-fit: contain;
background: var(--white);
}
@media (width <= 768px) {
.floor-plan-multi {
grid-template-columns: 1fr;
}
}
/* 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: rgb(255 255 255 / 7%);
}
.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: rgb(255 255 255 / 70%);
}
.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: rgb(255 255 255 / 70%);
}
.price-note {
margin-top: 2.5rem;
padding-top: 2.5rem;
border-top: 1px solid rgb(255 255 255 / 7%);
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;
}
.lage-map-wrapper {
margin-top: 3rem;
border: 1px solid var(--warm);
overflow: hidden;
}
.lage-map-wrapper iframe {
display: block;
width: 100%;
height: 450px;
filter: grayscale(30%) contrast(1.05);
transition: filter 0.4s ease;
}
.lage-map-wrapper:hover iframe {
filter: grayscale(0%) contrast(1);
}
@media (width <= 900px) {
.lage-map-wrapper iframe {
height: 320px;
}
}
/* 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);
}
.contact-details {
text-align: center;
margin-top: 2rem;
padding-top: 1.5rem;
border-top: 1px solid var(--warm);
}
.contact-details p {
font-size: 0.95rem;
color: var(--stone);
}
.contact-details a {
color: var(--accent);
text-decoration: none;
font-weight: 600;
transition: color 0.2s;
}
.contact-details a:hover {
color: var(--accent-light);
}
/* FOOTER */
footer {
background: var(--dark);
padding: 2.5rem 3rem;
display: flex;
justify-content: space-between;
align-items: center;
border-top: 1px solid rgb(255 255 255 / 6%);
}
.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: rgb(28 26 23 / 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 (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 rgb(255 255 255 / 7%);
}
.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;
}
}