/*
Theme Name: Almhof Lässer
Theme URI: https://www.almhof.de/
Author: Almhof Lässer
Description: Maßgeschneidertes, schnelles WordPress-Theme für den Almhof Lässer in Balderschwang. Editoriales Design mit klarem Fokus auf Direktbuchungen.
Version: 2.8.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: almhof-laesser
*/

:root {
  --almhof-green: #344239;
  --almhof-brown: #927259;
  --almhof-ink: #252721;
  --almhof-text: #5D6158;
  --almhof-muted: #898C83;
  --almhof-sage: #DDE2D8;
  --almhof-sand: #E5DDD0;
  --almhof-cream: #F7F4ED;
  --almhof-white: #FFFFFF;
  --almhof-line: #DDE2D8;
  --almhof-rust: #927259;
  --almhof-gutter: 32px;
  --almhof-max: 1280px;
  --almhof-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --almhof-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--almhof-cream);
  color: var(--almhof-text);
  font-family: var(--almhof-sans);
  font-size: 18px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--almhof-brown); }
button, input, textarea, select { font: inherit; }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: #fff;
  clip: auto !important;
  clip-path: none;
  color: #000;
  display: block;
  font-size: 14px;
  height: auto;
  left: 12px;
  padding: 12px 16px;
  top: 12px;
  width: auto;
  z-index: 100000;
}

.almhof-container {
  width: min(calc(100% - 64px), var(--almhof-max));
  margin-inline: auto;
}

.almhof-kicker {
  margin: 0 0 18px;
  color: var(--almhof-brown);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .15em;
  line-height: 1.2;
  text-transform: uppercase;
}

h1, h2, h3, h4, h5, h6 {
  color: var(--almhof-ink);
  font-family: var(--almhof-serif);
  font-weight: 500;
  letter-spacing: -.02em;
  margin-top: 0;
}
h1 { font-size: clamp(3.1rem, 6vw, 5.3rem); line-height: .99; }
h2 { font-size: clamp(2.55rem, 4.4vw, 4rem); line-height: 1.04; }
h3 { font-size: clamp(1.8rem, 2.7vw, 2.6rem); line-height: 1.1; }

.almhof-btn {
  align-items: center;
  background: var(--almhof-green);
  border: 1px solid var(--almhof-green);
  color: #fff;
  display: inline-flex;
  font-size: 12px;
  font-weight: 700;
  gap: 10px;
  justify-content: center;
  letter-spacing: .07em;
  line-height: 1.2;
  padding: 16px 24px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.almhof-btn:hover { background: var(--almhof-ink); border-color: var(--almhof-ink); color: #fff; }
.almhof-btn--light { background: var(--almhof-cream); border-color: var(--almhof-cream); color: var(--almhof-ink); }
.almhof-btn--light:hover { background: transparent; border-color: #fff; color: #fff; }
.almhof-link { font-size: 13px; font-weight: 650; letter-spacing: .03em; text-decoration: none; }
.almhof-link::after { content: " →"; }

/* Header */
.site-header {
  background: rgba(247, 244, 237, .98);
  border-bottom: 1px solid var(--almhof-sage);
  position: sticky;
  top: 0;
  z-index: 100;
}
.admin-bar .site-header { top: 32px; }
.site-header__inner {
  align-items: center;
  display: grid;
  gap: 30px;
  grid-template-columns: auto 1fr auto;
  min-height: 88px;
}
.site-branding { align-items: center; display: flex; min-width: 145px; }
.custom-logo-link { display: inline-flex; }
.custom-logo { height: auto; max-height: 58px; width: auto; max-width: 160px; }
.site-title-text {
  color: var(--almhof-ink);
  font-family: var(--almhof-serif);
  font-size: 24px;
  letter-spacing: .01em;
  line-height: 1;
  text-decoration: none;
}
.site-title-text span { display: block; font-family: var(--almhof-sans); font-size: 9px; letter-spacing: .17em; margin-top: 5px; text-transform: uppercase; }
.primary-nav { justify-self: center; }
.primary-nav ul { align-items: center; display: flex; gap: 29px; list-style: none; margin: 0; padding: 0; }
.primary-nav a { color: var(--almhof-ink); font-size: 13px; font-weight: 520; letter-spacing: .025em; text-decoration: none; white-space: nowrap; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { color: var(--almhof-brown); }
.header-book { justify-self: end; }
.menu-toggle { display: none; background: none; border: 0; color: var(--almhof-ink); height: 44px; padding: 8px; width: 44px; }
.menu-toggle svg { height: 28px; width: 28px; }
.mobile-panel { display: none; }

/* Hero */
.hero { min-height: 720px; overflow: hidden; position: relative; display: grid; align-items: end; }
.hero__media, .hero__overlay { inset: 0; position: absolute; }
.hero__media img { height: 100%; width: 100%; object-fit: cover; object-position: 48% 58%; }
.hero__overlay { background: linear-gradient(270deg, rgba(23,32,25,.68) 0%, rgba(23,32,25,.50) 38%, rgba(23,32,25,.18) 72%, rgba(23,32,25,.08) 100%); }
.hero__content { color: #fff; padding-bottom: 82px; padding-top: 150px; position: relative; z-index: 2; }
.hero__copy { margin-left: auto; max-width: 650px; width: 52%; }
.hero .almhof-kicker { color: rgba(255,255,255,.88); }
.hero h1 { color: #fff; font-size: clamp(3.7rem, 6.5vw, 6.1rem); margin-bottom: 22px; max-width: 720px; }
.hero__intro { color: rgba(255,255,255,.94); font-size: 19px; line-height: 1.55; max-width: 590px; margin: 0 0 32px; }
.hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 22px 28px; }
.hero__proof { color: rgba(255,255,255,.90); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; line-height: 1.45; }
.hero__proof span { color: rgba(255,255,255,.48); margin: 0 7px; }
.hero__proof-link {
  appearance: none;
  background: none;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: inline;
  font: inherit;
  letter-spacing: inherit;
  padding: 0;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.35);
  text-decoration-thickness: 1px;
  text-underline-offset: .25em;
}
.hero__proof-link:hover,
.hero__proof-link:focus-visible { color: #fff; text-decoration-color: #fff; }


/* Seasonal */
.season { padding: 126px 0 110px; }
.season__grid { align-items: stretch; display: grid; grid-template-columns: 1.12fr .88fr; min-height: 600px; }
.season__media img { height: 100%; min-height: 600px; object-fit: cover; width: 100%; }
.season__content { align-items: flex-start; background: var(--almhof-sand); display: flex; flex-direction: column; justify-content: center; padding: 86px clamp(46px, 6vw, 92px); }
.season__content h2 { margin-bottom: 23px; }
.season__content p { max-width: 540px; }
.season__availability { border-top: 1px solid rgba(37,39,33,.18); color: var(--almhof-ink); font-size: 14px; font-weight: 650; margin: 18px 0 28px; padding-top: 18px; width: 100%; }

/* Essence */
.essence { padding: 80px 0 145px; }
.essence__grid { align-items: center; display: grid; gap: clamp(60px, 8vw, 120px); grid-template-columns: .9fr 1.1fr; }
.essence__copy { padding-left: clamp(0px, 2vw, 30px); }
.essence__copy h2 { max-width: 570px; }
.essence__copy p:last-child { max-width: 560px; }
.essence__media img { aspect-ratio: 4/5; height: auto; object-fit: cover; width: 100%; }

/* Comfort */
.comfort { background: #fff; padding: 132px 0; }
.section-head { display: grid; gap: 55px; grid-template-columns: 1.08fr .72fr; margin-bottom: 72px; }
.section-head p { align-self: end; margin: 0; max-width: 600px; }
.comfort__cards { border-bottom: 1px solid var(--almhof-sage); border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: repeat(3, 1fr); }
.comfort-card { padding: 46px 42px 52px 0; }
.comfort-card + .comfort-card { border-left: 1px solid var(--almhof-sage); padding-left: 42px; }
.comfort-card__number { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; margin-bottom: 32px; }
.comfort-card h3 { font-size: 34px; margin-bottom: 16px; }
.comfort-card p { font-size: 16.5px; margin: 0; max-width: 360px; }

/* Apartments */
.apartments { padding: 145px 0; }
.apartments__top { align-items: end; display: flex; gap: 30px; justify-content: space-between; margin-bottom: 57px; }
.apartments__top h2 { margin-bottom: 10px; }
.apartments__intro { margin: 0; max-width: 660px; }
.apartments__grid { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.apartment-card { background: #fff; border: 1px solid var(--almhof-sage); overflow: hidden; }
.apartment-card__media { display: block; overflow: hidden; }
.apartment-card__media img { aspect-ratio: 16/10; height: 100%; object-fit: cover; transition: transform .45s ease; width: 100%; }
.apartment-card__media:hover img { transform: scale(1.018); }
.apartment-card__body { padding: clamp(30px, 4vw, 46px); }
.apartment-card__meta { color: var(--almhof-brown); font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.apartment-card h3 { font-size: clamp(2.15rem, 3vw, 3.15rem); margin: 13px 0 5px; }
.apartment-card__type { color: var(--almhof-muted); font-size: 12.5px; font-weight: 650; letter-spacing: .03em; margin-bottom: 20px; }
.apartment-card p { color: var(--almhof-text); font-size: 16px; margin: 0 0 27px; max-width: 470px; }
.apartment-card__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 13px 26px; }
.almhof-link--quiet { color: var(--almhof-muted); }

/* Apartment overview page */
.apartments-page { background: var(--almhof-cream); }
.apartments-page__hero { padding: 130px 0 105px; }
.apartments-page__hero-grid { align-items: end; display: grid; gap: clamp(55px, 8vw, 120px); grid-template-columns: 1.08fr .72fr; }
.apartments-page__hero h1 { font-size: clamp(4.1rem, 7vw, 7.1rem); margin: 0; max-width: 850px; }
.apartments-page__hero-copy { padding-bottom: 12px; }
.apartments-page__hero-copy p { font-size: 19px; margin: 0 0 30px; max-width: 570px; }
.apartment-jump { background: #fff; border-bottom: 1px solid var(--almhof-sage); border-top: 1px solid var(--almhof-sage); position: sticky; top: 88px; z-index: 50; }
.admin-bar .apartment-jump { top: 120px; }
.apartment-jump__inner { display: grid; grid-template-columns: repeat(4, 1fr); }
.apartment-jump a { border-left: 1px solid var(--almhof-sage); color: var(--almhof-ink); padding: 23px 26px 21px; text-decoration: none; }
.apartment-jump a:last-child { border-right: 1px solid var(--almhof-sage); }
.apartment-jump a:hover { background: var(--almhof-cream); }
.apartment-jump span { display: block; font-family: var(--almhof-serif); font-size: 26px; line-height: 1.05; }
.apartment-jump small { color: var(--almhof-muted); display: block; font-size: 10px; font-weight: 700; letter-spacing: .08em; margin-top: 6px; text-transform: uppercase; }
.apartment-detail { padding: 140px 0 135px; scroll-margin-top: 175px; }
.apartment-detail:nth-of-type(even) { background: #fff; }
.apartment-detail__grid { align-items: center; display: grid; gap: clamp(55px, 8vw, 120px); grid-template-columns: 1.08fr .92fr; }
.apartment-detail--reverse .apartment-detail__media { order: 2; }
.apartment-detail--reverse .apartment-detail__copy { order: 1; }
.apartment-detail__media img { aspect-ratio: 4/3; height: 100%; object-fit: cover; width: 100%; }
.apartment-detail__copy h2 { font-size: clamp(3.7rem, 5vw, 5.7rem); margin-bottom: 5px; }
.apartment-detail__type { color: var(--almhof-brown); font-size: 12px; font-weight: 700; letter-spacing: .09em; margin-bottom: 31px; text-transform: uppercase; }
.apartment-detail__copy h3 { font-size: clamp(2.1rem, 3vw, 3.1rem); margin-bottom: 18px; max-width: 540px; }
.apartment-detail__copy > p { max-width: 570px; }
.apartment-detail__facts { display: flex; flex-wrap: wrap; gap: 9px 10px; list-style: none; margin: 28px 0 34px; padding: 0; }
.apartment-detail__facts li { border: 1px solid var(--almhof-sage); color: var(--almhof-ink); font-size: 12px; font-weight: 650; padding: 8px 11px; }
.apartment-detail__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 20px 28px; }
.apartment-slider { outline: none; overflow: hidden; position: relative; }
.apartment-slider__viewport { overflow: hidden; }
.apartment-slider__track {
  display: flex;
  transition: transform .38s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
.apartment-slider__slide {
  background: #eee9df;
  flex: 0 0 100%;
  margin: 0;
  min-width: 0;
  position: relative;
}
.apartment-slider__image {
  aspect-ratio: 4/3;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.apartment-slider__slide--floorplan {
  align-items: center;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 30px;
}
.apartment-slider__slide--floorplan .apartment-slider__image {
  aspect-ratio: 4/3;
  object-fit: contain;
}
.apartment-slider__slide figcaption {
  color: var(--almhof-muted);
  font-size: 11px;
  margin-top: 10px;
}
.apartment-slider__button {
  align-items: center;
  background: rgba(247,244,237,.94);
  border: 0;
  color: var(--almhof-ink);
  cursor: pointer;
  display: flex;
  font-family: Georgia, serif;
  font-size: 35px;
  height: 48px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: background .2s ease, color .2s ease;
  width: 48px;
  z-index: 2;
}
.apartment-slider__button:hover,
.apartment-slider__button:focus-visible { background: var(--almhof-green); color: #fff; }
.apartment-slider__button--prev { left: 14px; }
.apartment-slider__button--next { right: 14px; }
.apartment-slider__counter {
  background: rgba(37,39,33,.82);
  bottom: 14px;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 7px 10px;
  position: absolute;
  right: 14px;
  z-index: 2;
}

.apartment-gallery { display: grid; gap: 15px; grid-template-columns: repeat(12, 1fr); margin-top: 75px; }
.apartment-gallery__item { grid-column: span 4; margin: 0; overflow: hidden; }
.apartment-gallery__item:nth-child(1), .apartment-gallery__item:nth-child(2) { grid-column: span 6; }
.apartment-gallery__item img { aspect-ratio: 4/3; height: 100%; object-fit: cover; width: 100%; }
.apartment-gallery__item--floorplan { align-items: center; background: #fff; border: 1px solid var(--almhof-sage); display: flex; flex-direction: column; justify-content: center; padding: 25px; }
.apartment-gallery__item--floorplan img { aspect-ratio: auto; max-height: 520px; object-fit: contain; }
.apartment-gallery__item figcaption { color: var(--almhof-muted); font-size: 11px; margin-top: 12px; text-align: center; }
.apartment-amenities { background: var(--almhof-green); color: rgba(255,255,255,.82); padding: 135px 0; }
.apartment-amenities h2 { color: #fff; }
.apartment-amenities .almhof-kicker { color: #d9c9b7; }
.apartment-amenities__head { display: grid; gap: 55px; grid-template-columns: 1.05fr .75fr; margin-bottom: 65px; }
.apartment-amenities__head > p { align-self: end; margin: 0; max-width: 580px; }
.apartment-amenities__media-grid { display: grid; gap: 15px; grid-template-columns: 1.25fr .75fr; grid-template-rows: repeat(2, minmax(220px, 1fr)); }
.apartment-amenities__media { margin: 0; overflow: hidden; }
.apartment-amenities__media--large { grid-row: 1 / 3; }
.apartment-amenities__media img { height: 100%; object-fit: cover; width: 100%; }
.apartment-amenities__facts { border-top: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 55px; }
.apartment-amenities__facts > div { padding: 31px 28px 0 0; }
.apartment-amenities__facts > div + div { border-left: 1px solid rgba(255,255,255,.18); padding-left: 28px; }
.apartment-amenities__facts strong { color: #fff; display: block; font-family: var(--almhof-serif); font-size: 27px; font-weight: 500; margin-bottom: 12px; }
.apartment-amenities__facts span { display: block; font-size: 14px; line-height: 1.6; }
.apartments-page__cta { padding: 145px 0; text-align: center; }
.apartments-page__cta h2 { margin-left: auto; margin-right: auto; max-width: 900px; }
.apartments-page__cta p { margin: 0 auto 30px; max-width: 620px; }

/* Balderschwang */
.balderschwang { background: var(--almhof-green); color: rgba(255,255,255,.82); }
.balderschwang__grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 700px; }
.balderschwang__media img { height: 100%; min-height: 700px; object-fit: cover; width: 100%; }
.balderschwang__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: 80px clamp(50px, 7vw, 110px); }
.balderschwang .almhof-kicker { color: #d9c9b7; }
.balderschwang h2 { color: #fff; }
.balderschwang p { max-width: 550px; }
.balderschwang .almhof-link { color: #fff; margin-top: 16px; }

/* Hosts */
.hosts { padding: 145px 0; }
.hosts__grid { align-items: center; display: grid; gap: clamp(60px, 9vw, 130px); grid-template-columns: 1.1fr .9fr; }
.hosts__media img { aspect-ratio: 5/4; object-fit: cover; width: 100%; }
.hosts__copy h2 { max-width: 600px; }
.hosts__copy p { max-width: 560px; }

/* Trust */
.trust { background: #fff; border-bottom: 1px solid var(--almhof-sage); border-top: 1px solid var(--almhof-sage); padding: 54px 0; }
.trust__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.trust__item { padding: 10px 42px; text-align: center; }
.trust__item + .trust__item { border-left: 1px solid var(--almhof-sage); }
.trust__value { color: var(--almhof-ink); display: block; font-family: var(--almhof-serif); font-size: 42px; line-height: 1.1; }
.trust__label { display: block; font-size: 12px; font-weight: 650; letter-spacing: .07em; margin-top: 8px; text-transform: uppercase; }
.trust__item--interactive {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: block;
  font: inherit;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
  width: 100%;
}
.trust__item--interactive:hover,
.trust__item--interactive:focus-visible { background: var(--almhof-cream); color: var(--almhof-brown); }
.trust__item--interactive:hover .trust__value,
.trust__item--interactive:focus-visible .trust__value { color: var(--almhof-brown); }

/* TrustYou review dialog */
.reviews-modal[hidden] { display: none; }
.reviews-modal {
  inset: 0;
  opacity: 0;
  position: fixed;
  transition: opacity .18s ease;
  z-index: 10000;
}
.reviews-modal.is-open { opacity: 1; }
.reviews-modal__backdrop {
  background: rgba(24,27,23,.68);
  inset: 0;
  position: absolute;
}
.reviews-modal__dialog {
  background: var(--almhof-cream);
  box-shadow: 0 25px 90px rgba(0,0,0,.24);
  left: 50%;
  max-height: min(82vh, 850px);
  max-width: 880px;
  overflow: auto;
  padding: clamp(38px, 6vw, 72px);
  position: absolute;
  top: 50%;
  transform: translate(-50%, -48%);
  transition: transform .18s ease;
  width: min(calc(100% - 40px), 880px);
}
.reviews-modal.is-open .reviews-modal__dialog { transform: translate(-50%, -50%); }
.reviews-modal__close {
  background: transparent;
  border: 1px solid var(--almhof-sage);
  color: var(--almhof-ink);
  cursor: pointer;
  font-size: 28px;
  height: 44px;
  line-height: 1;
  position: absolute;
  right: 22px;
  top: 22px;
  width: 44px;
}
.reviews-modal__content { margin-top: 34px; }
.reviews-modal__fallback strong {
  color: var(--almhof-ink);
  display: block;
  font-family: var(--almhof-serif);
  font-size: clamp(3.2rem, 7vw, 5.4rem);
  font-weight: 500;
  line-height: 1;
}
.reviews-modal__fallback > span {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  margin: 12px 0 24px;
  text-transform: uppercase;
}
.reviews-modal__fallback p { max-width: 620px; }
.reviews-modal-open { overflow: hidden; }


/* CTA */
.final-cta { padding: 145px 0; text-align: center; }
.final-cta h2 { margin-left: auto; margin-right: auto; max-width: 830px; }
.final-cta p { margin: 0 auto 30px; max-width: 630px; }

/* Footer */
.site-footer { background: var(--almhof-ink); color: rgba(255,255,255,.72); padding: 70px 0 28px; }
.site-footer a { color: rgba(255,255,255,.82); text-decoration: none; }
.site-footer a:hover { color: #fff; }
.footer__grid { display: grid; gap: 45px; grid-template-columns: 1.4fr 1fr 1fr 1fr; padding-bottom: 55px; }
.footer__title { color: #fff; font-family: var(--almhof-serif); font-size: 28px; line-height: 1.1; margin-bottom: 17px; }
.footer__heading { color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .11em; margin-bottom: 18px; text-transform: uppercase; }
.footer__links { list-style: none; margin: 0; padding: 0; }
.footer__links li { margin-bottom: 8px; }
.footer__links a, .footer__text { font-size: 14px; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.14); display: flex; font-size: 12px; gap: 20px; justify-content: space-between; padding-top: 25px; }
.footer__bottom-links { display: flex; flex-wrap: wrap; gap: 18px; }

/* Standard page */
.page-shell { padding: 105px 0 140px; }
.page-shell__header { max-width: 850px; margin-bottom: 60px; }
.page-shell__content { max-width: 860px; }
.page-shell__content > * + * { margin-top: 1.35em; }
.page-shell__content img { margin: 42px 0; }

.mobile-booking-bar { display: none; }

@media (max-width: 1080px) {
  body { font-size: 17px; }
  .almhof-container { width: min(calc(100% - 48px), var(--almhof-max)); }
  .site-header__inner { grid-template-columns: auto 1fr auto; }
  .primary-nav { display: none; }
  .header-book { display: none; }
  .menu-toggle { display: inline-flex; justify-self: end; align-items: center; justify-content: center; }
  .mobile-panel { background: var(--almhof-cream); border-top: 1px solid var(--almhof-sage); display: block; max-height: 0; overflow: hidden; transition: max-height .25s ease; }
  .mobile-panel.is-open { max-height: 650px; }
  .mobile-panel__inner { padding: 28px 24px 34px; }
  .mobile-panel nav ul { list-style: none; margin: 0 0 25px; padding: 0; }
  .mobile-panel nav li { border-bottom: 1px solid var(--almhof-sage); }
  .mobile-panel nav a { color: var(--almhof-ink); display: block; font-size: 17px; padding: 14px 0; text-decoration: none; }
  .hero__copy { width: 58%; }
  .season__grid, .essence__grid, .hosts__grid { grid-template-columns: 1fr 1fr; gap: 45px; }
  .section-head { grid-template-columns: 1fr; }
  .apartments-page__hero-grid, .apartment-detail__grid, .apartment-amenities__head { grid-template-columns: 1fr 1fr; gap: 45px; }
  .apartment-jump { top: 88px; }
  .apartment-amenities__facts { grid-template-columns: repeat(2, 1fr); }
  .apartment-amenities__facts > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .balderschwang__grid { min-height: 620px; }
  .balderschwang__media img { min-height: 620px; }
  .footer__grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer__grid > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

@media (max-width: 760px) {
  body { font-size: 16px; padding-bottom: 68px; }
  .almhof-container { width: min(calc(100% - 40px), var(--almhof-max)); }
  .site-header__inner { min-height: 72px; }
  .custom-logo { max-height: 45px; max-width: 120px; }
  .site-title-text { font-size: 21px; }
  .hero { min-height: 590px; }
  .hero__media img { object-position: 31% 58%; }
  .hero__overlay { background: linear-gradient(0deg, rgba(23,32,25,.66) 0%, rgba(23,32,25,.38) 52%, rgba(23,32,25,.16) 100%); }
  .hero__content { padding-bottom: 57px; padding-top: 105px; }
  .hero__copy { margin-left: 0; max-width: 520px; width: 100%; }
  .hero h1 { font-size: clamp(3.2rem, 14vw, 4.25rem); }
  .hero__intro { font-size: 16px; }
  .hero__actions { align-items: flex-start; flex-direction: column; gap: 17px; }
  .hero__proof { max-width: 300px; }
  .season, .comfort, .apartments, .hosts, .final-cta { padding: 90px 0; }
  .season__grid, .essence__grid, .hosts__grid, .balderschwang__grid { grid-template-columns: 1fr; }
  .season__media img { min-height: 390px; }
  .season__content { padding: 48px 27px 54px; }
  .essence { padding: 25px 0 95px; }
  .essence__grid { gap: 45px; }
  .essence__copy { padding: 0; }
  .essence__media { order: -1; }
  .essence__media img { aspect-ratio: 4/3; }
  .section-head { gap: 12px; margin-bottom: 42px; }
  .comfort__cards { grid-template-columns: 1fr; }
  .comfort-card, .comfort-card + .comfort-card { border-left: 0; padding: 33px 0 36px; }
  .comfort-card + .comfort-card { border-top: 1px solid var(--almhof-sage); }
  .comfort-card__number { margin-bottom: 20px; }
  .apartments__top { align-items: flex-start; flex-direction: column; margin-bottom: 38px; }
  .apartments__grid { grid-template-columns: 1fr; }
  .apartment-card__body { padding: 34px 27px 39px; }
  .apartment-card__media img { aspect-ratio: 4/3; }
  .apartments-page__hero { padding: 88px 0 70px; }
  .apartments-page__hero-grid { grid-template-columns: 1fr; gap: 35px; }
  .apartments-page__hero h1 { font-size: clamp(3.35rem, 15vw, 4.6rem); }
  .apartments-page__hero-copy p { font-size: 16px; }
  .apartment-jump { overflow-x: auto; position: static; }
  .apartment-jump__inner { grid-template-columns: repeat(4, minmax(145px, 1fr)); width: max-content; min-width: 100%; }
  .apartment-jump a { min-width: 145px; padding: 18px 20px; }
  .apartment-jump span { font-size: 22px; }
  .apartment-detail { padding: 90px 0 85px; scroll-margin-top: 85px; }
  .apartment-detail__grid { grid-template-columns: 1fr; gap: 40px; }
  .apartment-detail--reverse .apartment-detail__media, .apartment-detail--reverse .apartment-detail__copy { order: initial; }
  .apartment-detail__media img { aspect-ratio: 4/3; }
  .apartment-slider__button { height: 42px; width: 42px; }
  .apartment-slider__button--prev { left: 9px; }
  .apartment-slider__button--next { right: 9px; }
  .apartment-slider__counter { bottom: 9px; right: 9px; }
  .apartment-gallery { gap: 10px; grid-template-columns: repeat(2, 1fr); margin-top: 48px; }
  .apartment-gallery__item, .apartment-gallery__item:nth-child(1), .apartment-gallery__item:nth-child(2) { grid-column: span 1; }
  .apartment-gallery__item:first-child { grid-column: 1 / -1; }
  .apartment-gallery__item--floorplan { grid-column: 1 / -1; }
  .apartment-amenities { padding: 90px 0; }
  .apartment-amenities__head { grid-template-columns: 1fr; gap: 15px; margin-bottom: 42px; }
  .apartment-amenities__media-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .apartment-amenities__media--large { grid-row: auto; }
  .apartment-amenities__media img { aspect-ratio: 4/3; }
  .apartment-amenities__facts { grid-template-columns: 1fr; margin-top: 38px; }
  .apartment-amenities__facts > div, .apartment-amenities__facts > div + div, .apartment-amenities__facts > div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.16); padding: 24px 0 0; margin-top: 24px; }
  .apartments-page__cta { padding: 95px 0; }
  .balderschwang__grid { min-height: 0; }
  .balderschwang__media img { min-height: 390px; }
  .balderschwang__copy { padding: 55px 20px 65px; }
  .hosts__grid { gap: 46px; }
  .hosts__media img { aspect-ratio: 4/3; }
  .trust { padding: 24px 0; }
  .trust__grid { grid-template-columns: 1fr; }
  .trust__item { padding: 26px 15px; }
  .trust__item + .trust__item { border-left: 0; border-top: 1px solid var(--almhof-sage); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__grid > div:last-child { grid-column: auto; }
  .footer__grid > div:first-child { grid-column: 1 / -1; }
  .footer__bottom { align-items: flex-start; flex-direction: column; }
  .mobile-booking-bar {
    align-items: center;
    background: var(--almhof-green);
    bottom: 0;
    display: flex;
    height: 68px;
    justify-content: center;
    left: 0;
    position: fixed;
    right: 0;
    z-index: 999;
  }
  .mobile-booking-bar a { color: #fff; font-size: 12px; font-weight: 750; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* v1.3.1: live TrustYou widgets */
.trustyou-score { display: block; max-width: 100%; }
.trust__item--trustyou { align-items: center; display: flex; flex-direction: column; justify-content: center; }
.trustyou-score--facts { max-width: 310px; }
.reviews-modal__score { margin-bottom: 24px; }
.reviews-modal__widget { border-top: 1px solid var(--almhof-sage); padding-top: 28px; margin-top: 28px; }
.reviews-modal__widget h3 { font-size: 28px; margin-bottom: 18px; }
.reviews-modal__source { margin: 28px 0 0; }
.reviews-modal__source a { font-weight: 650; text-decoration: none; }

/* v1.3.1: easybooking price comparison */
.moment-video { background: #1f2a23; min-height: clamp(520px, 56vw, 820px); overflow: hidden; position: relative; }
.moment-video__media, .moment-video__media video, .moment-video__overlay { inset: 0; position: absolute; }
.moment-video__media video { height: 100%; object-fit: cover; width: 100%; }
.moment-video__overlay { background: linear-gradient(0deg, rgba(21,29,24,.62) 0%, rgba(21,29,24,.12) 48%, rgba(21,29,24,.04) 100%); }
.moment-video__content { align-items: flex-start; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(520px, 56vw, 820px); padding-bottom: clamp(54px, 7vw, 96px); position: relative; z-index: 2; }
.moment-video__content .almhof-kicker, .moment-video__content h2 { color: #fff; }
.moment-video__content h2 { font-size: clamp(2.8rem, 5.5vw, 5.4rem); margin: 0; max-width: 780px; }

.direct-price { background: var(--almhof-sand); border-bottom: 1px solid var(--almhof-sage); padding: 92px 0; }
.direct-price__grid { align-items: center; display: grid; gap: clamp(45px, 7vw, 100px); grid-template-columns: .78fr 1.22fr; }
.direct-price__copy h2 { color: var(--almhof-ink); margin-bottom: 20px; }
.direct-price__copy .almhof-kicker { color: var(--almhof-brown); }
.direct-price__copy p:not(.almhof-kicker) { color: var(--almhof-text); }
.direct-price__copy p:last-child { max-width: 520px; }
.direct-price__widget { background: var(--almhof-cream); border: 1px solid var(--almhof-sage); min-height: 150px; padding: 24px; }
#ebPriceOmeter { width: 100%; }

@media (max-width: 900px) {
  .direct-price__grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .direct-price { padding: 66px 0; }
  .direct-price__widget { padding: 14px; }
}


/* v1.3.2: apartment-specific easybooking availability */
.apartment-availability {
    background: var(--almhof-cream, #f7f4ed);
    padding: clamp(56px, 7vw, 96px) 0;
    scroll-margin-top: 96px;
    border-top: 1px solid rgba(52, 66, 57, .12);
    border-bottom: 1px solid rgba(52, 66, 57, .12);
}
.apartment-availability__inner {
    max-width: 1120px;
}
.apartment-availability__head {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(240px, .7fr);
    gap: 32px;
    align-items: end;
    margin-bottom: 32px;
}
.apartment-availability__head h2 {
    margin-bottom: 0;
}
.apartment-availability__head > p {
    margin: 0;
    color: var(--almhof-text, #5d6158);
}
.apartment-availability__widget {
    background: #fff;
    padding: clamp(18px, 3vw, 34px);
}
.apartment-availability__back {
    margin: 22px 0 0;
}
@media (max-width: 760px) {
    .apartment-availability__head {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

/* v1.3.3: quieter hero reviews link + cleaner easybooking availability */
.hero__review-link {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}
.hero__review-link:hover,
.hero__review-link:focus-visible { color: #fff; }

.apartment-availability__widget {
  background: transparent;
  padding: 0;
}
#ebCategoriesAvailability {
  margin: 0;
  max-width: 100%;
  width: 100%;
}

/* Make later slider images reliable when a guest clicks through several slides. */
.apartment-slider__image.is-preloading { visibility: visible; }

/* v1.4.1: seasonal landing page – Herbsturlaub in Balderschwang */
.season__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 22px; }

.autumn-hero { color: #fff; min-height: 720px; overflow: hidden; position: relative; }
.autumn-hero__media, .autumn-hero__overlay { inset: 0; position: absolute; }
.autumn-hero__media img { height: 100%; object-fit: cover; object-position: 50% 58%; width: 100%; }
.autumn-hero__overlay { background: linear-gradient(90deg, rgba(23,32,25,.72) 0%, rgba(23,32,25,.47) 56%, rgba(23,32,25,.15) 100%); }
.autumn-hero__content { display: flex; flex-direction: column; justify-content: flex-end; min-height: 720px; padding-bottom: 88px; padding-top: 150px; position: relative; z-index: 1; }
.autumn-hero__content .almhof-kicker { color: rgba(255,255,255,.84); }
.autumn-hero h1 { color: #fff; font-size: clamp(4rem, 6.2vw, 6.6rem); line-height: .96; margin: 0 0 24px; max-width: 980px; }
.autumn-hero__intro { color: rgba(255,255,255,.93); font-size: 20px; line-height: 1.55; max-width: 690px; }
.autumn-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
.autumn-hero__link { color: #fff; font-size: 14px; font-weight: 650; text-underline-offset: .25em; }

.autumn-opening { background: var(--almhof-cream); padding: 118px 0 125px; }
.autumn-opening__grid { display: grid; gap: clamp(60px, 9vw, 140px); grid-template-columns: 1fr .88fr; }
.autumn-opening__quote h2 { max-width: 620px; }
.autumn-opening__lead { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: clamp(1.6rem, 2.5vw, 2.25rem); line-height: 1.2; max-width: 670px; }
.autumn-opening__copy { padding-top: 40px; }
.autumn-opening__copy p { max-width: 590px; }
.autumn-opening__detail { margin: 38px 0 0; max-width: 370px; }
.autumn-opening__detail img { aspect-ratio: 4 / 3; border-radius: 2px; object-fit: cover; width: 100%; }
.autumn-opening__detail figcaption { color: var(--almhof-muted); font-size: 14px; line-height: 1.5; margin-top: 12px; }

.autumn-months { background: #fff; padding: 112px 0 120px; }
.autumn-months__head { margin-bottom: 58px; max-width: 780px; }
.autumn-months__grid { border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: 1fr 1fr; }
.autumn-months article { min-height: 330px; padding: 44px 55px 20px 0; }
.autumn-months article + article { border-left: 1px solid var(--almhof-sage); padding-left: 55px; }
.autumn-months__number { color: var(--almhof-brown); display: block; font-size: 12px; font-weight: 700; letter-spacing: .15em; margin-bottom: 22px; }
.autumn-months h3 { font-size: 38px; margin-bottom: 18px; }
.autumn-months p { max-width: 540px; }

.autumn-feature { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; }
.autumn-feature__media img { height: 100%; min-height: 680px; object-fit: cover; width: 100%; }
.autumn-feature__copy { align-items: flex-start; background: var(--almhof-sand); display: flex; flex-direction: column; justify-content: center; padding: clamp(70px, 8vw, 130px); }
.autumn-feature__copy h2 { margin-bottom: 24px; max-width: 620px; }
.autumn-feature__copy p { max-width: 560px; }
.autumn-feature--moor .autumn-feature__media img { object-position: 52% 50%; }

.autumn-doorstep { background: var(--almhof-cream); padding: 118px 0 125px; }
.autumn-doorstep__grid { display: grid; gap: clamp(60px, 10vw, 150px); grid-template-columns: .85fr 1.15fr; }
.autumn-doorstep__routes { border-top: 1px solid var(--almhof-sage); }
.autumn-doorstep__routes article { align-items: baseline; border-bottom: 1px solid var(--almhof-sage); display: grid; gap: 20px; grid-template-columns: minmax(230px,.7fr) 1.3fr; padding: 24px 0; }
.autumn-doorstep__routes strong { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: 27px; font-weight: 500; }
.autumn-doorstep__routes span { color: var(--almhof-text); }

.autumn-sunrise { background: var(--almhof-green); color: #fff; display: grid; grid-template-columns: 1.08fr .92fr; min-height: 680px; }
.autumn-sunrise__media img { height: 100%; min-height: 680px; object-fit: cover; width: 100%; }
.autumn-sunrise__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(70px, 8vw, 130px); }
.autumn-sunrise__copy h2, .autumn-sunrise__copy .almhof-kicker { color: #fff; }
.autumn-sunrise__copy p { color: rgba(255,255,255,.84); max-width: 560px; }

.autumn-huts { background: #fff; padding: 115px 0 120px; }
.autumn-huts__head { align-items: end; display: grid; gap: 70px; grid-template-columns: 1.05fr .95fr; margin-bottom: 58px; }
.autumn-huts__head > p { max-width: 560px; }
.autumn-huts__grid { border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: repeat(4, 1fr); }
.autumn-huts__grid article { border-bottom: 1px solid var(--almhof-sage); min-height: 150px; padding: 28px 30px 24px 0; }
.autumn-huts__grid article + article { border-left: 1px solid var(--almhof-sage); padding-left: 30px; }
.autumn-huts__grid strong { color: var(--almhof-ink); display: block; font-family: var(--almhof-serif); font-size: 28px; font-weight: 500; margin-bottom: 10px; }
.autumn-huts__grid span { font-size: 14px; line-height: 1.5; }
.autumn-huts__grid .autumn-huts__wide { border-left: 0; grid-column: 1 / -1; min-height: 110px; padding-left: 0; }
.autumn-huts__note { color: var(--almhof-muted); font-size: 13px; margin-top: 22px; max-width: 760px; }

.autumn-weather { background: var(--almhof-sand); padding: 0; }
.autumn-weather__grid { display: grid; grid-template-columns: .92fr 1.08fr; margin: 0; max-width: none; width: 100%; }
.autumn-weather__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(75px, 8vw, 135px); }
.autumn-weather__copy p { max-width: 570px; }
.autumn-weather__media img { height: 100%; min-height: 670px; object-fit: cover; width: 100%; }
.autumn-weather__video { background: #000; display: block; height: 100%; min-height: 670px; object-fit: cover; width: 100%; }

.autumn-day { background: var(--almhof-cream); padding: 118px 0 125px; }
.autumn-day__head { margin-bottom: 58px; max-width: 800px; }
.autumn-day__timeline { border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: repeat(4,1fr); }
.autumn-day__timeline article { min-height: 280px; padding: 38px 32px 25px 0; }
.autumn-day__timeline article + article { border-left: 1px solid var(--almhof-sage); padding-left: 32px; }
.autumn-day__timeline span { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; margin-bottom: 20px; text-transform: uppercase; }
.autumn-day__timeline h3 { font-size: 30px; margin-bottom: 14px; }
.autumn-day__timeline p { font-size: 16px; }

.autumn-fit { background: var(--almhof-green); color: #fff; padding: 105px 0 112px; }
.autumn-fit__grid { display: grid; gap: clamp(60px, 10vw, 150px); grid-template-columns: 1fr 1fr; }
.autumn-fit h2, .autumn-fit .almhof-kicker { color: #fff; }
.autumn-fit__list p { border-bottom: 1px solid rgba(255,255,255,.17); color: rgba(255,255,255,.87); margin: 0; padding: 19px 0; }
.autumn-fit__list .autumn-fit__note { border: 0; color: rgba(255,255,255,.65); font-size: 14px; padding-top: 26px; }

.autumn-direct { background: var(--almhof-sand); padding: 110px 0; }
.autumn-direct__grid { align-items: center; display: grid; gap: clamp(55px, 8vw, 120px); grid-template-columns: .85fr 1.15fr; }
.autumn-direct__copy p:not(.almhof-kicker) { max-width: 540px; }
.autumn-direct__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; margin-top: 20px; }
.autumn-direct__price { background: var(--almhof-cream); border: 1px solid var(--almhof-sage); min-height: 180px; padding: 32px; }

.autumn-final { background: #fff; padding: 125px 0 135px; text-align: center; }
.autumn-final__inner { max-width: 900px; }
.autumn-final h2 { margin-left: auto; margin-right: auto; max-width: 800px; }
.autumn-final p:not(.almhof-kicker) { margin-left: auto; margin-right: auto; max-width: 620px; }
.autumn-final .almhof-btn { margin-top: 20px; }

@media (max-width: 980px) {
  .autumn-opening__grid, .autumn-doorstep__grid, .autumn-huts__head, .autumn-fit__grid { gap: 55px; }
  .autumn-feature, .autumn-sunrise { min-height: 560px; }
  .autumn-feature__media img, .autumn-sunrise__media img { min-height: 560px; }
  .autumn-feature__copy, .autumn-sunrise__copy, .autumn-weather__copy { padding: 65px 50px; }
  .autumn-huts__grid { grid-template-columns: repeat(2,1fr); }
  .autumn-huts__grid article:nth-child(3) { border-left: 0; }
  .autumn-huts__grid .autumn-huts__wide { grid-column: 1 / -1; }
  .autumn-day__timeline { grid-template-columns: 1fr 1fr; }
  .autumn-day__timeline article:nth-child(3) { border-left: 0; border-top: 1px solid var(--almhof-sage); }
  .autumn-day__timeline article:nth-child(4) { border-top: 1px solid var(--almhof-sage); }
}

@media (max-width: 760px) {
  .season__actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .moment-video, .moment-video__content { min-height: 620px; }
  .moment-video__media video { object-position: 50% 50%; }
  .moment-video__content { padding-bottom: 54px; }
  .moment-video__content h2 { font-size: clamp(2.8rem, 13vw, 4.1rem); }
  .autumn-hero { min-height: 650px; }
  .autumn-hero__media img { object-position: 42% 55%; }
  .autumn-hero__overlay { background: linear-gradient(0deg, rgba(23,32,25,.76) 0%, rgba(23,32,25,.44) 65%, rgba(23,32,25,.12) 100%); }
  .autumn-hero__content { min-height: 650px; padding-bottom: 58px; padding-top: 105px; }
  .autumn-hero h1 { font-size: clamp(3rem, 13.5vw, 4.3rem); }
  .autumn-hero__intro { font-size: 17px; }
  .autumn-hero__actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .autumn-opening, .autumn-months, .autumn-doorstep, .autumn-huts, .autumn-day { padding: 86px 0 92px; }
  .autumn-opening__grid, .autumn-doorstep__grid, .autumn-huts__head, .autumn-fit__grid { grid-template-columns: 1fr; gap: 28px; }
  .autumn-opening__copy { padding-top: 0; }
  .autumn-opening__detail { max-width: none; }
  .autumn-months__grid { grid-template-columns: 1fr; }
  .autumn-months article, .autumn-months article + article { border-left: 0; min-height: 0; padding: 34px 0; }
  .autumn-months article + article { border-top: 1px solid var(--almhof-sage); }
  .autumn-feature { grid-template-columns: 1fr; min-height: 0; }
  .autumn-feature__media img { aspect-ratio: 4/3; min-height: 0; }
  .autumn-feature__copy { padding: 62px 20px 70px; }
  .autumn-doorstep__routes article { grid-template-columns: 1fr; gap: 4px; }
  .autumn-sunrise { grid-template-columns: 1fr; min-height: 0; }
  .autumn-sunrise__media img { aspect-ratio: 4/3; min-height: 0; }
  .autumn-sunrise__copy { padding: 62px 20px 70px; }
  .autumn-huts__head { margin-bottom: 38px; }
  .autumn-huts__grid { grid-template-columns: 1fr; }
  .autumn-huts__grid article, .autumn-huts__grid article + article { border-left: 0; min-height: 0; padding: 24px 0; }
  .autumn-huts__grid .autumn-huts__wide { grid-column: auto; }
  .autumn-weather__grid { grid-template-columns: 1fr; }
  .autumn-weather__media { order: -1; }
  .autumn-weather__media img, .autumn-weather__video { aspect-ratio: 4/3; min-height: 0; }
  .autumn-weather__copy { padding: 62px 20px 70px; }
  .autumn-day__timeline { grid-template-columns: 1fr; }
  .autumn-day__timeline article, .autumn-day__timeline article + article { border-left: 0; min-height: 0; padding: 30px 0; }
  .autumn-day__timeline article + article { border-top: 1px solid var(--almhof-sage); }
  .autumn-fit { padding: 82px 0 88px; }
  .autumn-direct { padding: 88px 0; }
  .autumn-direct__grid { grid-template-columns: 1fr; gap: 42px; }
  .autumn-direct__actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .autumn-direct__price { padding: 20px; }
  .autumn-final { padding: 92px 0 105px; }
}

/* Der Almhof */
.about-hero {
  min-height: 690px;
  overflow: hidden;
  position: relative;
  display: grid;
  align-items: end;
}
.about-hero__media,
.about-hero__overlay { inset: 0; position: absolute; }
.about-hero__media img { height: 100%; width: 100%; object-fit: cover; object-position: center 55%; }
.about-hero__overlay { background: linear-gradient(90deg, rgba(27,34,29,.64) 0%, rgba(27,34,29,.40) 42%, rgba(27,34,29,.08) 78%); }
.about-hero__content { color: #fff; padding-bottom: 78px; position: relative; z-index: 2; }
.about-hero__kicker { color: rgba(255,255,255,.82); }
.about-hero h1 { color: #fff; max-width: 760px; margin-bottom: 22px; }
.about-hero__content > p:last-child { color: rgba(255,255,255,.92); font-size: 19px; max-width: 620px; margin: 0; }

.about-history { padding: 132px 0 144px; }
.about-history__grid,
.about-philosophy__grid,
.about-faith__grid {
  display: grid;
  gap: clamp(58px, 8vw, 120px);
  grid-template-columns: .9fr 1.1fr;
}
.about-history__lead h2,
.about-philosophy__grid h2,
.about-faith__grid h2 { max-width: 560px; }
.about-history__copy p,
.about-philosophy__copy p,
.about-faith__copy p { max-width: 660px; }
.about-history__copy p:first-child,
.about-philosophy__copy p:first-child,
.about-faith__copy p:first-child { margin-top: 0; }
.about-history__images { align-items: end; display: grid; gap: 28px; grid-template-columns: .82fr 1.18fr; margin-top: 84px; }
.about-history__image { margin: 0; }
.about-history__image img { width: 100%; object-fit: cover; }
.about-history__image--old img { aspect-ratio: 1 / 1; filter: saturate(.84) contrast(.98); }
.about-history__image--family img { aspect-ratio: 4 / 3; }
.about-history__image figcaption { color: var(--almhof-muted); font-size: 13px; line-height: 1.45; margin-top: 12px; }

.about-hosts { background: #fff; padding: 140px 0; }
.about-hosts__grid { align-items: center; display: grid; gap: clamp(58px, 8vw, 120px); grid-template-columns: .86fr 1.14fr; }
.about-hosts__media img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; width: 100%; }
.about-hosts__copy h2 { margin-bottom: 18px; }
.about-hosts__intro { font-size: 19px; max-width: 640px; margin-bottom: 38px; }
.about-person { border-top: 1px solid var(--almhof-sage); display: grid; gap: 30px; grid-template-columns: 120px 1fr; padding: 28px 0; }
.about-person h3 { font-size: 30px; margin: 0; }
.about-person p { margin: 2px 0 0; max-width: 630px; }
.about-hosts__support { border-top: 1px solid var(--almhof-sage); display: grid; gap: 18px; grid-template-columns: 1fr 1fr; padding-top: 30px; }
.about-hosts__support p { font-size: 15.5px; margin: 0; }

.about-philosophy { padding: 140px 0; }
.about-shop-grid { display: grid; gap: 24px; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; margin-top: 82px; }
.about-shop-grid img { height: 100%; min-height: 390px; object-fit: cover; width: 100%; }
.about-shop-grid__large { grid-row: 1 / span 2; min-height: 760px !important; }
.about-shop-grid__text { align-items: flex-start; background: var(--almhof-sand); display: flex; flex-direction: column; justify-content: center; min-height: 345px; padding: clamp(48px, 5vw, 78px); }
.about-shop-grid__text h3 { margin-bottom: 16px; }
.about-shop-grid__text p { margin-top: 0; max-width: 500px; }
.about-shop-grid__text .almhof-link { margin-top: 8px; }

.about-land { background: var(--almhof-green); display: grid; grid-template-columns: 1fr 1fr; }
.about-land__media img { height: 100%; min-height: 690px; object-fit: cover; width: 100%; }
.about-land__panel { align-items: flex-start; color: rgba(255,255,255,.84); display: flex; flex-direction: column; justify-content: center; padding: clamp(74px, 8vw, 130px); }
.about-land__panel .almhof-kicker { color: rgba(255,255,255,.62); }
.about-land__panel h2 { color: #fff; max-width: 600px; }
.about-land__panel > p { max-width: 600px; }
.about-land__facts { border-top: 1px solid rgba(255,255,255,.22); display: grid; gap: 20px; grid-template-columns: repeat(3,1fr); margin-top: 34px; padding-top: 28px; width: 100%; }
.about-land__facts span { color: rgba(255,255,255,.78); font-size: 13px; }
.about-land__facts strong { color: #fff; display: block; font-family: var(--almhof-serif); font-size: 38px; font-weight: 500; line-height: 1; margin-bottom: 5px; }

.about-faith { background: #fff; padding: 142px 0 132px; }
.about-faith__statement { border-top: 1px solid var(--almhof-sage); margin-top: 82px; padding-top: 54px; text-align: center; }
.about-faith__statement p { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.08; margin: 0 auto; max-width: 900px; }

.about-cta { padding: 136px 0 145px; }
.about-cta__inner { text-align: center; }
.about-cta h2 { margin-inline: auto; max-width: 920px; }
.about-cta__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; justify-content: center; margin-top: 34px; }

@media (max-width: 980px) {
  .about-history__grid,
  .about-philosophy__grid,
  .about-faith__grid,
  .about-hosts__grid { grid-template-columns: 1fr; }
  .about-history__images { grid-template-columns: 1fr 1fr; }
  .about-hosts__media { max-width: 620px; }
  .about-land { grid-template-columns: 1fr; }
  .about-land__media img { min-height: 520px; }
  .about-shop-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .about-hero { min-height: 610px; }
  .about-hero__media img { object-position: 58% 52%; }
  .about-hero__content { padding-bottom: 58px; }
  .about-history,
  .about-hosts,
  .about-philosophy,
  .about-faith { padding: 92px 0; }
  .about-history__images { grid-template-columns: 1fr; margin-top: 56px; }
  .about-history__image--old { max-width: 76%; }
  .about-person { gap: 14px; grid-template-columns: 1fr; }
  .about-hosts__support { grid-template-columns: 1fr; }
  .about-shop-grid { grid-template-columns: 1fr; grid-template-rows: auto; margin-top: 56px; }
  .about-shop-grid__large { grid-row: auto; min-height: 0 !important; }
  .about-shop-grid img { aspect-ratio: 4 / 5; min-height: 0; }
  .about-shop-grid__text { min-height: 0; padding: 48px 30px; }
  .about-land__media img { min-height: 430px; }
  .about-land__panel { padding: 70px 32px; }
  .about-land__facts { gap: 24px 10px; grid-template-columns: 1fr 1fr; }
  .about-cta { padding: 96px 0 110px; }
}


/* Balderschwang destination page */
.balder-page { background: var(--almhof-cream); }
.balder-hero { align-items: end; display: grid; min-height: 720px; overflow: hidden; position: relative; }
.balder-hero__media, .balder-hero__overlay { inset: 0; position: absolute; }
.balder-hero__media img { height: 100%; object-fit: cover; object-position: center 58%; width: 100%; }
.balder-hero__overlay { background: linear-gradient(90deg, rgba(23,31,25,.70) 0%, rgba(23,31,25,.42) 44%, rgba(23,31,25,.08) 80%); }
.balder-hero__content { color: #fff; padding-bottom: 82px; position: relative; z-index: 2; }
.balder-hero__kicker { color: rgba(255,255,255,.78); }
.balder-hero h1 { color: #fff; max-width: 780px; }
.balder-hero__content > p:last-child { color: rgba(255,255,255,.92); font-size: 19px; max-width: 650px; }

.balder-intro { padding: 135px 0; }
.balder-intro__grid { display: grid; gap: clamp(60px, 9vw, 130px); grid-template-columns: .9fr 1.1fr; }
.balder-intro h2 { max-width: 520px; }
.balder-intro__copy { align-self: end; }
.balder-intro__copy p { max-width: 650px; }

.balder-nature { background: var(--almhof-sand); display: grid; grid-template-columns: 1.05fr .95fr; }
.balder-nature__media img { height: 100%; min-height: 720px; object-fit: cover; object-position: center 52%; width: 100%; }
.balder-nature__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(75px, 8vw, 135px); }
.balder-nature__copy h2, .balder-nature__copy p { max-width: 580px; }

.balder-doorstep { background: #fff; padding: 128px 0; }
.balder-doorstep__grid { display: grid; gap: clamp(70px, 10vw, 150px); grid-template-columns: .9fr 1.1fr; }
.balder-doorstep__grid > div:first-child p:last-child { max-width: 500px; }
.balder-doorstep__routes { border-top: 1px solid var(--almhof-sage); }
.balder-doorstep__routes article { align-items: baseline; border-bottom: 1px solid var(--almhof-sage); display: grid; gap: 26px; grid-template-columns: 180px 1fr; padding: 28px 0; }
.balder-doorstep__routes strong { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: 28px; font-weight: 500; }
.balder-doorstep__routes span { color: var(--almhof-text); }

.balder-valley { padding: 0; }
.balder-valley__grid { align-items: stretch; display: grid; grid-template-columns: .92fr 1.08fr; max-width: none; padding: 0; width: 100%; }
.balder-valley__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 8vw, 135px); }
.balder-valley__copy h2, .balder-valley__copy p { max-width: 620px; }
.balder-valley__media { margin: 0; }
.balder-valley__media img { height: 100%; min-height: 740px; object-fit: cover; width: 100%; }

.balder-seasons { background: var(--almhof-sand); padding: 125px 0 132px; }
.balder-seasons__head { align-items: end; display: grid; gap: 80px; grid-template-columns: 1fr 1fr; margin-bottom: 62px; }
.balder-seasons__head > p { max-width: 560px; }
.balder-seasons__grid { border-top: 1px solid rgba(52,66,57,.18); display: grid; grid-template-columns: repeat(3,1fr); }
.balder-seasons__grid article { min-height: 300px; padding: 38px 38px 24px 0; }
.balder-seasons__grid article + article { border-left: 1px solid rgba(52,66,57,.18); padding-left: 38px; }
.balder-seasons__grid span { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; margin-bottom: 25px; }
.balder-seasons__grid h3 { font-size: 34px; }
.balder-seasons__grid .almhof-link { margin-top: 12px; }

.balder-almhof { background: var(--almhof-green); color: rgba(255,255,255,.84); display: grid; grid-template-columns: 1fr 1fr; }
.balder-almhof__media img { height: 100%; min-height: 700px; object-fit: cover; width: 100%; }
.balder-almhof__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 8vw, 135px); }
.balder-almhof__copy .almhof-kicker { color: rgba(255,255,255,.64); }
.balder-almhof__copy h2 { color: #fff; max-width: 600px; }
.balder-almhof__copy p { max-width: 580px; }
.balder-almhof__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; margin-top: 18px; }
.balder-almhof .almhof-link { color: #fff; }

.balder-final { background: #fff; padding: 132px 0 142px; text-align: center; }
.balder-final__inner { max-width: 950px; }
.balder-final h2 { margin-left: auto; margin-right: auto; max-width: 860px; }
.balder-final p:not(.almhof-kicker) { margin-left: auto; margin-right: auto; max-width: 620px; }
.balder-final .almhof-btn { margin-top: 22px; }

@media (max-width: 980px) {
  .balder-intro__grid, .balder-doorstep__grid, .balder-seasons__head { gap: 55px; }
  .balder-nature__copy, .balder-valley__copy, .balder-almhof__copy { padding: 70px 50px; }
}

@media (max-width: 760px) {
  .balder-hero { min-height: 620px; }
  .balder-hero__media img { object-position: 58% 55%; }
  .balder-hero__content { padding-bottom: 58px; }
  .balder-intro, .balder-doorstep, .balder-seasons { padding: 90px 0; }
  .balder-intro__grid, .balder-doorstep__grid, .balder-seasons__head { grid-template-columns: 1fr; gap: 30px; }
  .balder-nature, .balder-valley__grid, .balder-almhof { grid-template-columns: 1fr; }
  .balder-nature__media img, .balder-valley__media img, .balder-almhof__media img { aspect-ratio: 4/3; min-height: 0; }
  .balder-nature__copy, .balder-valley__copy, .balder-almhof__copy { padding: 64px 20px 72px; }
  .balder-doorstep__routes article { grid-template-columns: 1fr; gap: 4px; }
  .balder-seasons__grid { grid-template-columns: 1fr; }
  .balder-seasons__grid article, .balder-seasons__grid article + article { border-left: 0; min-height: 0; padding: 30px 0; }
  .balder-seasons__grid article + article { border-top: 1px solid rgba(52,66,57,.18); }
  .balder-almhof__media { order: -1; }
  .balder-almhof__actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .balder-final { padding: 96px 0 108px; }
}

/* Hofladen -------------------------------------------------------------- */
.shop-page { background: var(--almhof-cream); }
.shop-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr); min-height: 760px; }
.shop-hero__media { min-height: 760px; overflow: hidden; }
.shop-hero__media img { height: 100%; object-fit: cover; object-position: center 43%; width: 100%; }
.shop-hero__copy { align-items: flex-start; background: var(--almhof-sand); display: flex; flex-direction: column; justify-content: center; padding: clamp(70px, 8vw, 145px); }
.shop-hero__copy h1 { max-width: 650px; }
.shop-hero__copy > p:last-child { max-width: 590px; }

.shop-intro { padding: clamp(100px, 11vw, 175px) 0; }
.shop-intro__grid { display: grid; gap: clamp(60px, 9vw, 150px); grid-template-columns: .9fr 1.1fr; }
.shop-intro__copy { padding-top: 38px; }
.shop-intro__copy p { max-width: 620px; }

.shop-made { background: var(--almhof-green); color: #fff; display: grid; grid-template-columns: 1fr 1fr; }
.shop-made__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 8vw, 145px); }
.shop-made__copy .almhof-kicker { color: #d7c5ad; }
.shop-made__copy h2 { color: #fff; }
.shop-made__copy p { color: rgba(255,255,255,.92); max-width: 570px; }
.shop-made__items { border-top: 1px solid rgba(255,255,255,.24); display: grid; grid-template-columns: 1fr 1fr; margin-top: 30px; width: min(100%, 580px); }
.shop-made__items span { border-bottom: 1px solid rgba(255,255,255,.18); font-family: var(--almhof-serif); font-size: clamp(22px, 2vw, 30px); padding: 20px 12px 20px 0; }
.shop-made__media { min-height: 720px; overflow: hidden; }
.shop-made__media img { height: 100%; object-fit: cover; object-position: center; width: 100%; }

.shop-sources { background: #fff; padding: clamp(100px, 11vw, 175px) 0; }
.shop-sources__head { align-items: end; display: grid; gap: clamp(60px, 8vw, 140px); grid-template-columns: 1fr .8fr; margin-bottom: 75px; }
.shop-sources__head > p { max-width: 550px; }
.shop-sources__grid { border-top: 1px solid var(--almhof-line); display: grid; grid-template-columns: repeat(4, 1fr); }
.shop-sources__grid article { border-bottom: 1px solid var(--almhof-line); min-height: 260px; padding: 34px 34px 38px 0; }
.shop-sources__grid article + article { border-left: 1px solid var(--almhof-line); padding-left: 34px; }
.shop-sources__grid span { color: var(--almhof-rust); font-size: 12px; letter-spacing: .18em; }
.shop-sources__grid h3 { font-size: clamp(24px, 2.1vw, 32px); margin: 28px 0 15px; }
.shop-sources__grid p { color: var(--almhof-muted); font-size: 15px; }

.shop-morning { background: var(--almhof-sand); padding: clamp(100px, 11vw, 165px) 0; }
.shop-morning__grid { display: grid; gap: clamp(70px, 10vw, 165px); grid-template-columns: 1.05fr .95fr; }
.shop-morning__copy p { max-width: 610px; }
.shop-morning__card { align-self: start; background: var(--almhof-cream); border: 1px solid var(--almhof-line); padding: clamp(38px, 5vw, 66px); }
.shop-morning__card ul { list-style: none; margin: 28px 0 0; padding: 0; }
.shop-morning__card li { border-top: 1px solid var(--almhof-line); font-family: var(--almhof-serif); font-size: clamp(20px, 1.8vw, 27px); padding: 15px 0; }
.shop-morning__card li:last-child { border-bottom: 1px solid var(--almhof-line); }

.shop-philosophy { background: #fff; padding: clamp(105px, 12vw, 190px) 0; text-align: center; }
.shop-philosophy__inner { max-width: 900px; }
.shop-philosophy__inner p:last-child { margin-left: auto; margin-right: auto; max-width: 660px; }

.shop-final { background: var(--almhof-cream); border-top: 1px solid var(--almhof-line); padding: clamp(100px, 11vw, 165px) 0; text-align: center; }
.shop-final__inner h2 { margin-left: auto; margin-right: auto; max-width: 850px; }
.shop-final__actions { align-items: center; display: flex; gap: 30px; justify-content: center; margin-top: 34px; }

@media (max-width: 960px) {
  .shop-hero { grid-template-columns: 1fr; min-height: 0; }
  .shop-hero__media { min-height: 560px; }
  .shop-hero__copy { padding: 75px var(--almhof-gutter); }
  .shop-intro__grid, .shop-sources__head, .shop-morning__grid { grid-template-columns: 1fr; }
  .shop-intro__copy { padding-top: 0; }
  .shop-made { grid-template-columns: 1fr; }
  .shop-made__media { min-height: 620px; order: -1; }
  .shop-sources__grid { grid-template-columns: 1fr 1fr; }
  .shop-sources__grid article:nth-child(3) { border-left: 0; }
}

@media (max-width: 680px) {
  .shop-hero__media { min-height: 470px; }
  .shop-made__media { min-height: 520px; }
  .shop-made__items { grid-template-columns: 1fr; }
  .shop-sources__grid { grid-template-columns: 1fr; }
  .shop-sources__grid article, .shop-sources__grid article + article { border-left: 0; min-height: 0; padding: 28px 0; }
  .shop-final__actions { align-items: stretch; flex-direction: column; }
}

/* v1.8.0: dedicated direct-booking page */
.booking-hero { background: var(--almhof-cream); border-bottom: 1px solid rgba(37,39,33,.12); padding: clamp(95px, 10vw, 160px) 0 clamp(80px, 9vw, 135px); }
.booking-hero__grid { align-items: end; display: grid; gap: clamp(55px, 8vw, 120px); grid-template-columns: 1.15fr .85fr; }
.booking-hero__copy h1 { max-width: 760px; }
.booking-hero__copy > p:last-child { font-size: 20px; max-width: 670px; }
.booking-hero__facts { border-top: 1px solid rgba(37,39,33,.16); display: grid; grid-template-columns: repeat(3,1fr); }
.booking-hero__facts div { border-right: 1px solid rgba(37,39,33,.12); padding: 26px 24px 0 0; }
.booking-hero__facts div:last-child { border-right: 0; padding-right: 0; }
.booking-hero__facts strong { color: var(--almhof-ink); display: block; font-family: var(--almhof-serif); font-size: clamp(28px,3vw,44px); font-weight: 500; line-height: 1; }
.booking-hero__facts span { color: var(--almhof-muted); display: block; font-size: 13px; margin-top: 10px; }
.booking-engine-section { background: #fff; padding: clamp(85px,9vw,140px) 0; }
.booking-engine-section__inner { max-width: 1320px; }
.booking-engine-section__head { margin: 0 auto 48px; max-width: 760px; text-align: center; }
.booking-engine-section__head p:last-child { margin-left: auto; margin-right: auto; max-width: 650px; }
.booking-engine-shell { background: var(--almhof-cream); border: 1px solid var(--almhof-sage); min-height: 560px; padding: clamp(18px,3vw,40px); }
.booking-engine-shell #ebFrontEndFrame { --ebCiColor: #344239; --ebCiBgColor: #f7f4ed; --ebCiHeadingColor: #927259; --ebCiFontFamily: Inter, Arial, sans-serif; --ebCiFontSize: 16px; --ebPadding: 15px; }
.booking-help { background: var(--almhof-sand); padding: clamp(85px,9vw,140px) 0; }
.booking-help__grid { display: grid; gap: clamp(60px,9vw,130px); grid-template-columns: 1fr 1fr; }
.booking-help__grid > div { max-width: 560px; }
.booking-help__contact { border-left: 1px solid rgba(37,39,33,.16); padding-left: clamp(40px,6vw,90px); }
.booking-direct-note { background: var(--almhof-green); color: rgba(255,255,255,.82); padding: clamp(85px,9vw,135px) 0; text-align: center; }
.booking-direct-note__inner { max-width: 830px; }
.booking-direct-note .almhof-kicker { color: rgba(255,255,255,.6); }
.booking-direct-note h2 { color: #fff; }
.booking-direct-note p:last-child { margin-left: auto; margin-right: auto; max-width: 690px; }

@media (max-width: 900px) {
  .booking-hero__grid, .booking-help__grid { grid-template-columns: 1fr; }
  .booking-hero__facts { max-width: 620px; }
  .booking-help__contact { border-left: 0; border-top: 1px solid rgba(37,39,33,.16); padding-left: 0; padding-top: 50px; }
}
@media (max-width: 640px) {
  .booking-hero { padding: 75px 0 70px; }
  .booking-hero__copy > p:last-child { font-size: 17px; }
  .booking-hero__facts { grid-template-columns: 1fr; }
  .booking-hero__facts div { border-bottom: 1px solid rgba(37,39,33,.12); border-right: 0; padding: 20px 0; }
  .booking-hero__facts div:last-child { border-bottom: 0; }
  .booking-engine-shell { margin-left: -10px; margin-right: -10px; min-height: 500px; padding: 10px; }
}

/* Contact & arrival */
.contact-hero { color: #fff; min-height: 670px; overflow: hidden; position: relative; }
.contact-hero__media, .contact-hero__overlay { inset: 0; position: absolute; }
.contact-hero__media img { height: 100%; object-fit: cover; object-position: 50% 54%; width: 100%; }
.contact-hero__overlay { background: linear-gradient(90deg, rgba(23,32,25,.72) 0%, rgba(23,32,25,.49) 52%, rgba(23,32,25,.13) 100%); }
.contact-hero__content { display: flex; flex-direction: column; justify-content: flex-end; min-height: 670px; padding-bottom: 84px; padding-top: 145px; position: relative; z-index: 1; }
.contact-hero__content .almhof-kicker { color: rgba(255,255,255,.84); }
.contact-hero h1 { color: #fff; font-size: clamp(4rem, 6vw, 6.4rem); line-height: .97; margin: 0 0 24px; max-width: 900px; }
.contact-hero__content > p:not(.almhof-kicker) { color: rgba(255,255,255,.92); font-size: 19px; max-width: 650px; }
.contact-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 26px; margin-top: 30px; }
.contact-hero__link { color: #fff; font-size: 14px; font-weight: 650; text-underline-offset: .25em; }

.contact-direct { background: var(--almhof-cream); padding: 112px 0 120px; }
.contact-direct__grid { display: grid; gap: clamp(60px, 10vw, 155px); grid-template-columns: .9fr 1.1fr; }
.contact-direct__intro p:not(.almhof-kicker) { max-width: 570px; }
.contact-direct__details { border-top: 1px solid var(--almhof-sage); }
.contact-direct__details a { align-items: baseline; border-bottom: 1px solid var(--almhof-sage); display: grid; gap: 28px; grid-template-columns: 105px 1fr; padding: 25px 0; text-decoration: none; }
.contact-direct__details a:hover strong { color: var(--almhof-brown); }
.contact-direct__details span { color: var(--almhof-muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-direct__details strong { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: 27px; font-weight: 500; line-height: 1.2; transition: color .2s ease; }

.contact-arrival { background: #fff; padding: 112px 0 122px; }
.contact-arrival__head { margin-bottom: 58px; max-width: 800px; }
.contact-arrival__grid { border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: repeat(3,1fr); }
.contact-arrival__grid article { min-height: 360px; padding: 40px 42px 26px 0; }
.contact-arrival__grid article + article { border-left: 1px solid var(--almhof-sage); padding-left: 42px; }
.contact-arrival__number { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; margin-bottom: 22px; }
.contact-arrival h3 { font-size: 31px; margin-bottom: 16px; }
.contact-arrival p { font-size: 16px; margin-bottom: 22px; }

.contact-address { background: var(--almhof-green); color: #fff; display: grid; grid-template-columns: 1.12fr .88fr; min-height: 650px; }
.contact-address__media img { height: 100%; min-height: 650px; object-fit: cover; width: 100%; }
.contact-address__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(70px,8vw,125px); }
.contact-address__copy h2, .contact-address__copy .almhof-kicker { color: #fff; }
.contact-address__copy address { color: rgba(255,255,255,.86); font-size: 20px; font-style: normal; line-height: 1.65; margin: 5px 0 32px; }
.contact-address__copy .almhof-btn { background: var(--almhof-cream); border-color: var(--almhof-cream); color: var(--almhof-ink); }
.contact-address__copy .almhof-btn:hover { background: transparent; color: #fff; }

.contact-good-to-know { background: var(--almhof-sand); padding: 112px 0 120px; }
.contact-good-to-know__grid { display: grid; gap: clamp(60px,10vw,150px); grid-template-columns: .85fr 1.15fr; }
.contact-good-to-know__list { border-top: 1px solid rgba(52,66,57,.18); }
.contact-good-to-know__list article { align-items: baseline; border-bottom: 1px solid rgba(52,66,57,.18); display: grid; gap: 24px; grid-template-columns: minmax(120px,.45fr) 1.55fr; padding: 24px 0; }
.contact-good-to-know__list strong { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: 26px; font-weight: 500; }
.contact-good-to-know__list span { font-size: 16px; }

.contact-final { background: #fff; padding: 122px 0 132px; text-align: center; }
.contact-final__inner { max-width: 850px; }
.contact-final h2 { margin-left: auto; margin-right: auto; max-width: 780px; }
.contact-final p:not(.almhof-kicker) { margin-left: auto; margin-right: auto; max-width: 660px; }
.contact-final__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 26px; justify-content: center; margin-top: 30px; }

@media (max-width: 980px) {
  .contact-direct__grid, .contact-good-to-know__grid { gap: 60px; }
  .contact-arrival__grid { grid-template-columns: 1fr 1fr; }
  .contact-arrival__grid article:nth-child(3) { border-left: 0; border-top: 1px solid var(--almhof-sage); }
  .contact-address { min-height: 560px; }
  .contact-address__media img { min-height: 560px; }
}

@media (max-width: 760px) {
  .contact-hero { min-height: 610px; }
  .contact-hero__media img { object-position: 48% 55%; }
  .contact-hero__overlay { background: linear-gradient(0deg, rgba(23,32,25,.77) 0%, rgba(23,32,25,.46) 66%, rgba(23,32,25,.1) 100%); }
  .contact-hero__content { min-height: 610px; padding-bottom: 55px; padding-top: 100px; }
  .contact-hero h1 { font-size: clamp(3rem,13vw,4.2rem); }
  .contact-hero__content > p:not(.almhof-kicker) { font-size: 16px; }
  .contact-hero__actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .contact-direct, .contact-arrival, .contact-good-to-know { padding: 84px 0 92px; }
  .contact-direct__grid, .contact-good-to-know__grid { gap: 35px; grid-template-columns: 1fr; }
  .contact-direct__details a { gap: 8px; grid-template-columns: 1fr; }
  .contact-arrival__grid { grid-template-columns: 1fr; }
  .contact-arrival__grid article, .contact-arrival__grid article + article { border-left: 0; min-height: 0; padding: 30px 0; }
  .contact-arrival__grid article + article { border-top: 1px solid var(--almhof-sage); }
  .contact-address { grid-template-columns: 1fr; min-height: 0; }
  .contact-address__media img { aspect-ratio: 4/3; min-height: 0; }
  .contact-address__copy { padding: 62px 20px 70px; }
  .contact-good-to-know__list article { gap: 5px; grid-template-columns: 1fr; }
  .contact-final { padding: 90px 0 102px; }
  .contact-final__actions { align-items: center; flex-direction: column; gap: 18px; }
}

/* -------------------------------------------------------------------------
   v2.1.0 consolidated content & story refinements
   ------------------------------------------------------------------------- */

/* Start page: crisp sunrise video */
.moment-video__media video { object-position: center center; }

/* Der Almhof: historic editorial hero */
.about-hero.about-hero--history {
  background: var(--almhof-cream);
  color: var(--almhof-ink);
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  min-height: 720px;
  overflow: hidden;
  position: relative;
}
.about-hero--history .about-hero__media {
  background: #d9d3c8;
  grid-column: 2;
  grid-row: 1;
  inset: auto;
  position: relative;
}
.about-hero--history .about-hero__media img {
  filter: grayscale(1) sepia(.18) contrast(.96);
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
.about-hero--history .about-hero__overlay { display: none; }
.about-hero--history .about-hero__content {
  align-self: center;
  color: var(--almhof-text);
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  padding: 120px clamp(44px, 7vw, 120px);
  position: relative;
  width: auto;
  z-index: 2;
}
.about-hero--history .about-hero__kicker { color: var(--almhof-brown); }
.about-hero--history h1 { color: var(--almhof-ink); max-width: 680px; }
.about-hero--history .about-hero__content > p:last-child { color: var(--almhof-text); max-width: 600px; }
.about-history__image--today img { aspect-ratio: 4 / 3; object-fit: cover; }

/* Almhof favorite places */
.about-places { background: var(--almhof-cream); padding: clamp(105px, 11vw, 165px) 0; }
.about-places__head { align-items: end; display: grid; gap: clamp(60px, 9vw, 145px); grid-template-columns: 1fr .9fr; margin-bottom: 58px; }
.about-places__head h2 { max-width: 650px; }
.about-places__head > p { max-width: 590px; }
.about-places-slider { position: relative; }
.about-places-slider__viewport { overflow: hidden; }
.about-places-slider__track { display: flex; transition: transform .55s cubic-bezier(.2,.75,.2,1); will-change: transform; }
.about-place { flex: 0 0 100%; margin: 0; position: relative; }
.about-place img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.about-place figcaption {
  align-items: baseline;
  background: #fff;
  border: 1px solid var(--almhof-sage);
  border-top: 0;
  color: var(--almhof-text);
  display: flex;
  gap: 30px;
  justify-content: space-between;
  padding: 24px 30px;
}
.about-place figcaption span { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: 28px; }
.about-places-slider__controls { align-items: center; display: flex; gap: 18px; justify-content: flex-end; margin-top: 18px; }
.about-places-slider__controls button {
  align-items: center;
  background: transparent;
  border: 1px solid var(--almhof-sage);
  color: var(--almhof-ink);
  cursor: pointer;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  width: 44px;
}
.about-places-slider__controls button:hover { background: var(--almhof-green); border-color: var(--almhof-green); color: #fff; }
.about-places-slider__controls span { color: var(--almhof-muted); font-size: 13px; min-width: 54px; text-align: center; }
.about-places-slider__controls strong { color: var(--almhof-ink); }

/* Linked route rows */
.autumn-doorstep__routes article,
.balder-doorstep__routes article { display: block; padding: 0; }
.autumn-doorstep__routes article > a,
.balder-doorstep__routes article > a {
  align-items: baseline;
  color: inherit;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(230px,.7fr) 1.3fr;
  padding: 24px 0;
  text-decoration: none;
  width: 100%;
}
.balder-doorstep__routes article > a { gap: 26px; grid-template-columns: 180px 1fr; padding: 28px 0; }
.autumn-doorstep__routes article > a:hover strong,
.balder-doorstep__routes article > a:hover strong { color: var(--almhof-brown); }
.autumn-feature__copy .almhof-link { margin-top: 12px; }

/* Balderschwang: expanded summer & winter story */
.balder-summer { background: #fff; padding: clamp(105px, 11vw, 160px) 0; }
.balder-summer__grid { display: grid; gap: clamp(70px, 10vw, 155px); grid-template-columns: .92fr 1.08fr; }
.balder-summer__copy h2 { max-width: 650px; }
.balder-summer__copy p { max-width: 610px; }
.balder-summer__tips { border-top: 1px solid var(--almhof-sage); }
.balder-summer__tips article { border-bottom: 1px solid var(--almhof-sage); padding: 32px 0; }
.balder-summer__tips span,
.balder-winter__grid span { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; margin-bottom: 16px; }
.balder-summer__tips h3 { font-size: 31px; margin-bottom: 12px; }
.balder-summer__tips p { font-size: 16px; margin: 0; }

.balder-family { background: var(--almhof-sand); display: grid; grid-template-columns: 1.05fr .95fr; }
.balder-family__media img { height: 100%; min-height: 680px; object-fit: cover; width: 100%; }
.balder-family__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(75px, 8vw, 135px); }
.balder-family__copy h2, .balder-family__copy p { max-width: 580px; }
.balder-family__copy .almhof-link { margin-top: 12px; }

.balder-autumn-card { background: var(--almhof-cream); padding: clamp(90px, 9vw, 130px) 0; }
.balder-autumn-card__inner { align-items: center; display: grid; gap: clamp(60px, 9vw, 140px); grid-template-columns: 1fr 1fr; }
.balder-autumn-card h2 { max-width: 650px; }
.balder-autumn-card__inner > div:last-child p { max-width: 590px; }
.balder-autumn-card .almhof-btn { margin-top: 18px; }

.balder-winter { background: var(--almhof-green); color: rgba(255,255,255,.84); padding: clamp(105px, 11vw, 160px) 0; }
.balder-winter__head { align-items: end; display: grid; gap: clamp(60px, 9vw, 145px); grid-template-columns: 1fr 1fr; margin-bottom: 68px; }
.balder-winter .almhof-kicker { color: rgba(255,255,255,.62); }
.balder-winter h2, .balder-winter h3 { color: #fff; }
.balder-winter__head > div:last-child p { color: rgba(255,255,255,.82); max-width: 590px; }
.balder-winter__grid { border-top: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: repeat(4, 1fr); }
.balder-winter__grid article { min-height: 330px; padding: 34px 30px 22px 0; }
.balder-winter__grid article + article { border-left: 1px solid rgba(255,255,255,.18); padding-left: 30px; }
.balder-winter__grid span { color: rgba(255,255,255,.58); }
.balder-winter__grid h3 { font-size: 31px; }
.balder-winter__grid p { color: rgba(255,255,255,.78); font-size: 15.5px; }
.balder-winter .almhof-link { color: #fff; }

/* Hofladen: protect contrast in dark handmade section */
.shop-made__copy .almhof-kicker { color: #f2dfc4; }
.shop-made__copy h2 { color: #fff; }
.shop-made__copy p { color: rgba(255,255,255,.96); }

/* Contact FAQ */
.contact-faq { background: #fff; padding: clamp(105px, 10vw, 155px) 0; }
.contact-faq__grid { display: grid; gap: clamp(70px, 10vw, 155px); grid-template-columns: .86fr 1.14fr; }
.contact-faq__intro h2 { max-width: 620px; }
.contact-faq__intro > p:last-child { max-width: 540px; }
.contact-faq__items { border-top: 1px solid var(--almhof-sage); }
.contact-faq__items details { border-bottom: 1px solid var(--almhof-sage); }
.contact-faq__items summary {
  color: var(--almhof-ink);
  cursor: pointer;
  font-family: var(--almhof-serif);
  font-size: clamp(22px, 2vw, 29px);
  line-height: 1.2;
  list-style: none;
  padding: 25px 42px 25px 0;
  position: relative;
}
.contact-faq__items summary::-webkit-details-marker { display: none; }
.contact-faq__items summary::after { content: '+'; font-family: var(--almhof-sans); font-size: 22px; font-weight: 400; position: absolute; right: 6px; top: 24px; }
.contact-faq__items details[open] summary::after { content: '–'; }
.contact-faq__items details p { margin: -5px 0 28px; max-width: 680px; padding-right: 40px; }

@media (max-width: 980px) {
  .about-hero.about-hero--history { grid-template-columns: 1fr 1fr; min-height: 640px; }
  .about-hero--history .about-hero__content { padding: 90px 48px; }
  .about-places__head,
  .balder-summer__grid,
  .balder-autumn-card__inner,
  .balder-winter__head,
  .contact-faq__grid { gap: 55px; }
  .balder-winter__grid { grid-template-columns: 1fr 1fr; }
  .balder-winter__grid article:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .balder-winter__grid article:nth-child(4) { border-top: 1px solid rgba(255,255,255,.18); }
}

@media (max-width: 760px) {
  .about-hero.about-hero--history { display: flex; flex-direction: column; min-height: 0; }
  .about-hero--history .about-hero__media { height: 430px; order: 1; }
  .about-hero--history .about-hero__media img { object-fit: cover; }
  .about-hero--history .about-hero__content { order: 2; padding: 65px 20px 75px; }
  .about-places { padding: 88px 0 96px; }
  .about-places__head { grid-template-columns: 1fr; gap: 25px; }
  .about-place img { aspect-ratio: 4 / 5; }
  .about-place figcaption { align-items: flex-start; flex-direction: column; gap: 4px; padding: 20px; }
  .about-place figcaption span { font-size: 24px; }
  .about-places-slider__controls { justify-content: space-between; }
  .autumn-doorstep__routes article > a,
  .balder-doorstep__routes article > a { gap: 4px; grid-template-columns: 1fr; }
  .balder-summer { padding: 88px 0 94px; }
  .balder-summer__grid { grid-template-columns: 1fr; gap: 45px; }
  .balder-family { grid-template-columns: 1fr; }
  .balder-family__media img { aspect-ratio: 4 / 3; min-height: 0; }
  .balder-family__copy { padding: 64px 20px 72px; }
  .balder-autumn-card { padding: 82px 0 90px; }
  .balder-autumn-card__inner { grid-template-columns: 1fr; gap: 28px; }
  .balder-winter { padding: 88px 0 96px; }
  .balder-winter__head { grid-template-columns: 1fr; gap: 28px; }
  .balder-winter__grid { grid-template-columns: 1fr; }
  .balder-winter__grid article,
  .balder-winter__grid article + article { border-left: 0; min-height: 0; padding: 30px 0; }
  .balder-winter__grid article + article { border-top: 1px solid rgba(255,255,255,.18); }
  .contact-faq { padding: 88px 0 96px; }
  .contact-faq__grid { grid-template-columns: 1fr; gap: 42px; }
  .contact-faq__items summary { padding-right: 38px; }
}

/* -------------------------------------------------------------------------
   v2.1.0 detail round: history, favorite places and booking information
   ------------------------------------------------------------------------- */

/* History slider */
.about-history-slider { margin-top: 82px; }
.about-history-slider .about-place img {
  aspect-ratio: 16 / 9;
  background: #e8e1d6;
  object-fit: cover;
}
.about-history-slider .about-history-slide:first-child img { object-position: center 55%; }
.about-history-slider .about-history-slide:nth-child(2) img { object-position: center 58%; }
.about-history-slider .about-history-slide:nth-child(3) img { object-position: center 40%; }

/* What the Almhof offers around the house */
.about-offers { background: #fff; padding: clamp(105px, 10vw, 155px) 0; }
.about-offers__head {
  align-items: end;
  display: grid;
  gap: clamp(60px, 9vw, 145px);
  grid-template-columns: 1fr .9fr;
  margin-bottom: 58px;
}
.about-offers__head h2 { max-width: 660px; }
.about-offers__head > p { max-width: 590px; }
.about-offers__grid {
  border-top: 1px solid var(--almhof-sage);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.about-offers__grid article {
  min-height: 310px;
  padding: 32px 26px 28px 0;
}
.about-offers__grid article + article {
  border-left: 1px solid var(--almhof-sage);
  padding-left: 26px;
}
.about-offers__grid span {
  color: var(--almhof-brown);
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  margin-bottom: 28px;
}
.about-offers__grid h3 { font-size: 29px; margin-bottom: 14px; }
.about-offers__grid p { font-size: 15px; margin: 0; }

/* Piesenkopf photo credit */
.autumn-feature__media--credited { display: flex; flex-direction: column; }
.autumn-feature__media--credited img { flex: 1 1 auto; }
.image-credit {
  background: #fff;
  color: var(--almhof-muted);
  display: block;
  font-size: 11px;
  letter-spacing: .04em;
  padding: 9px 14px;
  text-align: right;
}

/* Booking FAQ on apartment page */
.booking-faq { background: #fff; padding: clamp(105px, 10vw, 155px) 0; }
.booking-faq__grid {
  display: grid;
  gap: clamp(70px, 10vw, 155px);
  grid-template-columns: .86fr 1.14fr;
}
.booking-faq__intro h2 { max-width: 620px; }
.booking-faq__intro > p:last-child { max-width: 540px; }
.booking-faq__items { border-top: 1px solid var(--almhof-sage); }
.booking-faq__items details { border-bottom: 1px solid var(--almhof-sage); }
.booking-faq__items summary {
  color: var(--almhof-ink);
  cursor: pointer;
  font-family: var(--almhof-serif);
  font-size: clamp(22px, 2vw, 29px);
  line-height: 1.2;
  list-style: none;
  padding: 25px 42px 25px 0;
  position: relative;
}
.booking-faq__items summary::-webkit-details-marker { display: none; }
.booking-faq__items summary::after {
  content: '+';
  font-family: var(--almhof-sans);
  font-size: 22px;
  font-weight: 400;
  position: absolute;
  right: 6px;
  top: 24px;
}
.booking-faq__items details[open] summary::after { content: '–'; }
.booking-faq__items details p {
  margin: -5px 0 28px;
  max-width: 680px;
  padding-right: 40px;
}

@media (max-width: 1100px) {
  .about-offers__grid { grid-template-columns: repeat(2, 1fr); }
  .about-offers__grid article { border-bottom: 1px solid var(--almhof-sage); min-height: 250px; }
  .about-offers__grid article:nth-child(odd) { border-left: 0; padding-left: 0; }
  .about-offers__grid article:nth-child(even) { border-left: 1px solid var(--almhof-sage); padding-left: 28px; }
  .about-offers__grid article:last-child { grid-column: 1 / -1; min-height: 0; }
}

@media (max-width: 980px) {
  .about-offers__head,
  .booking-faq__grid { gap: 55px; }
}

@media (max-width: 760px) {
  .about-history-slider { margin-top: 55px; }
  .about-history-slider .about-place img { aspect-ratio: 4 / 3; }
  .about-offers { padding: 88px 0 96px; }
  .about-offers__head { gap: 25px; grid-template-columns: 1fr; }
  .about-offers__grid { grid-template-columns: 1fr; }
  .about-offers__grid article,
  .about-offers__grid article:nth-child(even),
  .about-offers__grid article:nth-child(odd) {
    border-left: 0;
    grid-column: auto;
    min-height: 0;
    padding: 30px 0;
  }
  .booking-faq { padding: 88px 0 96px; }
  .booking-faq__grid { gap: 45px; grid-template-columns: 1fr; }
  .booking-faq__items summary { font-size: 23px; }
  .booking-faq__items details p { padding-right: 0; }
}

/* v2.1.1 layout corrections and image credits */
.almhof-wrap {
  margin-inline: auto;
  width: min(calc(100% - 64px), var(--almhof-max));
}
.balder-nature__media { position: relative; }
.balder-nature__media .image-credit {
  background: rgba(247,244,237,.94);
  bottom: 0;
  color: var(--almhof-text);
  font-size: 12px;
  left: 0;
  line-height: 1.35;
  padding: 8px 12px;
  position: absolute;
  z-index: 2;
}
.balder-nature__media .image-credit a { text-decoration: underline; }
.balder-doorstep__routes strong {
  overflow-wrap: anywhere;
  word-break: normal;
}
.shop-page .almhof-wrap,
.balder-page .almhof-wrap { width: min(calc(100% - 64px), var(--almhof-max)); }

@media (max-width: 980px) {
  .almhof-wrap,
  .shop-page .almhof-wrap,
  .balder-page .almhof-wrap { width: min(calc(100% - 48px), var(--almhof-max)); }
}
@media (max-width: 760px) {
  .almhof-wrap,
  .shop-page .almhof-wrap,
  .balder-page .almhof-wrap { width: min(calc(100% - 40px), var(--almhof-max)); }
  .balder-nature__media .image-credit { font-size: 11px; }
}

.legal-image-credits {
  border-top: 1px solid var(--almhof-line);
  margin-top: 70px;
  padding-top: 46px;
}
.legal-image-credits h2 { font-size: clamp(2rem, 3vw, 3rem); }
.legal-image-credits ul { padding-left: 1.2em; }
.legal-image-credits li + li { margin-top: 12px; }
.balder-doorstep__routes article > a { grid-template-columns: minmax(235px,.72fr) 1.28fr; }
@media (max-width: 760px) {
  .balder-doorstep__routes article > a { grid-template-columns: 1fr; }
}


/* -------------------------------------------------------------------------
   v2.1.2 Erlebniswelt Raufußhuhn: credited editorial image
   ------------------------------------------------------------------------- */
.balder-family__media--credited {
  align-items: center;
  background: #dcd3c5;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  padding: clamp(36px, 5vw, 78px);
}
.balder-family__media--credited img {
  aspect-ratio: 4 / 3;
  height: auto;
  min-height: 0;
  object-fit: cover;
  width: min(100%, 620px);
}
.balder-family__media--credited .image-credit {
  background: transparent;
  padding: 10px 0 0;
  text-align: left;
  width: min(100%, 620px);
}
@media (max-width: 760px) {
  .balder-family__media--credited { padding: 28px 20px 34px; }
  .balder-family__media--credited img { aspect-ratio: 4 / 3; }
}

/* -------------------------------------------------------------------------
   v2.2.0 Winterurlaub landing page
   ------------------------------------------------------------------------- */
.winter-page { background: var(--almhof-cream); }
.winter-hero { color: #fff; min-height: 760px; overflow: hidden; position: relative; }
.winter-hero__media,
.winter-hero__overlay { inset: 0; position: absolute; }
.winter-hero__media img { height: 100%; object-fit: cover; object-position: 50% 52%; width: 100%; }
.winter-hero__overlay { background: linear-gradient(90deg, rgba(19,28,24,.72) 0%, rgba(19,28,24,.44) 47%, rgba(19,28,24,.12) 82%); }
.winter-hero__content { display: flex; flex-direction: column; justify-content: flex-end; min-height: 760px; padding-bottom: 90px; padding-top: 150px; position: relative; z-index: 2; }
.winter-hero__content .almhof-kicker { color: rgba(255,255,255,.82); }
.winter-hero h1 { color: #fff; font-size: clamp(4rem, 6.1vw, 6.5rem); line-height: .96; margin: 0 0 24px; max-width: 850px; }
.winter-hero__intro { color: rgba(255,255,255,.94); font-size: 20px; line-height: 1.55; max-width: 720px; }
.winter-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
.winter-hero__link { color: #fff; font-size: 14px; font-weight: 650; text-underline-offset: .25em; }

.winter-opening { background: var(--almhof-cream); padding: 125px 0 135px; }
.winter-opening__grid { align-items: center; display: grid; gap: clamp(70px, 9vw, 145px); grid-template-columns: .92fr 1.08fr; }
.winter-opening__copy h2 { max-width: 650px; }
.winter-opening__lead { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: clamp(1.55rem, 2.4vw, 2.25rem); line-height: 1.24; max-width: 690px; }
.winter-opening__copy p:last-child { max-width: 630px; }
.winter-opening__media { margin: 0; }
.winter-opening__media img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center 53%; width: 100%; }

.winter-ski { background: var(--almhof-sand); display: grid; grid-template-columns: 1.06fr .94fr; min-height: 720px; }
.winter-ski__media img { height: 100%; min-height: 720px; object-fit: cover; object-position: center 52%; width: 100%; }
.winter-ski__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(75px, 8vw, 135px); }
.winter-ski__copy h2,
.winter-ski__copy p { max-width: 600px; }
.winter-ski__links { align-items: flex-start; display: flex; flex-direction: column; gap: 13px; margin-top: 15px; }

.winter-nordic { background: #fff; padding: 125px 0 135px; }
.winter-nordic__grid { align-items: center; display: grid; gap: clamp(70px, 9vw, 145px); grid-template-columns: .9fr 1.1fr; }
.winter-nordic__copy h2,
.winter-nordic__copy p { max-width: 620px; }
.winter-nordic__media { margin: 0; }
.winter-nordic__media img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }

.winter-options { background: var(--almhof-cream); border-top: 1px solid var(--almhof-sage); padding: 118px 0 126px; }
.winter-options__head { align-items: end; display: grid; gap: clamp(60px, 8vw, 125px); grid-template-columns: 1fr .85fr; margin-bottom: 62px; }
.winter-options__head > p { max-width: 570px; }
.winter-options__grid { border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: repeat(4, 1fr); }
.winter-options__grid article { min-height: 285px; padding: 38px 30px 25px 0; }
.winter-options__grid article + article { border-left: 1px solid var(--almhof-sage); padding-left: 30px; }
.winter-options__grid span { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; margin-bottom: 24px; }
.winter-options__grid h3 { font-size: 31px; margin-bottom: 14px; }
.winter-options__grid p { font-size: 16px; margin: 0; }

.winter-silence { background: var(--almhof-green); color: #fff; display: grid; grid-template-columns: 1.08fr .92fr; min-height: 690px; }
.winter-silence__media img { height: 100%; min-height: 690px; object-fit: cover; object-position: center; width: 100%; }
.winter-silence__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(75px, 8vw, 135px); }
.winter-silence__copy h2,
.winter-silence__copy .almhof-kicker { color: #fff; }
.winter-silence__copy p { color: rgba(255,255,255,.86); max-width: 570px; }

.winter-warmth { background: var(--almhof-sand); padding: 118px 0 125px; }
.winter-warmth__grid { display: grid; gap: clamp(60px, 9vw, 140px); grid-template-columns: .9fr 1.1fr; }
.winter-warmth__copy { align-self: end; }
.winter-warmth__copy p { max-width: 650px; }

.winter-day { background: #fff; padding: 118px 0 125px; }
.winter-day__head { margin-bottom: 58px; max-width: 820px; }
.winter-day__timeline { border-top: 1px solid var(--almhof-sage); display: grid; grid-template-columns: repeat(4, 1fr); }
.winter-day__timeline article { min-height: 285px; padding: 38px 32px 25px 0; }
.winter-day__timeline article + article { border-left: 1px solid var(--almhof-sage); padding-left: 32px; }
.winter-day__timeline span { color: var(--almhof-brown); display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; margin-bottom: 20px; text-transform: uppercase; }
.winter-day__timeline h3 { font-size: 30px; margin-bottom: 14px; }
.winter-day__timeline p { font-size: 16px; }

.winter-fit { background: var(--almhof-green); color: #fff; padding: 108px 0 115px; }
.winter-fit__grid { display: grid; gap: clamp(60px, 10vw, 150px); grid-template-columns: 1fr 1fr; }
.winter-fit h2,
.winter-fit .almhof-kicker { color: #fff; }
.winter-fit__list p { border-bottom: 1px solid rgba(255,255,255,.17); color: rgba(255,255,255,.87); margin: 0; padding: 19px 0; }

.winter-direct { background: var(--almhof-sand); padding: 110px 0; }
.winter-direct__grid { align-items: center; display: grid; gap: clamp(55px, 8vw, 120px); grid-template-columns: .85fr 1.15fr; }
.winter-direct__copy p:not(.almhof-kicker) { max-width: 560px; }
.winter-direct__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; margin-top: 22px; }
.winter-direct__price { background: var(--almhof-cream); border: 1px solid var(--almhof-sage); min-height: 180px; padding: 32px; }

.winter-final { background: #fff; padding: 126px 0 135px; text-align: center; }
.winter-final__inner { max-width: 940px; }
.winter-final h2 { margin-left: auto; margin-right: auto; max-width: 820px; }
.winter-final p:not(.almhof-kicker) { margin-left: auto; margin-right: auto; max-width: 650px; }
.winter-final .almhof-btn { margin-top: 20px; }
.winter-photo-credit { color: var(--almhof-muted); font-size: 12px; line-height: 1.5; margin-top: 42px !important; }
.winter-photo-credit a { text-decoration: underline; }

.balder-winter__cta { margin-top: 34px; }

/* Booking engine: reliable encapsulated easybooking mode */
.booking-engine-shell { overflow: hidden; }
.booking-engine-shell #ebFrontEndFrame { min-height: 680px; width: 100%; }
.booking-engine-shell #ebFrontEndFrame iframe { border: 0 !important; display: block; min-height: 850px; width: 100% !important; }
.booking-engine-fallback { display: none; border-top: 1px solid var(--almhof-sage); color: var(--almhof-muted); font-size: 14px; margin-top: 28px; padding-top: 22px; text-align: center; }

@media (max-width: 980px) {
  .winter-opening__grid,
  .winter-nordic__grid,
  .winter-options__head,
  .winter-warmth__grid,
  .winter-fit__grid { gap: 55px; }
  .winter-ski,
  .winter-silence { min-height: 580px; }
  .winter-ski__media img,
  .winter-silence__media img { min-height: 580px; }
  .winter-ski__copy,
  .winter-silence__copy { padding: 68px 50px; }
  .winter-options__grid,
  .winter-day__timeline { grid-template-columns: 1fr 1fr; }
  .winter-options__grid article:nth-child(3),
  .winter-day__timeline article:nth-child(3) { border-left: 0; border-top: 1px solid var(--almhof-sage); }
  .winter-options__grid article:nth-child(4),
  .winter-day__timeline article:nth-child(4) { border-top: 1px solid var(--almhof-sage); }
}

@media (max-width: 760px) {
  .winter-hero { min-height: 650px; }
  .winter-hero__media img { object-position: 61% 50%; }
  .winter-hero__overlay { background: linear-gradient(0deg, rgba(19,28,24,.80) 0%, rgba(19,28,24,.45) 66%, rgba(19,28,24,.12) 100%); }
  .winter-hero__content { min-height: 650px; padding-bottom: 58px; padding-top: 105px; }
  .winter-hero h1 { font-size: clamp(3rem, 13.5vw, 4.35rem); }
  .winter-hero__intro { font-size: 17px; }
  .winter-hero__actions { align-items: flex-start; flex-direction: column; gap: 18px; }

  .winter-opening,
  .winter-nordic,
  .winter-options,
  .winter-warmth,
  .winter-day { padding: 88px 0 96px; }
  .winter-opening__grid,
  .winter-nordic__grid,
  .winter-options__head,
  .winter-warmth__grid,
  .winter-fit__grid,
  .winter-direct__grid { grid-template-columns: 1fr; gap: 30px; }
  .winter-opening__media img { aspect-ratio: 4 / 5; }

  .winter-ski,
  .winter-silence { grid-template-columns: 1fr; min-height: 0; }
  .winter-ski__media img,
  .winter-silence__media img { aspect-ratio: 4 / 3; min-height: 0; }
  .winter-ski__copy,
  .winter-silence__copy { padding: 64px 20px 72px; }
  .winter-silence__media { order: -1; }

  .winter-options__head { margin-bottom: 40px; }
  .winter-options__grid,
  .winter-day__timeline { grid-template-columns: 1fr; }
  .winter-options__grid article,
  .winter-options__grid article + article,
  .winter-day__timeline article,
  .winter-day__timeline article + article { border-left: 0; min-height: 0; padding: 30px 0; }
  .winter-options__grid article + article,
  .winter-day__timeline article + article { border-top: 1px solid var(--almhof-sage); }

  .winter-fit { padding: 88px 0 96px; }
  .winter-direct { padding: 88px 0; }
  .winter-direct__price { min-height: 160px; padding: 22px; }
  .winter-final { padding: 96px 0 108px; }
  .booking-engine-shell #ebFrontEndFrame iframe { min-height: 980px; }
}

/* v2.2.1: easybooking direct integration + graceful fallback */
.booking-engine-shell #ebFrontEndFrame {
  --ebCiColor: #344239;
  --ebCiBgColor: #f7f4ed;
  --ebCiHeadingColor: #927259;
  --ebCiFontFamily: Inter, Arial, sans-serif;
  --ebCiFontSize: 16px;
  --ebPadding: 15px;
  min-height: 420px;
}
.booking-engine-fallback.is-visible {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.booking-engine-fallback strong { color: var(--almhof-ink); font-family: var(--almhof-serif); font-size: 20px; font-weight: 500; }
.booking-engine-fallback span { display: block; }

/* -------------------------------------------------------------------------
   v2.3.0 final detail round
   ------------------------------------------------------------------------- */

/* Main navigation: seasonal Balderschwang pages stay discoverable without
   adding more top-level items. */
.primary-nav .almhof-season-parent { position: relative; }
.primary-nav .almhof-season-parent > a { padding-right: 14px; position: relative; }
.primary-nav .almhof-season-parent > a::after {
  border-bottom: 1px solid currentColor;
  border-right: 1px solid currentColor;
  content: '';
  height: 5px;
  position: absolute;
  right: 0;
  top: 44%;
  transform: rotate(45deg) translateY(-50%);
  width: 5px;
}
.primary-nav .almhof-season-parent > .sub-menu {
  align-items: stretch;
  background: var(--almhof-cream);
  border: 1px solid var(--almhof-sage);
  box-shadow: 0 18px 45px rgba(26,31,27,.10);
  display: flex;
  flex-direction: column;
  gap: 0;
  left: 50%;
  min-width: 255px;
  opacity: 0;
  padding: 10px 0;
  pointer-events: none;
  position: absolute;
  top: calc(100% + 20px);
  transform: translate(-50%, 8px);
  transition: opacity .18s ease, transform .18s ease;
  visibility: hidden;
  z-index: 1000;
}
.primary-nav .almhof-season-parent > .sub-menu::before {
  content: '';
  height: 22px;
  left: 0;
  position: absolute;
  right: 0;
  top: -22px;
}
.primary-nav .almhof-season-parent > .sub-menu li { width: 100%; }
.primary-nav .almhof-season-parent > .sub-menu a {
  display: block;
  font-size: 12.5px;
  padding: 12px 20px;
  white-space: nowrap;
}
.primary-nav .almhof-season-parent > .sub-menu a:hover { background: #fff; }
.primary-nav .almhof-season-parent:hover > .almhof-season-submenu,
.primary-nav .almhof-season-parent:focus-within > .almhof-season-submenu {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  visibility: visible;
}

/* Apartment floor plans are separate from the photo sliders. */
.apartment-floorplan-link {
  appearance: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 13px;
  padding: 0;
}
.apartment-floorplan-modal {
  background: transparent;
  border: 0;
  max-height: 92vh;
  max-width: min(920px, calc(100vw - 40px));
  padding: 0;
  width: 100%;
}
.apartment-floorplan-modal::backdrop { background: rgba(23,28,24,.72); }
.apartment-floorplan-modal__inner {
  background: var(--almhof-cream);
  max-height: 92vh;
  overflow: auto;
  padding: clamp(28px, 5vw, 56px);
  position: relative;
}
.apartment-floorplan-modal__close {
  align-items: center;
  background: transparent;
  border: 1px solid var(--almhof-sage);
  color: var(--almhof-ink);
  cursor: pointer;
  display: flex;
  font-size: 28px;
  height: 44px;
  justify-content: center;
  line-height: 1;
  position: absolute;
  right: 20px;
  top: 20px;
  width: 44px;
}
.apartment-floorplan-modal h2 { margin-bottom: 28px; padding-right: 55px; }
.apartment-floorplan-modal__media {
  align-items: center;
  background: #fff;
  border: 1px solid var(--almhof-sage);
  display: flex;
  justify-content: center;
  min-height: 360px;
  padding: clamp(18px, 4vw, 40px);
}
.apartment-floorplan-modal__media img { max-height: 66vh; object-fit: contain; width: auto; }
.apartment-floorplan-modal__note { color: var(--almhof-muted); font-size: 12px; margin: 14px 0 0; }

/* Apartment amenities: keep the generous green section, but remove the
   excessive vertical dead space seen in the previous build. */
.apartment-amenities { padding: 105px 0 100px; }
.apartment-amenities__head { margin-bottom: 46px; }
.apartment-amenities__media-grid { grid-template-rows: repeat(2, minmax(150px, 205px)); }
.apartment-amenities__facts { margin-top: 42px; }

/* Der Almhof: stronger people section, compact Hofladen teaser and visual
   moments instead of an amenity catalogue. */
.about-hosts { padding: clamp(120px, 10vw, 165px) 0; }
.about-hosts__grid {
  align-items: stretch;
  gap: clamp(70px, 9vw, 135px);
  grid-template-columns: 1fr 1fr;
}
.about-hosts__media { min-height: 690px; }
.about-hosts__media img { height: 100%; min-height: 690px; object-fit: cover; width: 100%; }
.about-hosts__copy { align-self: center; }
.about-hosts__copy h2 { font-size: clamp(4rem, 6vw, 6.3rem); }
.about-hosts__intro { font-size: 20px; }

.about-ready { background: var(--almhof-sand); padding: clamp(95px, 9vw, 140px) 0; }
.about-ready__grid {
  align-items: center;
  display: grid;
  gap: clamp(60px, 9vw, 135px);
  grid-template-columns: .92fr 1.08fr;
}
.about-ready__copy { max-width: 620px; }
.about-ready__copy h2 { max-width: 580px; }
.about-ready__copy p { max-width: 590px; }
.about-ready__copy .almhof-link { display: inline-block; margin-top: 10px; }
.about-ready__media { margin: 0; }
.about-ready__media img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

.about-offers__visual-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, 1fr);
}
.about-offer-card {
  background: var(--almhof-cream);
  border: 1px solid var(--almhof-sage);
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 340px;
  overflow: hidden;
}
.about-offer-card > img { height: 100%; min-height: 340px; object-fit: cover; width: 100%; }
.about-offer-card > div { align-self: center; padding: clamp(28px, 4vw, 52px); }
.about-offer-card span {
  color: var(--almhof-brown);
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
  margin-bottom: 18px;
}
.about-offer-card h3 { font-size: clamp(29px, 2.6vw, 39px); margin-bottom: 12px; }
.about-offer-card p { font-size: 15px; margin: 0; }
.about-places-slider--large .about-place img { aspect-ratio: 16 / 8.5; }
.about-history-slider .about-history-slide:first-child img { object-position: center 58%; }
.about-history-slider .about-history-slide:nth-child(2) img { object-position: center 40%; }

/* Balderschwang: three summer tips are a deliberate short list. */
.balder-summer__tips article:last-child { border-bottom: 1px solid var(--almhof-sage); }

/* Contact: calm rapidmail form instead of the vendor's default visual style. */
.contact-newsletter { background: var(--almhof-cream); padding: clamp(105px, 10vw, 150px) 0; }
.contact-newsletter__grid {
  align-items: start;
  display: grid;
  gap: clamp(70px, 10vw, 155px);
  grid-template-columns: .85fr 1.15fr;
}
.contact-newsletter__intro h2 { max-width: 620px; }
.contact-newsletter__intro > p:last-child { max-width: 560px; }
.contact-newsletter__form-wrap { max-width: 680px; width: 100%; }
.contact-newsletter__form-wrap .rmBase,
.contact-newsletter__form-wrap .rmSubscription,
.contact-newsletter__form-wrap .rmBase__content,
.contact-newsletter__form-wrap .rmBase__container { background: transparent; color: inherit; font-family: inherit; max-width: none; padding: 0; width: 100%; }
.contact-newsletter__form-wrap .hidden { display: none !important; }
.contact-newsletter__fields { display: grid; gap: 22px 20px; grid-template-columns: repeat(2, 1fr); }
.contact-newsletter__fields .rmBase__el--gender,
.contact-newsletter__fields .rmBase__el--input:last-child { grid-column: 1 / -1; }
.contact-newsletter__form-wrap .rmBase__compLabel {
  color: var(--almhof-ink);
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .07em;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.contact-newsletter__form-wrap .rmBase__compLabel--required::after { content: ' *'; }
.contact-newsletter__form-wrap .comp__input {
  appearance: none;
  background: #fff;
  border: 1px solid var(--almhof-sage);
  border-radius: 0;
  box-shadow: none;
  color: var(--almhof-ink);
  height: 52px;
  padding: 11px 14px;
  width: 100%;
}
.contact-newsletter__form-wrap .comp__input:focus { border-color: var(--almhof-green); outline: 1px solid var(--almhof-green); }
.contact-newsletter__radio-group { display: flex; gap: 10px; }
.contact-newsletter__radio {
  align-items: center;
  background: #fff;
  border: 1px solid var(--almhof-sage);
  cursor: pointer;
  display: inline-flex;
  gap: 9px;
  min-width: 110px;
  padding: 12px 15px;
}
.contact-newsletter__radio:has(input:checked) { background: rgba(52,66,57,.08); border-color: var(--almhof-green); }
.contact-newsletter__radio input { accent-color: var(--almhof-green); cursor: pointer; }
.contact-newsletter__consent { color: var(--almhof-text); font-size: 12px; line-height: 1.55; margin-top: 22px; }
.contact-newsletter__form-wrap .rmBase__el--cta { margin-top: 24px; }
.contact-newsletter__form-wrap .rmBase__comp--cta { cursor: pointer; }
.contact-newsletter__privacy { border-top: 1px solid var(--almhof-sage); margin-top: 25px; padding-top: 18px; }
.contact-newsletter__privacy p { color: var(--almhof-muted); font-size: 11px; line-height: 1.55; margin: 0; }
.contact-newsletter__privacy a { text-decoration: underline; }
.contact-newsletter__success { background: #fff !important; border: 1px solid var(--almhof-sage); padding: 34px !important; }
.contact-newsletter__success h3 { margin-bottom: 10px; }
.contact-newsletter__success p { margin: 0; }
.contact-newsletter__form-wrap .rmBase__compError { color: #9a2d21; font-size: 11px; margin-top: 5px; }

/* easybooking direct mode: make radio choices (including Reiseschutz) read as
   whole clickable rows where the vendor markup uses labels. */
#ebFrontEndFrame label { cursor: pointer; }
#ebFrontEndFrame input[type="radio"] { cursor: pointer; }
#ebFrontEndFrame label:has(input[type="radio"]) {
  border: 1px solid rgba(52,66,57,.18);
  cursor: pointer;
  display: flex;
  gap: 10px;
  padding: 12px 14px;
  transition: background .16s ease, border-color .16s ease;
}
#ebFrontEndFrame label:has(input[type="radio"]):hover { background: rgba(52,66,57,.05); border-color: rgba(52,66,57,.38); }
#ebFrontEndFrame label:has(input[type="radio"]:checked) { background: rgba(52,66,57,.09); border-color: var(--almhof-green); }

@media (max-width: 1080px) {
  .mobile-panel.is-open { max-height: 900px; }
  .mobile-panel .almhof-season-parent > .sub-menu {
    border-top: 1px solid var(--almhof-sage);
    display: block;
    margin: 0 0 8px 16px;
    padding: 4px 0 8px;
  }
  .mobile-panel .almhof-season-parent > .sub-menu li { border-bottom: 0; }
  .mobile-panel .almhof-season-parent > .sub-menu a { color: var(--almhof-muted); font-size: 14px; padding: 9px 0; }
  .about-hosts__grid { grid-template-columns: .9fr 1.1fr; gap: 60px; }
  .about-hosts__media,
  .about-hosts__media img { min-height: 600px; }
  .about-offer-card { grid-template-columns: 1fr; }
  .about-offer-card > img { aspect-ratio: 4 / 3; min-height: 0; }
}

@media (max-width: 760px) {
  .apartment-floorplan-modal { max-width: calc(100vw - 20px); }
  .apartment-floorplan-modal__inner { padding: 28px 18px 24px; }
  .apartment-floorplan-modal__close { right: 12px; top: 12px; }
  .apartment-floorplan-modal__media { min-height: 260px; padding: 12px; }
  .apartment-amenities { padding: 78px 0 82px; }
  .apartment-amenities__media-grid { gap: 10px; }

  .about-hosts { padding: 88px 0 96px; }
  .about-hosts__grid { grid-template-columns: 1fr; gap: 42px; }
  .about-hosts__media,
  .about-hosts__media img { min-height: 0; }
  .about-hosts__media img { aspect-ratio: 4 / 5; }
  .about-hosts__copy h2 { font-size: clamp(3.4rem, 15vw, 4.8rem); }
  .about-ready { padding: 82px 0 90px; }
  .about-ready__grid { grid-template-columns: 1fr; gap: 38px; }
  .about-ready__media { order: -1; }
  .about-offers__visual-grid { grid-template-columns: 1fr; }
  .about-offer-card { min-height: 0; }
  .about-places-slider--large .about-place img { aspect-ratio: 4 / 5; }

  .contact-newsletter { padding: 88px 0 96px; }
  .contact-newsletter__grid { gap: 42px; grid-template-columns: 1fr; }
  .contact-newsletter__fields { grid-template-columns: 1fr; }
  .contact-newsletter__fields .rmBase__el--gender,
  .contact-newsletter__fields .rmBase__el--input:last-child { grid-column: auto; }
}

/* -------------------------------------------------------------------------
   v2.4.0 legal, consent and final Almhof refinements
   ------------------------------------------------------------------------- */

/* Historic material is intentionally presented smaller. Older family photos
   should feel like archive pieces rather than be stretched to poster size. */
.about-history-slider {
  margin-left: auto;
  margin-right: auto;
  max-width: 880px;
}
.about-history-slider .about-place img {
  aspect-ratio: 16 / 10;
  background: #e9e3d9;
  object-fit: contain;
  padding: clamp(14px, 2.5vw, 30px);
}
.about-history-slider .about-history-slide:nth-child(2) img {
  padding: clamp(24px, 5vw, 64px);
}

/* Contact: telephone first, email immediately underneath and visibly usable. */
.contact-direct__details .contact-direct__contact {
  border-bottom: 1px solid var(--almhof-sage);
  border-top: 1px solid var(--almhof-sage);
  display: grid;
  gap: 9px;
  grid-template-columns: 105px 1fr;
  padding: 25px 0;
}
.contact-direct__details .contact-direct__contact > span {
  grid-row: 1 / span 4;
  padding-top: 8px;
}
.contact-direct__details .contact-direct__phone,
.contact-direct__details .contact-direct__email,
.contact-direct__details .contact-direct__mail-btn {
  border: 0;
  display: inline-flex;
  gap: 0;
  grid-template-columns: none;
  padding: 0;
  width: fit-content;
}
.contact-direct__details .contact-direct__phone strong { font-size: 27px; }
.contact-direct__details .contact-direct__email {
  color: var(--almhof-text);
  font-family: var(--almhof-sans);
  font-size: 15px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.contact-direct__details .contact-direct__mail-btn {
  background: var(--almhof-green);
  color: #fff;
  font-size: 11px;
  margin-top: 8px;
  padding: 12px 17px;
  text-decoration: none;
}
.contact-direct__details .contact-direct__mail-btn:hover { color: #fff; }

/* Neutral fallbacks while optional third-party content is blocked. */
.almhof-external-fallback {
  color: var(--almhof-muted);
  display: inline-block;
  font-family: var(--almhof-sans);
  font-size: 12px;
  line-height: 1.5;
}
.almhof-external-fallback--price {
  border: 1px solid rgba(255,255,255,.24);
  color: rgba(255,255,255,.72);
  margin: 0;
  padding: 16px 18px;
}

/* Legal pages */
.legal-page { background: var(--almhof-cream); }
.legal-hero { padding: clamp(100px, 12vw, 175px) 0 clamp(70px, 8vw, 110px); }
.legal-hero__inner { max-width: 880px; }
.legal-hero h1 { font-size: clamp(58px, 8vw, 110px); line-height: .9; margin-bottom: 28px; }
.legal-hero__inner > p:last-child { font-size: 18px; max-width: 650px; }
.legal-content { background: #fff; padding: clamp(80px, 9vw, 130px) 0; }
.legal-content__grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); }
.legal-card { border: 1px solid var(--almhof-sage); margin-right: -1px; padding: clamp(30px, 4vw, 52px); }
.legal-card h2 { font-size: clamp(30px, 3vw, 42px); margin-bottom: 24px; }
.legal-card p:last-child { margin-bottom: 0; }
.legal-page a { color: var(--almhof-green); }
.legal-credits { padding: clamp(85px, 10vw, 145px) 0; }
.legal-credits__inner { max-width: 900px; }
.legal-credits h2 { font-size: clamp(44px, 5vw, 68px); margin-bottom: 28px; }
.legal-credits ul { border-top: 1px solid var(--almhof-sage); list-style: none; margin: 36px 0 0; padding: 0; }
.legal-credits li { border-bottom: 1px solid var(--almhof-sage); padding: 22px 0; }
.legal-prose { max-width: 900px; }
.legal-prose h2 { font-size: clamp(34px, 4vw, 50px); margin: 72px 0 20px; }
.legal-prose h2:first-child { margin-top: 0; }
.legal-prose h3 { font-size: 28px; margin-bottom: 10px; }
.legal-prose p { max-width: 820px; }
.legal-consent-settings { background: var(--almhof-cream); border: 1px solid var(--almhof-sage); margin-top: 32px; padding: 30px; }
.legal-note { color: var(--almhof-muted); font-size: 14px; }

/* Ruanda / Verein */
.ruanda-page { background: var(--almhof-cream); }
.ruanda-hero { padding: clamp(110px, 12vw, 175px) 0 clamp(90px, 10vw, 135px); }
.ruanda-hero__grid,
.ruanda-purpose__grid,
.ruanda-update__grid,
.ruanda-donate__grid {
  align-items: start;
  display: grid;
  gap: clamp(55px, 9vw, 145px);
  grid-template-columns: 1.05fr .95fr;
}
.ruanda-hero h1 { font-size: clamp(56px, 7.5vw, 100px); line-height: .91; max-width: 760px; }
.ruanda-hero__copy { padding-top: 28px; }
.ruanda-hero__copy p { font-family: var(--almhof-serif); font-size: clamp(25px, 2.8vw, 36px); line-height: 1.12; }
.ruanda-purpose { background: #fff; padding: clamp(95px, 11vw, 155px) 0; }
.ruanda-purpose h2,
.ruanda-update h2,
.ruanda-donate h2 { font-size: clamp(43px, 5vw, 66px); }
.ruanda-purpose blockquote {
  border-top: 1px solid var(--almhof-sage);
  font-family: var(--almhof-serif);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  margin: 42px 0 0;
  padding-top: 32px;
}
.ruanda-purpose blockquote cite { color: var(--almhof-muted); display: block; font-family: var(--almhof-sans); font-size: 12px; font-style: normal; letter-spacing: .08em; margin-top: 18px; text-transform: uppercase; }
.ruanda-project { background: var(--almhof-green); color: rgba(255,255,255,.8); padding: clamp(100px, 11vw, 155px) 0; }
.ruanda-project .almhof-kicker { color: rgba(255,255,255,.63); }
.ruanda-project h2,
.ruanda-project h3 { color: #fff; }
.ruanda-project__head { align-items: end; display: grid; gap: clamp(60px, 9vw, 145px); grid-template-columns: 1fr .9fr; margin-bottom: 70px; }
.ruanda-project__head h2 { font-size: clamp(47px, 5.7vw, 74px); }
.ruanda-project__story { border-top: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: repeat(3, 1fr); }
.ruanda-project__story article { min-height: 390px; padding: 38px 42px 22px 0; }
.ruanda-project__story article + article { border-left: 1px solid rgba(255,255,255,.2); padding-left: 42px; }
.ruanda-project__story span { color: rgba(255,255,255,.55); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.ruanda-project__story h3 { font-size: 35px; margin: 45px 0 18px; }
.ruanda-update { background: #fff; padding: clamp(95px, 11vw, 155px) 0; }
.ruanda-donate { padding: clamp(95px, 11vw, 155px) 0; }
.ruanda-bank { background: #fff; border: 1px solid var(--almhof-sage); padding: clamp(30px, 4vw, 48px); }
.ruanda-bank > span { color: var(--almhof-brown); display: block; font-size: 10px; font-weight: 700; letter-spacing: .12em; margin-bottom: 12px; text-transform: uppercase; }
.ruanda-bank > strong { display: block; font-family: var(--almhof-serif); font-size: 30px; font-weight: 500; line-height: 1.1; margin-bottom: 30px; }
.ruanda-bank dl { margin: 0; }
.ruanda-bank dl div { border-top: 1px solid var(--almhof-sage); display: grid; gap: 18px; grid-template-columns: 82px 1fr; padding: 16px 0; }
.ruanda-bank dt { color: var(--almhof-muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ruanda-bank dd { margin: 0; overflow-wrap: anywhere; }
.ruanda-final { background: #fff; padding: clamp(90px, 10vw, 145px) 0; text-align: center; }
.ruanda-final__inner { max-width: 900px; }
.ruanda-final h2 { font-size: clamp(45px, 5.4vw, 70px); }
.ruanda-final p:last-child { margin-left: auto; margin-right: auto; max-width: 640px; }

/* Complianz: equal-access choices, styled in the Almhof visual language. */
#cmplz-cookiebanner-container .cmplz-cookiebanner {
  background: var(--almhof-cream) !important;
  border: 1px solid var(--almhof-sage) !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 60px rgba(37,39,33,.16) !important;
  color: var(--almhof-text) !important;
  font-family: var(--almhof-sans) !important;
}
#cmplz-cookiebanner-container .cmplz-title {
  color: var(--almhof-ink) !important;
  font-family: var(--almhof-serif) !important;
  font-size: 28px !important;
  font-weight: 500 !important;
}
#cmplz-cookiebanner-container .cmplz-message,
#cmplz-cookiebanner-container .cmplz-category-header,
#cmplz-cookiebanner-container .cmplz-description { color: var(--almhof-text) !important; }
#cmplz-cookiebanner-container .cmplz-btn {
  border: 1px solid var(--almhof-green) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  min-height: 44px !important;
  text-transform: uppercase !important;
}
#cmplz-cookiebanner-container .cmplz-accept,
#cmplz-cookiebanner-container .cmplz-save-preferences { background: var(--almhof-green) !important; color: #fff !important; }
#cmplz-cookiebanner-container .cmplz-deny,
#cmplz-cookiebanner-container .cmplz-view-preferences { background: transparent !important; color: var(--almhof-green) !important; }
#cmplz-cookiebanner-container a { color: var(--almhof-green) !important; }
.footer__bottom-links .cmplz-revoke-link { color: rgba(255,255,255,.72); }

@media (max-width: 800px) {
  .about-history-slider { max-width: 100%; }
  .about-history-slider .about-place img { aspect-ratio: 4 / 3; padding: 12px; }
  .about-history-slider .about-history-slide:nth-child(2) img { padding: 28px; }
  .about-places-slider--large .about-place img { aspect-ratio: 4 / 3; }
  .contact-direct__details .contact-direct__contact { gap: 8px; grid-template-columns: 1fr; }
  .contact-direct__details .contact-direct__contact > span { grid-row: auto; padding-top: 0; }
  .legal-content__grid,
  .ruanda-hero__grid,
  .ruanda-purpose__grid,
  .ruanda-update__grid,
  .ruanda-donate__grid,
  .ruanda-project__head,
  .ruanda-project__story { grid-template-columns: 1fr; }
  .legal-card { margin-bottom: -1px; margin-right: 0; }
  .ruanda-project__story article { min-height: 0; padding: 34px 0; }
  .ruanda-project__story article + article { border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding-left: 0; }
}

/* Price comparison placeholder works on both light seasonal sections and the
   dark direct-booking block on the homepage. */
.almhof-external-fallback--price {
  background: rgba(255,255,255,.48);
  border-color: var(--almhof-sage);
  color: var(--almhof-text);
}
.direct-price .almhof-external-fallback--price {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.24);
  color: rgba(255,255,255,.78);
}


/* -------------------------------------------------------------------------
   v2.4.1 final scale and easybooking availability refinements
   ------------------------------------------------------------------------- */

/* Slightly calmer global type scale. The editorial character stays intact,
   but long pages no longer feel oversized on desktop. */
body { font-size: 17px; }
h1 { font-size: clamp(2.9rem, 5.4vw, 4.75rem); }
h2 { font-size: clamp(2.35rem, 4vw, 3.625rem); }
h3 { font-size: clamp(1.7rem, 2.4vw, 2.35rem); }
.hero h1 { font-size: clamp(3.35rem, 5.8vw, 5.4rem); }
.apartments-page__hero h1 { font-size: clamp(3.7rem, 6.2vw, 6rem); }
.apartment-detail__copy h2 { font-size: clamp(3.3rem, 4.5vw, 5rem); }
.apartment-detail__copy h3 { font-size: clamp(1.95rem, 2.7vw, 2.8rem); }
.moment-video__content h2 { font-size: clamp(2.6rem, 4.9vw, 4.8rem); }
.autumn-hero h1 { font-size: clamp(3.6rem, 5.6vw, 5.8rem); }
.winter-hero h1 { font-size: clamp(3.6rem, 5.6vw, 5.8rem); }
.contact-hero h1 { font-size: clamp(3.6rem, 5.5vw, 5.7rem); }
.about-hosts__copy h2 { font-size: clamp(3.5rem, 5.1vw, 5.35rem); }
.legal-hero h1 { font-size: clamp(52px, 7vw, 94px); }
.ruanda-hero h1 { font-size: clamp(52px, 6.7vw, 88px); }
.ruanda-purpose h2,
.ruanda-update h2,
.ruanda-donate h2 { font-size: clamp(39px, 4.5vw, 58px); }
.ruanda-project__head h2 { font-size: clamp(43px, 5vw, 66px); }
.ruanda-final h2 { font-size: clamp(41px, 4.8vw, 62px); }

/* The host portrait is intentionally more intimate than a full-height poster. */
.about-hosts__grid { grid-template-columns: .78fr 1.22fr; }
.about-hosts__media { justify-self: start; max-width: 500px; min-height: 0; width: 100%; }
.about-hosts__media img { aspect-ratio: 4 / 5; height: auto; min-height: 0; object-fit: cover; width: 100%; }
.about-hosts__intro { font-size: 18px; }

/* Dedicated availability widget: give easybooking a stable, visible canvas. */
.apartment-availability__widget .eb-availability,
#ebAvailability { min-height: 320px; width: 100%; }

@media (max-width: 1080px) {
  .about-hosts__grid { grid-template-columns: .82fr 1.18fr; }
  .about-hosts__media { max-width: 440px; }
}

@media (max-width: 760px) {
  body { font-size: 16.5px; }
  .about-hosts__media { max-width: 100%; }
  .about-hosts__copy h2 { font-size: clamp(3rem, 13vw, 4.15rem); }
  .apartments-page__hero h1 { font-size: clamp(3.05rem, 13.5vw, 4.15rem); }
  .autumn-hero h1,
  .winter-hero h1,
  .contact-hero h1 { font-size: clamp(2.85rem, 12.5vw, 4rem); }
}


/* -------------------------------------------------------------------------
   v2.4.2 — Easybooking availability, visually integrated into Almhof design
   ------------------------------------------------------------------------- */

/* The Easybooking availability widget inherits the global editorial heading
   scale. Scope it deliberately so month labels and controls stay useful rather
   than looking like a second page hero. */
.apartment-availability__widget {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(52,66,57,.16);
  overflow-x: auto;
  padding: clamp(20px, 2.6vw, 32px);
}

#ebAvailability {
  color: var(--almhof-text);
  font-family: var(--almhof-sans);
  font-size: 14px;
  line-height: 1.45;
  min-width: 0;
}

#ebAvailability *,
#ebAvailability *::before,
#ebAvailability *::after {
  box-sizing: border-box;
}

#ebAvailability h1,
#ebAvailability h2,
#ebAvailability h3,
#ebAvailability h4,
#ebAvailability h5,
#ebAvailability h6 {
  color: var(--almhof-ink) !important;
  font-family: var(--almhof-serif) !important;
  font-size: clamp(30px, 3.3vw, 44px) !important;
  font-weight: 500 !important;
  letter-spacing: -.025em !important;
  line-height: 1.02 !important;
  margin: 0 0 18px !important;
}

#ebAvailability form {
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(52,66,57,.14) !important;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0 0 22px !important;
  padding: 0 0 20px !important;
}

#ebAvailability label {
  color: var(--almhof-brown) !important;
  font-family: var(--almhof-sans) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase;
}

#ebAvailability select,
#ebAvailability input[type="text"],
#ebAvailability input[type="date"] {
  background: #fff !important;
  border: 1px solid rgba(52,66,57,.22) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--almhof-ink) !important;
  font-family: var(--almhof-sans) !important;
  font-size: 14px !important;
  min-height: 44px;
  padding: 8px 12px !important;
}

#ebAvailability table {
  background: transparent !important;
  border-collapse: separate !important;
  border-spacing: 2px !important;
  filter: saturate(.68);
  font-family: var(--almhof-sans) !important;
  margin: 0 !important;
  max-width: 100%;
  width: 100% !important;
}

#ebAvailability table th,
#ebAvailability table td {
  border: 0 !important;
  font-family: var(--almhof-sans) !important;
  font-size: 11px !important;
  line-height: 1.15 !important;
  padding: 8px 4px !important;
}

#ebAvailability table th:first-child,
#ebAvailability table td:first-child {
  min-width: 190px;
  text-align: left !important;
}

#ebAvailability p,
#ebAvailability li,
#ebAvailability span,
#ebAvailability div {
  font-family: var(--almhof-sans);
}

#ebAvailability a {
  color: var(--almhof-green);
  text-underline-offset: .2em;
}

/* easybooking's month-navigation control can be an anchor or a button,
   depending on the widget revision. Keep both treatments consistent. */
#ebAvailability button,
#ebAvailability a[class*="next"],
#ebAvailability a[class*="prev"],
#ebAvailability [class*="next"] a,
#ebAvailability [class*="prev"] a {
  border-radius: 0 !important;
  font-family: var(--almhof-sans) !important;
}

.apartment-availability__back {
  border-top: 1px solid rgba(52,66,57,.14);
  margin-top: 24px;
  padding-top: 18px;
}

@media (max-width: 760px) {
  .apartment-availability__widget {
    padding: 16px;
  }

  #ebAvailability {
    min-width: 680px;
  }

  #ebAvailability h1,
  #ebAvailability h2,
  #ebAvailability h3,
  #ebAvailability h4,
  #ebAvailability h5,
  #ebAvailability h6 {
    font-size: 32px !important;
  }
}


/* -------------------------------------------------------------------------
   v2.5.0 — final scale, consent fallbacks and update-safe packaging
   ------------------------------------------------------------------------- */

/* The v2.4.1 scale block is now parsed correctly. Keep the host section even
   more intimate because the source portrait is intentionally modest in size. */
.about-hosts__grid {
  grid-template-columns: .7fr 1.3fr;
}
.about-hosts__media {
  max-width: 420px;
}
.about-hosts__copy h2 {
  font-size: clamp(3rem, 4.2vw, 4.5rem);
}

/* Easybooking availability: month and apartment-row label should read like
   interface copy, not like a second editorial headline. */
#ebAvailability h1,
#ebAvailability h2,
#ebAvailability h3,
#ebAvailability h4,
#ebAvailability h5,
#ebAvailability h6 {
  font-size: clamp(31px, 2.8vw, 37px) !important;
}
#ebAvailability table th:first-child,
#ebAvailability table td:first-child,
#ebAvailability table th:first-child *,
#ebAvailability table td:first-child * {
  font-size: 18px !important;
  line-height: 1.15 !important;
}

/* Clear, accessible consent placeholder for optional external content. */
.almhof-external-fallback {
  align-items: flex-start;
  border: 1px solid rgba(52,66,57,.2);
  display: inline-flex;
  flex-direction: column;
  gap: 8px;
  max-width: 100%;
  padding: 16px 18px;
}
.almhof-external-fallback__title {
  color: var(--almhof-ink);
  display: block;
  font-family: var(--almhof-serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.05;
}
.almhof-external-fallback__text {
  color: var(--almhof-text);
  display: block;
  font-size: 13px;
  line-height: 1.5;
}
.almhof-external-fallback__action {
  display: block;
  margin-top: 2px;
}
.almhof-external-fallback .cmplz-revoke-link,
.almhof-external-fallback__action a {
  background: var(--almhof-green);
  border: 1px solid var(--almhof-green);
  color: #fff !important;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--almhof-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.2;
  padding: 11px 14px;
  text-decoration: none;
  text-transform: uppercase;
}
.almhof-external-fallback .cmplz-revoke-link:hover,
.almhof-external-fallback__action a:hover {
  background: transparent;
  color: var(--almhof-green) !important;
}
.almhof-external-fallback--price {
  margin: 0;
  width: 100%;
}
.direct-price .almhof-external-fallback--price .almhof-external-fallback__title,
.direct-price .almhof-external-fallback--price .almhof-external-fallback__text {
  color: rgba(255,255,255,.86);
}
.direct-price .almhof-external-fallback--price .cmplz-revoke-link,
.direct-price .almhof-external-fallback--price .almhof-external-fallback__action a {
  background: #fff;
  border-color: #fff;
  color: var(--almhof-green) !important;
}
.direct-price .almhof-external-fallback--price .cmplz-revoke-link:hover,
.direct-price .almhof-external-fallback--price .almhof-external-fallback__action a:hover {
  background: transparent;
  color: #fff !important;
}
.footer__bottom-links .cmplz-revoke-link {
  cursor: pointer;
}

.trust__label--button {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  margin: 0;
  padding: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}
.trust__label--button:hover { color: var(--almhof-brown); }

@media (max-width: 1080px) {
  .about-hosts__grid { grid-template-columns: .76fr 1.24fr; }
  .about-hosts__media { max-width: 380px; }
}

@media (max-width: 760px) {
  .about-hosts__grid { grid-template-columns: 1fr; }
  .about-hosts__media { max-width: min(100%, 420px); }
  #ebAvailability h1,
  #ebAvailability h2,
  #ebAvailability h3,
  #ebAvailability h4,
  #ebAvailability h5,
  #ebAvailability h6 { font-size: 29px !important; }
  #ebAvailability table th:first-child,
  #ebAvailability table td:first-child,
  #ebAvailability table th:first-child *,
  #ebAvailability table td:first-child * { font-size: 16px !important; }
}


/* -------------------------------------------------------------------------
   v2.6.0 — final availability scale + direct Complianz settings controls
   ------------------------------------------------------------------------- */

/* Keep the availability calendar deliberately compact. The apartment label is
   interface copy and therefore uses the site's Inter stack instead of the
   editorial display face. */
#ebAvailability h1,
#ebAvailability h2,
#ebAvailability h3,
#ebAvailability h4,
#ebAvailability h5,
#ebAvailability h6 {
  font-family: var(--almhof-sans) !important;
  font-size: clamp(21px, 1.8vw, 25px) !important;
  font-weight: 600 !important;
  letter-spacing: -.015em !important;
  line-height: 1.2 !important;
  margin-bottom: 14px !important;
}

#ebAvailability table th:first-child,
#ebAvailability table td:first-child,
#ebAvailability table th:first-child *,
#ebAvailability table td:first-child * {
  font-family: var(--almhof-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.3 !important;
  text-transform: none !important;
}

/* A visible theme button opens the existing Complianz preference control.
   It does not revoke the visitor's current choice before the dialog opens. */
.almhof-consent-button {
  appearance: none;
  background: var(--almhof-green);
  border: 1px solid var(--almhof-green);
  border-radius: 0;
  color: #fff !important;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--almhof-sans);
  font-size: 10px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: .07em;
  line-height: 1.2;
  padding: 11px 14px;
  text-decoration: none;
  text-transform: uppercase;
}
.almhof-consent-button:hover,
.almhof-consent-button:focus-visible {
  background: transparent;
  color: var(--almhof-green) !important;
}
.direct-price .almhof-consent-button {
  background: #fff;
  border-color: #fff;
  color: var(--almhof-green) !important;
}
.direct-price .almhof-consent-button:hover,
.direct-price .almhof-consent-button:focus-visible {
  background: transparent;
  color: #fff !important;
}
.footer__bottom-links .almhof-consent-button {
  background: transparent;
  border: 0;
  color: rgba(255,255,255,.72) !important;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: 0;
  padding: 0;
  text-transform: none;
}
.footer__bottom-links .almhof-consent-button:hover,
.footer__bottom-links .almhof-consent-button:focus-visible {
  color: #fff !important;
  text-decoration: underline;
  text-underline-offset: .2em;
}

@media (max-width: 760px) {
  #ebAvailability h1,
  #ebAvailability h2,
  #ebAvailability h3,
  #ebAvailability h4,
  #ebAvailability h5,
  #ebAvailability h6 {
    font-size: 21px !important;
  }
}


/* -------------------------------------------------------------------------
   v2.7.0 — collected final polish before SEO/live checks
   ------------------------------------------------------------------------- */

/* Booking hero facts: give the second and third columns breathing room from
   their vertical separators. */
.booking-hero__facts div + div {
  padding-left: clamp(22px, 2.2vw, 34px);
}

/* Footer consent control belongs on exactly the same baseline as the legal
   links around it. */
.footer__bottom-links .almhof-consent-button {
  display: inline-block;
  font-family: inherit;
  line-height: inherit;
  vertical-align: baseline;
}

/* Apartment availability: vendor markup occasionally carries very strong
   heading rules. Keep every apartment row label quiet and interface-like. */
#ebAvailability table tr > :first-child,
#ebAvailability table tr > :first-child *,
#ebAvailability [class*="category"],
#ebAvailability [class*="category"] *,
#ebAvailability [class*="room"],
#ebAvailability [class*="room"] * {
  font-family: var(--almhof-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}
#ebAvailability table tr > :first-child {
  min-width: 205px !important;
}

/* General easybooking overview: reduce the visual weight of vendor headings
   and room names without interfering with date/status colours. */
.booking-engine-shell #ebFrontEndFrame h1,
.booking-engine-shell #ebFrontEndFrame h2,
.booking-engine-shell #ebFrontEndFrame h3,
.booking-engine-shell #ebFrontEndFrame h4,
.booking-engine-shell #ebFrontEndFrame h5,
.booking-engine-shell #ebFrontEndFrame h6 {
  font-family: var(--almhof-sans) !important;
  font-size: clamp(19px, 1.7vw, 23px) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}
.booking-engine-shell #ebFrontEndFrame table tr > :first-child,
.booking-engine-shell #ebFrontEndFrame table tr > :first-child * {
  font-family: var(--almhof-sans) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}
.booking-engine-shell #ebFrontEndFrame .almhof-eb-primary-action {
  appearance: none !important;
  background: var(--almhof-green) !important;
  border: 1px solid var(--almhof-green) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
  cursor: pointer !important;
  display: inline-flex !important;
  font-family: var(--almhof-sans) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  justify-content: center !important;
  letter-spacing: .06em !important;
  min-height: 46px !important;
  padding: 14px 28px !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}
.booking-engine-shell #ebFrontEndFrame .almhof-eb-primary-action:hover,
.booking-engine-shell #ebFrontEndFrame .almhof-eb-primary-action:focus-visible {
  background: #25332b !important;
  border-color: #25332b !important;
}

/* Arrival/parking information on the apartment overview. */
.apartment-arrival {
  background: var(--almhof-cream);
  border-top: 1px solid var(--almhof-line);
  padding: clamp(80px, 8vw, 120px) 0;
}
.apartment-arrival__grid {
  align-items: start;
  display: grid;
  gap: clamp(55px, 8vw, 130px);
  grid-template-columns: .9fr 1.1fr;
}
.apartment-arrival__grid h2 {
  max-width: 600px;
}
.apartment-arrival__copy {
  border-top: 1px solid var(--almhof-sage);
  padding-top: 28px;
}
.apartment-arrival__copy p {
  margin: 0;
  max-width: 650px;
}

/* Hofladen: preserve the editorial split layout, but reduce the oversized
   opening and handmade sections on normal desktop screens. */
@media (min-width: 961px) {
  .shop-hero {
    min-height: 620px;
  }
  .shop-hero__media {
    min-height: 620px;
    max-height: 680px;
  }
  .shop-hero__copy {
    padding: clamp(58px, 6vw, 105px);
  }
  .shop-made__copy {
    padding: clamp(64px, 6vw, 110px);
  }
  .shop-made__media {
    min-height: 590px;
    max-height: 650px;
  }
}

/* The CTA no longer has an explanatory paragraph, so keep a deliberate gap
   between heading and button. */
.final-cta .almhof-btn {
  margin-top: 26px;
}

@media (max-width: 760px) {
  .booking-hero__facts div + div {
    padding-left: 0;
  }
  .apartment-arrival__grid {
    gap: 28px;
    grid-template-columns: 1fr;
  }
  .apartment-arrival__copy {
    padding-top: 22px;
  }
  #ebAvailability table tr > :first-child {
    min-width: 150px !important;
  }
}


/* -------------------------------------------------------------------------
   v2.8.0 — editable content baseline + calmer easybooking presentation
   ------------------------------------------------------------------------- */

/* The booking widget is a functional element, not an editorial hero. Give it
   a quiet, consistent interface scale even when easybooking injects its own
   late styles. */
.booking-engine-shell {
  background: #fbfaf7;
  border-color: rgba(52,66,57,.16);
  box-shadow: none;
  min-height: 0;
  padding: clamp(16px, 2.2vw, 30px);
}
.booking-engine-shell #ebFrontEndFrame {
  color: var(--almhof-text) !important;
  font-family: var(--almhof-sans) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}
.booking-engine-shell #ebFrontEndFrame *,
.booking-engine-shell #ebFrontEndFrame *::before,
.booking-engine-shell #ebFrontEndFrame *::after {
  box-sizing: border-box;
}
.booking-engine-shell #ebFrontEndFrame h1,
.booking-engine-shell #ebFrontEndFrame h2,
.booking-engine-shell #ebFrontEndFrame h3,
.booking-engine-shell #ebFrontEndFrame h4,
.booking-engine-shell #ebFrontEndFrame h5,
.booking-engine-shell #ebFrontEndFrame h6,
.booking-engine-shell #ebFrontEndFrame .almhof-eb-month-title {
  color: var(--almhof-ink) !important;
  font-family: var(--almhof-sans) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}
.booking-engine-shell #ebFrontEndFrame table {
  border-collapse: collapse !important;
  font-family: var(--almhof-sans) !important;
  width: 100% !important;
}
.booking-engine-shell #ebFrontEndFrame table th,
.booking-engine-shell #ebFrontEndFrame table td {
  font-family: var(--almhof-sans) !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}
.booking-engine-shell #ebFrontEndFrame .almhof-eb-room-label,
.booking-engine-shell #ebFrontEndFrame table tr > :first-child,
.booking-engine-shell #ebFrontEndFrame table tr > :first-child * {
  color: var(--almhof-ink) !important;
  font-family: var(--almhof-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}
.booking-engine-shell #ebFrontEndFrame input,
.booking-engine-shell #ebFrontEndFrame select,
.booking-engine-shell #ebFrontEndFrame button {
  font-family: var(--almhof-sans) !important;
}
.booking-engine-shell #ebFrontEndFrame .almhof-eb-primary-action {
  background: var(--almhof-green) !important;
  border: 1px solid var(--almhof-green) !important;
  box-shadow: none !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  min-height: 48px !important;
  opacity: 1 !important;
  padding: 14px 30px !important;
}
.booking-engine-shell #ebFrontEndFrame .almhof-eb-primary-action:hover,
.booking-engine-shell #ebFrontEndFrame .almhof-eb-primary-action:focus-visible {
  background: #25332b !important;
  border-color: #25332b !important;
  color: #fff !important;
}

/* Apartment-specific availability: compact and readable like the old
   calendar, while retaining the vendor status colours. */
.apartment-availability__widget {
  background: #fbfaf7;
  border-color: rgba(52,66,57,.16);
  padding: clamp(14px, 2vw, 24px);
}
#ebAvailability {
  font-family: var(--almhof-sans) !important;
  font-size: 13px !important;
}
#ebAvailability h1,
#ebAvailability h2,
#ebAvailability h3,
#ebAvailability h4,
#ebAvailability h5,
#ebAvailability h6 {
  font-family: var(--almhof-sans) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  line-height: 1.25 !important;
  margin: 0 0 10px !important;
}
#ebAvailability form {
  margin-bottom: 16px !important;
  padding-bottom: 14px !important;
}
#ebAvailability select,
#ebAvailability input[type="text"],
#ebAvailability input[type="date"] {
  font-size: 13px !important;
  min-height: 40px !important;
  padding: 6px 10px !important;
}
#ebAvailability table {
  border-spacing: 1px !important;
  filter: saturate(.78);
}
#ebAvailability table th,
#ebAvailability table td {
  font-size: 10px !important;
  line-height: 1.1 !important;
  padding: 7px 3px !important;
}
#ebAvailability table tr > :first-child,
#ebAvailability table tr > :first-child *,
#ebAvailability [class*="category"],
#ebAvailability [class*="category"] *,
#ebAvailability [class*="room"],
#ebAvailability [class*="room"] * {
  font-family: var(--almhof-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
}
#ebAvailability table tr > :first-child {
  min-width: 210px !important;
}

/* Keep the footer settings button exactly in the legal-link row. */
.footer__bottom-links {
  align-items: baseline;
}
.footer__bottom-links .almhof-consent-button {
  align-items: baseline;
  display: inline-flex;
  line-height: 1 !important;
  margin: 0;
  transform: none;
}

@media (max-width: 760px) {
  .booking-engine-shell #ebFrontEndFrame h1,
  .booking-engine-shell #ebFrontEndFrame h2,
  .booking-engine-shell #ebFrontEndFrame h3,
  .booking-engine-shell #ebFrontEndFrame h4,
  .booking-engine-shell #ebFrontEndFrame h5,
  .booking-engine-shell #ebFrontEndFrame h6,
  .booking-engine-shell #ebFrontEndFrame .almhof-eb-month-title,
  #ebAvailability h1,
  #ebAvailability h2,
  #ebAvailability h3,
  #ebAvailability h4,
  #ebAvailability h5,
  #ebAvailability h6 {
    font-size: 17px !important;
  }
  #ebAvailability table tr > :first-child { min-width: 150px !important; }
}
