/* Booking follow-up is shared by the website and the Telegram Mini App. */
.telegram-entry { margin: 14px 0 0; font-size: 12px; line-height: 1.5; }
.telegram-entry a { color: inherit; text-underline-offset: 3px; }
.booking-follow-up { display: grid; gap: 22px; margin: 22px 0; }
#form-result .follow-up-note { margin: 9px 0 0; font-size: 12px; line-height: 1.55; opacity: .85; }
#form-result #booking-calendar-title { margin: 0 0 10px; font-size: 14px; line-height: 1.4; }
.calendar-link-options { display: flex; flex-wrap: wrap; gap: 8px; }
.follow-up-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  max-width: 100%;
  padding: 10px 15px;
  border: 1px solid #fff6e47a;
  border-radius: 22px;
  background: #ffffff0c;
  color: inherit;
  font: inherit;
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: inset 0 1px 0 #ffffff24;
}
.follow-up-link:hover { background: #ffffff1c; }
.follow-up-link:focus-visible { outline: 2px solid #fff0b8; outline-offset: 4px; }

/* Telegram's stable height covers the full webview, including its safe areas.
   Only the content is inset; shortening the forest itself exposes a solid strip. */
body[data-telegram-mini-app=true] {
  --telegram-safe-top: max(env(safe-area-inset-top, 0px), var(--forest-tg-safe-top, 0px));
  --telegram-safe-bottom: max(env(safe-area-inset-bottom, 0px), var(--forest-tg-safe-bottom, 0px));
  --telegram-safe-left: max(env(safe-area-inset-left, 0px), var(--forest-tg-safe-left, 0px));
  --telegram-safe-right: max(env(safe-area-inset-right, 0px), var(--forest-tg-safe-right, 0px));
  --telegram-scene-height: calc(var(--forest-tg-stable-height, 100dvh) - var(--telegram-safe-top) - var(--telegram-safe-bottom));
  --telegram-center-x: calc(50% + (var(--telegram-safe-left) - var(--telegram-safe-right)) / 2);
  background: #0b1714;
}
body[data-telegram-mini-app=true] .forest {
  height: var(--forest-tg-stable-height, 100dvh);
  margin: 0;
}
body[data-telegram-mini-app=true] .frame {
  top: calc(20px + var(--telegram-safe-top));
  right: calc(20px + var(--telegram-safe-right));
  bottom: calc(20px + var(--telegram-safe-bottom));
  left: calc(20px + var(--telegram-safe-left));
}
body[data-telegram-mini-app=true][data-art=realism] .forest {
  --footer-bottom: calc(24px + var(--telegram-safe-bottom));
  --footer-lift: 0px;
  --doors-bottom: calc(var(--telegram-scene-height) * .17 + 12px + var(--telegram-safe-bottom));
}
body[data-telegram-mini-app=true][data-art=realism] .doors {
  --door-height: calc(var(--telegram-scene-height) * .42);
  left: var(--telegram-safe-left);
  right: var(--telegram-safe-right);
}
body[data-telegram-mini-app=true][data-art=realism] .invitation {
  top: calc(var(--telegram-safe-top) + clamp(32px, calc(var(--telegram-scene-height) * .048), 54px));
  left: calc(6% + var(--telegram-safe-left));
  right: calc(6% + var(--telegram-safe-right));
}
body[data-telegram-mini-app=true][data-art=realism] .scene-header { left: var(--telegram-safe-left); right: var(--telegram-safe-right); }
body[data-telegram-mini-app=true][data-art=realism] .door-name { max-width: calc(100vw - var(--telegram-safe-left) - var(--telegram-safe-right) - 112px); }
body[data-telegram-mini-app=true][data-art=realism] .door-caption { width: min(420px, calc(100vw - var(--telegram-safe-left) - var(--telegram-safe-right) - 32px)); }
body[data-telegram-mini-app=true][data-art=realism] .carousel-controls {
  left: var(--telegram-center-x);
  width: max-content;
  max-width: calc(100vw - var(--telegram-safe-left) - var(--telegram-safe-right) - 32px);
}
body[data-telegram-mini-app=true][data-art=realism] .carousel-controls > .caption-title { max-width: none; }
body[data-telegram-mini-app=true][data-art=realism] .forest-actions {
  left: var(--telegram-center-x);
  max-width: min(304px, calc(100vw - var(--telegram-safe-left) - var(--telegram-safe-right) - 64px));
}
body[data-telegram-mini-app=true] :is(#application, #calendar-dialog) {
  top: var(--telegram-safe-top);
  bottom: max(var(--telegram-safe-bottom), calc(100dvh - var(--forest-tg-visible-height, 100dvh) + var(--telegram-safe-bottom)));
  max-width: calc(100vw - var(--telegram-safe-left) - var(--telegram-safe-right) - 32px);
  max-height: min(84dvh, calc(var(--forest-tg-visible-height, 100dvh) - var(--telegram-safe-top) - var(--telegram-safe-bottom) - 32px));
}
@media (max-width: 650px) {
  body[data-telegram-mini-app=true] .frame {
    top: calc(10px + var(--telegram-safe-top));
    right: calc(10px + var(--telegram-safe-right));
    bottom: calc(10px + var(--telegram-safe-bottom));
    left: calc(10px + var(--telegram-safe-left));
  }
  body[data-telegram-mini-app=true][data-art=realism] .forest { --doors-bottom: calc(var(--telegram-scene-height) * .175 + 12px + var(--telegram-safe-bottom)); }
}
@media (max-width: 650px) and (max-height: 700px) {
  body[data-telegram-mini-app=true][data-art=realism] .forest { --doors-bottom: calc(var(--telegram-scene-height) * .195 + 12px + var(--telegram-safe-bottom)); }
  body[data-telegram-mini-app=true][data-art=realism] .doors { --door-height: calc(var(--telegram-scene-height) * .34); }
}
@media (max-width: 340px) {
  body[data-telegram-mini-app=true][data-art=realism] .carousel-controls { max-width: calc(100vw - var(--telegram-safe-left) - var(--telegram-safe-right) - 16px); }
}
