/* Zusatzkomponenten des Website-Entwurfs */
.image-credit { position:absolute; right:18px; bottom:14px; z-index:2; padding:4px 9px; background:#17261f9e; color:#fff; font-size:10px; letter-spacing:.04em; }
.calendar-section { max-width:1180px; max-height:0; margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:0; overflow:hidden; opacity:0; transition:max-height .45s ease, opacity .3s ease, padding .3s ease; }
.calendar-section.is-open { max-height:2400px; margin-top:0; margin-bottom:0; padding-top:72px; padding-bottom:72px; opacity:1; }
.calendar-frame { min-height:180px; padding:20px; background:#fff; border:1px solid var(--line); overflow-x:auto; }
.home-gallery { aspect-ratio:4 / 3; overflow:hidden; background:#e7e5dc; }
.home-gallery .gallery-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s ease; }
.home-gallery .gallery-image.is-active { opacity:1; }
.animal-chapter-gap { height:48px; background:#fff; }
.sheep-section .feature-image { order:2; }
.sheep-section .feature-copy { order:1; background:#fff; color:var(--ink); }
.sheep-section .feature-copy .eyebrow { color:#72806e; }
.sheep-section .feature-copy h2 { color:var(--forest); }
.sheep-section .feature-copy p:not(.eyebrow) { color:#626d64; }
.gallery-control { position:absolute; top:50%; z-index:2; width:42px; height:42px; transform:translateY(-50%); border:1px solid #ffffffa6; border-radius:50%; background:#182a23a8; color:#fff; font-size:28px; line-height:1; cursor:pointer; }
.gallery-previous { left:14px; }
.gallery-next { right:14px; }
.gallery-counter { position:absolute; right:14px; bottom:13px; z-index:2; padding:4px 9px; background:#182a23b8; color:#fff; font-size:11px; }
.legal-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:30px; }
.legal-page h1 { margin:0; font-family:var(--serif); font-size:clamp(38px,5vw,58px); font-weight:400; color:var(--forest); }
.legal-grid h2 { margin:25px 0 8px; font-family:var(--serif); font-size:28px; color:var(--forest); }
.legal-grid h3 { margin:20px 0 8px; font-size:14px; }
.legal-grid address { font-style:normal; }
.legal-grid a { color:var(--forest); }

@media (max-width: 900px) {
  .price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .price-grid { grid-template-columns: 1fr; }
  .legal-grid { grid-template-columns:1fr; gap:12px; }
  .gallery-control { width:38px; height:38px; }
}
