
/* Geetha Elevators static reliability + lightweight animation patch.
   Layout values remain those captured from the original site. */
html { scroll-behavior: smooth; height: auto !important; min-height: 100% !important; overflow-x: hidden !important; overflow-y: auto !important; }
body { height: auto !important; min-height: 100vh !important; overflow-x: hidden !important; overflow-y: visible !important; }
.transition,
.transition.transition--fade:not(.transition--root-hidden),
.transition.transition--slide:not(.transition--root-hidden),
.transition.transition--scale:not(.transition--root-hidden),
.transition.transition--zoom:not(.transition--root-hidden),
.transition.transition--undefined:not(.transition--root-hidden),
[data-animation-role="block-element"],
[data-animation-role="image"] {
  opacity: 1 !important;
  transform: none !important;
}
img, picture, video { visibility: visible !important; }
.page, .page__blocks, .block, .block-layout { max-width: 100%; }
.page, .page__blocks { height: auto !important; overflow: visible !important; }

/* Animation never controls visibility permanently: each section animates from a
   visible fallback state using CSS only. */
@media (prefers-reduced-motion: no-preference) {
  main > astro-island > div > .block,
  main .page__blocks > .block,
  main > .block {
    animation: geetha-section-in .62s cubic-bezier(.2,.72,.2,1) both;
  }
  main > astro-island > div > .block:nth-of-type(2),
  main .page__blocks > .block:nth-of-type(2) { animation-delay: .05s; }
  main > astro-island > div > .block:nth-of-type(3),
  main .page__blocks > .block:nth-of-type(3) { animation-delay: .10s; }
  .grid-button, .geetha-header-link, .geetha-header-dropdown-toggle,
  .geetha-mobile-toggle, .whats-app-bubble {
    transition: transform .22s ease, opacity .22s ease, box-shadow .22s ease, color .22s ease !important;
  }
  .grid-button:hover, .whats-app-bubble:hover { transform: translateY(-2px); }
  .image__image { transition: transform .5s cubic-bezier(.2,.72,.2,1) !important; }
  .layout-element:hover > .image .image__image,
  .layout-element:hover .image__image { transform: scale(1.012); }
}
@keyframes geetha-section-in {
  from { opacity: .01; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Keep common header/footer crisp at all viewports without changing the
   original page grid. */
.block-header { box-sizing: border-box !important; }
.block-header *, .block--footer * { box-sizing: border-box; }
@media (max-width: 767px) {
  .block-header { width: 100% !important; }
  .geetha-mobile-menu { max-height: calc(100vh - 96px); overflow-y: auto; }
  .block-layout { min-width: 0 !important; }
}

/* VS Code / formatter whitespace safety
   The exported builder used `break-spaces` for GridTextBox content. Source
   formatters add indentation and line breaks; with break-spaces those become
   visible whitespace and can change grid sizing. `normal` collapses source
   formatting whitespace while preserving the exact current text layout. */
.text-box,
.layout-element__component--GridTextBox {
  white-space: normal !important;
}

