/* AINNA hero full-view pass — Cyberpunk Globe Lite sites
   Goal: main hero fills the first screen on desktop and mobile, and
   oversized blank bands between sections are removed.
   Loaded after page CSS so these rules win without editing every page. */

html,
body {
  overflow-x: clip;
}

/* ---------- Desktop ---------- */
@media (min-width: 901px) {
  /* Homepage — content-fit hero (heroes1): no forced full-viewport centering
     on desktop, otherwise a short hero leaves large empty bands above/below. */
  body.ainna-homepage section.hero {
    min-height: auto !important;
    justify-content: flex-start !important;
  }

  /* Solution hubs + research (sticky nav ~62px in flow) */
  body.ai-lofi-night section.hero:not(.asset-hero) {
    min-height: calc(100svh - 62px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  body.ai-lofi-night div.hero {
    min-height: calc(100svh - 112px) !important;
  }

  body:has(.hero-orbit) .hero {
    min-height: 100svh !important;
  }

  body:has(.hero-portrait) .hero-portrait {
    max-height: 300px;
    overflow: hidden;
  }

  body:has(.hero-portrait) .hero-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .esg-video-hero {
    height: auto !important;
    min-height: calc(100svh - 108px) !important;
    align-content: center;
    padding-top: 32px !important;
    padding-bottom: 28px !important;
  }

  .team-hero {
    min-height: calc(100svh - 88px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .th-hero {
    min-height: 100svh !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .ai-hero-dark,
  .bl-hero-dark {
    min-height: calc(100svh - 64px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .rd-hero {
    min-height: calc(100svh - 61px) !important;
  }

  .gov-hero,
  .detached-hero {
    min-height: 100svh !important;
  }

  .gov-hero {
    padding-top: 40px !important;
    padding-bottom: 32px !important;
  }

  .ce-hero {
    min-height: calc(100svh - 53px) !important;
  }

  .pitch-hero,
  .prop-hero {
    min-height: calc(100svh - 69px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .demo-hero {
    min-height: calc(100svh - 48px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero-section {
    min-height: calc(100svh - 105px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero.llm-section {
    min-height: calc(100svh - 48px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  body[class*="profile-page"] .hero,
  body.masli-theme .hero {
    min-height: 100svh !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero.asset-hero {
    min-height: 100svh !important;
  }

  body.compliance-page .hero {
    min-height: calc(100svh - 113px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .strag .hero,
  body:has(.strag) .hero {
    min-height: calc(100svh - 79px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  body.sme-page .hero,
  body:has(.sme-hero) .hero {
    min-height: 100svh !important;
  }

  .hero.section {
    height: auto !important;
    min-height: 100svh !important;
  }


  body:has(#networkCanvas) .hero {
    height: auto !important;
    min-height: 100svh !important;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 900px) {
  body.ainna-homepage section.hero {
    min-height: 100svh !important;
    justify-content: center !important;
    padding-top: 86px !important;
  }

  body.ainna-homepage section.hero .hero-visuals {
    display: none !important;
  }

  body.ai-lofi-night section.hero:not(.asset-hero) {
    min-height: calc(100svh - 111px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  body.ai-lofi-night div.hero {
    min-height: calc(100svh - 92px) !important;
  }

  body:has(.hero-orbit) .hero {
    min-height: 100svh !important;
  }

  .esg-video-hero {
    height: auto !important;
    min-height: calc(100svh - 109px) !important;
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .team-hero {
    min-height: calc(100svh - 64px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .th-hero {
    min-height: 100svh !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .ai-hero-dark,
  .bl-hero-dark {
    min-height: calc(100svh - 69px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .rd-hero {
    min-height: calc(100svh - 61px) !important;
  }

  .gov-hero,
  .detached-hero {
    min-height: 100svh !important;
  }

  .gov-hero {
    padding-top: 36px !important;
    padding-bottom: 28px !important;
  }

  .gov-hero-stats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .gov-hero-stats > * {
    min-width: 0 !important;
    padding: 10px 8px !important;
  }

  .gov-hero-content > p {
    font-size: .85rem !important;
    line-height: 1.5 !important;
  }

  .visual-shell {
    display: none !important;
  }

  body:has(.visual-shell) .hero {
    padding: 70px 14px 24px !important;
  }

  body:has(.visual-shell) .hero-grid {
    gap: 18px !important;
  }

  body:has(.visual-shell) .hero h1 {
    font-size: clamp(28px, 8vw, 36px) !important;
    line-height: 1.08 !important;
  }

  body:has(.visual-shell) .hero p {
    font-size: .92rem !important;
    line-height: 1.5 !important;
  }

  body:has(.visual-shell) .hero-actions {
    margin-top: 16px !important;
  }

  body:has(.visual-shell) .hero-meta {
    gap: 10px !important;
    margin-top: 16px !important;
  }

  .stat-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .stat {
    padding: 12px 14px !important;
  }

  .pitch-hero,
  .prop-hero {
    min-height: calc(100svh - 69px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .demo-hero {
    min-height: calc(100svh - 72px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero-section {
    min-height: calc(100svh - 105px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero.llm-section {
    min-height: calc(100svh - 43px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  body[class*="profile-page"] .hero,
  body.masli-theme .hero {
    min-height: 100svh !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero.asset-hero {
    min-height: 100svh !important;
  }

  body.compliance-page .hero {
    min-height: calc(100svh - 113px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .strag .hero,
  body:has(.strag) .hero {
    min-height: calc(100svh - 79px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .hero.section {
    height: auto !important;
    min-height: 100svh !important;
  }

  body[data-industry="it"] .ainna-hero-panzoom {
    min-height: calc(100svh - 66px) !important;
  }

  body.ai-lofi-night:has(.noph-neural-core) section.hero {
    min-height: calc(100svh - 140px) !important;
  }

  body:has(#networkCanvas) .hero {
    height: auto !important;
    min-height: 100svh !important;
    padding: 96px 18px 40px !important;
  }

  body:has(#networkCanvas) .hero-visual {
    display: none !important;
  }

  body:has(#networkCanvas) .hero h1 {
    font-size: clamp(34px, 9vw, 44px) !important;
  }

  body:has(#networkCanvas) .hero-metrics {
    margin-top: 16px !important;
  }

  body.compliance-page .hero-hud {
    display: none !important;
  }

  body:has(.hero-side) .hero {
    min-height: 100svh !important;
  }

  body:has(.hero-side) .hero-side {
    display: none !important;
  }

  body:has(.locator-shell) .locator-shell {
    height: 240px !important;
    min-height: 240px !important;
  }

  body:has(.locator-shell) .locator-shell iframe {
    height: 100% !important;
  }

  .ce-concept-grid {
    display: none !important;
  }

  .ce-hero {
    padding-top: 60px !important;
    padding-bottom: 16px !important;
  }

  .ce-hero-main h1 {
    font-size: clamp(28px, 8vw, 36px) !important;
    line-height: 1.1 !important;
  }

  .ce-hero-main .ce-hero-badge + .ce-hero-badge,
  .ce-hero-fly {
    display: none !important;
  }

  .ce-hero-actions {
    margin-bottom: 10px !important;
  }

  .ce-hero-actions .btn,
  .ce-hero-actions button {
    min-height: 42px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .rd-hero-visual {
    display: none !important;
  }

  .rd-hero {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  body:has(.hero-portrait) .hero-portrait,
  body:has(.hero-portrait) .hero-contact {
    display: none !important;
  }

  body:has(.hero-portrait) .hero {
    padding-top: 60px !important;
    padding-bottom: 24px !important;
  }
}
