:root {
  --ink: #69716c;
  --green: #8f9a79;
  --soft-ink: #92978f;
  --sage: #c9ccbb;
  --sage-dark: #8f9a79;
  --mist: #d4d8d4;
  --cream: #eff0d8;
  --paper: #fff;
  --max: 1160px;
  --wide: 1380px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  padding-top: 108px;
  color: var(--soft-ink);
  background: var(--paper);
  font-family: "Inria Serif", Georgia, serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.05em; }
h1, h2, h3 { margin: 0; color: var(--soft-ink); font-weight: 300; line-height: 1.04; }
h1 { font-size: clamp(2.4rem, 3vw, 4rem); font-style: italic; }
h2 { font-size: clamp(1.944rem, 2.43vw, 3.24rem); font-style: italic; }
h3 { font-size: clamp(1.6rem, 2vw, 2.65rem); font-style: italic; }
.content-width { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; }
.content-wide { width: min(var(--wide), calc(100% - 48px)); margin-inline: auto; }
.content-narrow { width: min(720px, calc(100% - 48px)); margin-inline: auto; }
.eyebrow { display: block; margin-bottom: 14px; color: #8a908b; font-size: 11px; font-style: normal; letter-spacing: .02em; text-transform: uppercase; }
.flower { display: block; width: auto; max-width: none; height: auto; object-fit: contain; }
.responsive-image { display: block; width: 100%; object-fit: cover; }
.home-hero > picture, .home-aerial > picture, .image-hero-frame > picture, .season-hero > picture,
.welcome-photo > picture, .apartment-teaser > picture, .lightbox-trigger > picture { display: block; width: 100%; height: 100%; overflow: hidden; }
.home-hero > picture > img, .home-aerial > picture > img, .image-hero-frame > picture > img, .season-hero > picture > img,
.welcome-photo > picture > img, .apartment-teaser > picture > img, .lightbox-trigger > picture > img { width: 100%; height: 100% !important; object-fit: cover; }

/* Header and brand */
.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 108px; background: rgba(255,255,255,.97); transition: height .32s ease, box-shadow .32s ease, background-color .32s ease; }
.site-header.is-scrolled { height: 72px; background: rgba(255,255,255,.94); box-shadow: 0 7px 24px rgba(69,76,69,.1); backdrop-filter: blur(12px); }
.header-inner { width: min(900px, calc(100% - 48px)); height: 100%; margin: auto; display: flex; align-items: center; justify-content: space-between; transition: width .32s ease; }
.site-brand { display: inline-flex; align-items: center; }
.site-header .brand-logo { width: 154px; height: auto; transition: width .32s ease; }
.site-header.is-scrolled .brand-logo { width: 122px; }
.header-right { display: flex; flex-direction: row-reverse; align-items: center; gap: 34px; }
.language-badge { display: grid; width: 29px; height: 29px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #87906f; background: #eef3cf; font-size: 10px; transition: width .32s ease, height .32s ease; }
.site-header.is-scrolled .language-badge { width: 25px; height: 25px; }
.site-nav { display: flex; align-items: center; gap: 48px; }
.site-nav a { position: relative; color: #606862; font-size: 14px; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: #9eaa7f; transition: right .25s; }
.site-nav a:hover::after, .site-nav a.active::after { right: 0; }
.menu-toggle { display: none; border: 0; padding: 8px; background: none; }
.menu-toggle span {
  display: block;
  width: 26px;
  height: 1px;
  margin: 6px 0;
  background: var(--ink);
  transform-origin: center;
  transition: transform .25s ease, opacity .2s ease;
}
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.menu-toggle:focus-visible { outline: 2px solid var(--sage-dark); outline-offset: 3px; }

/* Home */
.home-hero { position: relative; height: clamp(600px, 44.7vw, 860px); overflow: hidden; }
.home-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(31,46,25,.18), transparent 70%); }
.home-hero > img, .home-hero > picture > img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.07); will-change: transform; }
.home-hero-copy { position: absolute; z-index: 2; left: max(calc((100% - 1330px) / 2), 9%); bottom: 65px; color: #fff; }
.home-hero-copy h1, .home-hero-copy p { color: #fff; font-size: clamp(2rem, 2.7vw, 3.5rem); font-style: italic; text-shadow: 0 1px 5px rgba(0,0,0,.22); }
.home-hero-copy p { margin: 40px 0 0; }
.home-welcome { position: relative; width: min(1090px, calc(100% - 48px)); min-height: 683px; padding: 53px 0 70px 68px; display: grid; grid-template-columns: 406px minmax(0, 400px); align-items: center; justify-content: center; gap: 20px; }
.welcome-photo, .welcome-photo picture, .welcome-photo img { width: 406px; height: 560px; }
.welcome-photo img { object-fit: cover; }
.welcome-copy { position: relative; align-self: start; top: 61px; width: 100%; max-width: 400px; padding: 0; }
.welcome-copy h2 { margin-bottom: 28px; font-size: clamp(2.187rem, 2.511vw, 3.24rem); }
.welcome-copy p { font-size: 14px; }
.welcome-decoration { position: absolute; left: 22px; top: 305px; line-height: 0; transform: rotate(-65deg); transform-origin: center; }
.welcome-decoration .flower-1 { width: 53px; }
.welcome-decoration.right { left: auto; right: 220px; top: 33px; margin: 0; transform: rotate(35deg); }
.welcome-decoration.right .flower-1 { width: 52px; }
.home-aerial { position: relative; height: clamp(630px, 48vw, 920px); overflow: hidden; }
.home-aerial img { width: 100%; height: 100% !important; object-fit: cover; }
.aerial-marker { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; pointer-events: none; transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.07); transform-origin: center; will-change: transform; }
.aerial-marker circle { fill: none; stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
.home-aerial h2 { position: absolute; left: 50%; bottom: -28px; width: min(880px, calc(100% - 48px)); padding: 26px 35px 18px; transform: translateX(-50%); background: #fff; text-align: center; font-size: clamp(1.9035rem, 2.43vw, 3.078rem); }
.home-apartment { padding-top: 105px; background: linear-gradient(#fff 0 54%, var(--mist) 54% 100%); }
.section-heading { display: flex; flex-direction: column; align-items: center; gap: 28px; text-align: center; }
.section-heading h2 { white-space: pre-line; }
.section-heading .flower-2 { width: 58px; }
.apartment-teaser { width: min(540px, calc(100% - 48px)); margin-top: 55px; padding-bottom: 120px; }
.apartment-teaser > img, .apartment-teaser > picture { position: relative; z-index: 1; width: 540px; height: 335px; }
.apartment-teaser > picture > img { object-fit: cover; }
.apartment-copy { padding-top: 35px; }
.apartment-copy h3 { margin-bottom: 26px; }
.apartment-copy p { font-size: 13px; }
.home-moments { padding: 0 0 70px; }
.home-moments h2 { width: min(880px, calc(100% - 48px)); margin: -46px auto 95px; padding: 25px 24px 17px; position: relative; background: #fff; text-align: center; }
.moment-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.moment-strip img { width: 100%; height: 230px; object-fit: cover; }

/* Shared image heroes */
.muted-band { background: #bfc5c1; }
.image-hero, .season-hero { display: flex; justify-content: center; }
.image-hero-frame { position: relative; width: min(1380px, 100%); height: min(860px, 54vw); min-height: 620px; overflow: hidden; }
.image-hero-frame > img, .image-hero-frame > picture > img { width: 100%; height: 100%; object-fit: cover; transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.07); will-change: transform; }
.image-hero-copy { position: absolute; left: 135px; bottom: 55px; color: #fff; }
.image-hero-copy h1, .image-hero-copy p { color: #fff; font-size: clamp(2.4rem, 3vw, 4rem); text-shadow: 0 1px 4px rgba(0,0,0,.18); }
.image-hero-copy p { margin: 40px 0 0; font-style: italic; }

/* Apartment */
.wohnung-details { position: relative; padding: 100px 0 90px; }
.wohnung-gallery-flower { position: absolute; left: -125px; top: 305px; width: 60px; transform: rotate(72deg); }
.wohnung-gallery-flower .flower-4 { width: 60px; }
.apartment-gallery { position: relative; display: grid; grid-template-columns: 1fr 1.7fr 1fr; gap: 16px; }
.apartment-gallery img { width: 100%; height: 475px; object-fit: cover; }
.wohnung-info-grid { width: 760px; max-width: 100%; margin: 32px auto 0; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(250px, .85fr); gap: 14px; align-items: start; }
.wohnung-main-copy { padding: 0 5px; }
.wohnung-price-flower { display: flex; justify-content: flex-end; height: 52px; margin: 18px 52px 0 0; transform: rotate(67deg); transform-origin: center; }
.wohnung-price-flower .flower-3 { width: 46px; }
.wohnung-price-flower + .price-block { margin-top: 0; }
.wohnung-main-copy h2 { margin-bottom: 24px; }
.wohnung-main-copy p, .wohnung-aside p, .wohnung-aside li { font-size: 12px; }
.wohnung-aside section { padding: 24px 20px; background: var(--cream); }
.wohnung-aside section + section { margin-top: 14px; }
.wohnung-aside h3 { margin-bottom: 18px; font-size: 1.75rem; }
.wohnung-aside ul { margin: 0; padding-left: 0; list-style: none; }
.price-block { margin-top: 45px; }
.price-block h3 { margin-bottom: 15px; font-size: 1.7rem; }
.price-block table { width: 100%; border-collapse: collapse; background: var(--cream); color: #858b81; font-size: 12px; }
.price-block th, .price-block td { padding: 12px 18px; border-bottom: 1px solid #fff; text-align: left; font-weight: 300; }
.wohnung-main-copy blockquote { margin: 40px 0 0; padding: 36px 42px; background: var(--sage); font-size: clamp(2rem, 2.7vw, 3.2rem); font-style: italic; line-height: 1.02; }
.wohnung-details-flower { display: flex; justify-content: center; height: 62px; margin: 54px 0 -40px; }
.wohnung-details-flower .flower-2 { width: 45px; transform: rotate(23deg); }
.farm-mosaic { height: 630px; display: grid; grid-template-columns: 1.2fr 1.25fr .65fr .65fr .65fr; grid-template-rows: 1fr 1fr; gap: 14px; padding: 45px 0; background: var(--cream); }
.farm-item { margin: 0; overflow: hidden; }
.farm-item img { width: 100%; height: 100%; object-fit: cover; }
.farm-item-1 { grid-row: 1; grid-column: 1; }
.farm-item-2 { grid-row: 2; grid-column: 1; }
.farm-item-3 { grid-area: 1 / 2 / 3 / 3; }
.farm-item-4 { grid-area: 1 / 3 / 2 / 5; }
.farm-item-5 { grid-area: 2 / 3 / 3 / 4; }
.farm-item-6 { grid-area: 2 / 4 / 3 / 5; }
.farm-item-7 { grid-row: 1; grid-column: 5; }
.farm-item-8 { grid-row: 2; grid-column: 5; }
.farm-copy { padding: 70px 0 95px; text-align: center; }
.farm-copy > h2 { max-width: 820px; margin: 0 auto 45px; }
.farm-copy > h3 { margin-bottom: 18px; }
.farm-text { position: relative; width: min(640px, 100%); margin: auto; text-align: left; }
.farm-text .flower-2 { position: absolute; right: -82px; top: 5px; width: 45px; transform: rotate(26deg); }
.farm-text p { font-size: 12px; }
.product-strip { margin-top: 80px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.product-strip img { width: 100%; height: 230px; object-fit: cover; }

/* Seasons */
.season-hero { background: var(--sage); }
.season-hero { overflow: hidden; }
.season-hero > picture { width: min(1380px, 100%); height: min(860px, 54vw); min-height: 620px; }
.season-hero > img, .season-hero > picture > img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.07); will-change: transform; }
.season-intro { position: relative; padding: 95px 0 65px; }
.season-title-row { display: flex; align-items: center; gap: 70px; margin-bottom: 34px; }
.season-title-row h1 { max-width: 620px; }
.season-title-flower { flex: 0 0 auto; transform: rotate(-58deg); }
.season-title-flower .flower-3 { width: 51px; }
.season-winter-flower { position: absolute; right: -135px; bottom: 26px; transform: rotate(2deg); }
.season-winter-flower .flower-1 { width: 47px; }
.season-winter .season-title-row { position: relative; display: block; }
.season-winter .season-title-flower { position: absolute; left: -170px; top: 88px; transform: rotate(66deg); }
.season-winter .season-title-flower .flower-3 { width: 55px; }
.season-intro p, .highlight-copy p { font-size: 13px; }
.season-mosaic { height: 620px; padding: 45px 0; display: grid; grid-template-columns: 1fr 1fr .7fr .7fr .48fr; grid-template-rows: 1fr 1fr; gap: 14px; background: var(--cream); }
.season-item { margin: 0; overflow: hidden; }
.season-item img { width: 100%; height: 100%; object-fit: cover; }
.season-item-1 { grid-area: 1 / 1 / 2 / 2; }
.season-item-2 { grid-area: 2 / 1 / 3 / 2; }
.season-item-3 { grid-area: 1 / 2 / 3 / 3; }
.season-item-4 { grid-area: 1 / 3 / 2 / 5; }
.season-item-5 { grid-area: 1 / 5 / 2 / 6; }
.season-item-6 { grid-area: 2 / 3 / 3 / 4; }
.season-item-7 { grid-area: 2 / 4 / 3 / 5; }
.season-item-8 { grid-area: 2 / 5 / 3 / 6; }
.season-highlight { position: relative; padding-top: 90px; background: linear-gradient(#fff 0 45%, var(--sage) 45% 100%); }
.highlight-images { margin-top: 55px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.highlight-images img { width: 100%; height: 330px; object-fit: cover; }
.highlight-copy { padding: 55px 0 145px; }
.highlight-copy h2 { margin-bottom: 30px; }
.season-closing { position: absolute; left: 50%; bottom: -55px; width: min(900px, calc(100% - 48px)); padding: 27px 35px 20px; transform: translateX(-50%); background: #fff; color: var(--soft-ink); font-size: clamp(2.3rem, 3.2vw, 4rem); font-style: italic; line-height: 1.04; text-align: center; white-space: pre-line; }
.season-page .site-footer { padding-top: 170px; }

/* Contact */
.contact-layout { width: min(1090px, calc(100% - 48px)); padding: 10px 0 15px; display: grid; grid-template-columns: 1.7fr 1fr; align-items: stretch; }
.contact-panel { height: 610px; padding: 50px 55px 16px; border-radius: 7px 0 0 7px; background: var(--sage); color: #fff; }
.contact-panel > .eyebrow { color: #656d68; }
.contact-panel > h1 { color: #fff; font-size: clamp(3rem, 3.7vw, 4.8rem); }
.contact-flower { margin: 22px 0 0 -28px; }
.contact-flower .flower-4 { width: 64px; transform: rotate(-72deg); transform-origin: center; }
.contact-panel form { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px 22px; }
.contact-panel .form-field { grid-column: span 2; margin: 0; }
.contact-panel .field-half { grid-column: span 3; }
.contact-panel .field-full, .contact-panel .contact-privacy, .contact-panel .form-textarea-wrapper { grid-column: 1 / -1; }
.contact-panel label { display: none; }
.contact-panel input:not([type="checkbox"]), .contact-panel textarea, .contact-panel select { width: 100%; border: 0; border-radius: 6px; padding: 0 18px; background: #fff; color: #555e59; font: 14px "Inria Serif", Georgia, serif; outline: none; }
.contact-panel input:not([type="checkbox"]), .contact-panel select { height: 41px; }
.contact-panel textarea { height: 132px; padding-top: 13px; resize: vertical; }
.contact-panel input:focus, .contact-panel textarea:focus { box-shadow: 0 0 0 2px #9ca88c; }
.contact-panel .contact-privacy { display: flex; align-items: center; }
.contact-panel .contact-privacy label, .contact-panel .contact-privacy .form-label { display: block; color: #66706a; font-size: 12px; }
.contact-panel input[type="checkbox"] { width: 18px; height: 18px; margin-right: 10px; accent-color: #899477; }
.contact-panel .buttons { grid-column: 4 / -1; margin: 0; }
.contact-panel .contact-captcha { display: none; }
.contact-panel button, .contact-panel input[type="submit"] { width: 100%; height: 41px; border: 0; border-radius: 6px; background: #7e8781; color: #fff; font: 700 13px "Inria Serif", Georgia, serif; cursor: pointer; }
.contact-panel .form-message { grid-column: 1 / -1; }
.contact-map { min-width: 0; overflow: hidden; border-radius: 0 7px 7px 0; background: #e6eee4; }
.contact-map iframe { width: 100%; height: 610px; min-height: 610px; border: 0; }
.contact-map .dsgvo-embed { min-height: 610px; }
.anfrage-page .site-footer { padding-top: 30px; }

/* Legal */
.legal-content { min-height: 55vh; padding: 80px 0 120px; }
.legal-content--privacy { width: min(1040px, calc(100% - 48px)); }
.legal-content h1 { margin-bottom: 45px; }
.legal-content h2 { margin: 45px 0 20px; font-size: 1.701rem; }
.legal-content h3 { margin: 30px 0 14px; font-size: 1.5rem; }

/* Imprint */
.legal-page--imprint { padding: 0 0 120px; background: linear-gradient(#fff 0 285px, #f5f5ef 285px 100%); }
.legal-intro { position: relative; width: min(1040px, calc(100% - 48px)); min-height: 285px; margin: 0 auto; padding: 72px 110px 58px 0; display: flex; align-items: center; }
.legal-intro-copy { max-width: 720px; }
.legal-eyebrow { margin: 0 0 17px; color: var(--sage-dark); font-size: 11px; font-style: normal; letter-spacing: .13em; text-transform: uppercase; }
.legal-intro h1 { color: var(--soft-ink); font-size: clamp(3.3rem, 5vw, 5.7rem); }
.legal-lead { max-width: 580px; margin: 22px 0 0; color: #7d857f; font-size: 1.18rem; line-height: 1.55; }
.legal-intro-flower { position: absolute; right: 12px; top: 74px; transform: rotate(18deg); }
.legal-intro-flower .flower-2 { width: 66px; }
.imprint-grid { width: min(1040px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.imprint-card { position: relative; min-height: 330px; padding: 48px 50px 46px; border-top: 3px solid #a2ad85; background: rgba(255,255,255,.94); box-shadow: 0 14px 38px rgba(80,87,79,.07); overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.imprint-card:hover { transform: translateY(-3px); box-shadow: 0 19px 44px rgba(80,87,79,.11); }
.imprint-card-number { position: absolute; right: 28px; top: 22px; color: rgba(143,154,121,.16); font-size: 4.7rem; font-style: italic; font-weight: 300; line-height: 1; }
.imprint-card h2 { position: relative; z-index: 1; max-width: 75%; margin: 0 0 30px; color: #818980; font-size: clamp(1.377rem, 1.782vw, 1.9035rem); }
.imprint-address { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; color: #737c76; font-style: normal; font-size: .98rem; line-height: 1.48; }
.imprint-address strong { margin-bottom: 5px; color: #636d66; font-size: 1.08rem; font-weight: 400; }
.imprint-address a, .imprint-card p a { position: relative; color: #768164; }
.imprint-address a::after, .imprint-card p a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -1px; height: 1px; background: currentColor; transition: right .25s ease; }
.imprint-address a:hover::after, .imprint-card p a:hover::after { right: 0; }
.imprint-card--owner { background: var(--sage); }
.imprint-card--owner .imprint-card-number { color: rgba(255,255,255,.22); }
.imprint-card--owner h2, .imprint-card--owner .imprint-address, .imprint-card--owner .imprint-address strong { color: #fff; }
.imprint-card--owner .imprint-address a { color: #f7f8ef; }
.imprint-card--credits { min-height: 230px; display: flex; flex-direction: column; justify-content: center; background: var(--cream); }
.imprint-card--credits p { position: relative; z-index: 1; margin: 0; color: #727a73; font-size: 1.05rem; }
.imprint-card--wide { grid-column: 1 / -1; min-height: 0; padding-right: 120px; }
.imprint-card--controller { background: #d9ddd5; }
.imprint-card--controller p { position: relative; z-index: 1; max-width: 830px; margin: 0; color: #69726c; font-size: 1rem; line-height: 1.65; }
.imprint-card--liability { padding-top: 54px; padding-bottom: 58px; }
.imprint-liability-copy { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 46px; }
.imprint-liability-copy p { margin: 0; color: #747d77; font-size: .94rem; line-height: 1.68; }
.imprint-page .site-footer { padding-top: 75px; }

/* Footer */
.site-footer { padding-top: 80px; text-align: center; background: #fff; }
.footer-flower { display: flex; justify-content: center; margin-bottom: 45px; }
.footer-flower .flower-4 { width: 42px; transform: rotate(82deg); }
.footer-brand .brand-logo { width: 170px; height: auto; }
.site-footer address { display: flex; flex-direction: column; margin: 28px 0 25px; color: #8d928e; font-style: normal; font-size: 13px; line-height: 1.55; }
.site-footer .footer-contact { margin-top: 18px; }
.footer-bar { min-height: 48px; padding: 14px 24px; background: var(--cream); color: #657069; font-size: 12px; }
.footer-bar a:hover { text-decoration: underline; }

/* XD fidelity pass: fixed desktop artboard geometry, fluid below 1200px. */
body { padding-top: 0; overflow-x: hidden; }
.site-header, .site-header.is-scrolled { position: sticky; top: 0; height: 165px; background: #fff; box-shadow: none; backdrop-filter: none; }
.header-inner { position: relative; width: min(1640px, calc(100% - 48px)); display: block; }
.site-header .site-brand { position: absolute; left: 485px; top: 53px; transition: left .32s ease, top .32s ease; }
.site-header .brand-logo, .site-header.is-scrolled .brand-logo { width: 170px; height: 80px; object-fit: contain; transition: width .32s ease, height .32s ease; }
.header-right { display: block; }
.language-badge, .site-header.is-scrolled .language-badge { position: absolute; right: 485px; top: 37px; width: 29px; height: 29px; transition: right .32s ease, top .32s ease; }
.site-nav { position: absolute; top: 112px; left: calc(50% - 250px); width: 660px; justify-content: center; transform: none; gap: 48px; }
.site-nav a { font-size: 15px; }
.home-hero { height: 857px; }
.home-welcome { min-height: 683px; padding-block: 53px 70px; }
.home-aerial { height: 923px; }
.home-apartment { padding-top: 84px; }
.home-page .apartment-teaser { padding-bottom: 120px; }
.home-page .home-moments { padding-bottom: 12px; }
.home-page .site-footer { padding-top: 28px; }
.home-page .footer-flower { margin-bottom: 24px; }
.anfrage-page .site-footer { padding-top: 49px; }
.season-summer .highlight-copy { padding-bottom: 167px; }
.apartment-teaser { width: 536px; }
.apartment-teaser > img, .apartment-teaser > picture { width: 536px; height: 330px; }
.home-moments { padding-bottom: 70px; }
.moment-strip { width: min(1640px, calc(100% - 48px)); grid-template-columns: repeat(6, minmax(0, 260px)); justify-content: center; }
.moment-strip img { height: 260px; }
.image-hero-frame, .season-hero > picture { width: 1364px; height: 856px; min-height: 0; }
.wohnung-gallery-section { position: relative; padding-top: 100px; }
.wohnung-information { position: relative; padding: 32px 0 90px; }
.contact-layout { width: 1088px; min-height: 607px; margin: 11px auto 15px; padding: 0; grid-template-columns: 690px 398px; }
.contact-panel { height: 607px; }
.contact-map iframe, .contact-map .dsgvo-embed { height: 607px; min-height: 607px; }
#kontakt { scroll-margin-top: 16px; }
.wohnung-page .farm-copy { padding-bottom: 20px; }
.season-winter .highlight-copy { padding-bottom: 28px; }
.lightbox-trigger { display: block; width: 100%; height: 100%; border: 0; padding: 0; background: transparent; cursor: zoom-in; }
.reveal-on-scroll { opacity: 1; transform: none; }

/* Compact desktop header shown after the page starts scrolling. */
@media (min-width: 1200px) {
  body { padding-top: 165px; }
  .site-header,
  .site-header.is-scrolled { position: fixed; }
  .site-nav { height: 40px; transition: top .32s ease, width .32s ease, height .32s ease; }
  .site-header.is-scrolled { height: 96px; }
  .site-header.is-scrolled .header-inner {
    width: min(900px, calc(100% - 48px));
    display: block;
  }
  .site-header.is-scrolled .site-brand { left: 0; top: 15px; }
  .site-header.is-scrolled .brand-logo { width: 140px; height: 66px; }
  .site-header.is-scrolled .header-right { display: block; }
  .site-header.is-scrolled .language-badge {
    position: absolute;
    right: 0;
    top: 33px;
    width: 29px;
    height: 29px;
  }
  .site-header.is-scrolled .site-nav {
    position: absolute;
    top: 0;
    left: calc(50% - 250px);
    width: 600px;
    height: 96px;
    justify-content: center;
    transform: none;
    gap: 48px;
  }
  .site-header.is-scrolled .site-nav a { font-size: 14px; }

  /* Apartment page: 1920px artboard proportions. */
  .wohnung-page .image-hero-copy h1,
  .wohnung-page .image-hero-copy p { font-size: 46px; }
  .wohnung-page .image-hero-copy h1 { white-space: nowrap; }
  .wohnung-gallery-section,
  .wohnung-information { width: min(1364px, calc(100% - 48px)); }
  .wohnung-gallery-flower { left: -188px; top: 405px; }
  .wohnung-page .apartment-gallery {
    height: 475px;
    grid-auto-rows: 475px;
  }
  .wohnung-page .apartment-gallery::before,
  .wohnung-page .apartment-gallery::after {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: grid;
    width: 28px;
    height: 36px;
    place-items: center;
    transform: translateY(-50%);
    background: rgba(247, 247, 226, .94);
    color: #89977a;
    font-family: Arial, sans-serif;
    font-size: 25px;
    line-height: 1;
    pointer-events: none;
  }
  .wohnung-page .apartment-gallery::before { left: 0; content: '‹'; }
  .wohnung-page .apartment-gallery::after { right: 0; content: '›'; }
  .wohnung-info-grid {
    width: 960px;
    margin-top: 40px;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .95fr);
    gap: 16px;
  }
  .wohnung-information { padding: 0 0 28px; }
  .wohnung-main-copy p,
  .wohnung-aside p,
  .wohnung-aside li { font-size: 13px; line-height: 1.5; }
  .wohnung-main-copy h2 { max-width: 540px; font-size: 46px; }
  .wohnung-price-flower {
    position: relative;
    height: 66px;
    margin: 24px 93px 0 0;
    transform: none;
  }
  .wohnung-price-flower .flower-3 {
    position: absolute;
    right: 0;
    top: 4px;
    width: 29px;
    transform: rotate(67deg);
  }
  .wohnung-price-flower + .price-block { margin-top: 0; }
  .price-block h3 { font-size: 32px; }
  .price-block table { font-size: 13px; }
  .price-block th,
  .price-block td { padding: 13px 18px; }
  .wohnung-main-copy blockquote {
    margin-top: 48px;
    padding: 60px 48px;
    font-size: 44px;
    line-height: 1.06;
  }
  .wohnung-aside section { padding: 24px; }
  .wohnung-aside h3 { font-size: 34px; line-height: 1.02; }
  .wohnung-details-flower {
    position: absolute;
    left: calc(50% - 247px);
    top: 950px;
    height: auto;
    margin: 0;
  }
  .wohnung-details-flower .flower-2 { width: 45px; }
  .wohnung-page .farm-mosaic {
    height: 740px;
    padding: 45px 0 155px;
  }
  .wohnung-page .farm-copy {
    position: relative;
    padding-top: 0;
    padding-bottom: 20px;
  }
  .wohnung-page .farm-copy::before {
    content: none;
  }
  .wohnung-page .farm-copy > h2 {
    position: relative;
    z-index: 1;
    width: min(900px, 100%);
    max-width: none;
    margin: -86px auto 52px;
    padding: 27px 44px 30px;
    border-radius: 7px 7px 0 0;
    background: #fff;
    font-size: 42px;
    line-height: 1.06;
    white-space: pre-line;
  }
  .wohnung-page .farm-copy > h3 {
    margin-bottom: 24px;
    font-size: 28px;
  }
  .wohnung-page .farm-text { width: min(540px, 100%); }
  .wohnung-page .farm-text .flower-2 { transform: rotate(-70deg); }
  .wohnung-page .farm-text p {
    margin-bottom: 22px;
    font-size: 13px;
    line-height: 1.5;
  }
  .wohnung-page .product-strip {
    width: min(1096px, 100%);
    margin-inline: auto;
    grid-auto-rows: 274px;
  }
  .wohnung-page .product-strip img { height: 274px; }

  /* Season pages: 1920px artboard proportions from the supplied designs. */
  .season-page .season-intro,
  .season-page .highlight-copy { width: min(540px, calc(100% - 48px)); }
  .season-page .season-intro { padding: 95px 0 45px; }
  .season-page .season-title-row {
    position: relative;
    display: block;
    margin-bottom: 34px;
  }
  .season-page .season-title-row h1 {
    max-width: none;
    font-size: 46px;
    line-height: 1.05;
  }
  .season-summer .season-title-flower {
    position: absolute;
    right: -105px;
    top: 50px;
    transform: rotate(-58deg);
  }
  .season-winter .season-title-flower { left: -170px; top: 88px; }
  .season-winter-flower { right: -135px; bottom: 26px; }
  .season-page .season-intro p,
  .season-page .highlight-copy p { font-size: 12px; line-height: 1.5; }
  .season-page .season-mosaic { height: 680px; }
  .season-page .season-highlight {
    padding-top: 45px;
    background: linear-gradient(#fff 0 41%, var(--sage) 41% 100%);
  }
  .season-page .section-heading h2,
  .season-page .highlight-copy h2 { font-size: 46px; line-height: 1.05; }
  .season-page .highlight-images {
    width: min(1640px, calc(100% - 48px));
    margin-top: 55px;
    grid-auto-rows: 330px;
  }
  .season-page .highlight-images > *,
  .season-page .highlight-images img {
    height: 330px;
    border-radius: 5px;
  }
  .season-page .highlight-images > * { overflow: hidden; }
  .season-page .highlight-copy { padding-top: 55px; }
  .season-summer .highlight-copy { padding-bottom: 180px; }
  .season-winter .highlight-copy { padding-bottom: 220px; }
  .season-page .season-closing {
    padding: 14px 35px 10px;
    font-size: 50px;
  }
  .season-summer .season-closing { font-size: 46px; }
  .season-page .site-footer { padding-top: 145px; }

  /* Contact page: wide two-panel layout from the supplied desktop design. */
  .anfrage-page .contact-layout {
    width: min(1088px, calc(100% - 48px));
    min-height: 607px;
    margin: 11px auto 15px;
    grid-template-columns: 690px 398px;
    gap: 0;
  }
  .anfrage-page .contact-panel {
    position: relative;
    height: 607px;
    padding: 50px 58px 16px 155px;
    border-radius: 7px;
  }
  .anfrage-page .contact-panel > h1 {
    font-size: 48px;
    white-space: nowrap;
  }
  .anfrage-page .contact-flower {
    position: absolute;
    left: 60px;
    top: 173px;
    margin: 0;
  }
  .anfrage-page .contact-flower .flower-4 { width: 64px; }
  .anfrage-page .contact-panel form {
    margin-top: 85px;
    column-gap: 22px;
    row-gap: 8px;
  }
  .anfrage-page .contact-panel input:not([type="checkbox"]),
  .anfrage-page .contact-panel select {
    height: 41px;
    padding-inline: 18px;
    font-size: 14px;
  }
  .anfrage-page .contact-panel textarea {
    height: 132px;
    padding: 13px 18px;
    font-size: 14px;
  }
  .anfrage-page .contact-panel .contact-privacy label,
  .anfrage-page .contact-panel .contact-privacy .form-label { font-size: 12px; }
  .anfrage-page .contact-panel input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-right: 10px;
  }
  .anfrage-page .contact-panel .contact-captcha { display: none; }
  .anfrage-page .contact-panel button,
  .anfrage-page .contact-panel input[type="submit"] {
    height: 41px;
    font-size: 13px;
  }
  .anfrage-page .contact-map,
  .anfrage-page .contact-map iframe,
  .anfrage-page .contact-map .dsgvo-embed {
    height: 607px;
    min-height: 607px;
  }
  .anfrage-page .contact-map { border-radius: 0; }
}

@media (max-width: 1199px) {
  .site-header, .site-header.is-scrolled { height: 108px; }
  .header-inner { display: flex; }
  .site-header .site-brand { position: static; }
  .site-header .brand-logo, .site-header.is-scrolled .brand-logo { width: 145px; height: auto; }
  .header-right { display: flex; }
  .language-badge, .site-header.is-scrolled .language-badge { position: static; }
  .site-nav { position: static; width: auto; transform: none; gap: 24px; }
  .home-hero { height: min(857px, 60vw); min-height: 520px; }
  .image-hero-frame, .season-hero > picture { width: min(1364px, 100%); height: min(856px, 62vw); min-height: 520px; }
  .contact-layout { width: min(1088px, calc(100% - 48px)); grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); }
}

@media (max-width: 760px) {
  .site-header, .site-header.is-scrolled { height: 88px; }
  .menu-toggle { display: block; }
  .header-right { display: block; }
  .language-badge { right: 72px; top: 29px; position: absolute; }
  .site-nav { display: none; position: absolute; z-index: 10; top: 88px; left: -24px; width: calc(100% + 48px); padding: 25px; background: #fff; flex-direction: column; transform: none; }
  .menu-open .site-nav { display: flex; }
  .home-hero { min-height: 520px; height: 68vh; }
  .home-welcome { display: block; padding-block: 55px; }
  .welcome-decoration { display: none; }
  .welcome-photo, .welcome-photo picture, .welcome-photo img { width: 100%; height: 420px; }
  .welcome-copy { padding-top: 35px; }
  .home-aerial { height: 62vh; min-height: 470px; }
  .moment-strip, .product-strip, .highlight-images { grid-template-columns: 1fr 1fr; }
  .moment-strip img { height: auto; aspect-ratio: 1; }
  .apartment-gallery { grid-template-columns: 1fr; }
  .apartment-gallery img { height: auto; aspect-ratio: 4 / 3; }
  .wohnung-info-grid { grid-template-columns: 1fr; }
  .farm-mosaic, .season-mosaic { height: auto; padding: 24px; grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .farm-item, .season-item { grid-area: auto; aspect-ratio: 4 / 3; }
  .contact-layout { width: calc(100% - 32px); display: block; }
  .contact-panel { height: auto; min-height: 607px; padding: 38px 22px; border-radius: 7px 7px 0 0; }
  .contact-panel form { grid-template-columns: 1fr; }
  .contact-panel .form-field, .contact-panel .field-half, .contact-panel .buttons { grid-column: 1 / -1; }
  .contact-map { min-height: 430px; border-radius: 0 0 7px 7px; }
  .contact-map iframe, .contact-map .dsgvo-embed { height: 430px; min-height: 430px; }
}
.footer-cookie-button { border: 0; padding: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.footer-cookie-button:hover { text-decoration: underline; }

/* Scroll motion */
.reveal-on-scroll { opacity: 0; transform: translate3d(0, 30px, 0); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.65,.28,1); transition-delay: var(--reveal-delay, 0ms); }
.reveal-on-scroll.reveal-from-left { transform: translate3d(-34px, 0, 0); }
.reveal-on-scroll.reveal-from-right { transform: translate3d(34px, 0, 0); }
.reveal-on-scroll.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
.home-aerial h2.reveal-on-scroll, .season-closing.reveal-on-scroll { transform: translate3d(-50%, 30px, 0); }
.home-aerial h2.reveal-on-scroll.is-visible, .season-closing.reveal-on-scroll.is-visible { transform: translate3d(-50%, 0, 0); }
.home-hero-copy, .image-hero-copy { animation: hero-copy-in .9s .15s both cubic-bezier(.2,.65,.28,1); }
@keyframes hero-copy-in { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }

/* Lightbox galleries */
.lightbox-trigger { display: block; width: 100%; height: 100%; margin: 0; border: 0; padding: 0; overflow: hidden; background: transparent; cursor: zoom-in; }
.lightbox-trigger img { transition: transform .35s ease, filter .35s ease; }
.lightbox-trigger:hover img, .lightbox-trigger:focus-visible img { transform: scale(1.025); filter: brightness(.94); }
.lightbox-trigger:focus-visible { outline: 3px solid #9eaa7f; outline-offset: 3px; }
.lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; border: 0; padding: 52px 84px 34px; background: rgba(34, 40, 36, .94); color: #fff; overflow: hidden; }
.lightbox::backdrop { background: rgba(34, 40, 36, .94); }
.lightbox[open] { display: grid; grid-template-columns: 58px minmax(0, 1fr) 58px; align-items: center; gap: 24px; }
.lightbox figure { min-width: 0; height: 100%; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.lightbox-image { max-width: 100%; max-height: calc(100vh - 125px); width: auto; height: auto; object-fit: contain; box-shadow: 0 10px 45px rgba(0,0,0,.25); }
.lightbox figcaption { width: min(100%, 1100px); min-height: 28px; padding-top: 12px; display: flex; justify-content: space-between; gap: 24px; color: rgba(255,255,255,.84); font-size: 14px; }
.lightbox-close, .lightbox-arrow { border: 0; background: transparent; color: #fff; cursor: pointer; font-family: Georgia, serif; font-weight: 300; }
.lightbox-close { position: fixed; z-index: 2; top: 18px; right: 28px; width: 48px; height: 48px; font-size: 44px; line-height: 1; }
.lightbox-arrow { width: 58px; height: 80px; border-radius: 5px; font-size: 62px; line-height: 1; }
.lightbox-arrow:hover, .lightbox-arrow:focus-visible, .lightbox-close:hover, .lightbox-close:focus-visible { background: rgba(255,255,255,.12); outline: none; }
body.lightbox-open { overflow: hidden; }

@media (max-width: 1100px) {
  .header-inner { width: min(820px, calc(100% - 40px)); }
  .site-nav { gap: 32px; }
  .home-welcome { width: min(900px, calc(100% - 40px)); padding-inline: 0; grid-template-columns: minmax(290px, 390px) minmax(0, 1fr); }
  .welcome-decoration { display: none; }
  .farm-mosaic, .season-mosaic { height: 520px; }
  .contact-panel { padding-inline: 42px; }
}

@media (max-width: 760px) {
  body { padding-top: 0; font-size: 14px; }
  h1 { font-size: clamp(2rem, 10vw, 3rem); }
  h2 { font-size: clamp(1.62rem, 8.1vw, 2.43rem); }
  .site-header { height: 84px; }
  .site-header.is-scrolled { height: 64px; }
  .header-inner { width: calc(100% - 32px); }
  .site-header .brand-logo { width: 132px; }
  .site-header.is-scrolled .brand-logo { width: 112px; }
  .header-right { padding: 0; }
  .language-badge { display: none; }
  .menu-toggle { display: block; position: relative; z-index: 3; }
  .site-nav { position: fixed; inset: 0; left: 0; right: 0; width: 100%; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 34px; background: rgba(255,255,255,.98); opacity: 0; visibility: hidden; transition: .25s; }
  .site-nav a { font-size: 1.7rem; }
  .menu-open { overflow: hidden; }
  .menu-open .site-nav { opacity: 1; visibility: visible; }
  .home-hero { height: 65vh; min-height: 520px; }
  .home-hero > img,
  .home-hero > picture > img,
  .image-hero-frame > img,
  .image-hero-frame > picture > img,
  .season-hero > img,
  .season-hero > picture > img,
  .aerial-marker { transform: none !important; }
  .home-hero-copy { left: 24px; right: 24px; bottom: 42px; }
  .home-hero-copy h1, .home-hero-copy p { font-size: 1.65rem; }
  .home-hero-copy p { margin-top: 14px; }
  .home-welcome { width: calc(100% - 48px); min-height: 0; padding: 60px 0 55px; display: flex; flex-direction: column; align-items: stretch; }
  .welcome-decoration { display: none; }
  .welcome-photo img { width: 100%; height: auto; aspect-ratio: 4 / 4.6; }
  .welcome-copy { top: 0; width: 100%; max-width: 100%; min-width: 0; padding: 20px 0 0; }
  .home-aerial { height: 520px; }
  .home-apartment { padding-top: 90px; }
  .apartment-teaser,
  .home-page .apartment-teaser {
    width: 100%;
    max-width: 100%;
    padding-bottom: 90px;
  }
  .apartment-teaser > img,
  .apartment-teaser > picture {
    width: 100%;
    max-width: 100%;
  }
  .home-page .home-moments {
    margin-top: 0;
    padding-bottom: 70px;
  }
  .home-moments h2 {
    font-size: 1.62rem;
    overflow-wrap: anywhere;
  }
  .home-page .site-footer { padding-top: 70px; }
  .home-page .footer-flower { margin-bottom: 45px; }
  .anfrage-page .site-footer { padding-top: 70px; }
  .home-moments h2 { margin-bottom: 55px; }
  .moment-strip { grid-template-columns: repeat(2, 1fr); }
  .image-hero-frame, .season-hero > img, .season-hero > picture { min-height: 520px; height: 65vh; }
  .image-hero-copy { left: 24px; right: 24px; bottom: 40px; }
  .image-hero-copy p { margin-top: 18px; }
  .wohnung-details { padding-top: 55px; }
  .wohnung-gallery-flower { display: none; }
  .wohnung-price-flower, .wohnung-details-flower { display: none; }
  .apartment-gallery { grid-template-columns: 1fr; }
  .apartment-gallery img { height: auto !important; aspect-ratio: 1.35 / 1 !important; }
  .wohnung-info-grid { grid-template-columns: 1fr; }
  .wohnung-aside { order: 2; }
  .farm-mosaic, .season-mosaic { height: auto; padding: 20px; grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .farm-item, .season-item { grid-area: auto !important; aspect-ratio: 1.2 / 1; }
  .farm-item-3, .season-item-3 { grid-column: 1 / -1; aspect-ratio: 1.7 / 1; }
  .product-strip { grid-template-columns: 1fr 1fr; margin-top: 45px; }
  .farm-text .flower { display: none; }
  .season-intro { padding-top: 60px; }
  .season-title-row { display: block; }
  .season-title-row .flower { margin: 25px 0; }
  .season-title-flower, .season-winter .season-title-flower { position: static; transform: rotate(-58deg); }
  .season-winter-flower { display: none; }
  .season-highlight { background: linear-gradient(#fff 0 34%, var(--sage) 34% 100%); }
  .highlight-images { grid-template-columns: 1fr; }
  .highlight-images img { height: auto !important; aspect-ratio: 1.45 / 1 !important; }
  .highlight-copy { padding-bottom: 125px; }
  .contact-layout { grid-template-columns: 1fr; width: calc(100% - 24px); padding-top: 10px; }
  .contact-panel { height: auto; min-height: 0; padding: 45px 20px; border-radius: 7px 7px 0 0; }
  .contact-panel form { grid-template-columns: 1fr; }
  .contact-panel .form-field, .contact-panel .field-half, .contact-panel .field-full, .contact-panel .contact-privacy, .contact-panel .buttons { grid-column: 1; width: auto !important; max-width: 100%; min-width: 0; }
  .contact-panel .contact-privacy { overflow-wrap: anywhere; }
  .contact-map { height: 420px; border-radius: 0 0 7px 7px; }
  .contact-map iframe { height: 420px; min-height: 420px; }
  .contact-map .dsgvo-embed { min-height: 420px; }
  .legal-page--imprint { padding-bottom: 75px; background: linear-gradient(#fff 0 245px, #f5f5ef 245px 100%); }
  .legal-intro { min-height: 245px; width: calc(100% - 36px); padding: 48px 58px 42px 0; }
  .legal-intro h1 { font-size: clamp(3rem, 17vw, 4.5rem); }
  .legal-lead { margin-top: 16px; font-size: 1rem; }
  .legal-intro-flower { right: 0; top: 50px; }
  .legal-intro-flower .flower-2 { width: 44px; }
  .imprint-grid { width: calc(100% - 24px); grid-template-columns: 1fr; gap: 12px; }
  .imprint-card, .imprint-card--wide { grid-column: auto; min-height: 0; padding: 38px 28px 40px; }
  .imprint-card-number { right: 18px; top: 17px; font-size: 3.7rem; }
  .imprint-card h2 { max-width: 78%; margin-bottom: 24px; }
  .imprint-liability-copy { grid-template-columns: 1fr; gap: 20px; }
  .lightbox { padding: 54px 12px 22px; }
  .lightbox[open] { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 3px; }
  .lightbox-arrow { width: 42px; font-size: 48px; }
  .lightbox-close { top: 8px; right: 10px; }
  .lightbox-image { max-height: calc(100vh - 130px); }
  .lightbox figcaption { padding-inline: 6px; font-size: 12px; }
  .site-footer { padding-top: 70px; }
  .footer-bar { font-size: 10px; }
}

/* Responsive stabilization across desktop, tablet and phone viewports. */
html { overflow-x: clip; }
main, section, article, aside, form, fieldset, picture { min-width: 0; }
input, select, textarea, button, iframe { max-width: 100%; }
.legal-content a, .imprint-card a, .site-footer a { overflow-wrap: anywhere; }
.legal-content table { width: 100%; border-collapse: collapse; }

@media (min-width: 1200px) {
  .site-header .site-brand { left: calc(50% - 335px); }
  .language-badge,
  .site-header.is-scrolled .language-badge { right: calc(50% - 335px); }
  .site-header.is-scrolled .site-brand { left: 0; }
  .site-header.is-scrolled .language-badge { right: 0; }
  .home-hero { height: min(857px, 62vw); }
  .image-hero-frame,
  .season-hero > picture {
    width: min(1364px, 100%);
    height: min(856px, 62.76vw);
  }
}

@media (min-width: 1200px) and (max-width: 1599px) {
  .wohnung-gallery-flower { display: none; }
}

@media (max-width: 1199px) {
  .site-header { z-index: 100; }
  .header-inner { height: 100%; }
  .home-aerial { height: clamp(560px, 70vw, 760px); }
  .home-welcome { gap: clamp(24px, 5vw, 54px); }
  .welcome-photo,
  .welcome-photo picture {
    width: 100%;
    height: auto;
    aspect-ratio: 406 / 560;
  }
  .welcome-photo img { width: 100%; height: 100% !important; }
  .moment-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
  .moment-strip img { height: auto; aspect-ratio: 1; }
  .wohnung-gallery-section,
  .wohnung-information { width: min(1000px, calc(100% - 48px)); }
  .season-intro,
  .highlight-copy { width: min(640px, calc(100% - 48px)); }
  .highlight-images { width: min(1080px, calc(100% - 48px)); }
  .contact-panel,
  .contact-map,
  .contact-map iframe,
  .contact-map .dsgvo-embed { min-height: 610px; }
  .wohnung-gallery-flower { display: none; }
  .season-title-flower,
  .season-winter .season-title-flower,
  .season-winter-flower { display: none; }
}

@media (max-width: 900px) {
  .site-header,
  .site-header.is-scrolled { height: 88px; }
  .site-header.is-scrolled { height: 72px; }
  .header-inner { width: calc(100% - 32px); }
  .site-header .site-brand,
  .site-header.is-scrolled .site-brand {
    position: relative;
    z-index: 3;
    left: auto;
    top: auto;
  }
  .site-header .brand-logo,
  .site-header.is-scrolled .brand-logo { width: 132px; }
  .site-header.is-scrolled .brand-logo { width: 116px; }
  .header-right { display: block; }
  .language-badge,
  .site-header.is-scrolled .language-badge {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 54px;
    display: grid;
    width: 29px;
    height: 29px;
    transform: translateY(-50%);
  }
  .site-header.is-scrolled .language-badge { top: 50%; right: 54px; }
  .menu-toggle {
    position: absolute;
    z-index: 4;
    top: 50%;
    right: -8px;
    display: block;
    width: 42px;
    height: 42px;
    transform: translateY(-50%);
  }
  .site-nav {
    position: fixed;
    z-index: 2;
    inset: 0;
    display: flex;
    width: 100%;
    height: 100dvh;
    padding: 100px 24px 40px;
    flex-direction: column;
    justify-content: center;
    gap: clamp(24px, 5vh, 38px);
    overflow-y: auto;
    background: rgba(255,255,255,.985);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: none;
    transition: opacity .25s ease, visibility .25s ease;
  }
  .site-nav a { font-size: clamp(1.45rem, 4.5vw, 1.8rem); }
  .menu-open { overflow: hidden; }
  .menu-open .site-nav {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .home-welcome { grid-template-columns: minmax(260px, 360px) minmax(0, 1fr); }
  .wohnung-info-grid { grid-template-columns: 1fr; width: min(680px, 100%); }
  .wohnung-aside { margin-top: 10px; }
  .farm-mosaic,
  .season-mosaic {
    height: auto;
    padding: 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 12px;
  }
  .farm-item,
  .season-item { grid-area: auto !important; aspect-ratio: 1.25 / 1; }
  .farm-item-3,
  .season-item-3 { grid-column: 1 / -1; aspect-ratio: 1.8 / 1; }
  .farm-text .flower,
  .season-title-flower,
  .season-winter .season-title-flower,
  .season-winter-flower { display: none; }
  .contact-layout {
    width: min(690px, calc(100% - 40px));
    display: grid;
    grid-template-columns: 1fr;
  }
  .contact-panel {
    height: auto;
    min-height: 0;
    border-radius: 7px 7px 0 0;
  }
  .contact-map { border-radius: 0 0 7px 7px; }
  .contact-map,
  .contact-map iframe,
  .contact-map .dsgvo-embed { height: 430px; min-height: 430px; }
}

@media (max-width: 760px) {
  body { font-size: 14px; }
  h1, h2, h3 { overflow-wrap: break-word; }
  .content-width,
  .content-wide,
  .content-narrow { width: calc(100% - 32px); }
  .site-header,
  .site-header.is-scrolled { height: 82px; }
  .site-header.is-scrolled { height: 68px; }
  .site-header .brand-logo { width: 126px; }
  .site-header.is-scrolled .brand-logo { width: 112px; }
  .home-hero {
    height: clamp(480px, 72svh, 680px);
    min-height: 480px;
  }
  .home-hero-copy { left: 20px; right: 20px; bottom: 34px; }
  .home-hero-copy h1,
  .home-hero-copy p { font-size: clamp(1.45rem, 7vw, 1.9rem); line-height: 1.12; }
  .home-welcome {
    width: calc(100% - 32px);
    padding: 48px 0 55px;
    display: flex;
    gap: 0;
  }
  .welcome-photo,
  .welcome-photo picture { max-width: 460px; margin-inline: auto; }
  .welcome-copy { padding-top: 30px; }
  .welcome-copy p,
  .apartment-copy p { font-size: 14px; line-height: 1.55; }
  .home-aerial { height: clamp(440px, 65svh, 560px); min-height: 440px; }
  .home-aerial h2 {
    bottom: -36px;
    width: calc(100% - 32px);
    padding: 20px 18px 16px;
    font-size: clamp(1.55rem, 7vw, 2.1rem);
  }
  .home-apartment { padding-top: 82px; }
  .section-heading { gap: 22px; }
  .section-heading h2 { width: calc(100% - 32px); }
  .apartment-teaser { margin-top: 40px; }
  .apartment-teaser > img,
  .apartment-teaser > picture { height: auto; aspect-ratio: 1.62 / 1; }
  .apartment-copy { padding: 30px 16px 0; }
  .home-moments h2 {
    width: calc(100% - 32px);
    margin-top: -38px;
    padding-inline: 18px;
  }
  .moment-strip { width: calc(100% - 24px); gap: 10px; }
  .image-hero-frame,
  .season-hero > picture {
    height: clamp(480px, 68svh, 620px);
    min-height: 480px;
  }
  .image-hero-copy { left: 20px; right: 20px; bottom: 34px; }
  .image-hero-copy h1,
  .image-hero-copy p {
    font-size: clamp(1.45rem, 7vw, 1.95rem);
    line-height: 1.12;
    white-space: normal;
  }
  .wohnung-gallery-section { width: calc(100% - 32px); padding-top: 48px; }
  .wohnung-information { width: calc(100% - 32px); padding: 10px 0 62px; }
  .apartment-gallery { gap: 10px; }
  .wohnung-main-copy { padding: 0; }
  .wohnung-main-copy p,
  .wohnung-aside p,
  .wohnung-aside li { font-size: 14px; line-height: 1.55; }
  .wohnung-main-copy h2 { font-size: clamp(2rem, 9vw, 2.7rem); }
  .price-block { overflow-x: auto; }
  .price-block table { min-width: 0; table-layout: fixed; }
  .price-block th,
  .price-block td { padding: 10px 6px; font-size: 11px; }
  .wohnung-main-copy blockquote {
    padding: 34px 24px;
    font-size: clamp(1.8rem, 8vw, 2.5rem);
  }
  .wohnung-aside section { padding: 26px 22px; }
  .wohnung-page .farm-mosaic { padding: 18px 12px 88px; }
  .wohnung-page .farm-copy {
    width: 100%;
    padding: 0 16px 50px;
  }
  .wohnung-page .farm-copy > h2 {
    width: calc(100% - 16px);
    margin: -58px auto 34px;
    padding: 20px 18px 22px;
    border-radius: 6px 6px 0 0;
    background: #fff;
    font-size: clamp(1.75rem, 8vw, 2.35rem);
    line-height: 1.08;
    white-space: pre-line;
  }
  .wohnung-page .farm-copy > h3 { margin-bottom: 22px; font-size: clamp(1.45rem, 6.5vw, 1.9rem); }
  .wohnung-page .farm-text { width: min(540px, 100%); }
  .wohnung-page .farm-text p { font-size: 14px; line-height: 1.55; }
  .product-strip { width: 100%; gap: 10px; }
  .product-strip img { height: auto; aspect-ratio: 1 / 1; }
  .season-intro { width: calc(100% - 40px); padding: 55px 0 45px; }
  .season-title-row h1 { font-size: clamp(2rem, 9vw, 2.75rem); }
  .season-intro p,
  .highlight-copy p { font-size: 14px; line-height: 1.55; }
  .season-mosaic { padding: 12px; }
  .season-highlight { padding-top: 60px; background: linear-gradient(#fff 0 31%, var(--sage) 31% 100%); }
  .season-highlight .section-heading h2 { font-size: clamp(1.8rem, 8vw, 2.45rem); }
  .highlight-images { width: calc(100% - 24px); margin-top: 42px; gap: 12px; }
  .highlight-copy { width: calc(100% - 40px); padding: 48px 0 135px; }
  .highlight-copy h2 { font-size: clamp(2rem, 9vw, 2.7rem); }
  .season-closing {
    bottom: -45px;
    width: calc(100% - 32px);
    padding: 20px 16px 17px;
    font-size: clamp(1.7rem, 7.5vw, 2.25rem);
  }
  .season-page .site-footer { padding-top: 125px; }
  .contact-layout { width: calc(100% - 24px); }
  .contact-panel { padding: 38px 20px 32px; }
  .contact-panel > h1 { font-size: clamp(2.25rem, 11vw, 3.35rem); line-height: 1.02; }
  .contact-flower { margin: 20px 0 10px 8px; }
  .contact-flower .flower-4 { width: 50px; }
  .contact-panel form { gap: 10px; }
  .contact-panel input:not([type="checkbox"]),
  .contact-panel select,
  .contact-panel button,
  .contact-panel input[type="submit"] { min-height: 46px; }
  .contact-panel textarea { min-height: 150px; }
  .contact-panel .contact-privacy { align-items: flex-start; }
  .contact-panel .contact-privacy label,
  .contact-panel .contact-privacy .form-label { min-width: 0; flex: 1 1 auto; }
  .contact-panel .contact-privacy label,
  .contact-panel .contact-privacy .form-label { font-size: 13px; line-height: 1.4; }
  .contact-map,
  .contact-map iframe,
  .contact-map .dsgvo-embed { height: 360px; min-height: 360px; }
  .legal-content,
  .legal-content--privacy { width: calc(100% - 32px); padding: 55px 0 80px; }
  .legal-content h1 { margin-bottom: 32px; }
  .legal-content h2 { margin-top: 38px; font-size: 1.55rem; }
  .legal-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .legal-content th,
  .legal-content td { min-width: 145px; }
  .legal-intro { width: calc(100% - 32px); padding-right: 48px; }
  .legal-intro h1 { font-size: clamp(2.7rem, 15vw, 4.3rem); }
  .imprint-grid { width: calc(100% - 24px); }
  .imprint-card,
  .imprint-card--wide { padding: 34px 24px 38px; }
  .imprint-card--wide { padding-right: 24px; }
  .imprint-card h2 { max-width: 82%; }
  .site-footer { padding-top: 62px; }
  .footer-brand .brand-logo { width: 150px; }
  .site-footer address { width: calc(100% - 32px); margin-inline: auto; font-size: 12px; }
  .site-footer .footer-contact { line-height: 1.8; }
  .footer-bar { padding: 14px 16px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere; }
}

@media (max-width: 520px) {
  .site-nav { padding-inline: 18px; }
  .site-nav a { font-size: 1.5rem; }
  .home-hero-copy,
  .image-hero-copy { left: 16px; right: 16px; }
  .home-hero-copy h1,
  .home-hero-copy p,
  .image-hero-copy h1,
  .image-hero-copy p { text-wrap: balance; }
  .moment-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .farm-mosaic,
  .season-mosaic { gap: 8px; }
  .wohnung-page .farm-copy { padding-inline: 12px; }
  .wohnung-page .farm-copy > h2 { width: 100%; padding-inline: 12px; }
  .highlight-images { grid-template-columns: 1fr; }
  .contact-layout { width: calc(100% - 16px); }
  .contact-panel { padding-inline: 16px; }
  .contact-panel .contact-privacy { overflow-wrap: anywhere; }
  .contact-map,
  .contact-map iframe,
  .contact-map .dsgvo-embed { height: 320px; min-height: 320px; }
  .legal-intro-flower { display: none; }
  .legal-intro { padding-right: 0; }
  .imprint-card-number { font-size: 3.15rem; }
  .lightbox { padding-inline: 5px; }
  .lightbox[open] { grid-template-columns: 34px minmax(0, 1fr) 34px; }
  .lightbox-arrow { width: 34px; font-size: 40px; }
}

@media (max-width: 380px) {
  .header-inner { width: calc(100% - 24px); }
  .site-header .brand-logo { width: 116px; }
  .language-badge,
  .site-header.is-scrolled .language-badge { right: 48px; width: 27px; height: 27px; }
  .menu-toggle { right: -10px; }
  .home-hero,
  .image-hero-frame,
  .season-hero > picture { min-height: 450px; }
  .farm-mosaic,
  .season-mosaic { padding-inline: 8px; }
  .contact-panel > h1 { font-size: 2.15rem; }
  .footer-bar { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site-header, .site-header .brand-logo, .language-badge, .reveal-on-scroll, .lightbox-trigger img { transition: none !important; }
  .site-header.is-scrolled { animation: none; }
  .reveal-on-scroll { opacity: 1; transform: none; }
  .home-aerial h2.reveal-on-scroll, .season-closing.reveal-on-scroll { transform: translateX(-50%); }
  .home-hero-copy, .image-hero-copy { animation: none; }
  .home-hero > img, .home-hero > picture > img, .image-hero-frame > img, .image-hero-frame > picture > img, .season-hero > img, .season-hero > picture > img { transform: none !important; }
}

/* Content is the baseline; JavaScript adds navigation and lightbox behavior only. */
.reveal-on-scroll,
.reveal-on-scroll.reveal-from-left,
.reveal-on-scroll.reveal-from-right { opacity: 1; transform: none; }
