/* Gut Kletkamp – Widget-Styles, geteilt von allen Einbau-Varianten.
 * Superset: Start-Suchleiste, Teaser, Einzel-Widget, Buchungsseite.
 * Wird nach Netlify deployt und von den Webflow-Embeds
 * (webflow/*.html) per <link> von gutkletkamp.netlify.app geladen —
 * Änderungen hier gehen also automatisch live, KEIN manuelles
 * Nachpflegen in Webflow nötig. */
.gk-wrap {
  --gk-bg: #f7f4ee;
  --gk-bg-warm: #fff8ec;
  --gk-cream: #e8e2d6;
  --gk-text: #1f1b14;
  --gk-text-muted: #4c554b;
  --gk-text-light: #6f6656;
  --gk-line: #d8d2c4;
  --gk-line-soft: #e6e1d6;
  --gk-olive: #4c554b;
  --gk-olive-dark: #3d4339;
  --gk-sage: #c7d6b9;
  --gk-sage-light: #ebf0e7;
  --gk-sage-dark: #9bad8c;
  --gk-gold: #ecd9a8;
  --gk-accent: #f48f0b;
  --gk-error: #c0392b;
  --serif: "Times New Roman", Baskerville, Georgia, serif;
  --sans: "Montserrat", -apple-system, sans-serif;
  --script: "Great Vibes", cursive;
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 16px;
  --shadow: 0 6px 28px rgba(31, 27, 20, .07);
  --shadow-deep: 0 16px 48px rgba(31, 27, 20, .14);
  font-family: var(--sans);
  color: var(--gk-text);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  /* All responsive widget decisions use this exact outer width. Naming the
   * container prevents the nested .gk-teaser container from becoming the
   * accidental query reference and keeps CSS aligned with widget.js. */
  container: gkwrap / inline-size;
}
.gk-wrap, .gk-wrap * { box-sizing: border-box; }
.gk-wrap [hidden] { display: none !important; }
.gk-wrap .gk-teaser { container-type: inline-size; }
/* Nur der gerade offene Picker steigt über spätere Widget-Container; die Navbar
 * bleibt mit z-index 5 darüber. Ein globales z-index würde spätere .gk-wrap
 * wieder über den herausragenden Picker malen. */
.gk-wrap.gk-popover-open { position: relative; z-index: 4; }

/* ===== Start-Suchleiste ===== */
.gk-wrap .gk-start { position: relative; display: flex; gap: 8px; align-items: stretch; background: #fffffff5; border: 1px solid var(--gk-line-soft); border-radius: 20px; box-shadow: var(--shadow-deep); padding: 14px; flex-wrap: wrap; }
.gk-wrap .start-field {
  flex: 1 1 150px;
  min-width: 140px;
  min-height: 62px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: min-content minmax(26px, 1fr);
  align-content: center;
  justify-items: center;
  background: var(--gk-bg);
  border: 1px solid var(--gk-line-soft);
  border-radius: var(--r-md);
  padding: 9px 10px;
  text-align: center;
  transition: border-color .15s;
  font: inherit;
  color: inherit;
  appearance: none;
}
.gk-wrap .start-field[hidden] { display: none; }
.gk-wrap .start-field:hover { border-color: var(--gk-olive); }
.gk-wrap .start-field label,
.gk-wrap .start-field-label { display: block; width: 100%; font-size: 9px; line-height: 1.35; letter-spacing: 1.5px; text-transform: uppercase; text-align: center; color: var(--gk-text-muted); font-weight: 500; margin: 0 0 3px; cursor: inherit; }
.gk-wrap button.start-field:focus-visible,
.gk-wrap .start-apt-btn:focus-visible,
.gk-wrap .stepper-btn:focus-visible,
.gk-wrap .cal-nav:focus-visible,
.gk-wrap .cal-day:focus-visible,
.gk-wrap .cal-clear-link:focus-visible,
.gk-wrap .cal-retry-button:focus-visible,
.gk-wrap .gk-cta:focus-visible { outline: 3px solid #846a28; outline-offset: 3px; }
.gk-wrap .start-field select { font-family: var(--serif); font-size: 16px; color: var(--gk-text); background: transparent; border: none; width: 100%; cursor: pointer; appearance: none; padding: 0; }
.gk-wrap .start-field select:focus { outline: none; }
.gk-wrap .start-field.start-dates { flex: 1.4 1 200px; cursor: pointer; }
.gk-wrap .start-apt-field { position: relative; cursor: pointer; }
.gk-wrap .start-apt-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-width: 0; min-height: 26px; background: none; border: none; padding: 0; cursor: pointer; text-align: center; font-family: inherit; color: inherit; }
.gk-wrap .start-apt-thumb { width: 26px; height: 26px; border-radius: 50%; background: var(--gk-sage) center/cover no-repeat; flex: none; border: 1px solid var(--gk-line-soft); }
.gk-wrap .start-apt-thumb.any { background-color: var(--gk-cream); }
.gk-wrap .start-apt-btn span:last-child { min-width: 0; font-family: var(--serif); font-size: 15px; line-height: 1.2; color: var(--gk-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gk-wrap .start-apt-pop { position: absolute; top: calc(100% + 8px); left: 0; min-width: 260px; max-height: 320px; overflow-y: auto; z-index: 61; background: #fff; border: 1px solid var(--gk-line-soft); border-radius: var(--r-md); box-shadow: var(--shadow-deep); padding: 6px; }
.gk-wrap .start-apt-opt { display: flex; align-items: center; gap: 10px; width: 100%; background: none; border: none; padding: 6px 8px; border-radius: var(--r-sm); cursor: pointer; text-align: left; }
.gk-wrap .start-apt-opt:hover { background: var(--gk-sage-light); }
.gk-wrap .start-apt-opt.active { background: var(--gk-sage-light); }
.gk-wrap .start-apt-opt-thumb { width: 30px; height: 30px; border-radius: 50%; background: var(--gk-sage) center/cover no-repeat; flex: none; }
.gk-wrap .start-apt-opt-thumb.any { background-color: var(--gk-cream); }
.gk-wrap .start-apt-opt span:last-child { font-family: var(--serif); font-size: 14px; color: var(--gk-text); }
.gk-wrap .start-apt-opt em { font-style: normal; color: var(--gk-text-light); font-size: 12px; }
.gk-wrap .start-dates-value { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 26px; font-family: var(--serif); font-size: 16px; line-height: 1.2; text-align: center; color: var(--gk-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gk-wrap .start-dates-value.placeholder { color: var(--gk-text-light); font-style: italic; }
.gk-wrap .start-field.start-num { flex: 0 1 110px; min-width: 96px; padding-inline: 9px; }
.gk-wrap .start-field.start-num .stepper { width: 100%; min-height: 26px; margin-inline: auto; }
.gk-wrap .gk-start .gk-cta { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; min-height: 62px; height: 100%; text-align: center; }
@container (min-width: 768px) {
  .gk-wrap .gk-start { display: grid; grid-template-columns: minmax(162px, 1.1fr) minmax(150px, 1fr) minmax(104px, 104px) minmax(104px, 104px) minmax(186px, 208px); }
  .gk-wrap .start-field, .gk-wrap .start-field.start-dates, .gk-wrap .start-field.start-num { min-width: 0; }
  .gk-wrap .gk-start .gk-child-ages { grid-column: 1 / -1; grid-row: 2; }
  .gk-wrap .gk-start .gk-cta { grid-column: 5; grid-row: 1; min-width: 0; padding-inline: 18px; font-size: 12px; line-height: 1.25; }
}
@container (max-width: 767.98px) {
  .gk-wrap .start-field, .gk-wrap .start-field.start-dates { flex: 1 1 100%; }
  .gk-wrap .start-field.start-num { flex: 1 1 40%; }
  .gk-wrap .gk-start .gk-cta { flex: 1 1 100%; height: 48px; }
}
/* Altbrowser ohne Container Queries behalten die mobile Stapelung. */
@supports not (container-type: inline-size) {
  @media (max-width: 760px) {
    .gk-wrap .start-field, .gk-wrap .start-field.start-dates { flex: 1 1 100%; }
    .gk-wrap .start-field.start-num { flex: 1 1 40%; }
    .gk-wrap .gk-start .gk-cta { flex: 1 1 100%; height: 48px; }
  }
}
.gk-wrap .gk-teaser.teaser-single .gk-start { display: flex; }
.gk-wrap .gk-teaser.teaser-single .start-field.start-dates { flex: 1 1 100%; min-width: 140px; }
.gk-wrap .gk-teaser.teaser-single .start-field.start-num { flex: 1 1 40%; min-width: 96px; }
.gk-wrap .gk-teaser.teaser-single .gk-cta { flex: 1 1 100%; min-width: 0; height: 48px; }
.gk-wrap .gk-teaser.teaser-single .child-ages-title { flex: 0 0 100%; margin-right: 0; }
.gk-wrap .gk-teaser.teaser-single .child-age-field { flex: 1 1 100%; justify-content: space-between; }
.gk-wrap .gk-teaser.teaser-single .start-cal-popover { left: auto; right: 0; }
@media (max-width: 480px) {
  .gk-wrap[data-gk-mode="home"] .start-cal-popover,
  .gk-wrap .start-cal-popover,
  .gk-wrap .gk-teaser.teaser-single .start-cal-popover {
    left: 50%; right: auto; transform: translateX(-50%);
    width: calc(100vw - 24px); max-width: none;
  }
}
.gk-wrap .start-cal-popover { position: absolute; top: calc(100% + 10px); left: 0; width: 380px; max-width: calc(100vw - 48px); z-index: 60; background: #fff; border: 1px solid var(--gk-line-soft); border-radius: var(--r-lg); box-shadow: var(--shadow-deep); padding: 20px 22px; }
.gk-wrap[data-gk-mode="home"] .start-cal-popover {
  max-height: calc(100vh - 112px);
  max-height: min(680px, calc(100dvh - 112px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.gk-wrap .start-cal-popover .cal-months { grid-template-columns: 1fr; }
.gk-wrap .start-cal-popover .cal-month:nth-child(2) { display: none; }

/* ===== Stepper (geteilt) ===== */
.gk-wrap .stepper { display: flex; align-items: center; justify-content: space-between; }
.gk-wrap .stepper-btn { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--gk-line); background: #fff; color: var(--gk-text); font-family: var(--sans); font-size: 14px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color .15s; }
.gk-wrap .stepper-btn:hover:not(:disabled) { border-color: var(--gk-olive); }
.gk-wrap .stepper-btn:disabled { opacity: .3; cursor: not-allowed; }
.gk-wrap .stepper-value { font-family: var(--serif); font-size: 16px; line-height: 22px; min-width: 18px; text-align: center; }
.gk-wrap .gk-child-ages { flex: 1 1 100%; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; background: var(--gk-bg); border: 1px solid var(--gk-line-soft); border-radius: var(--r-md); padding: 8px 12px; text-align: left; }
.gk-wrap .gk-child-ages[hidden] { display: none; }
.gk-wrap .child-ages-title { margin-right: 4px; font-size: 9px; letter-spacing: 1.3px; text-transform: uppercase; color: var(--gk-text-muted); font-weight: 500; }
.gk-wrap .child-age-field { display: flex; align-items: center; gap: 5px; font-size: 10px; color: var(--gk-text-light); }
.gk-wrap .child-age-field select { min-height: 30px; border: 1px solid var(--gk-line); border-radius: var(--r-sm); background: #fff; color: var(--gk-text); font: 12px var(--sans); padding: 3px 24px 3px 7px; }

/* ===== Einzel-Widget (Buchungs-Karte) ===== */
.gk-wrap .gk-widget { background: #fff; border: 1px solid var(--gk-line-soft); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: hidden; }
.gk-wrap .section { padding: 22px 26px; }
.gk-wrap .section-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; flex-wrap: wrap; gap: 8px; }
.gk-wrap .section-title { font-family: var(--serif); font-size: 20px; margin: 0; }
.gk-wrap .section-hint { font-size: 12px; color: var(--gk-text-light); }

/* ===== Karussell / Fakten ===== */
.gk-wrap .apt-carousel { position: relative; width: 100%; aspect-ratio: 16 / 7; border-radius: var(--r-md); overflow: hidden; margin-bottom: 14px; background: var(--gk-cream); }
.gk-wrap .apt-carousel-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.4s ease; }
.gk-wrap .apt-carousel-slide.active { opacity: 1; }
.gk-wrap .apt-carousel-toggle { position: absolute; z-index: 2; right: 10px; bottom: 10px; min-height: 34px; border: 1px solid rgba(255,255,255,.75); border-radius: 999px; padding: 6px 12px; background: rgba(31,27,20,.76); color: #fff; font: 600 10px/1.2 var(--sans); cursor: pointer; }
.gk-wrap .apt-carousel-toggle:hover { background: rgba(31,27,20,.92); }
@media (prefers-reduced-motion: reduce) {
  .gk-wrap .apt-carousel-slide { transition: none; }
  .gk-wrap .cal-day, .gk-wrap .gk-cta { transition: none; }
}
.gk-wrap .apt-facts { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.gk-wrap .apt-facts-item { font-family: var(--sans); font-size: 11.5px; font-weight: 600; letter-spacing: .2px; color: var(--gk-olive); background: var(--gk-sage-light); border: 1px solid var(--gk-sage-dark); border-radius: 999px; padding: 4px 12px; }

/* ===== Kalender ===== */
.gk-wrap .cal-legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px 18px; font-size: 13px; font-weight: 600; color: var(--gk-text-muted); margin-bottom: 18px; padding: 12px 14px; background: var(--gk-bg); border: 1px solid var(--gk-line-soft); border-radius: 10px; }
.gk-wrap .cal-legend-item { display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 22px; line-height: 1.3; }
.gk-wrap .cal-legend-swatch { width: 20px; height: 20px; flex: 0 0 20px; border-radius: 4px; box-sizing: border-box; }
.gk-wrap .cal-legend-swatch.free { background: #fff; border: 2px solid var(--gk-sage-dark); }
.gk-wrap .cal-legend-swatch.range { background: var(--gk-sage); }
.gk-wrap .cal-legend-swatch.selected { background: var(--gk-olive); }
.gk-wrap .cal-legend-swatch.blocked { background: repeating-linear-gradient(135deg, #fff, #fff 3px, var(--gk-line) 3px, var(--gk-line) 5px); border: 1px solid var(--gk-text-light); }
.gk-wrap .cal-legend-swatch.turnover {
  border: 1px solid var(--gk-text-light);
  background:
    linear-gradient(to top right,
      var(--gk-line-soft) 0,
      var(--gk-line-soft) calc(50% - 1px),
      var(--gk-olive) calc(50% - 1px),
      var(--gk-olive) calc(50% + 1px),
      transparent calc(50% + 1px),
      transparent 100%),
    repeating-linear-gradient(135deg, #fff, #fff 3px, var(--gk-line) 3px, var(--gk-line) 5px);
}
.gk-wrap .cal-legend-swatch.offer { background: #f6edd7; border: 1px solid var(--gk-gold); }
.gk-wrap .cal-legend-swatch.checkout { background: var(--gk-sage-light); border: 1px solid var(--gk-sage-dark); }
.gk-wrap .cal-legend-swatch.live-price { background: var(--gk-sage-light); border: 1px solid var(--gk-sage-dark); }
.gk-wrap .cal-legend-swatch.no-offer { background: var(--gk-bg); border: 1px solid var(--gk-line); position: relative; }
.gk-wrap .cal-legend-swatch.no-offer::after { content: ""; position: absolute; left: 1px; right: 1px; top: 6px; border-top: 1px solid var(--gk-text-light); transform: rotate(-35deg); }
.gk-wrap .cal-toolbar { display: flex; justify-content: space-between; align-items: center; margin: -6px 0 14px; flex-wrap: wrap; gap: 8px; }
.gk-wrap .cal-summary-line { font-family: var(--serif); font-size: 14px; color: var(--gk-text); }
.gk-wrap .cal-summary-line .price-strike { text-decoration: line-through; color: var(--gk-text-light); font-size: 11.5px; margin-left: 2px; }
.gk-wrap .cal-summary-line .muted { color: var(--gk-text-light); font-style: italic; }
.gk-wrap .cal-clear-link { background: none; border: none; padding: 0; font-family: var(--sans); font-size: 11.5px; color: var(--gk-text-muted); text-decoration: underline; cursor: pointer; }
.gk-wrap .cal-clear-link:hover { color: var(--gk-olive); }
.gk-wrap .cal-error { background: #fbeceb; border: 1px solid var(--gk-error); color: var(--gk-error); font-size: 12px; border-radius: var(--r-sm); padding: 8px 12px; margin-bottom: 14px; }
.gk-wrap .cal-error.cal-loading { background: var(--gk-sage-light); border-color: var(--gk-line); color: var(--gk-text-muted); }
.gk-wrap .cal-retry-button { margin-left: 10px; border: 1px solid currentColor; border-radius: 999px; background: #fff; color: inherit; padding: 5px 10px; font: 600 11px/1 var(--sans); cursor: pointer; }
.gk-wrap .gk-action-feedback { margin: 10px 0 0; }
.gk-wrap .gk-action-feedback[hidden] { display: none; }
.gk-wrap .cal-months { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
@media (max-width: 720px) { .gk-wrap .cal-months { grid-template-columns: 1fr; gap: 18px; } }
.gk-wrap .cal-month { padding: 0; }
.gk-wrap .cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.gk-wrap .cal-title { font-family: var(--serif); font-size: 18px; }
.gk-wrap .cal-nav { background: transparent; border: 1px solid var(--gk-line); width: 30px; height: 30px; border-radius: 50%; cursor: pointer; color: var(--gk-text); font-size: 17px; line-height: 1; font-family: var(--serif); }
.gk-wrap .cal-nav-spacer { display: block; width: 30px; height: 30px; flex: 0 0 30px; }
.gk-wrap .cal-nav:hover:not(:disabled) { border-color: var(--gk-olive); }
.gk-wrap .cal-nav:disabled { opacity: .25; cursor: not-allowed; }
.gk-wrap .cal-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); text-align: center; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gk-text-light); font-weight: 500; padding-bottom: 6px; margin-bottom: 4px; border-bottom: 1px solid var(--gk-line-soft); }
.gk-wrap .cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.gk-wrap .cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border: none; background: transparent; font-family: var(--serif); font-size: 14px; cursor: pointer; border-radius: var(--r-sm); color: var(--gk-text); position: relative; transition: background .12s, transform .12s; padding: 0; }
.gk-wrap .cal-day:hover:not(.empty):not(.disabled):not(.blocked) { background: var(--gk-sage-light); transform: scale(1.08); }
.gk-wrap .cal-day.empty { cursor: default; }
.gk-wrap .cal-day.disabled { color: var(--gk-line); cursor: not-allowed; }
.gk-wrap .cal-day.loading { opacity: .45; text-decoration: none; }
.gk-wrap .cal-day.arrival-available { background: #fff; border: 1px solid var(--gk-sage-dark); }
.gk-wrap .cal-day.arrival-available:hover { background: var(--gk-sage-light); }
.gk-wrap .cal-day.blocked { color: var(--gk-text-light); text-decoration: line-through; cursor: not-allowed; border: 1px solid var(--gk-line-soft); background: repeating-linear-gradient(135deg, #fff, #fff 4px, var(--gk-line-soft) 4px, var(--gk-line-soft) 6px); }
.gk-wrap .cal-day.turnover {
  color: var(--gk-text-muted);
  text-decoration: none;
  cursor: not-allowed;
  border: 1px solid var(--gk-line);
  background:
    linear-gradient(to top right,
      var(--gk-line-soft) 0,
      var(--gk-line-soft) calc(50% - 1px),
      var(--gk-olive) calc(50% - 1px),
      var(--gk-olive) calc(50% + 1px),
      transparent calc(50% + 1px),
      transparent 100%),
    repeating-linear-gradient(135deg, #fff, #fff 4px, var(--gk-line-soft) 4px, var(--gk-line-soft) 6px);
}
.gk-wrap .cal-day.selected-start, .gk-wrap .cal-day.selected-end { background: var(--gk-olive); color: #fff; }
.gk-wrap .cal-day.selected-start { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.gk-wrap .cal-day.selected-end { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.gk-wrap .cal-day.in-range { background: var(--gk-sage); color: var(--gk-text); border-radius: 0; }
.gk-wrap .cal-day .dot { position: absolute; bottom: 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--gk-sage-dark); }
.gk-wrap .cal-day.selected-start .dot, .gk-wrap .cal-day.selected-end .dot { display: none; }
.gk-wrap .cal-day.offer { background: #f6edd7; }
.gk-wrap .cal-day.offer:hover { background: #f0e4c4; }
.gk-wrap .cal-day.offer .dot { background: var(--gk-gold); }
.gk-wrap .cal-day.checkout-candidate { min-height: 54px; aspect-ratio: auto; flex-direction: column; gap: 1px; padding: 3px 1px; border: 1px solid transparent; }
.gk-wrap .cal-day.price-ready { background: var(--gk-sage-light); border-color: var(--gk-sage-dark); }
.gk-wrap .cal-day.price-ready:hover { background: var(--gk-sage); }
.gk-wrap .cal-day.price-loading::after { content: "…"; position: absolute; bottom: 5px; color: var(--gk-text-light); font-family: var(--sans); font-size: 10px; }
.gk-wrap .cal-day.arrival-checking::after { content: "…"; position: absolute; bottom: 3px; color: var(--gk-text-light); font-family: var(--sans); font-size: 10px; }
.gk-wrap .cal-day.no-offer { color: var(--gk-line); text-decoration: line-through; cursor: not-allowed; background: var(--gk-bg); }
.gk-wrap .cal-day.price-on-select { color: var(--gk-text); background: var(--gk-sage-light); border-color: var(--gk-sage-dark); }
.gk-wrap .cal-day.price-on-select:hover { background: var(--gk-sage); }
.gk-wrap .cal-day.aggregate-ready { color: var(--gk-text); background: var(--gk-sage-light); border-color: var(--gk-sage-dark); }
.gk-wrap .cal-day.aggregate-ready:hover { background: var(--gk-sage); }
.gk-wrap .cal-day.price-retry, .gk-wrap .cal-day.arrival-retry { border: 1px dashed var(--gk-line-soft); }
.gk-wrap .cal-day .day-number { line-height: 1; }
.gk-wrap .cal-day .day-price { position: static; left: auto; right: auto; bottom: auto; display: block; max-width: 100%; overflow: hidden; text-align: center; font-family: var(--sans); font-weight: 600; white-space: nowrap; line-height: 1.15; pointer-events: none; }
.gk-wrap .cal-day .day-total { color: var(--gk-text); font-size: 9.5px; }
.gk-wrap .cal-day .day-per { color: var(--gk-text-light); font-size: 8.5px; font-weight: 500; }
.gk-wrap .cal-day .day-price.deal { color: #6b5a1e; font-weight: 700; }
.gk-wrap .cal-day.selected-start .day-price, .gk-wrap .cal-day.selected-end .day-price { color: rgba(255,255,255,.8); }
@media (max-width: 420px) {
  .gk-wrap .cal-day.checkout-candidate { min-height: 50px; }
  .gk-wrap .cal-day .day-total { font-size: 9px; letter-spacing: -.1px; }
  .gk-wrap .cal-day .day-per { font-size: 8px; letter-spacing: -.1px; }
  .gk-wrap .cal-day .cell-currency { display: none; }
}

/* ===== Buchungs-Leiste unter dem Kalender (Einzel-Widget) ===== */
.gk-wrap .booking-bar { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--gk-line); flex-wrap: wrap; }
.gk-wrap .bar-field { display: flex; align-items: center; gap: 10px; background: var(--gk-bg); border: 1px solid var(--gk-line-soft); border-radius: var(--r-md); padding: 8px 13px; }
.gk-wrap .bar-label { font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gk-text-muted); font-weight: 500; }
.gk-wrap .booking-bar .gk-cta { margin-left: auto; min-height: 44px; }
.gk-wrap .cta-note { flex-basis: 100%; text-align: right; font-size: 10.5px; color: var(--gk-text-light); margin-top: -2px; }
@media (max-width: 600px) { .gk-wrap .booking-bar .gk-cta { flex: 1 1 100%; height: 46px; margin-left: 0; } .gk-wrap .cta-note { text-align: center; } }

/* ===== CTA ===== */
.gk-wrap .gk-cta { background: var(--gk-olive); color: var(--gk-bg); border: none; border-radius: 12px; padding: 0 32px; font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.gk-wrap .gk-cta:hover { background: var(--gk-olive-dark); }
.gk-wrap .gk-cta:disabled,
.gk-wrap .gk-cta[aria-disabled="true"],
.gk-wrap .gk-cta.is-disabled { background: var(--gk-line); cursor: not-allowed; color: var(--gk-olive); }

/* ===== Angebote ===== */
.gk-wrap .offers-block { margin-top: 20px; }
.gk-wrap .offers-title { font-family: var(--serif); font-size: 16px; margin: 0 0 10px; color: var(--gk-text-muted); }
.gk-wrap .offer-list { display: flex; flex-direction: column; gap: 6px; }
.gk-wrap .offer-card { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--gk-line-soft); border-radius: var(--r-sm); padding: 6px 10px; cursor: pointer; text-align: left; transition: border-color .15s, background .15s; }
.gk-wrap .offer-card:hover { border-color: var(--gk-gold); }
.gk-wrap .offer-thumb { width: 30px; height: 30px; flex: none; border-radius: 50%; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 11px; color: rgba(255,255,255,.85); }
.gk-wrap .offer-info { min-width: 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.gk-wrap .offer-name { font-family: var(--serif); font-size: 13px; color: var(--gk-text); line-height: 1.2; }
.gk-wrap .offer-dates { font-size: 10.5px; color: var(--gk-text-muted); }
.gk-wrap .offer-price { font-size: 10.5px; color: var(--gk-text); }
.gk-wrap .offer-price-old { text-decoration: line-through; color: var(--gk-text-light); margin: 0 3px; }
.gk-wrap .offer-badge { margin-left: auto; flex: none; background: var(--gk-gold); color: var(--gk-text); font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 999px; }

/* ===== Kombi-Vorschlag ===== */
.gk-wrap .combo-block { margin-top: 14px; padding: 12px 14px; background: var(--gk-bg-warm); border-radius: var(--r-md); }
.gk-wrap .combo-title { font-size: 11.5px; color: var(--gk-text-muted); margin-bottom: 8px; }
.gk-wrap .combo-list { display: flex; flex-direction: column; gap: 6px; }
.gk-wrap .combo-card { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--gk-line-soft); border-radius: var(--r-sm); padding: 6px 10px; }
.gk-wrap .combo-thumb { width: 26px; height: 26px; border-radius: 50%; background-size: cover; background-position: center; flex: none; }
.gk-wrap .combo-plus { font-family: var(--serif); color: var(--gk-text-light); flex: none; font-size: 12px; }
.gk-wrap .combo-info { min-width: 0; }
.gk-wrap .combo-name { font-family: var(--serif); font-size: 12.5px; color: var(--gk-text); }
.gk-wrap .combo-cap { font-size: 10.5px; color: var(--gk-text-muted); }

/* ===== Event-Banner (Basis; je Variante überschrieben) ===== */
.gk-wrap .event-banner { position: relative; margin-top: 18px; border-radius: 20px; overflow: hidden; display: flex; align-items: center; background: #212a1f center/cover no-repeat url('https://cdn.prod.website-files.com/64e31084491c8b475b88cff1/64f1dbd554cb2f3cd5413818_KLetkamp_Hochzeit_270822_02.webp'); }
.gk-wrap .event-banner-overlay { position: absolute; inset: 0; background-image: linear-gradient(102deg, #212a1fe6 0%, #212a1fab 42%, #212a1f66 75%, #212a1f8c 100%); }
.gk-wrap .event-banner-content { position: relative; z-index: 1; padding: 18px 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; max-width: 560px; }
.gk-wrap .event-eyebrow { color: var(--gk-sage); letter-spacing: .2em; text-transform: uppercase; font-size: 10px; font-weight: 600; }
.gk-wrap .event-heading { font-family: "Times New Roman", serif; font-style: italic; color: #fff; font-size: 19px; margin: 0; font-weight: 400; }
.gk-wrap .event-text { color: #e8e2d6; font-size: 12px; line-height: 1.5; margin: 0; }
.gk-wrap .event-cta { display: inline-block; color: #fff; border: 1.5px solid #ffffff73; border-radius: 9999px; padding: 8px 18px; font-family: var(--sans); font-size: 11.5px; font-weight: 500; text-decoration: none; transition: border-color .17s, background .17s; white-space: nowrap; }
.gk-wrap .event-cta:hover { border-color: #fff; background: #ffffff1a; }

/* ===== Buchungs-Modus (Mehr-Wohnungs-Auswahl, Ziel-Seite) ===== */
.gk-wrap .section-title .step { font-family: var(--sans); font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--gk-olive); font-weight: 600; display: block; margin-bottom: 2px; }
.gk-wrap .loc-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--gk-line-soft); margin-bottom: 16px; }
.gk-wrap .loc-tab { flex: 1; background: transparent; border: none; border-bottom: 2px solid transparent; padding: 9px 8px 11px; cursor: pointer; font-family: var(--serif); font-size: 15px; color: var(--gk-text-muted); transition: all .2s; }
.gk-wrap .loc-tab:hover { color: var(--gk-text); }
.gk-wrap .loc-tab.active { color: var(--gk-text); border-bottom-color: var(--gk-olive); font-weight: 500; }
.gk-wrap .loc-tab .badge { display: inline-block; margin-left: 6px; background: var(--gk-cream); color: var(--gk-text-muted); padding: 1px 7px; border-radius: 999px; font-family: var(--sans); font-size: 10px; font-weight: 600; }
.gk-wrap .loc-tab.active .badge { background: var(--gk-olive); color: #fff; }
.gk-wrap .apt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.gk-wrap .apt-card { position: relative; background: var(--gk-bg); border: 1.5px solid var(--gk-line-soft); border-radius: var(--r-md); padding: 7px 10px; cursor: pointer; transition: border-color .15s, background .15s; text-align: left; display: flex; flex-direction: column; gap: 1px; min-height: 0; }
.gk-wrap .apt-card:hover { border-color: var(--gk-olive); background: #fff; }
.gk-wrap .apt-card.active { border-color: var(--gk-olive); background: var(--gk-sage-light); padding-right: 26px; }
.gk-wrap .apt-card.active::after { content: "✓"; position: absolute; top: 50%; right: 7px; transform: translateY(-50%); width: 15px; height: 15px; background: var(--gk-olive); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 600; }
.gk-wrap .apt-photo { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--r-sm); background-size: cover; background-position: center; margin-bottom: 4px; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 20px; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.45); }
.gk-wrap .apt-card-name { font-family: var(--serif); font-size: 13px; color: var(--gk-text); line-height: 1.2; }
.gk-wrap .apt-card-meta { font-size: 10px; color: var(--gk-text-muted); display: flex; gap: 5px; flex-wrap: wrap; align-items: center; line-height: 1.3; }
.gk-wrap .apt-card-meta .dot-sep { color: var(--gk-line); }
.gk-wrap .apt-card-meta .price-inline { font-family: var(--serif); font-size: 11px; color: var(--gk-text); margin-left: auto; white-space: nowrap; }
@media (max-width: 600px) { .gk-wrap .apt-grid { grid-template-columns: 1fr 1fr; } .gk-wrap .loc-tab { font-size: 13px; padding: 8px 4px 10px; white-space: nowrap; } .gk-wrap .loc-tab .badge { margin-left: 4px; padding: 1px 5px; } }

/* ===== „Edel"-Teaser: schicke Einladung, die zur Buchungsseite fuehrt ===== */
.gk-wrap .gk-teaser { position: relative; background: linear-gradient(180deg, #fffdf8 0%, #fbf7ee 100%); border: 1px solid var(--gk-line-soft); border-top: 2px solid var(--gk-gold); border-radius: var(--r-lg); box-shadow: var(--shadow-deep); padding: 26px 30px 24px; text-align: center; }
.gk-wrap .gk-teaser .teaser-eyebrow { font-family: var(--sans); letter-spacing: .26em; text-transform: uppercase; font-size: 10.5px; font-weight: 600; color: var(--gk-olive); margin-bottom: 8px; }
.gk-wrap .gk-teaser .teaser-title { font-family: var(--serif); font-size: 26px; font-weight: 400; color: var(--gk-text); margin: 0 0 6px; }
.gk-wrap .gk-teaser .teaser-sub { font-size: 13px; color: var(--gk-text-muted); margin: 0 auto 18px; max-width: 460px; }
.gk-wrap .gk-teaser .teaser-rule { width: 46px; height: 1px; background: var(--gk-gold); margin: 0 auto 16px; }
.gk-wrap .gk-teaser .gk-start { box-shadow: none; background: #fffffffa; }
.gk-wrap .gk-teaser .teaser-foot { margin-top: 14px; font-size: 12px; color: var(--gk-text-light); }
.gk-wrap .gk-teaser .teaser-foot a { color: var(--gk-olive); text-decoration: none; border-bottom: 1px solid var(--gk-gold); padding-bottom: 1px; }
.gk-wrap .gk-teaser .teaser-foot a:hover { color: var(--gk-olive-dark); }

/* Einzel-Fewo-Teaser: Wohnungswähler ausblenden (Fewo steht fest) */
.gk-wrap .gk-teaser.teaser-single .start-apt-field { display: none; }
/* Teaser im Duo/Sidebar auf volle Höhe */
.gk-wrap .gk-teaser { height: 100%; }
.duo .gk-wrap { height: 100%; }

/* Buchungsseite: Widget mittig begrenzen (aus torhaus.css übernommen,
 * damit die Webflow-Embeds ohne die Vorschau-Styles auskommen) */
.gk-wrap.embed-full { max-width: 900px; margin: 0 auto; }

/* ===== Einzelhaus-Integrationen ===== */
/* Repariert den live beschädigten Torhaus-Host: Im Webflow-Grid blieb nach
 * Sophias Umbau nur die Sidebar übrig; die erste 1fr-Spalte kollabierte wegen
 * Inline-Containment auf 0 px. Die JS-Klassen vermeiden breite globale Hacks. */
.gk-fewo-host-section { height: auto !important; min-height: 0 !important; align-items: stretch !important; }
.gk-fewo-host-outer { height: auto !important; min-height: 0 !important; overflow: visible !important; }
.gk-fewo-host-wide { display: block !important; width: 100% !important; max-width: 1160px; margin-inline: auto; }
.gk-fewo-sidebar.gk-fewo-sidebar-wide { position: relative !important; inset: auto !important; width: 100% !important; max-width: none !important; }
/* CSS-Fallback verhindert auch vor Ausführung des defer-Scripts den 0-px-Flash. */
.splitzgrid2-1-copy:has(> .gk-fewo-sidebar:only-child .gk-wrap[data-gk-mode="apartment"]) { display: block; width: 100%; max-width: 1160px; margin-inline: auto; }
._75vhcenter:has(> .splitzgrid2-1-copy > .gk-fewo-sidebar:only-child .gk-wrap[data-gk-mode="apartment"]) { height: auto; min-height: 0; align-items: stretch; }
section:has(> ._75vhcenter > .splitzgrid2-1-copy > .gk-fewo-sidebar:only-child .gk-wrap[data-gk-mode="apartment"]) { height: auto; min-height: 0; overflow: visible; }
.splitzgrid2-1-copy > .gk-fewo-sidebar:only-child:has(.gk-wrap[data-gk-mode="apartment"]) { position: relative; width: 100%; }

.gk-wrap.gk-calendar-inline .gk-teaser { padding: clamp(28px, 4vw, 52px); text-align: left; }
.gk-wrap.gk-calendar-inline .gk-teaser .teaser-eyebrow,
.gk-wrap.gk-calendar-inline .gk-teaser .teaser-title,
.gk-wrap.gk-calendar-inline .gk-teaser .teaser-sub { text-align: center; }
.gk-wrap.gk-calendar-inline .gk-teaser .teaser-rule { margin-inline: auto; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-start { display: grid; grid-template-columns: minmax(220px, 1.5fr) minmax(118px, 148px) minmax(118px, 148px) minmax(210px, 1fr); justify-content: center; gap: 12px; padding: 0; background: transparent; border: 0; box-shadow: none; }
/* Webflow WHTML wraps imported forms in an additional .w-form element. Keep
 * the visual grid on the actual form so fields do not collapse into column 1. */
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-start.w-form { display: block; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-start.w-form > form { display: grid; grid-template-columns: minmax(220px, 1.5fr) minmax(118px, 148px) minmax(118px, 148px) minmax(210px, 1fr); justify-content: center; gap: 12px; width: 100%; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-dates { grid-column: 1; grid-row: 1; min-width: 0; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-num { min-width: 0; min-height: 68px; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-num:nth-child(2) { grid-column: 2; grid-row: 1; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-num:nth-child(3) { grid-column: 3; grid-row: 1; }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-cta { grid-column: 4; grid-row: 1; min-height: 68px; height: auto; }
.gk-wrap.gk-calendar-inline .start-cal-popover,
.gk-wrap .start-cal-popover.cal-inline { position: relative; grid-column: 1 / -1; top: auto; left: auto; right: auto; transform: none; width: 100%; max-width: none; margin-top: 16px; padding: clamp(22px, 3vw, 36px); border-radius: 20px; box-shadow: 0 10px 36px rgba(31,27,20,.08); }
.gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-cal-popover { left: auto; right: auto; transform: none; width: 100%; max-width: none; }
.gk-wrap.gk-calendar-inline .start-cal-popover .cal-months,
.gk-wrap .start-cal-popover.cal-inline .cal-months { gap: clamp(24px, 4vw, 48px); }
.gk-wrap.gk-calendar-inline .cal-legend,
.gk-wrap .start-cal-popover.cal-inline .cal-legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); gap: 8px 16px; }
.gk-wrap.gk-calendar-inline-two .start-cal-popover .cal-months,
.gk-wrap .start-cal-popover.cal-inline .cal-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gk-wrap.gk-calendar-inline-two .start-cal-popover .cal-month:nth-child(2),
.gk-wrap .start-cal-popover.cal-inline .cal-month:nth-child(2) { display: block; }

.gk-wrap[data-gk-layout="wide-island"] { max-width: 1160px; margin-inline: auto; }
.gk-wrap[data-gk-layout="wide-island"] .gk-teaser { border-radius: 28px; }
.gk-wrap[data-gk-layout="editorial-split"] .gk-teaser { border-radius: 24px; padding: 34px; }
.gk-wrap.gk-calendar-inline[data-gk-layout="editorial-split"] .start-cal-popover { padding: 24px; }
.gk-wrap[data-gk-layout="quiet-band"] .gk-teaser { border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: clamp(28px, 4vw, 48px) 0; }
.gk-wrap[data-gk-layout="quiet-band"] .gk-start { width: 100%; max-width: none; margin-inline: 0; }

/* Ferienhaus-Detailseite: Das bestehende Gut-Kletkamp-Layout bleibt intakt.
 * Nur dieser isolierte Host und seine Position wechseln in den Staging-
 * Varianten A/B/C. Keine Regel greift auf Hero, Navigation oder Inhalts-
 * sektionen außerhalb des Widget-Hosts zu. */
/* Der alte Produktions-Stylesheet kann Eigenschaften überschreiben, die er
 * selbst bereits kannte. Vier in den verworfenen Prototypen neu eingeführte
 * Eigenschaften brauchen zusätzlich ihre ursprünglichen Initialwerte. */
html[class*="gk-fewo-integration-"] .rich-text-block {
  position: static;
}
html[class*="gk-fewo-integration-"] .div-fakten-nebeneinander {
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
}
html[class*="gk-fewo-integration-"] .splitzgrid2-1-copy {
  align-items: normal;
}
html[class*="gk-fewo-integration-"] .slider-image {
  position: static;
}

.gk-fewo-integration-host {
  position: relative !important;
  inset: auto !important;
  display: block !important;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: clamp(36px, 4.5vw, 64px) clamp(20px, 5vw, 72px);
}
.gk-fewo-compact-layout {
  width: 100%;
  max-width: 1160px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(430px, 560px);
  align-items: center;
  gap: clamp(42px, 7vw, 96px);
}
.gk-fewo-compact-layout > .gk-wrap {
  width: 100%;
  max-width: 560px;
  min-width: 0;
  justify-self: end;
}
.gk-fewo-compact-copy {
  width: 100%;
  max-width: 470px;
  color: #3e473b;
}
.gk-fewo-compact-eyebrow {
  margin-bottom: 12px;
  color: #66735f;
  font: 600 10px/1.4 "Montserrat", -apple-system, sans-serif;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.gk-fewo-compact-copy h2 {
  margin: 0 0 14px;
  color: inherit;
  font: 400 clamp(32px, 3.2vw, 46px)/1.04 "Times New Roman", Baskerville, Georgia, serif;
}
.gk-fewo-compact-copy p {
  max-width: 440px;
  margin: 0;
  color: #5c6459;
  font: 400 13px/1.75 "Montserrat", -apple-system, sans-serif;
}
.gk-fewo-compact-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 18px;
  margin-top: 20px;
  color: #4c554b;
  font: 500 10.5px/1.4 "Montserrat", -apple-system, sans-serif;
}
.gk-fewo-compact-trust span::before {
  content: "✓";
  margin-right: 6px;
  color: #66735f;
  font-weight: 700;
}

/* Die kompakte Karte belegt maximal eine halbe Contentspalte. In A–C und E
 * öffnet der Kalender als Einmonats-Popover; D zeigt denselben Kalender inline. */
.gk-apartment-compact .gk-teaser {
  height: auto;
  padding: 24px;
  border: 1px solid rgba(76, 85, 75, .16);
  border-top: 1px solid rgba(76, 85, 75, .16);
  border-radius: 16px;
  background: rgba(255, 253, 249, .96);
  box-shadow: 0 12px 34px rgba(31, 27, 20, .08);
}
.gk-apartment-compact .gk-teaser .teaser-eyebrow { margin-bottom: 5px; }
.gk-apartment-compact .gk-teaser .teaser-title { margin-bottom: 6px; font-size: 24px; }
.gk-apartment-compact .gk-teaser .teaser-rule { width: 34px; margin-bottom: 12px; }
.gk-apartment-compact .gk-teaser .teaser-sub { max-width: 420px; margin-bottom: 15px; font-size: 12px; line-height: 1.55; }
.gk-apartment-compact .gk-teaser .teaser-foot { margin-top: 11px; font-size: 10.5px; }
/* A–D haben bereits eine sichtbare Überschrift im umgebenden Seiteninhalt.
 * Die doppelte Karten-Einleitung würde nur Höhe erzeugen; der dynamische
 * Wohnungstitel bleibt als visuell versteckte H3 für Assistenztechnik erhalten. */
.gk-fewo-integration-host:not(.gk-fewo-integration-host-e) .gk-apartment-compact .teaser-eyebrow,
.gk-fewo-integration-host:not(.gk-fewo-integration-host-e) .gk-apartment-compact .teaser-rule,
.gk-fewo-integration-host:not(.gk-fewo-integration-host-e) .gk-apartment-compact .teaser-sub,
.gk-fewo-integration-host:not(.gk-fewo-integration-host-e) .gk-apartment-compact .teaser-foot {
  display: none;
}
.gk-fewo-integration-host:not(.gk-fewo-integration-host-e) .gk-apartment-compact .teaser-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.gk-apartment-compact .gk-teaser.teaser-single .gk-start {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 8px;
  border-radius: 13px;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(76, 85, 75, .12);
  box-shadow: none;
}
.gk-apartment-compact .gk-teaser.teaser-single .start-field.start-dates {
  grid-column: 1 / -1;
  grid-row: 1;
  min-width: 0;
  min-height: 58px;
}
.gk-apartment-compact .gk-teaser.teaser-single .start-field.start-num {
  min-width: 0;
  min-height: 58px;
}
.gk-apartment-compact .gk-teaser.teaser-single .start-field.start-num:nth-child(2) {
  grid-column: 1;
  grid-row: 2;
}
.gk-apartment-compact .gk-teaser.teaser-single .start-field.start-num:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}
.gk-apartment-compact .gk-teaser.teaser-single .gk-child-ages {
  grid-column: 1 / -1;
}
.gk-apartment-compact .gk-teaser.teaser-single .gk-cta {
  grid-column: 1 / -1;
  grid-row: 3;
  min-width: 0;
  min-height: 52px;
  height: auto;
  padding: 10px 18px;
  font-size: 11px;
  line-height: 1.3;
}
.gk-apartment-compact .start-cal-popover,
.gk-apartment-compact .gk-teaser.teaser-single .start-cal-popover {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  left: auto;
  width: min(440px, calc(100vw - 32px));
  max-width: none;
  max-height: min(680px, calc(100vh - 96px));
  margin: 0;
  padding: 18px 20px 20px;
  overflow-x: hidden;
  overflow-y: auto;
  transform: none;
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(31, 27, 20, .18);
}
.gk-apartment-compact .start-cal-popover .apt-carousel,
.gk-apartment-compact .start-cal-popover .apt-facts {
  display: none !important;
}
.gk-apartment-compact .start-cal-popover .cal-months { grid-template-columns: 1fr; gap: 0; }
.gk-apartment-compact .start-cal-popover .cal-month:nth-child(2) { display: none; }
.gk-apartment-compact .start-cal-popover .cal-legend { gap: 6px 14px; margin-bottom: 12px; }
.gk-apartment-compact .start-cal-popover .cal-toolbar { margin-bottom: 10px; }

/* A – klassische redaktionelle 50/50-Integration nach der Galerie. */
.gk-fewo-integration-host-a {
  background: #f3f1e9;
  border-block: 1px solid rgba(82, 91, 74, .13);
}

/* B – Widget links, redaktioneller Anschluss rechts zwischen Text und Galerie. */
.gk-fewo-integration-host-b {
  background: #fff;
  border-block: 1px solid rgba(82, 91, 74, .11);
}
.gk-fewo-compact-layout-b {
  grid-template-columns: minmax(430px, 560px) minmax(0, 1fr);
}
.gk-fewo-compact-layout-b > .gk-wrap { order: 1; justify-self: start; }
.gk-fewo-compact-layout-b > .gk-fewo-compact-copy { order: 2; }
.gk-fewo-integration-host-b .gk-apartment-compact .gk-teaser {
  background: #f7f4ee;
  box-shadow: none;
}

/* C – anstelle des alten externen Buttons im vorhandenen Buchungsblock. */
.section-9 .gk-fewo-integration-host-c {
  background: transparent;
  border: 0;
  padding: 22px 0 4px;
}
html.gk-fewo-integration-c .section-9 { overflow: visible; }
html.gk-fewo-integration-c .gk-fewo-legacy-book-button { display: none !important; }
.gk-fewo-compact-layout-c { display: block; }
.gk-fewo-compact-layout-c > .gk-wrap { max-width: 100%; margin: 0; }
.gk-fewo-integration-host-c .gk-apartment-compact .gk-teaser {
  box-shadow: none;
  border-color: rgba(76, 85, 75, .22);
}

/* D – frühe, leise Verfügbarkeitskarte direkt nach den Eckdaten. */
.gk-fewo-integration-host-d {
  padding-block: clamp(36px, 3.5vw, 50px);
  background: #edf1e9;
  border-bottom: 1px solid rgba(82, 91, 74, .12);
}
.gk-fewo-compact-layout-d { align-items: stretch; }
.gk-fewo-compact-layout-d .gk-fewo-compact-copy {
  display: flex;
  flex-direction: column;
  max-width: none;
}
.gk-fewo-compact-layout-d .gk-fewo-compact-media {
  flex: 1 1 290px;
  min-height: 290px;
  margin: 28px 0 0;
  overflow: hidden;
  border-radius: 3px;
  background: #dce4d6;
}
.gk-fewo-compact-layout-d .gk-fewo-compact-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 58%;
}
.gk-fewo-compact-layout-d .gk-fewo-compact-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 14px;
  border-top: 1px solid rgba(76, 85, 75, .22);
  border-left: 1px solid rgba(76, 85, 75, .22);
}
.gk-fewo-compact-layout-d .gk-fewo-compact-facts > div {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  padding: 13px 14px;
  border-right: 1px solid rgba(76, 85, 75, .22);
  border-bottom: 1px solid rgba(76, 85, 75, .22);
  color: #4c554b;
}
.gk-fewo-compact-layout-d .gk-fewo-compact-facts strong {
  flex: 0 0 auto;
  color: #3e473b;
  font: 400 18px/1.1 "Times New Roman", Baskerville, Georgia, serif;
}
.gk-fewo-compact-layout-d .gk-fewo-compact-facts span {
  min-width: 0;
  font: 500 10px/1.35 "Montserrat", -apple-system, sans-serif;
  letter-spacing: .035em;
}
.gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser {
  padding: 20px;
  border-left: 3px solid #9bad8c;
  border-radius: 4px;
  box-shadow: none;
}

/* E – maximal reduzierte Buchungsrail nach der Galerie. */
.gk-fewo-integration-host-e {
  padding-top: 26px;
  padding-bottom: 44px;
  background: #fff;
}
.gk-fewo-compact-layout-e { display: block; }
.gk-fewo-compact-layout-e > .gk-wrap { max-width: 600px; margin-left: auto; }
.gk-fewo-integration-host-e .gk-apartment-compact .gk-teaser {
  padding: 18px;
  border-width: 1px 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
}
.gk-fewo-integration-host-e .gk-apartment-compact .teaser-eyebrow,
.gk-fewo-integration-host-e .gk-apartment-compact .teaser-rule,
.gk-fewo-integration-host-e .gk-apartment-compact .teaser-sub,
.gk-fewo-integration-host-e .gk-apartment-compact .teaser-foot { display: none; }
.gk-fewo-integration-host-e .gk-apartment-compact .teaser-title {
  margin: 0 0 12px;
  font-size: 21px;
  text-align: left;
}
.gk-fewo-integration-host-e .gk-apartment-compact .start-field.start-dates {
  grid-column: 1;
  grid-row: 1;
}
.gk-fewo-integration-host-e .gk-apartment-compact .gk-cta {
  grid-column: 2;
  grid-row: 1;
  min-height: 58px;
}

@media screen and (max-width: 900px) {
  .gk-fewo-compact-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .gk-fewo-compact-layout > .gk-wrap,
  .gk-fewo-compact-layout-b > .gk-wrap {
    order: 2;
    max-width: 600px;
    justify-self: stretch;
    margin-inline: auto;
  }
  .gk-fewo-compact-layout > .gk-fewo-compact-copy,
  .gk-fewo-compact-layout-b > .gk-fewo-compact-copy {
    order: 1;
    max-width: 600px;
    margin-inline: auto;
    text-align: center;
  }
  .gk-fewo-compact-copy p { margin-inline: auto; }
  .gk-fewo-compact-trust { justify-content: center; }
}

@media screen and (max-width: 767px) {
  .gk-fewo-integration-host {
    padding: 36px 16px;
  }
  .gk-fewo-compact-copy h2 { font-size: 32px; }
  .gk-fewo-compact-trust { gap: 8px 12px; }
  .gk-apartment-compact .gk-teaser { padding: 20px 16px; }
  .gk-apartment-compact .start-cal-popover,
  .gk-apartment-compact .gk-teaser.teaser-single .start-cal-popover {
    right: auto;
    left: 50%;
    width: calc(100vw - 24px);
    padding: 16px 14px 18px;
    transform: translateX(-50%);
  }
  .section-9 .gk-fewo-integration-host-c { padding: 20px 0 4px; }
  .gk-fewo-integration-host-e { padding: 20px 16px 32px; }
}

@container gkwrap (max-width: 520px) {
  .gk-fewo-integration-host-e .gk-apartment-compact .start-field.start-dates {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  .gk-fewo-integration-host-e .gk-apartment-compact .gk-cta {
    grid-column: 1 / -1;
    grid-row: 3;
    min-height: 52px;
  }
}

@container gkwrap (max-width: 840px) {
  .gk-wrap.gk-calendar-inline .gk-teaser { padding: 26px 18px; }
  .gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-start { grid-template-columns: 1fr 1fr; }
  .gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-start.w-form > form { grid-template-columns: 1fr 1fr; }
  .gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-dates { grid-column: 1 / -1; grid-row: 1; }
  .gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-num:nth-child(2) { grid-column: 1; grid-row: 2; }
  .gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .start-field.start-num:nth-child(3) { grid-column: 2; grid-row: 2; }
  .gk-wrap.gk-calendar-inline .gk-teaser.teaser-single .gk-cta { grid-column: 1 / -1; grid-row: 3; min-height: 54px; }
  .gk-wrap.gk-calendar-inline .start-cal-popover { grid-column: 1 / -1; padding: 20px 14px; }
  .gk-wrap.gk-calendar-inline-two .start-cal-popover .cal-months,
  .gk-wrap .start-cal-popover.cal-inline .cal-months { grid-template-columns: 1fr; }
  .gk-wrap.gk-calendar-inline-two .start-cal-popover .cal-month:nth-child(2),
  .gk-wrap .start-cal-popover.cal-inline .cal-month:nth-child(2) { display: none; }
}

/* D – dauerhaft sichtbarer Einmonatskalender. Die Reihenfolge folgt der
 * Nutzerentscheidung: Kalender, Gäste, danach die Buchungsaktion. */
.gk-fewo-integration-host-d .gk-apartment-compact .start-field.start-dates {
  display: none;
}
.gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser.teaser-single .gk-start .start-field.start-num {
  grid-row: auto !important;
  order: 2;
  min-height: 54px !important;
}
.gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser.teaser-single .gk-start .gk-start-adults {
  grid-column: 1 !important;
}
.gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser.teaser-single .gk-start .gk-start-kids {
  grid-column: 2 !important;
}
.gk-fewo-integration-host-d .gk-apartment-compact .gk-child-ages {
  grid-column: 1 / -1;
  grid-row: auto;
  order: 3;
}
.gk-fewo-integration-host-d .gk-apartment-compact .start-cal-popover,
.gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser.teaser-single .start-cal-popover {
  position: relative;
  inset: auto;
  grid-column: 1 / -1;
  grid-row: auto;
  order: 1;
  z-index: auto;
  width: 100%;
  max-width: none;
  max-height: none;
  margin: 4px 0 0;
  padding: 14px 12px 12px;
  overflow: visible;
  transform: none;
  border-radius: 12px;
  border-color: rgba(76, 85, 75, .14);
  box-shadow: none;
}
.gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser.teaser-single .gk-start .gk-cta {
  grid-column: 1 / -1;
  grid-row: auto;
  order: 4;
  min-height: 48px;
}

/* Auf breiten Screens bleibt der Kalender gut klickbar, ohne die gesamte
 * Ferienhaus-Sektion unnötig über die Viewporthöhe hinauszuziehen. */
@media screen and (min-width: 901px) {
  .gk-fewo-integration-host-d {
    padding-block: clamp(28px, 2.7vw, 38px);
  }
  .gk-fewo-integration-host-d .gk-apartment-compact .gk-teaser {
    padding: 16px;
  }
  .gk-fewo-integration-host-d .gk-apartment-compact .cal-day {
    min-height: clamp(48px, 3.8vw, 56px);
    aspect-ratio: auto;
  }
  .gk-fewo-compact-layout-d .gk-fewo-compact-media {
    margin-top: 20px;
  }
  .gk-fewo-compact-layout-d .gk-fewo-compact-facts > div {
    padding-block: 11px;
  }
}

@media screen and (max-width: 900px) {
  .gk-fewo-compact-layout-d { align-items: stretch; }
  .gk-fewo-compact-layout-d .gk-fewo-compact-copy { display: block; }
  .gk-fewo-compact-layout-d .gk-fewo-compact-media,
  .gk-fewo-compact-layout-d .gk-fewo-compact-facts { display: none; }
}

@container gkwrap (max-width: 360px) {
  .gk-wrap.gk-calendar-inline .cal-legend,
  .gk-wrap .start-cal-popover.cal-inline .cal-legend { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .gk-wrap .stepper-btn { width: 36px; height: 36px; }
  /* Ferienhaus-Template: Sophias vier feste Ausstattungsspalten liefen auf
   * Mobilgeräten bis 624 px aus dem Viewport. Zwei flexible Spalten halten
   * alle acht Merkmale vollständig sichtbar und bewahren den Rhythmus. */
  .gk-amenities-section .div-block-21 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
  }
  .gk-amenities-section .div-fakten-nebeneinander {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 340px) {
  /* Auf 320 px ist eine Spalte lesbarer als zwei 120-px-Karten mit Icon. */
  .gk-amenities-section .div-block-21 {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
