/* RENGANURA_GLOBAL_TYPOGRAPHY_CALM_V92 */

/*
  Purpose:
  - Remove aggressive oversized hero typography.
  - Keep headings visible and executive.
  - Preserve navbar/logo/module layout.
*/

:root{
  --renganura-h1-calm-v92: clamp(2rem, 3.2vw, 2.9rem);
  --renganura-h2-calm-v92: clamp(1.55rem, 2.2vw, 2.15rem);
  --renganura-hero-calm-v92: clamp(2rem, 3vw, 2.75rem);
}

/* Main page titles */
h1,
.hero h1,
.hero-main h1,
.hero-title,
.page-title,
.main-title,
.display-title,
.landing-title,
.workspace-title,
[class*="hero"] h1,
[class*="Hero"] h1{
  font-size: var(--renganura-h1-calm-v92) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.025em !important;
  max-width: 980px;
}

/* Secondary titles */
h2,
.section-title,
.panel-title,
.card-title,
[class*="hero"] h2,
[class*="Hero"] h2{
  font-size: var(--renganura-h2-calm-v92) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.018em !important;
}

/* Specific protection for aggressive legal/intelligence titles */
h1:has(+ p),
[class*="case"] h1,
[class*="Case"] h1,
[class*="analyzer"] h1,
[class*="Analyzer"] h1,
[class*="simulation"] h1,
[class*="Simulation"] h1,
[class*="intelligence"] h1,
[class*="Intelligence"] h1{
  font-size: var(--renganura-hero-calm-v92) !important;
}

/* V92 JS also adds this class where computed font-size is excessive */
.renganura-calm-title-v92{
  font-size: var(--renganura-hero-calm-v92) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.025em !important;
  max-width: 980px !important;
}

/* Avoid shrinking small navbar labels, buttons, badges, inputs */
nav h1,
nav h2,
.topbar h1,
.topbar h2,
.brand h1,
.brand h2,
button h1,
button h2,
.badge h1,
.badge h2,
.tag h1,
.tag h2{
  font-size: inherit !important;
}

/* Mobile calm typography */
@media(max-width:760px){
  :root{
    --renganura-h1-calm-v92: clamp(1.65rem, 7vw, 2.1rem);
    --renganura-h2-calm-v92: clamp(1.35rem, 5vw, 1.75rem);
    --renganura-hero-calm-v92: clamp(1.7rem, 7vw, 2.15rem);
  }
}


/* RENGANURA_NAVBAR_LANGUAGE_FRAME_FIX_V13
   Purpose: keep the language selector inside the navbar/page frame and prevent horizontal overflow.
*/

html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

*,
*::before,
*::after {
  box-sizing: border-box !important;
}

/* Primary navbar containment */
header,
nav,
.rg-header,
.rg-navbar,
.rg-public-navbar,
.renganura-navbar,
.public-navbar,
.navbar,
.navbar-shell,
.navbar-wrap,
.navbar-inner,
.navbar-menu,
.navbar-links,
.rg-nav,
.rg-nav-menu,
.rg-nav-links,
.public-nav,
.public-nav-inner,
.public-nav-links {
  max-width: 100vw !important;
  box-sizing: border-box !important;
}

/* Keep navbar content within the available width */
header nav,
.rg-navbar nav,
.rg-public-navbar nav,
.renganura-navbar nav,
.public-navbar nav,
.navbar nav,
nav.rg-nav,
nav.public-nav,
.navbar-menu,
.navbar-links,
.rg-nav-menu,
.rg-nav-links,
.public-nav-links {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: clamp(0.35rem, 0.55vw, 0.85rem) !important;
  overflow: visible !important;
}

/* Prevent individual menu labels from forcing page overflow */
header nav a,
header nav button,
.rg-navbar a,
.rg-navbar button,
.rg-public-navbar a,
.rg-public-navbar button,
.renganura-navbar a,
.renganura-navbar button,
.public-navbar a,
.public-navbar button,
.navbar a,
.navbar button,
nav a,
nav button {
  min-width: 0 !important;
  white-space: nowrap !important;
  flex: 0 1 auto !important;
}

/* Login button must remain inside the navbar, not push language outside */
a.rg-login,
button.rg-login,
.rg-login,
[href="/login/"],
[href*="/login"] {
  flex: 0 0 auto !important;
  margin-left: clamp(0.3rem, 0.6vw, 0.8rem) !important;
}

/* Language selector containment */
header [class*="lang" i],
header [id*="lang" i],
nav [class*="lang" i],
nav [id*="lang" i],
.rg-navbar [class*="lang" i],
.rg-navbar [id*="lang" i],
.rg-public-navbar [class*="lang" i],
.rg-public-navbar [id*="lang" i],
.renganura-navbar [class*="lang" i],
.renganura-navbar [id*="lang" i],
.public-navbar [class*="lang" i],
.public-navbar [id*="lang" i],
.navbar [class*="lang" i],
.navbar [id*="lang" i],
select[class*="lang" i],
select[id*="lang" i],
button[class*="lang" i],
button[id*="lang" i] {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  float: none !important;
  flex: 0 0 auto !important;
  max-width: clamp(6.5rem, 9vw, 9rem) !important;
  min-width: 0 !important;
  margin-left: clamp(0.25rem, 0.45vw, 0.65rem) !important;
  margin-right: 0 !important;
  z-index: 5 !important;
}

/* If the language control is a pill/dropdown */
header [class*="language" i],
header [class*="locale" i],
nav [class*="language" i],
nav [class*="locale" i],
.rg-language,
.rg-lang,
.rg-locale,
.language-selector,
.lang-selector,
.locale-selector,
.language-switcher,
.lang-switcher,
.locale-switcher {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  flex: 0 0 auto !important;
  max-width: clamp(6.5rem, 9vw, 9rem) !important;
  min-width: 0 !important;
  white-space: nowrap !important;
}

/* Select/dropdown visual control */
select,
button[class*="language" i],
button[class*="lang" i],
button[class*="locale" i],
[class*="language" i] button,
[class*="lang" i] button,
[class*="locale" i] button {
  max-width: clamp(6.5rem, 9vw, 9rem) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Reduce navbar pressure before it overflows */
@media (max-width: 1500px) {
  header nav,
  .rg-navbar nav,
  .rg-public-navbar nav,
  .renganura-navbar nav,
  .public-navbar nav,
  .navbar nav,
  nav.rg-nav,
  nav.public-nav,
  .navbar-menu,
  .navbar-links,
  .rg-nav-menu,
  .rg-nav-links,
  .public-nav-links {
    gap: clamp(0.25rem, 0.45vw, 0.65rem) !important;
  }

  header nav a,
  header nav button,
  .rg-navbar a,
  .rg-navbar button,
  .rg-public-navbar a,
  .rg-public-navbar button,
  .renganura-navbar a,
  .renganura-navbar button,
  .public-navbar a,
  .public-navbar button,
  .navbar a,
  .navbar button,
  nav a,
  nav button {
    font-size: clamp(0.82rem, 0.72vw, 0.95rem) !important;
    padding-left: clamp(0.35rem, 0.45vw, 0.65rem) !important;
    padding-right: clamp(0.35rem, 0.45vw, 0.65rem) !important;
  }
}

/* On smaller desktop/tablet widths, allow a controlled second line instead of pushing outside frame */
@media (max-width: 1180px) {
  header nav,
  .rg-navbar nav,
  .rg-public-navbar nav,
  .renganura-navbar nav,
  .public-navbar nav,
  .navbar nav,
  nav.rg-nav,
  nav.public-nav,
  .navbar-menu,
  .navbar-links,
  .rg-nav-menu,
  .rg-nav-links,
  .public-nav-links {
    flex-wrap: wrap !important;
    row-gap: 0.55rem !important;
  }

  header [class*="lang" i],
  header [id*="lang" i],
  nav [class*="lang" i],
  nav [id*="lang" i],
  .rg-language,
  .rg-lang,
  .language-selector,
  .lang-selector,
  .locale-selector {
    margin-left: auto !important;
  }
}

/* Final guard against any right-side pill escaping the viewport */
body > [class*="language" i],
body > [class*="lang" i],
body > [class*="locale" i],
body > select,
body > button[class*="lang" i],
body > button[class*="language" i] {
  right: clamp(0.5rem, 1vw, 1rem) !important;
  max-width: clamp(6.5rem, 9vw, 9rem) !important;
}

/* END_RENGANURA_NAVBAR_LANGUAGE_FRAME_FIX_V13 */
