@font-face{font-family:'Inter';font-style:normal;font-weight:400;src:url('assets/fonts/inter-latin-400-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;src:url('assets/fonts/inter-latin-500-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;src:url('assets/fonts/inter-latin-600-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;src:url('assets/fonts/inter-latin-700-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;src:url('assets/fonts/newsreader-latin-400-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;src:url('assets/fonts/newsreader-latin-500-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;src:url('assets/fonts/newsreader-latin-600-normal.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;src:url('assets/fonts/newsreader-latin-400-italic.woff2') format('woff2');font-display:swap;}

:root{
  --see:#16323E;
  --schilf:#3F5A48;
  --sand:#E4D9C3;
  --kies:#F8F5EF;
  --ocker:#C97B3D;
  --tinte:#1B1F1D;
  --line: rgba(27,31,29,0.12);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--kies);
  color:var(--tinte);
  font-family:'Inter',sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Newsreader',serif;
  font-weight:500;
  margin:0 0 .4em;
  letter-spacing:-.01em;
}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

/* header */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(248,245,239,.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:92px;}
.brand{display:flex;align-items:center;gap:10px;font-family:'Newsreader',serif;font-size:1.3rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;color:var(--tinte);}
.brand img{height:72px;width:auto;}
.brand span{color:var(--schilf);}
nav{display:flex;gap:28px;font-size:.92rem;}
nav a{text-decoration:none;opacity:.75;transition:opacity .2s;}
nav a:hover, nav a.active{opacity:1;}
.navtoggle{display:none;}
@media(max-width:720px){
  header .wrap{height:72px;}
  .brand img{height:52px;}
  nav{position:absolute;top:72px;left:0;right:0;background:var(--kies);flex-direction:column;padding:16px 20px;border-bottom:1px solid var(--line);display:none;}
  nav.open{display:flex;}
  .navtoggle{display:block;background:none;border:none;font-size:1.4rem;cursor:pointer;}
}

.btn{
  display:inline-block;background:var(--see);color:var(--kies);
  padding:14px 30px;border-radius:2px;text-decoration:none;
  font-size:.92rem;letter-spacing:.02em;font-weight:600;
  transition:background .2s;border:none;cursor:pointer;
}
.btn:hover{background:var(--schilf);}
.btn.ghost{background:transparent;color:var(--see);border:1px solid var(--see);margin-left:12px;}
.btn.ghost:hover{background:var(--see);color:var(--kies);}

section{padding:88px 0;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
@media(max-width:820px){.row{grid-template-columns:1fr;gap:36px;}}
.tag{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--ocker);font-weight:700;margin-bottom:14px;
}
.tag::before{content:"";width:16px;height:1px;background:var(--ocker);}

.art-block{aspect-ratio:4/3;position:relative;overflow:hidden;background:#ddd;border-radius:6px;}
.art-lake{background:linear-gradient(160deg,#DCEBE6,#9FC1BE 55%,#3F5A48);}
.art-dog{background:linear-gradient(160deg,#F1E4CF,#D9BE95 55%,#8C5A2E);}
.art-room{background:linear-gradient(160deg,#EDE7DA,#C9BCA0 55%,#5A4C36);}
.art-block svg{position:absolute;inset:0;width:100%;height:100%;}

/* photo gallery: main photo + thumbnail row, all shown at their true aspect ratio (no cropping) */
.photo-gallery{margin-bottom:24px;}
.gallery-main{border-radius:6px;overflow:hidden;margin-bottom:8px;background:#eee;}
.gallery-main img{width:100%;height:auto;max-height:520px;object-fit:contain;background:#111;display:block;cursor:zoom-in;}
.gallery-thumbs{display:flex;flex-wrap:wrap;gap:6px;}
.gallery-thumbs img{height:150px;width:auto;border-radius:4px;cursor:zoom-in;display:block;transition:opacity .15s;}
.gallery-thumbs img:hover{opacity:.85;}
@media(max-width:640px){
  .gallery-main img{max-height:280px;}
  .gallery-thumbs{gap:4px;}
  .gallery-thumbs img{height:72px;border-radius:3px;}
}

/* lightbox */
.lightbox-overlay{position:fixed;inset:0;background:rgba(15,20,18,.94);z-index:300;display:flex;align-items:center;justify-content:center;}
.lightbox-overlay img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:4px;}
.lb-close,.lb-prev,.lb-next{position:absolute;background:none;border:none;color:#F8F5EF;cursor:pointer;line-height:1;}
.lb-close{top:18px;right:24px;font-size:2.4rem;}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:3rem;padding:10px 16px;}
.lb-prev{left:8px;}
.lb-next{right:8px;}
.lb-counter{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#F8F5EF;font-size:.82rem;opacity:.8;}
@media(max-width:640px){.lb-prev,.lb-next{font-size:2.2rem;padding:8px 10px;}}

/* photo placeholder */
.photo-ph{
  aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(45deg,#EEE8DA,#EEE8DA 10px,#E4DBC8 10px,#E4DBC8 20px);
  color:#8a8272;font-size:.78rem;text-align:center;padding:12px;
  border:1px dashed #b9ae95;
}



/* apartment overview cards on homepage */
.apt-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:transparent;border:none;}
@media(max-width:720px){.apt-cards{grid-template-columns:1fr;}}
.apt-card{background:var(--kies);border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:box-shadow .25s, transform .25s;}
.apt-card:hover{box-shadow:0 12px 28px rgba(22,50,62,0.12);transform:translateY(-2px);}
.apt-card .art-block{aspect-ratio:16/10;}
.apt-card .apt-body{padding:32px;}
.apt-card .lvl{font-size:.75rem;color:var(--schilf);font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.apt-card p.desc{color:#4a4f4c;margin:10px 0 18px;}

.facts{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:32px 0;}
.fact{flex:1 1 140px;padding:18px 20px;border-right:1px solid var(--line);}
.fact:last-child{border-right:none;}
.fact b{display:block;font-family:'Newsreader',serif;font-size:1.3rem;}
.fact span{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:#6b6f6a;}

.ausstattung{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;list-style:none;padding:0;margin:0;}
@media(max-width:560px){.ausstattung{grid-template-columns:1fr;}}
.ausstattung li{padding:8px 0;border-bottom:1px solid var(--line);font-size:.95rem;}
.ausstattung li::before{content:"— ";color:var(--schilf);}

.calendar-box{
  border:1px solid var(--line);background:#fff;min-height:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:36px 32px;color:#6b6f6a;font-size:.92rem;
}
.calendar-box p{max-width:52ch;margin:0;}
.calendar-box.filled{padding:0;display:block;}
.calendar-box iframe{width:100%;height:420px;border:none;display:block;}

.review-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-weight:600;text-decoration:none;color:var(--see);border-bottom:1px solid var(--see);padding-bottom:2px;}

.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;gap:36px;}}

form.anfrage{display:grid;gap:16px;}
form.anfrage .two{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:560px){form.anfrage .two{grid-template-columns:1fr;}}
label{font-size:.82rem;font-weight:600;display:block;margin-bottom:6px;}
input,textarea,select{
  width:100%;padding:12px 14px;border:1px solid var(--line);
  background:#fff;font-family:inherit;font-size:.95rem;border-radius:2px;
}
textarea{min-height:110px;resize:vertical;}

.info-block{background:var(--see);color:var(--kies);padding:36px;border-radius:6px;}
.info-block a{text-decoration:none;}
.info-block .line{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(248,245,239,.2);font-size:.92rem;}
.info-block .line:last-child{border-bottom:none;}

footer{border-top:1px solid var(--line);padding:48px 0;font-size:.85rem;color:#5a5f5c;}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;}
footer a{text-decoration:none;margin-left:18px;opacity:.8;}
footer a:first-child{margin-left:0;}

.hero-small{padding:64px 0 40px;}
.hero-small .eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--schilf);font-weight:600;margin-bottom:14px;}
.hero-small h1{font-size:clamp(2rem,4.2vw,3rem);color:var(--see);max-width:16ch;}
.hero-small p.lead{max-width:52ch;color:#3a3f3c;font-size:1.05rem;}
