/* Aurmada responsive layer — media-query overrides for the inline-styled pages.
   The DC/React runtime serializes inline styles as "prop: value" (space after the
   colon), so every value-bearing selector below matches BOTH the spaced and
   unspaced forms to stay robust. */

/* hamburger icon (hidden on desktop) */
.au-navburger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; cursor:pointer; }
.au-navburger span{ display:block; width:22px; height:2px; background:#f5f5f7; border-radius:2px; transition:transform .25s ease, opacity .25s ease; }
html[data-nav-open] .au-navburger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
html[data-nav-open] .au-navburger span:nth-child(2){ opacity:0; }
html[data-nav-open] .au-navburger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* collapse every multi-column grid on tablet & down */
@media (max-width: 900px){
  [style*="grid-template-columns"]{ grid-template-columns:1fr !important; }
}

@media (max-width: 900px){
  /* nav: swap desktop links for the hamburger */
  .au-navlinks{ display:none !important; }
  .au-navburger{ display:flex !important; }

  /* headings */
  [style*="font-size: 104px"],[style*="font-size:104px"]{ font-size:42px !important; }
  [style*="font-size: 92px"],[style*="font-size:92px"]{ font-size:40px !important; }
  [style*="font-size: 84px"],[style*="font-size:84px"]{ font-size:38px !important; }
  [style*="font-size: 80px"],[style*="font-size:80px"]{ font-size:38px !important; }
  [style*="font-size: 72px"],[style*="font-size:72px"]{ font-size:36px !important; }
  [style*="font-size: 66px"],[style*="font-size:66px"]{ font-size:34px !important; }
  [style*="font-size: 60px"],[style*="font-size:60px"]{ font-size:33px !important; }
  [style*="font-size: 56px"],[style*="font-size:56px"]{ font-size:31px !important; }
  [style*="font-size: 54px"],[style*="font-size:54px"]{ font-size:30px !important; }
  [style*="font-size: 52px"],[style*="font-size:52px"]{ font-size:30px !important; }
  [style*="font-size: 50px"],[style*="font-size:50px"]{ font-size:29px !important; }
  [style*="font-size: 48px"],[style*="font-size:48px"]{ font-size:28px !important; }
  [style*="font-size: 46px"],[style*="font-size:46px"]{ font-size:27px !important; }
  [style*="font-size: 44px"],[style*="font-size:44px"]{ font-size:27px !important; }
  [style*="font-size: 42px"],[style*="font-size:42px"]{ font-size:26px !important; }

  /* oversized subheads + lead paragraphs */
  [style*="font-size: 32px"],[style*="font-size:32px"]{ font-size:22px !important; }
  [style*="font-size: 30px"],[style*="font-size:30px"]{ font-size:21px !important; }
  [style*="font-size: 26px"],[style*="font-size:26px"]{ font-size:19px !important; }
  [style*="font-size: 25px"],[style*="font-size:25px"]{ font-size:18px !important; }
  [style*="font-size: 24px"],[style*="font-size:24px"]{ font-size:18px !important; }
  [style*="font-size: 23px"],[style*="font-size:23px"]{ font-size:17px !important; }
  [style*="font-size: 22px"],[style*="font-size:22px"]{ font-size:17px !important; }
  [style*="font-size: 21px"],[style*="font-size:21px"]{ font-size:16px !important; }
  [style*="font-size: 20px"],[style*="font-size:20px"]{ font-size:16px !important; }

  /* tame giant paddings */
  [style*="padding: 64px"],[style*="padding:64px"]{ padding:32px !important; }
  [style*="padding: 90px"],[style*="padding:90px"]{ padding:40px 22px !important; }
  [style*="padding: 84px"],[style*="padding:84px"]{ padding:36px 22px !important; }
  [style*="padding: 80px"],[style*="padding:80px"]{ padding:38px 22px !important; }
  [style*="padding: 200px"],[style*="padding:200px"]{ padding:80px 22px !important; }
  [style*="padding: 180px"],[style*="padding:180px"]{ padding:70px 22px !important; }

  /* uniform, comfortable side gutters for every section */
  section[style]{ padding-left:20px !important; padding-right:20px !important; }

  /* keep bottom-rounded hero/product tiles inside the viewport.
     Match BOTH the runtime form ("30px 30px 0px 0px") and the flattened/source
     form ("30px 30px 0 0") by stopping the substring at the first "0". */
  [style*="border-radius: 30px 30px 0"],[style*="border-radius:30px 30px 0"],
  [style*="border-radius: 32px 32px 0"],[style*="border-radius:32px 32px 0"],
  [style*="border-radius: 28px 28px 0"],[style*="border-radius:28px 28px 0"],
  [style*="border-radius: 24px 24px 0"],[style*="border-radius:24px 24px 0"]{ max-width:90vw !important; height:260px !important; }

  /* product carousels: full-height media tiles are too tall on phones */
  [style*="height: 598px"],[style*="height:598px"]{ height:440px !important; }
  [style*="height: 552px"],[style*="height:552px"]{ height:420px !important; }

  /* trim very tall fixed hero sections */
  [style*="height: 1120px"],[style*="height:1120px"]{ height:820px !important; }
  [style*="height: 1040px"],[style*="height:1040px"]{ height:800px !important; }
  [style*="height: 980px"],[style*="height:980px"]{ height:760px !important; }
  [style*="height: 920px"],[style*="height:920px"]{ height:720px !important; }

  /* product-page image panel */
  [style*="height: 600px"],[style*="height:600px"]{ height:360px !important; }

  /* stack the product-page detail split cleanly */
  [style*="gap: 56px"],[style*="gap:56px"]{ gap:28px !important; }
  [style*="gap: 72px"],[style*="gap:72px"]{ gap:32px !important; }
}

@media (max-width: 900px){
  /* sensor-node callouts: too small to read over the photo on phones */
  [data-node-label]{ display:none !important; }
  /* Shield Pro hero HUD callouts overlap the centred title on phones */
  [data-hud]{ display:none !important; }
}

@media (max-width: 900px){
  /* text-over-media hero tiles: grow to fit the copy instead of clipping it
     (aspect-ratio forces them ~198px tall on a phone, cutting 47-84px of text) */
  [style*="aspect-ratio: 848 / 480"],[style*="aspect-ratio:848/480"],[style*="aspect-ratio: 848/480"]{
    aspect-ratio:auto !important; min-height:380px !important;
  }
}

/* product carousels: hide scrollbars on the snap track */
[data-carousel]{ scrollbar-width:none; -ms-overflow-style:none; }
[data-carousel]::-webkit-scrollbar{ display:none; }

/* About timeline: hide the spine rail and left-align dates when entries stack */
@media (max-width: 900px){
  .au-tl-rail{ display:none !important; }
  .au-tl-date{ text-align:left !important; padding:0 0 10px !important; }
}

@media (max-width: 520px){
  [style*="font-size: 104px"],[style*="font-size:104px"],
  [style*="font-size: 92px"],[style*="font-size:92px"],
  [style*="font-size: 84px"],[style*="font-size:84px"],
  [style*="font-size: 80px"],[style*="font-size:80px"]{ font-size:33px !important; }
  [style*="font-size: 72px"],[style*="font-size:72px"],
  [style*="font-size: 66px"],[style*="font-size:66px"],
  [style*="font-size: 60px"],[style*="font-size:60px"]{ font-size:29px !important; }
  [style*="border-radius: 30px 30px 0"],[style*="border-radius:30px 30px 0"],
  [style*="border-radius: 32px 32px 0"],[style*="border-radius:32px 32px 0"],
  [style*="border-radius: 28px 28px 0"],[style*="border-radius:28px 28px 0"],
  [style*="border-radius: 24px 24px 0"],[style*="border-radius:24px 24px 0"]{ height:210px !important; }
}

/* ==========================================================================
   PARTNERS & COMMUNITY — logo wall
   --------------------------------------------------------------------------
   Every logo sits in an IDENTICAL cell and is centred in it on both axes, so
   the logos line up on strict vertical + horizontal lines at any screen size.

   >>> TO RESIZE A LOGO: change ONLY its max-height below. Nothing else moves.
       Bigger number = bigger logo. The cell never changes, so alignment holds.
   >>> TO CHANGE ROW HEIGHT: change the cell `height` value.
   ========================================================================== */
[data-partners]{
  display:grid;
  grid-template-columns:repeat(5, 1fr);   /* desktop: 5 across → 2 tidy rows */
  column-gap:24px;
  row-gap:32px;
  align-items:center;
  justify-items:center;
}
[data-partners] > div{                    /* the identical cell every logo gets */
  height:96px;                            /* ← row height (desktop) */
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
[data-partners] img{
  max-width:100%;                         /* never overflow its cell */
  width:auto; height:auto;
  object-fit:contain;
  max-height:52px;                        /* default cap */
}

/* --- per-logo size, DESKTOP. Tune these.
   Every PNG is tight-cropped (no transparent padding), so max-height is the
   logo's REAL height. Sizes are balanced by INK COVERAGE, not by height:
   thin line-art (NYFW 7.5% ink, Acceleration 10%, TMU 8%) needs to be taller
   than a solid wordmark (Google/Microsoft ~30% ink) to carry equal presence. */
[data-partners] img[src*="logo-tmu"]      { max-height:62px; }
[data-partners] img[src*="logo-cvl"]      { max-height:43px; }
[data-partners] img[src*="logo-dualuse"]  { max-height:66px; }
[data-partners] img[src*="logo-ces"]      { max-height:42px; }
[data-partners] img[src*="logo-nyfw"]     { max-height:61px; }
[data-partners] img[src*="logo-ontario"]  { max-height:25px; }
[data-partners] img[src*="logo-nvidia"]   { max-height:32px; }
[data-partners] img[src*="logo-aws"]      { max-height:39px; }
[data-partners] img[src*="logo-google"]   { max-height:30px; }
[data-partners] img[src*="logo-microsoft"]{ max-height:23px; }

/* Phones & tablets: 2 across → 5 tidy rows. Same uniform-cell rules. */
@media (max-width: 900px){
  [data-partners]{ grid-template-columns:1fr 1fr; column-gap:20px; row-gap:24px; }
  [data-partners] > div{ height:88px; }   /* ← row height (mobile) */

  /* --- per-logo size, MOBILE. Same ink-balanced ratios as desktop. --- */
  [data-partners] img[src*="logo-tmu"]      { max-height:62px; }
  [data-partners] img[src*="logo-cvl"]      { max-height:43px; }
  [data-partners] img[src*="logo-dualuse"]  { max-height:66px; }
  [data-partners] img[src*="logo-ces"]      { max-height:42px; }
  [data-partners] img[src*="logo-nyfw"]     { max-height:61px; }
  [data-partners] img[src*="logo-ontario"]  { max-height:26px; }
  [data-partners] img[src*="logo-nvidia"]   { max-height:33px; }
  [data-partners] img[src*="logo-aws"]      { max-height:42px; }
  [data-partners] img[src*="logo-google"]   { max-height:31px; }
  [data-partners] img[src*="logo-microsoft"]{ max-height:25px; }

  /* If the logo count is ever odd, the last one spans both columns (stays centred) */
  [data-partners] > div:last-child:nth-child(odd){ grid-column:1 / -1; }
}

/* tech-spec slides on phones: keep the 2×2 stat grid, tighten type, drop the side photo */
@media (max-width: 900px){
  [data-slide] [style*="grid-template-columns"]{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:18px 20px !important; }
  [data-slide] [style*="font-size: 32px"],[data-slide] [style*="font-size:32px"]{ font-size:19px !important; }
  [data-slide] [style*="font-size: 13.5px"],[data-slide] [style*="font-size:13.5px"]{ font-size:11.5px !important; }
  [data-slide] img[style*="width: 46%"],[data-slide] img[style*="width:46%"]{ display:none !important; }
  [data-slide] [style*="padding: 38px 44px"],[data-slide] [style*="padding:38px 44px"]{ padding:22px 20px 48px !important; }
}

/* scenarios slide on phones: keep all four panels visible; labels get too cramped */
@media (max-width: 900px){
  [data-slide] img[src$="flux-vest-scenarios.jpg"]{ object-fit:contain !important; }
  [data-slide] img[src$="flux-vest-scenarios.jpg"] ~ div:last-child{ display:none !important; }
}

/* footer links: enlarge tap targets on phones (bare text lines are ~18px tall —
   below the comfortable ~40px touch minimum). Padding overlaps the flex gap so the
   column doesn't grow much taller. */
@media (max-width: 900px){
  footer a{ display:inline-block; padding:9px 0; }
  footer [style*="flex-direction:column"][style*="gap:12px"]{ gap:0 !important; }
}

/* Layer 1 Pro hero: the desktop [data-hud] annotations are absolute overlays hidden
   on phones; surface the same four capabilities as a compact grid under the hero copy. */
@media (max-width: 900px){
  [data-hud-mobile]{ display:grid !important; }
}
