/* ===== GLOBAL RESPONSIVE LAYER: desktop -> 300px ===== */
html { -webkit-text-size-adjust: 100% }
html, body { max-width: 100%; overflow-x: clip }
img, video, svg { max-width: 100% }
.container { padding-left: 16px; padding-right: 16px }
h1, h2, h3, h4, p, a, li, span { overflow-wrap: break-word }

/* hidden dropdown/sub menus must never widen the page */
.dropdown-menu, .submenu { max-width: calc(100vw - 32px) }
.navbar .dropdown-item { white-space: normal }

/* hero orbit scales with its own width (container query units) */
.orbit { container-type: inline-size; --r: 40cqw }
.orbit .on span { font-size: clamp(.66rem, 3.3cqw, .88rem); padding: .5em .9em }

/* fluid type */
.ihero h1 { font-size: clamp(1.7rem, 7vw, 3.2rem) }

/* entry animation for hero content on every screen size */
@keyframes rsUp { from { opacity: 0; transform: translateY(22px) } to { opacity: 1; transform: none } }
.hero-inner > * { animation: rsUp .8s var(--ease) backwards }
.hero-inner > *:nth-child(2) { animation-delay: .1s }
.hero-inner > *:nth-child(3) { animation-delay: .2s }
.hero-inner > *:nth-child(4) { animation-delay: .3s }

@media (max-width: 1199px) {
  .navbar-collapse { max-height: calc(100vh - 120px); overflow-y: auto; animation: rsUp .35s var(--ease) }
  .dropdown-menu { position: static !important; transform: none !important; width: 100% }
  .submenu { position: static !important; width: 100%; margin-left: .6rem }
}
@media (max-width: 991px) {
  .ihero { padding-bottom: 3.4rem; border-radius: 0 0 28px 28px }
  .iwrap { gap: 2rem }
  .hv { max-width: 520px; width: 100%; margin: 0 auto }
  .row > [class*="col-"] { margin-bottom: .5rem }
}
@media (max-width: 575px) {
  html { font-size: 16px }
  .navwrap { padding-left: 8px; padding-right: 8px }
  .brand-logo { max-height: 44px; width: auto }
  .isec { padding-top: 2.6rem; padding-bottom: 2.6rem }
  .cta-section { padding-left: 0; padding-right: 0 }
  .cinfo { flex-direction: column; gap: .8rem; align-items: flex-start }
  .fbottom { font-size: .8rem }
  .fsearch { width: 100% }
  .orbit .on span { max-width: 36cqw; white-space: normal; text-align: center; line-height: 1.2; font-size: .64rem; padding: .4rem .6rem }
  .orbit { --r: 36cqw }
  .orbit .core { font-size: .72rem }
  table { display: block; overflow-x: auto }
}
@media (max-width: 360px) {
  html { font-size: 15px }
  .container { padding-left: 12px; padding-right: 12px }
  .ihero { padding-top: calc(108px + 1.6rem) }
  .eyebrow { font-size: .62rem; letter-spacing: .04em }
}
@media (prefers-reduced-motion: reduce) { .hero-inner > * { animation: none } }

/* inner-page components */
.term, .term-b, .slab, .slab > * { min-width: 0 }
.term-b { overflow-wrap: anywhere; white-space: normal }
@media (max-width: 991px) {
  .slab { grid-template-columns: 1fr; gap: .8rem }
  .slab:nth-child(even) { transform: none }
}
@media (max-width: 575px) {
  .term-b { font-size: .74rem; padding: 1rem }
  .slab { padding: 1.1rem 1rem }
  .slab h3, .hc h5 { font-size: 1.15rem }
  .vi h5 { font-size: 1.2rem }
  .hc .hn { font-size: 3.2rem }
  .index-hero-row, .hero .row { margin-left: 0; margin-right: 0 }
}
.iwrap > *, .row > * { min-width: 0 }
@media (max-width: 575px) {
  .g-5, .gx-5 { --bs-gutter-x: 1.5rem }
  .g-5, .gy-5 { --bs-gutter-y: 2rem }
  /* terminal typing effect needs fixed width: swap for a fade-in line reveal on phones */
  .tl, .in .tl { width: auto !important; white-space: normal !important; overflow: visible }
  .in .tl { animation: rsUp .6s var(--ease) backwards !important; animation-delay: calc(var(--i) * .2s + .2s) !important }
}
.termg { grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)) }

/* contact hero chips + mobile headings */
.rp { container-type: inline-size }
@media (max-width: 575px) {
  .rp .cp { max-width: 38cqw; white-space: normal; text-align: center; line-height: 1.2; font-size: .64rem; padding: .4rem .6rem }
  .rp .ct { font-size: .8rem }
  h2 { font-size: clamp(1.5rem, 8vw, 2.2rem) }
  .hero h1 { font-size: clamp(1.7rem, 9vw, 2.4rem) !important }
  .hero h1, h2 { hyphens: manual; word-break: normal }
}
@media (max-width: 575px) { .rp .cp:nth-of-type(1), .rp .cp:nth-of-type(3) { left: 0 !important } }
