
/* Gut Rechetsberg quality pass v63 */
html { overflow-x: clip; text-rendering: optimizeLegibility; }
body { overflow-x: clip; }
/* Preserve descenders (especially g) in animated/clipped headings. */
h1, h2, h3, [class*="title"], [class*="headline"], [class*="reveal"] {
  overflow: visible;
  padding-bottom: .10em;
  margin-bottom: -.02em;
  text-wrap: balance;
}
[data-i18n], .word, .char, .letter, .line { overflow: visible; }
/* Better image rendering and stable layout. */
picture > img { display:block; }
img { image-rendering:auto; }
/* Form date fields are now self-explanatory on all devices. */
.form-field.date-field { position:relative; padding-top:1.35rem; }
.form-field.date-field .date-label {
  position:absolute; left:0; top:.05rem; z-index:2;
  font-size:.68rem; line-height:1; letter-spacing:.16em; text-transform:uppercase;
  opacity:.72; pointer-events:none;
}
.form-field.date-field input[type="date"] { width:100%; min-height:3.2rem; }
/* Small Country House II: typography aligned with the other accommodation pages. */
body[data-page="small-house-ii"] .sh2-wrap,
body[data-page="small-house-ii"] .sh2-wrap p,
body[data-page="small-house-ii"] .sh2-wrap a,
body[data-page="small-house-ii"] .sh2-wrap span,
body[data-page="small-house-ii"] .sh2-wrap b {
  font-family:"GR Sans", "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
}
body[data-page="small-house-ii"] .sh2-wrap h2,
body[data-page="small-house-ii"] .sh2-wrap blockquote,
body[data-page="small-house-ii"] .sh2-sunset-copy p {
  font-family:"GR Sans", "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  font-weight:300;
  letter-spacing:-.035em;
  line-height:1.03;
}
body[data-page="small-house-ii"] .sh2-wrap h2 { font-size:clamp(2.65rem,5.4vw,6.2rem); }
body[data-page="small-house-ii"] .sh2-kicker { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; }
body[data-page="small-house-ii"] .sh2-wrap p { line-height:1.72; }
body[data-page="small-house-ii"] .sh2-service-grid article { min-width:0; }
body[data-page="small-house-ii"] .sh2-service-grid article p { overflow-wrap:anywhere; }
/* Anfahrt: keep umlauts and ascenders visible during reveal animations. */
.route-video-copy h2, .route-details-title { padding-top:.12em; line-height:1.03; overflow:visible !important; }
/* Prevent awkward giant blank bands caused by fixed/min heights on short mobile viewports. */
@media (max-width: 700px) {
  h1, h2, h3 { text-wrap:pretty; }
  .form-field.date-field { padding-top:1.5rem; }
  body[data-page="small-house-ii"] .sh2-wrap h2 { font-size:clamp(2.35rem,12vw,4.3rem); line-height:1.02; }
  body[data-page="small-house-ii"] .sh2-intro,
  body[data-page="small-house-ii"] .sh2-together,
  body[data-page="small-house-ii"] .sh2-bath,
  body[data-page="small-house-ii"] .sh2-garden { gap:2rem; }
  body[data-page="small-house-ii"] .sh2-floatcard,
  body[data-page="small-house-ii"] .sh2-bath-copy { max-width:calc(100vw - 2rem); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

/* v64 — the tower mark in the navigation is a real home link whenever visible. */
.site-header.scrolled .sticky-mark,
.site-header.menu-open .sticky-mark {
  pointer-events:auto !important;
}


/* =====================================================================
   V65 — MEDIA GEOMETRY RESTORATION
   Restores the page-specific oversized media geometry used by the original
   parallax layouts.  The v63 global max-width/height rules had clamped those
   images to their containers and exposed grey/black strips while scrolling.
   ===================================================================== */

/* GPU-safe transformed media: no one-pixel seams at container edges. */
.story-visual img.story-main-image,
.prx-image-shell img,
.parkx-hero-visual img,
.parkx-pin-frame img,
.parkx-quiet-visual img,
.parkx-panel img,
.parkx-gallery-item img,
.accom-hero-image img,
.accom-photo-frame img,
.request-image,
.region-card img {
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform-origin:center center;
}

/* Homepage editorial stories keep their vertical parallax / zoom / colour
   motion, but no longer drift sideways or rotate into an exposed edge. */
.story-visual img.story-main-image {
  --story-image-x:0px !important;
  --story-image-rotate:0deg !important;
  max-width:none !important;
}

/* Park: the two card families are rendered at natural width in the final
   design.  Sideways translation therefore had no safety overscan.  Keep the
   scroll-driven zoom, remove only the edge-producing translation. */
.parkx-card img {
  --card-x:0px !important;
  --card-y:0px !important;
}
.parkx-activity-card img {
  --act-x:0px !important;
  --act-y:0px !important;
}
/* Other park images are deliberately oversized; explicitly allow that size
   so the original parallax can move without revealing the background. */
.parkx-hero-visual img,
.parkx-intro-visual img,
.parkx-pin-frame img,
.parkx-quiet-visual img,
.parkx-panel img,
.parkx-gallery-item img,
.parkx-cta > img,
.parkx-intro-video {
  max-width:none !important;
}

/* Prices: pictures must occupy the complete image column.  This restores the
   earlier card composition and removes the empty field below the photo. */
.prx-rate-image {
  position:relative;
  overflow:hidden;
}
.prx-rate-image > picture {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
.prx-rate-image > picture > img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none !important;
  object-fit:cover;
}
.prx-image-shell > img,
.prx-image-shell > picture > img {
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform-origin:center center;
}

/* Accommodation media: restore the softer rounded language used before the
   later page integrations. Full-bleed hero, panorama and sticky cinema images
   deliberately remain edge-to-edge. */
body[data-page="grosses-apartment-i"] .apt-media,
body[data-page="grosses-apartment-i"] .dining-detail,
body[data-page="grosses-apartment-i"] .dining-context,
body[data-page="kleines-apartment-ii"] .ksa-media,
body[data-page="grosses-landhaus-i"] .glh-media {
  border-radius:clamp(18px,1.65vw,28px) !important;
  overflow:hidden !important;
}
body[data-page="grosses-apartment-i"] .dining-main-frame,
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame {
  border-radius:clamp(22px,1.9vw,30px) !important;
  overflow:hidden !important;
}

/* Small Country House II: round the contained editorial photographs, but not
   the full-width bath / sunset panoramas. */
body[data-page="small-house-ii"] .sh2-image-main,
body[data-page="small-house-ii"] .sh2-room picture,
body[data-page="small-house-ii"] .sh2-stack > div,
body[data-page="small-house-ii"] .sh2-detail > div,
body[data-page="small-house-ii"] .sh2-garden-grid > div {
  border-radius:clamp(18px,1.65vw,28px);
  overflow:hidden;
}
body[data-page="small-house-ii"] .sh2-garden-grid .wide {
  border-radius:clamp(22px,1.9vw,30px);
}
body[data-page="small-house-ii"] .sh2-bath-bg {
  border-radius:0 clamp(22px,1.9vw,30px) clamp(22px,1.9vw,30px) 0;
  overflow:hidden;
}

/* Keep intentionally enlarged parallax images enlarged. */
.accom-hero-image img,
.request-image,
.region-card img,
.forest-image img {
  max-width:none !important;
}

@media (max-width: 700px) {
  body[data-page="small-house-ii"] .sh2-bath-bg { border-radius:0; }
  body[data-page="grosses-apartment-i"] .apt-media,
  body[data-page="kleines-apartment-ii"] .ksa-media,
  body[data-page="grosses-landhaus-i"] .glh-media,
  body[data-page="small-house-ii"] .sh2-image-main,
  body[data-page="small-house-ii"] .sh2-room picture,
  body[data-page="small-house-ii"] .sh2-stack > div,
  body[data-page="small-house-ii"] .sh2-detail > div,
  body[data-page="small-house-ii"] .sh2-garden-grid > div {
    border-radius:20px !important;
  }
}

/* V65 final media audit — keep every scroll-moving image clipped inside its
   own frame.  This is deliberately scoped to media frames, never to text. */
.story-visual,
.prx-image-shell,
.parkx-hero-visual,
.parkx-intro-visual,
.parkx-pin-frame,
.parkx-card,
.parkx-quiet-visual,
.parkx-activity-card,
.parkx-panel,
.parkx-gallery-item,
.parkx-cta,
.accom-hero-image,
.accom-photo-frame,
.request-visual,
.region-card {
  overflow:hidden;
  isolation:isolate;
}

/* Price accommodation cards: recreate the earlier uninterrupted photo panel.
   The <picture> wrapper must never create its own intrinsic-height row. */
.prx-rate-card .prx-rate-image {
  align-self:stretch;
  min-width:0;
  background:#ded8d0;
}
.prx-rate-card .prx-rate-image > picture {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  line-height:0;
}
.prx-rate-card .prx-rate-image > picture > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* A subtle radius on contained accommodation photography.  Panoramas, hero
   imagery and deliberately full-bleed cinematic frames are not included. */
body[data-page="grosses-apartment-i"] .apt-media,
body[data-page="grosses-apartment-i"] .dining-main-frame,
body[data-page="grosses-apartment-i"] .dining-detail,
body[data-page="grosses-apartment-i"] .dining-context,
body[data-page="kleines-apartment-ii"] .ksa-media,
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame,
body[data-page="grosses-landhaus-i"] .glh-media,
body[data-page="small-house-ii"] .sh2-image-main,
body[data-page="small-house-ii"] .sh2-room picture,
body[data-page="small-house-ii"] .sh2-stack > div,
body[data-page="small-house-ii"] .sh2-detail > div,
body[data-page="small-house-ii"] .sh2-garden-grid > div {
  border-radius:clamp(18px,1.55vw,28px) !important;
  overflow:hidden !important;
  -webkit-background-clip:padding-box;background-clip:padding-box;
}

@media (max-width: 700px) {
  .prx-rate-card .prx-rate-image > picture { inset:0; }
  body[data-page="grosses-apartment-i"] .apt-media,
  body[data-page="kleines-apartment-ii"] .ksa-media,
  body[data-page="grosses-landhaus-i"] .glh-media,
  body[data-page="small-house-ii"] .sh2-image-main,
  body[data-page="small-house-ii"] .sh2-room picture,
  body[data-page="small-house-ii"] .sh2-stack > div,
  body[data-page="small-house-ii"] .sh2-detail > div,
  body[data-page="small-house-ii"] .sh2-garden-grid > div {
    border-radius:18px !important;
  }
}


/* =====================================================================
   V66 — SMALL APARTMENT II EDITORIAL POLISH
   Scoped layout repair: clearer hierarchy, predictable gutters and media
   geometry, no squeezed headings/cards, and a calmer mobile composition.
   ===================================================================== */
body[data-page="kleines-apartment-ii"] {
  overflow-x:hidden;
}
body[data-page="kleines-apartment-ii"] .ksa-section {
  padding-top:clamp(78px,7.2vw,118px);
  padding-bottom:clamp(78px,7.2vw,118px);
}
body[data-page="kleines-apartment-ii"] .ksa-inner {
  width:min(1240px,calc(100% - 72px));
  max-width:1240px;
}
body[data-page="kleines-apartment-ii"] .ksa-title,
body[data-page="kleines-apartment-ii"] .ksa-context-card h3,
body[data-page="kleines-apartment-ii"] .ksa-final h2 {
  overflow:visible;
  padding-bottom:.08em;
  text-wrap:balance;
}

/* Bedroom: keep copy readable and the imagery cinematic without creating an
   over-tall dark band. */
body[data-page="kleines-apartment-ii"] .ksa-sleep {
  padding-top:clamp(82px,7.5vw,124px);
  padding-bottom:clamp(82px,7.5vw,124px);
}
body[data-page="kleines-apartment-ii"] .ksa-sleep-head {
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  gap:clamp(42px,6vw,88px);
  align-items:end;
  margin-bottom:clamp(34px,4vw,58px);
}
body[data-page="kleines-apartment-ii"] .ksa-sleep-head > * { min-width:0; }
body[data-page="kleines-apartment-ii"] .ksa-sleep .ksa-title {
  max-width:10.5ch;
  font-size:clamp(48px,4.9vw,76px);
  line-height:1.02;
}
body[data-page="kleines-apartment-ii"] .ksa-sleep .ksa-copy {
  justify-self:end;
  width:min(100%,510px);
  max-width:510px;
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.78;
}
body[data-page="kleines-apartment-ii"] .ksa-sleep-stage {
  grid-template-columns:minmax(0,1.42fr) minmax(280px,.62fr);
  gap:20px;
}
body[data-page="kleines-apartment-ii"] .ksa-bedroom-wide,
body[data-page="kleines-apartment-ii"] .ksa-bedroom-detail {
  min-height:0;
  height:auto;
  aspect-ratio:1.22 / 1;
}
body[data-page="kleines-apartment-ii"] .ksa-bedroom-detail { aspect-ratio:.66 / 1; }

/* Amenities: each item becomes an independent editorial card.  This removes
   the compressed ruled-table look and keeps the heading safely in its grid. */
body[data-page="kleines-apartment-ii"] .ksa-amenity-head {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(360px,.72fr);
  gap:clamp(42px,7vw,112px);
  align-items:end;
  margin-bottom:clamp(34px,4vw,54px);
}
body[data-page="kleines-apartment-ii"] .ksa-amenity-head > * { min-width:0; }
body[data-page="kleines-apartment-ii"] .ksa-amenity-head .ksa-title {
  max-width:10.8ch;
  font-size:clamp(46px,4.25vw,70px);
  line-height:1.01;
}
body[data-page="kleines-apartment-ii"] .ksa-amenity-head .ksa-copy {
  justify-self:end;
  width:min(100%,500px);
  max-width:500px;
}
body[data-page="kleines-apartment-ii"] .ksa-amenity-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  border:0;
  background:transparent;
  box-shadow:none;
}
body[data-page="kleines-apartment-ii"] .ksa-amenity {
  min-height:220px;
  padding:28px 28px 30px;
  border:1px solid rgba(29,27,24,.10);
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:0 12px 34px rgba(44,31,19,.045);
}

/* Bath & kitchen: remove the offset layout that could push pills or media out
   of the viewport.  The asymmetry now comes from image proportions, not from
   negative/oversized geometry. */
body[data-page="kleines-apartment-ii"] .ksa-practical-head {
  grid-template-columns:minmax(0,.86fr) minmax(360px,.78fr);
  gap:clamp(44px,7vw,108px);
  align-items:start;
  margin-bottom:clamp(42px,5vw,68px);
}
body[data-page="kleines-apartment-ii"] .ksa-practical-head > * { min-width:0; }
body[data-page="kleines-apartment-ii"] .ksa-practical-head .ksa-title {
  max-width:10ch;
  font-size:clamp(46px,4.35vw,72px);
  line-height:1.02;
}
body[data-page="kleines-apartment-ii"] .ksa-practical-head .ksa-copy {
  justify-self:end;
  width:min(100%,520px);
  max-width:520px;
  padding-top:8px;
}
body[data-page="kleines-apartment-ii"] .ksa-checks {
  display:flex;
  max-width:100%;
  gap:8px;
  margin-top:24px;
}
body[data-page="kleines-apartment-ii"] .ksa-check {
  flex:0 1 auto;
  max-width:100%;
  white-space:normal;
}
body[data-page="kleines-apartment-ii"] .ksa-practical-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  align-items:start;
}
body[data-page="kleines-apartment-ii"] .ksa-bath-stack,
body[data-page="kleines-apartment-ii"] .ksa-kitchen-stack { gap:20px; min-width:0; }
body[data-page="kleines-apartment-ii"] .ksa-bath-wide,
body[data-page="kleines-apartment-ii"] .ksa-kitchen-wide {
  margin-top:0;
  aspect-ratio:4 / 3.05;
}
body[data-page="kleines-apartment-ii"] .ksa-bath-detail,
body[data-page="kleines-apartment-ii"] .ksa-kitchen-detail {
  width:82%;
  aspect-ratio:16 / 8.8;
}
body[data-page="kleines-apartment-ii"] .ksa-bath-detail { justify-self:end; }
body[data-page="kleines-apartment-ii"] .ksa-kitchen-detail { justify-self:start; }

/* Park interlude: retain the scroll choreography but shorten the sticky
   passage and always put text on a solid paper panel. */
body[data-page="kleines-apartment-ii"] .accom-photo-moment.ksa-moment {
  /* Shorter scroll stage: keeps the cinematic reveal, but removes the long
     empty tail that appeared after the sticky image had already left view. */
  height:124vh;
  min-height:760px;
  background:#eee7dd;
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-sticky {
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);
  background:#f7f2eb;
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame {
  background:#ded4c8;
}
body[data-page="kleines-apartment-ii"] .ksa-moment-copy {
  position:relative;
  z-index:2;
  padding:clamp(42px,5.2vw,74px);
  background:#f7f2eb;
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-caption h2 {
  max-width:8.6ch;
  font-size:clamp(48px,4.9vw,76px);
  line-height:1.01;
}

/* Navigation cards + CTA: remove unnecessary empty vertical space. */
body[data-page="kleines-apartment-ii"] .ksa-context {
  padding-top:clamp(56px,4.8vw,82px);
  padding-bottom:clamp(72px,6.2vw,104px);
}
body[data-page="kleines-apartment-ii"] .ksa-context-card {
  min-height:315px;
  padding:clamp(30px,3.2vw,46px);
}
body[data-page="kleines-apartment-ii"] .ksa-context-card h3 {
  font-size:clamp(34px,3.15vw,52px);
  max-width:14ch;
}
body[data-page="kleines-apartment-ii"] .ksa-final {
  padding-top:clamp(68px,6vw,100px);
  padding-bottom:clamp(68px,6vw,100px);
}
body[data-page="kleines-apartment-ii"] .ksa-final-inner {
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.72fr);
  grid-template-areas:"title text" "title action";
  gap:18px clamp(36px,5vw,74px);
  padding:clamp(34px,4.2vw,58px);
  align-items:center;
}
body[data-page="kleines-apartment-ii"] .ksa-final h2 {
  max-width:12ch;
  font-size:clamp(40px,4vw,62px);
  line-height:1.04;
}
body[data-page="kleines-apartment-ii"] .ksa-final .accom-btn {
  justify-self:start;
}

@media (max-width:1050px) {
  body[data-page="kleines-apartment-ii"] .ksa-inner { width:min(calc(100% - 48px),960px); }
  body[data-page="kleines-apartment-ii"] .ksa-sleep-head,
  body[data-page="kleines-apartment-ii"] .ksa-amenity-head,
  body[data-page="kleines-apartment-ii"] .ksa-practical-head {
    grid-template-columns:1fr;
    gap:24px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-sleep .ksa-copy,
  body[data-page="kleines-apartment-ii"] .ksa-amenity-head .ksa-copy,
  body[data-page="kleines-apartment-ii"] .ksa-practical-head .ksa-copy {
    justify-self:start;
    width:min(100%,680px);
    max-width:680px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-sleep .ksa-title,
  body[data-page="kleines-apartment-ii"] .ksa-amenity-head .ksa-title,
  body[data-page="kleines-apartment-ii"] .ksa-practical-head .ksa-title { max-width:13ch; }
  body[data-page="kleines-apartment-ii"] .ksa-amenity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  body[data-page="kleines-apartment-ii"] .ksa-section {
    padding:68px 20px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-inner { width:100%; max-width:none; }
  body[data-page="kleines-apartment-ii"] .ksa-title { font-size:clamp(40px,10.6vw,58px); line-height:1.02; }
  body[data-page="kleines-apartment-ii"] .ksa-copy { font-size:16px; line-height:1.72; letter-spacing:.038em; }
  body[data-page="kleines-apartment-ii"] .ksa-sleep { padding:68px 20px; }
  body[data-page="kleines-apartment-ii"] .ksa-sleep-stage { grid-template-columns:1fr; gap:16px; }
  body[data-page="kleines-apartment-ii"] .ksa-bedroom-wide { aspect-ratio:4 / 3; }
  body[data-page="kleines-apartment-ii"] .ksa-bedroom-detail { aspect-ratio:4 / 3.25; }
  body[data-page="kleines-apartment-ii"] .ksa-sleep-caption {
    left:14px; right:14px; bottom:14px; padding:12px 14px; border-radius:14px;
    font-size:10px; letter-spacing:.10em;
  }
  body[data-page="kleines-apartment-ii"] .ksa-amenity-grid { grid-template-columns:1fr; gap:12px; }
  body[data-page="kleines-apartment-ii"] .ksa-amenity { min-height:0; padding:24px; }
  body[data-page="kleines-apartment-ii"] .ksa-practical-grid { grid-template-columns:1fr; gap:18px; }
  body[data-page="kleines-apartment-ii"] .ksa-bath-detail,
  body[data-page="kleines-apartment-ii"] .ksa-kitchen-detail { width:100%; aspect-ratio:16 / 10; }
  body[data-page="kleines-apartment-ii"] .ksa-checks { gap:7px; }
  body[data-page="kleines-apartment-ii"] .ksa-check { padding:8px 10px; font-size:9px; letter-spacing:.10em; }

  body[data-page="kleines-apartment-ii"] .accom-photo-moment.ksa-moment {
    height:auto;
    min-height:0;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-sticky {
    position:relative;
    height:auto;
    display:grid;
    grid-template-columns:1fr;
    overflow:visible;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame {
    aspect-ratio:4 / 3;
    -webkit-clip-path:none !important;clip-path:none !important;
    border-radius:0 !important;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame img {
    transform:none !important;
    object-position:center 54%;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment-copy {
    padding:46px 22px 54px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-caption {
    opacity:1 !important;
    transform:none !important;
    max-width:620px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-caption h2 {
    max-width:10ch;
    font-size:clamp(42px,11vw,60px);
  }
  body[data-page="kleines-apartment-ii"] .ksa-context-grid { gap:14px; }
  body[data-page="kleines-apartment-ii"] .ksa-context-card { min-height:0; padding:28px 24px; }
  body[data-page="kleines-apartment-ii"] .ksa-context-card h3 { font-size:clamp(34px,9vw,48px); }
  body[data-page="kleines-apartment-ii"] .ksa-context-arrow { margin-top:30px; }
  body[data-page="kleines-apartment-ii"] .ksa-final { padding:60px 20px; }
  body[data-page="kleines-apartment-ii"] .ksa-final-inner {
    width:100%;
    grid-template-columns:1fr;
    grid-template-areas:"title" "text" "action";
    gap:22px;
    padding:30px 24px;
    border-radius:24px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-final h2 {
    max-width:none;
    font-size:clamp(38px,10vw,54px);
  }
  body[data-page="kleines-apartment-ii"] .ksa-final .accom-btn {
    width:100%;
    justify-self:stretch;
  }
}

@media (max-width:520px) {
  body[data-page="kleines-apartment-ii"] .ksa-section { padding-left:16px; padding-right:16px; }
  body[data-page="kleines-apartment-ii"] .ksa-sleep { padding-left:16px; padding-right:16px; }
  body[data-page="kleines-apartment-ii"] .ksa-practical-head .ksa-title,
  body[data-page="kleines-apartment-ii"] .ksa-amenity-head .ksa-title,
  body[data-page="kleines-apartment-ii"] .ksa-sleep .ksa-title { font-size:clamp(38px,12vw,52px); }
  body[data-page="kleines-apartment-ii"] .ksa-kicker { font-size:10px; letter-spacing:.19em; }
}

/* =====================================================================
   V69 — FINAL VISUAL POLISH / RESPONSIVE CONSISTENCY
   ===================================================================== */

/* Home scroll stories: keep generous overscan from the very first frame so
   the parallax transform can never expose the neutral frame as a top strip. */
body[data-page="home"] .story-visual img.story-main-image,
body:not([data-page]) .story-visual img.story-main-image {
  inset:-13% !important;
  width:126% !important;
  height:126% !important;
  min-width:126% !important;
  min-height:126% !important;
  transform:translate3d(0,var(--story-image-y,38px),0) scale(var(--story-image-scale,1.10)) !important;
}
.story-visual { background:#d9d5cf; }

/* Small Apartment II: cards are intended as self-contained information
   fields. Centre the content optically and vertically, not only the box. */
body[data-page="kleines-apartment-ii"] .ksa-amenity {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}
body[data-page="kleines-apartment-ii"] .ksa-amenity-index { margin-bottom:14px; }
body[data-page="kleines-apartment-ii"] .ksa-amenity h3 { max-width:15ch; }
body[data-page="kleines-apartment-ii"] .ksa-amenity p { max-width:31ch; }
body[data-page="kleines-apartment-ii"] .ksa-micro-note { text-align:center; align-items:center; }
body[data-page="kleines-apartment-ii"] .ksa-image-label { text-align:center; }
body[data-page="kleines-apartment-ii"] .ksa-media,
body[data-page="kleines-apartment-ii"] .ksa-card { border-color:rgba(29,27,24,.075); }

/* Small Country House II: same soft image language and document typeface as
   the other accommodation pages. Full-bleed cinematic sections stay square. */
body[data-page="small-house-ii"] .sh2-wrap,
body[data-page="small-house-ii"] .sh2-wrap * {
  font-family:"GR Sans","Avenir Next",Avenir,"Segoe UI",Helvetica,Arial,sans-serif !important;
}
body[data-page="small-house-ii"] .sh2-wrap h1,
body[data-page="small-house-ii"] .sh2-wrap h2,
body[data-page="small-house-ii"] .sh2-wrap h3,
body[data-page="small-house-ii"] .sh2-wrap blockquote,
body[data-page="small-house-ii"] .sh2-sunset-copy,
body[data-page="small-house-ii"] .sh2-service article b {
  font-style:normal !important;
  font-weight:250 !important;
  letter-spacing:-.025em !important;
}
body[data-page="small-house-ii"] .sh2-image-main,
body[data-page="small-house-ii"] .sh2-room picture,
body[data-page="small-house-ii"] .sh2-stack > div,
body[data-page="small-house-ii"] .sh2-detail > div,
body[data-page="small-house-ii"] .sh2-garden-grid > div {
  border-radius:26px !important;
  overflow:hidden !important;
  isolation:isolate;
}
body[data-page="small-house-ii"] .sh2-floatcard,
body[data-page="small-house-ii"] .sh2-bath-copy {
  border-radius:24px;
}
body[data-page="small-house-ii"] .sh2-detail blockquote {
  border-radius:20px;
  box-shadow:0 18px 54px rgba(35,29,23,.09);
}

/* General media seam protection. Particularly useful on mobile Safari where
   transformed images can reveal a one-pixel line along the clipping edge. */
.story-visual,.ksa-media,.glh-media,.apt-media,
body[data-page="small-house-ii"] .sh2-image-main,
body[data-page="small-house-ii"] .sh2-room picture,
body[data-page="small-house-ii"] .sh2-stack > div,
body[data-page="small-house-ii"] .sh2-detail > div,
body[data-page="small-house-ii"] .sh2-garden-grid > div {
  -webkit-mask-image:-webkit-radial-gradient(white,black);
}

@media (max-width: 700px) {
  /* Remove decorative offsets that read as accidental gaps on small screens. */
  .story-section,.story-section.story-reverse { min-height:0; }
  .story-visual { min-height:clamp(360px,78vw,560px); }
  body[data-page="home"] .story-visual img.story-main-image,
  body:not([data-page]) .story-visual img.story-main-image {
    inset:-15% !important;
    width:130% !important;
    height:130% !important;
    min-width:130% !important;
    min-height:130% !important;
  }
  body[data-page="kleines-apartment-ii"] .ksa-amenity { padding:26px 22px; }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame {
    margin:0 16px;
    width:calc(100% - 32px);
    border-radius:20px !important;
  }
  body[data-page="small-house-ii"] .sh2-intro,
  body[data-page="small-house-ii"] .sh2-rooms,
  body[data-page="small-house-ii"] .sh2-garden,
  body[data-page="small-house-ii"] .sh2-detail { padding-left:20px; padding-right:20px; }
  body[data-page="small-house-ii"] .sh2-image-main,
  body[data-page="small-house-ii"] .sh2-room picture,
  body[data-page="small-house-ii"] .sh2-stack > div,
  body[data-page="small-house-ii"] .sh2-detail > div,
  body[data-page="small-house-ii"] .sh2-garden-grid > div { border-radius:20px !important; }
  body[data-page="small-house-ii"] .sh2-floatcard,
  body[data-page="small-house-ii"] .sh2-bath-copy {
    margin-left:0;
    margin-right:0;
    max-width:100%;
    border-radius:20px;
  }
  body[data-page="small-house-ii"] .sh2-detail blockquote {
    margin-left:12px;
    margin-right:12px;
  }
}

@media (max-width:520px) {
  body[data-page="small-house-ii"] .sh2-intro,
  body[data-page="small-house-ii"] .sh2-rooms,
  body[data-page="small-house-ii"] .sh2-garden,
  body[data-page="small-house-ii"] .sh2-detail { padding-left:16px; padding-right:16px; }
  body[data-page="small-house-ii"] .sh2-service { padding-left:16px; padding-right:16px; }
  body[data-page="small-house-ii"] .sh2-service article { padding:26px 22px; }
  body[data-page="small-house-ii"] .sh2-bath-copy { padding:34px 24px; }
}

/* =====================================================================
   V70 — USER-REVIEW POLISH
   Small Apartment II + Small Country House II
   ===================================================================== */

/* Small Apartment II — ensure the editorial note is genuinely centred. */
body[data-page="kleines-apartment-ii"] .ksa-micro-note {
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
  padding:clamp(28px,3vw,42px) !important;
}
body[data-page="kleines-apartment-ii"] .ksa-micro-note strong,
body[data-page="kleines-apartment-ii"] .ksa-micro-note span {
  width:100%;
  max-width:34ch;
  margin-left:auto;
  margin-right:auto;
}
body[data-page="kleines-apartment-ii"] .ksa-micro-note strong { margin-bottom:14px; }

/* Small Apartment II — preserve the welcome photograph's natural 3:2 framing.
   Rather than forcing a landscape photo into a full-height portrait crop, it
   sits as a deliberate framed photograph within the sticky split layout. */
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-sticky {
  grid-template-columns:minmax(0,1.14fr) minmax(390px,.86fr);
  align-items:center;
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame {
  position:relative !important;
  inset:auto !important;
  width:calc(100% - clamp(40px,5vw,86px));
  height:auto !important;
  aspect-ratio:3 / 2;
  margin:0 auto;
  -webkit-clip-path:none !important;clip-path:none !important;
  border-radius:clamp(22px,1.9vw,30px) !important;
  background:#e8dfd4;
  box-shadow:0 24px 70px rgba(49,39,29,.10);
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center !important;
  transform:translateY(var(--accom-photo-y,0px)) scale(var(--accom-photo-scale,1.025)) !important;
  filter:none;
}
body[data-page="kleines-apartment-ii"] .ksa-moment-copy {
  min-height:100%;
  display:flex;
  align-items:center;
}

/* Small Country House II — quieter, more consistent opening composition. */
body[data-page="small-house-ii"] .sh2-wrap { --sage:#28251f; }
body[data-page="small-house-ii"] .sh2-intro {
  max-width:1320px;
  padding:clamp(90px,8vw,126px) 5vw clamp(86px,8vw,118px);
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.72fr);
  gap:clamp(54px,7vw,112px);
  align-items:center;
}
body[data-page="small-house-ii"] .sh2-intro h2 {
  max-width:11.5ch;
  margin-top:20px;
  font-size:clamp(48px,5vw,72px) !important;
  line-height:1.02 !important;
  letter-spacing:-.03em !important;
  color:#28251f !important;
}
body[data-page="small-house-ii"] .sh2-intro h2 em {
  color:inherit !important;
  display:inline;
}
body[data-page="small-house-ii"] .sh2-intro-copy {
  max-width:48ch;
  font-size:clamp(16px,1.12vw,18px);
  line-height:1.82;
  letter-spacing:.025em;
}

/* Replace the isolated italic quotation treatment with the same editorial
   type language used throughout the accommodation pages. */
body[data-page="small-house-ii"] .sh2-quote {
  grid-column:1 / -1;
  width:min(760px,88%);
  margin:clamp(44px,5vw,72px) auto 0;
  padding:0;
  text-align:center;
  color:#3f3a34;
  font-family:"GR Sans","Avenir Next",Avenir,"Segoe UI",Helvetica,Arial,sans-serif !important;
  font-size:clamp(20px,1.7vw,27px) !important;
  font-style:normal !important;
  font-weight:300 !important;
  line-height:1.55 !important;
  letter-spacing:.015em !important;
}
body[data-page="small-house-ii"] .sh2-quote p { margin:0; }

/* Coming together — one coherent editorial module: copy above two equally
   weighted images, so dining room and kitchen read as one story. */
body[data-page="small-house-ii"] .sh2-together {
  padding:clamp(92px,8vw,126px) max(5vw,calc((100vw - 1320px)/2));
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(42px,5vw,68px);
  align-items:start;
  background:#ebe8e0;
}
body[data-page="small-house-ii"] .sh2-together-copy {
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(420px,1.22fr);
  column-gap:clamp(50px,7vw,110px);
  align-items:end;
}
body[data-page="small-house-ii"] .sh2-together-copy .sh2-kicker {
  grid-column:1;
  align-self:start;
  margin:0 0 18px;
}
body[data-page="small-house-ii"] .sh2-together-copy h2 {
  grid-column:1;
  margin:0 !important;
  max-width:10ch;
  font-size:clamp(46px,4.5vw,66px) !important;
  line-height:1.02 !important;
}
body[data-page="small-house-ii"] .sh2-together-copy > p:not(.sh2-kicker) {
  grid-column:2;
  grid-row:1 / span 2;
  align-self:center;
  max-width:48ch;
  margin:0;
  font-size:17px;
  line-height:1.82;
  letter-spacing:.025em;
}
body[data-page="small-house-ii"] .sh2-chips {
  grid-column:2;
  margin-top:24px;
}
body[data-page="small-house-ii"] .sh2-stack {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(16px,2vw,28px);
}
body[data-page="small-house-ii"] .sh2-stack > div:first-child,
body[data-page="small-house-ii"] .sh2-stack > div:last-child {
  height:clamp(390px,34vw,520px) !important;
  margin:0 !important;
}
body[data-page="small-house-ii"] .sh2-stack img { object-position:center center; }

@media (max-width: 700px) {
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-sticky {
    grid-template-columns:1fr;
    padding-top:18px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame {
    width:calc(100% - 32px);
    aspect-ratio:3 / 2 !important;
    margin:0 16px;
  }
  body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-frame img {
    transform:none !important;
    object-position:center center !important;
  }
  body[data-page="small-house-ii"] .sh2-intro {
    grid-template-columns:1fr;
    gap:30px;
    padding-top:72px;
    padding-bottom:76px;
  }
  body[data-page="small-house-ii"] .sh2-intro h2 {
    max-width:12ch;
    font-size:clamp(42px,10.5vw,60px) !important;
  }
  body[data-page="small-house-ii"] .sh2-quote {
    width:100%;
    margin:34px auto 0;
    text-align:left;
    font-size:clamp(19px,5.4vw,24px) !important;
  }
  body[data-page="small-house-ii"] .sh2-together-copy {
    grid-template-columns:1fr;
    gap:0;
  }
  body[data-page="small-house-ii"] .sh2-together-copy .sh2-kicker,
  body[data-page="small-house-ii"] .sh2-together-copy h2,
  body[data-page="small-house-ii"] .sh2-together-copy > p:not(.sh2-kicker),
  body[data-page="small-house-ii"] .sh2-chips {
    grid-column:1;
    grid-row:auto;
  }
  body[data-page="small-house-ii"] .sh2-together-copy h2 { margin-bottom:24px !important; }
  body[data-page="small-house-ii"] .sh2-stack { grid-template-columns:1fr; }
  body[data-page="small-house-ii"] .sh2-stack > div:first-child,
  body[data-page="small-house-ii"] .sh2-stack > div:last-child {
    height:auto !important;
    aspect-ratio:4 / 3;
  }
}

/* =====================================================================
   V71 — direct page corrections from visual QA
   ===================================================================== */

/* Small Apartment II: remove the artificial scroll spacer/dead colour band.
   Keep the editorial two-column composition, but let it occupy only the
   content it actually needs. */
body[data-page="kleines-apartment-ii"] .accom-photo-moment.ksa-moment {
  height:auto !important;
  min-height:0 !important;
  padding:clamp(46px,5vw,76px) 0 !important;
  background:#ebe4da !important;
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-sticky {
  position:relative !important;
  top:auto !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  width:min(1460px,100%) !important;
  margin:0 auto !important;
}
body[data-page="kleines-apartment-ii"] .ksa-moment .accom-photo-caption {
  opacity:1 !important;
  transform:none !important;
}

/* Small Apartment II: precise centring of note card regardless of inherited
   grid alignment from the original page. */
body[data-page="kleines-apartment-ii"] .ksa-intro-gallery .ksa-micro-note {
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
}
body[data-page="kleines-apartment-ii"] .ksa-intro-gallery .ksa-micro-note > * {
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

/* Small Country House II — editorial reset. No green display type, no
   quotation typography, and no oversized cover-like headline. */
body[data-page="small-house-ii"] .sh2-wrap { --sage:#2b2824 !important; }
body[data-page="small-house-ii"] .sh2-wrap h2,
body[data-page="small-house-ii"] .sh2-wrap h2 em,
body[data-page="small-house-ii"] .sh2-wrap em,
body[data-page="small-house-ii"] .sh2-wrap blockquote {
  color:#2b2824 !important;
  font-family:"GR Sans","Avenir Next",Avenir,"Segoe UI",Helvetica,Arial,sans-serif !important;
  font-style:normal !important;
}
body[data-page="small-house-ii"] .sh2-intro {
  width:min(1280px,calc(100% - 64px)) !important;
  max-width:1280px !important;
  margin:0 auto !important;
  padding:clamp(76px,7vw,108px) 0 clamp(72px,7vw,104px) !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.03fr) minmax(340px,.72fr) !important;
  gap:clamp(54px,7vw,104px) !important;
  align-items:center !important;
}
body[data-page="small-house-ii"] .sh2-intro h2 {
  max-width:11.5ch !important;
  margin:18px 0 0 !important;
  font-size:clamp(44px,4.15vw,64px) !important;
  line-height:1.04 !important;
  letter-spacing:-.025em !important;
  font-weight:300 !important;
}
body[data-page="small-house-ii"] .sh2-intro h2 em {
  display:inline !important;
  font-size:inherit !important;
  font-weight:300 !important;
}
body[data-page="small-house-ii"] .sh2-intro-copy {
  max-width:48ch !important;
  padding:clamp(30px,3vw,42px) !important;
  border:1px solid rgba(52,46,39,.10) !important;
  border-radius:28px !important;
  background:#f4f0e9 !important;
  box-shadow:0 22px 58px rgba(46,38,31,.055) !important;
  font-size:16px !important;
  line-height:1.82 !important;
}

/* "Klein aber fein" / "Small and special" becomes a normal editorial
   statement using the same document typeface and scale as surrounding copy. */
body[data-page="small-house-ii"] .sh2-quote {
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:none !important;
  margin:42px 0 0 !important;
  padding:30px clamp(28px,4vw,50px) !important;
  border:1px solid rgba(52,46,39,.10) !important;
  border-radius:26px !important;
  background:#f5f1ea !important;
  box-shadow:none !important;
  text-align:left !important;
  font-size:clamp(18px,1.35vw,21px) !important;
  line-height:1.62 !important;
  font-weight:300 !important;
  letter-spacing:.01em !important;
}
body[data-page="small-house-ii"] .sh2-quote p {
  max-width:72ch !important;
  margin:0 !important;
}

/* Coming together: a calm text header followed by a disciplined, equal-size
   two-image gallery. */
body[data-page="small-house-ii"] .sh2-together {
  display:block !important;
  padding:clamp(82px,7vw,112px) max(32px,calc((100vw - 1280px)/2)) !important;
  background:#ece8e1 !important;
}
body[data-page="small-house-ii"] .sh2-together-copy {
  width:min(1280px,100%) !important;
  margin:0 auto clamp(44px,5vw,64px) !important;
  display:grid !important;
  grid-template-columns:minmax(0,.86fr) minmax(390px,1.14fr) !important;
  grid-template-areas:"kicker text" "title text" "title chips" !important;
  column-gap:clamp(52px,7vw,104px) !important;
  align-items:start !important;
}
body[data-page="small-house-ii"] .sh2-together-copy .sh2-kicker { grid-area:kicker !important; margin:0 0 16px !important; }
body[data-page="small-house-ii"] .sh2-together-copy h2 {
  grid-area:title !important;
  max-width:10.5ch !important;
  margin:0 !important;
  font-size:clamp(42px,3.9vw,58px) !important;
  line-height:1.05 !important;
  letter-spacing:-.02em !important;
  font-weight:300 !important;
}
body[data-page="small-house-ii"] .sh2-together-copy > p:not(.sh2-kicker) {
  grid-area:text !important;
  max-width:52ch !important;
  margin:0 !important;
  font-size:16px !important;
  line-height:1.82 !important;
}
body[data-page="small-house-ii"] .sh2-chips { grid-area:chips !important; margin:24px 0 0 !important; }
body[data-page="small-house-ii"] .sh2-stack {
  width:min(1280px,100%) !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:clamp(18px,2vw,28px) !important;
}
body[data-page="small-house-ii"] .sh2-stack > div:first-child,
body[data-page="small-house-ii"] .sh2-stack > div:last-child {
  height:auto !important;
  aspect-ratio:4 / 3 !important;
  margin:0 !important;
  overflow:hidden !important;
  border-radius:28px !important;
  background:#ddd5ca !important;
}
body[data-page="small-house-ii"] .sh2-stack img {
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}

@media (max-width: 700px) {
  body[data-page="kleines-apartment-ii"] .accom-photo-moment.ksa-moment { padding:28px 0 !important; }
  body[data-page="small-house-ii"] .sh2-intro {
    width:calc(100% - 36px) !important;
    grid-template-columns:1fr !important;
    gap:28px !important;
    padding:64px 0 72px !important;
  }
  body[data-page="small-house-ii"] .sh2-intro h2 { font-size:clamp(40px,10vw,54px) !important; }
  body[data-page="small-house-ii"] .sh2-intro-copy { padding:28px 24px !important; }
  body[data-page="small-house-ii"] .sh2-quote { margin-top:28px !important; padding:26px 24px !important; }
  body[data-page="small-house-ii"] .sh2-together { padding:72px 18px !important; }
  body[data-page="small-house-ii"] .sh2-together-copy {
    grid-template-columns:1fr !important;
    grid-template-areas:"kicker" "title" "text" "chips" !important;
    gap:0 !important;
    margin-bottom:36px !important;
  }
  body[data-page="small-house-ii"] .sh2-together-copy h2 { margin-bottom:24px !important; }
  body[data-page="small-house-ii"] .sh2-stack { grid-template-columns:1fr !important; }
  body[data-page="small-house-ii"] .sh2-stack > div:first-child,
  body[data-page="small-house-ii"] .sh2-stack > div:last-child { border-radius:22px !important; aspect-ratio:4 / 3 !important; }
}
