/* Shared mobile polish. Linked at the end of <body> so it wins over
   per-page !important rules in the Designer export. Desktop is unchanged. */
html{overflow-x:clip;}
img,video{max-width:100%;}
.n3-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.n3-burger{display:none;appearance:none;-webkit-appearance:none;}

@media (max-width:860px){
  section[data-screen-label="01 Hero"]{
    overflow-x:clip !important;
  }
  /* Designer re-renders this row; hiding it avoids a wrapping nav and a
     duplicate brand once the sticky bar stays on screen. */
  section[data-screen-label="01 Hero"] > .n3-pad > div:first-of-type{
    display:none !important;
  }
  section[data-screen-label="01 Hero"] > .n3-pad{
    padding-top:84px !important;
    padding-bottom:72px !important;
  }
  .n3-hero-h{
    font-size:clamp(28px,8.2vw,36px) !important;
    line-height:1.06 !important;
    overflow-wrap:normal;
  }
  .n3-disp{
    font-size:clamp(28px,8vw,36px) !important;
    overflow-wrap:normal;
  }
  .n3-ghost,.n3-hero-ghost{
    font-size:clamp(32px,11vw,48px) !important;
    max-width:min(100%,calc(100vw - 32px));
    overflow:hidden;
  }
  footer > div{
    padding-left:24px !important;
    padding-right:24px !important;
  }
  .n3-where{
    padding-left:24px !important;
    padding-right:24px !important;
    padding-top:48px !important;
  }
  footer > div:first-child{
    padding-top:64px !important;
    padding-bottom:40px !important;
    gap:40px !important;
  }
  footer a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .n3-proofrow > div:not(.n3-proofimg){
    padding:48px 24px !important;
  }
  .n3-proofimg{min-height:220px !important;}
  section[data-screen-label="10 Fit"] .n3-grid2 > div,
  section[data-screen-label="04 Fit"] .n3-grid2 > div{
    padding:40px 24px !important;
  }
  .n3-faq summary{
    min-height:44px;
    font-size:16px !important;
    padding:18px 0 !important;
    gap:16px !important;
  }
  .n3-faq .n3-faq-a{
    font-size:16px !important;
  }
  a.n3-card[style*="64px 56px"]{
    padding:32px 20px !important;
  }
  [style*="min-width:300px"]{min-width:0 !important;}
  [style*="padding:72px 64px"],
  [style*="padding:48px 40px"]{
    padding:36px 24px !important;
  }
  button[aria-expanded]{
    min-height:44px;
    padding:12px 0 !important;
  }
  .n3-partner-ctas{
    margin-top:16px;
  }
  .n3-partner-talk{
    min-height:44px;
    display:flex;
    align-items:center;
    margin-top:16px;
    padding-top:16px;
  }
  .n3-topbar{
    flex-wrap:nowrap !important;
    align-items:center !important;
    margin-bottom:28px !important;
    position:relative;
    gap:12px !important;
    width:100%;
  }
  .n3-burger{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    width:44px;
    height:44px;
    margin-left:auto;
    flex:none;
    padding:0;
    background:transparent;
    border:1px solid rgba(168,203,234,0.35);
    cursor:pointer;
  }
  .n3-burger span{
    display:block;
    width:18px;
    height:2px;
    background:#FFFFFF;
  }
  .n3-topbar.is-open .n3-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .n3-topbar.is-open .n3-burger span:nth-child(2){opacity:0;}
  .n3-topbar.is-open .n3-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .n3-burger span{transition:transform 160ms ease,opacity 160ms ease;}
  .n3-menu{
    display:none !important;
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    right:0;
    flex-direction:column !important;
    align-items:stretch !important;
    flex-wrap:nowrap !important;
    gap:0 !important;
    background:#0D182B;
    border:1px solid rgba(168,203,234,0.25);
    padding:8px 20px 20px;
    z-index:140;
  }
  .n3-topbar.is-open .n3-menu{display:flex !important;}
  .n3-menu a{
    min-height:48px;
    display:flex !important;
    align-items:center;
    padding:12px 0 !important;
    border-bottom:1px solid rgba(168,203,234,0.15);
    box-sizing:border-box;
  }
  .n3-menu a:last-child{
    border-bottom:0;
    margin-top:12px;
    justify-content:center;
    min-height:48px;
    padding:14px 20px !important;
  }
  /* 96px side fades leave only ~198px solid on a 390px phone, so Bad Birdie
     sits inside the left fade. Tighten to 24px; the lead spacer follows. */
  .n3-marquee-wrap{
    --n3-marquee-fade:24px;
    -webkit-mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent) !important;
    mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent) !important;
  }
}

@media (max-width:520px){
  /* 36px display type is wider than a phone. Step down so $10M to $100M
     stays intact instead of overflowing the hero. */
  .n3-hero-h{
    font-size:clamp(26px,7.4vw,32px) !important;
  }
  .n3-cta-row{width:100%;}
  .n3-cta-row > a{
    width:100%;
    text-align:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:48px;
    display:inline-flex;
    align-items:center;
  }
}

@media (prefers-reduced-motion:reduce){
  .n3-burger span{transition:none;}
  .n3-partner-bio:not(.n3-bio-closed){animation:none;}
}
