/* LAUNEXT mobile polish — 2026-08-21
   Shared responsive fixes for public pages, auth, investor portal and admin. */

/* Portal-access role selector: prevent generic form input styles from breaking radios. */
.launext-access-field{
  border:0;
  margin:0;
  padding:0;
  min-inline-size:0;
}
.launext-access-field>legend{
  margin:0 0 8px;
  padding:0;
  font:500 12px var(--font-mono,"JetBrains Mono",monospace);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink,#12151F);
}
.launext-access-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.simple-form .launext-access-option,
.launext-access-option{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:center!important;
  gap:10px!important;
  min-height:48px;
  padding:0 14px!important;
  border:1px solid var(--grid-line,#E2DDD3);
  border-radius:6px;
  background:#fff;
  color:var(--ink,#12151F)!important;
  font:500 14px/1.2 var(--font-sans,Inter,sans-serif)!important;
  letter-spacing:0!important;
  text-transform:none!important;
  cursor:pointer;
}
.simple-form .launext-access-option input[type="radio"],
.launext-access-option input[type="radio"]{
  appearance:auto!important;
  -webkit-appearance:radio!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  box-shadow:none!important;
  outline-offset:2px;
  accent-color:var(--ignition,#FF6B12);
  flex:0 0 18px;
}
.launext-access-option:has(input:checked){
  border-color:var(--ignition,#FF6B12);
  background:var(--ignition-soft,#FFE8D6);
}

@media(max-width:1024px){
  /* Mobile drawer: keep navigation and actions together rather than pinning CTAs far below. */
  .mobile-menu{
    overflow-y:auto!important;
    justify-content:flex-start!important;
    align-content:start!important;
  }
  .mobile-menu nav{
    flex:0 0 auto!important;
    min-height:auto!important;
    overflow:visible!important;
    padding-bottom:4px!important;
  }
  .mobile-actions{
    position:static!important;
    flex:0 0 auto!important;
    margin:10px 20px 22px!important;
    padding:12px!important;
    border:1px solid var(--grid-line)!important;
    border-radius:10px!important;
    background:rgba(251,250,247,.98)!important;
    box-shadow:none!important;
  }
}

@media(max-width:700px){
  /* Home hero: content first, contained motion second. No clipped 650px video. */
  .home-hero .hero-grid{
    padding-block:40px 52px!important;
    gap:30px!important;
  }
  .home-hero .hero-copy{
    order:1!important;
  }
  .home-hero .hero-grid>div:last-child,
  .home-hero .hero-motion-wrap{
    order:2!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 auto!important;
  }
  .hero-motion-wrap{
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    overflow:hidden!important;
    min-width:0!important;
  }
  .hero-launch-motion{
    display:block!important;
    width:100%!important;
    max-width:430px!important;
    height:auto!important;
    flex:0 1 auto!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  .home-hero .hero-copy h1{margin-top:14px!important}
  .home-hero .hero-copy .lead{margin-top:18px!important}
  .home-hero .hero-tag{margin-top:18px!important}
  .home-hero .btn-row{margin-top:24px!important}

  /* Apply flow: controls participate in layout instead of covering form fields. */
  .apply-nav{
    position:static!important;
    inset:auto!important;
    margin-top:20px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  }
  .apply-body{padding-bottom:64px!important}
  .apply-tabs{
    font-size:11px!important;
    line-height:1.35!important;
    letter-spacing:.07em!important;
  }
  .apply-step{scroll-margin-top:84px}

  /* Better vertical rhythm after desktop two-column sections collapse. */
  .service-section .two-col{gap:24px!important}

  /* Keep primary service actions consistent and easy to tap. */
  .service-hero .btn,
  .investor-hero .btn{
    width:100%!important;
    justify-content:center!important;
  }

  /* Duplicate logo in Investor Network hero adds no value on small screens. */
  .investor-hero .investor-logo{display:none!important}
  .investor-hero{padding-top:52px!important}

  /* Touch targets without making the visual typography bulky. */
  .text-link,
  .site-footer li>a{
    display:inline-flex!important;
    align-items:center!important;
    min-height:40px!important;
    padding-block:6px!important;
  }
  .site-footer ul{gap:2px!important}

  .launext-access-options{grid-template-columns:1fr!important}
  .launext-access-option{min-height:50px!important}
}

@media(max-width:430px){
  .mobile-actions{margin-left:17px!important;margin-right:17px!important}
  .home-hero .hero-grid{padding-top:34px!important}
  .home-hero .hero-copy h1{font-size:34px!important;line-height:1.08!important}
}

/* Investor portal / auth / admin mobile refinements */
@media(max-width:680px){
  /* Filters: use a real responsive 2×2 grid rather than a clipped horizontal rail. */
  .filter-panel{
    display:block!important;
    padding:10px!important;
    margin-bottom:16px!important;
  }
  .filter-panel .search-wrap{width:100%!important}
  .filter-panel .search-wrap .filter-control{height:44px!important}
  .filter-options{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    overflow:visible!important;
    padding:8px 0 0!important;
  }
  .filter-options .filter-control,
  .filter-options #lookingFilter,
  .filter-options #countryFilter{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:44px!important;
    border-radius:9px!important;
    padding:0 28px 0 10px!important;
    font-size:12px!important;
  }

  /* Readable metadata and status labels. */
  .portal-stat span,
  .tag-group-label,
  .placeholder-card span,
  .detail-card-head span,
  .launext-note .note-label,
  .portal-modal-head p,
  .request-status,
  .opportunity-note,
  .opportunity-kicker{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .tag,
  .startup-card-v3 .tag.stage,
  .card-meta-line .tag.stage{
    font-size:11px!important;
    min-height:27px!important;
  }
  .card-meta-line,
  .startup-card-v3 .card-title p,
  .opportunity-amount,
  .opportunity-chip{
    font-size:12px!important;
    line-height:1.4!important;
  }
  .legal-note{font-size:11.5px!important;line-height:1.65!important}

  /* Auth typography and controls. */
  .auth-page{padding:20px 14px!important}
  .auth-brand{margin-bottom:18px!important}
  .auth-brand img{width:142px!important}
  .auth-brand span,
  .auth-card .mono-label,
  .auth-security,
  .auth-section-label,
  .auth-divider-labeled span,
  .forgot-password-link{
    font-size:11px!important;
    line-height:1.4!important;
  }
  .forgot-password-link{min-height:40px;display:inline-flex;align-items:center}
}

@media(max-width:899px){
  /* Admin navigation: all destinations visible, no half-clipped horizontal tabs. */
  .admin-nav{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    overflow:visible!important;
    padding-bottom:0!important;
  }
  .admin-nav-item{
    width:100%!important;
    min-height:44px!important;
    white-space:normal!important;
    line-height:1.25!important;
  }
  .admin-nav-item:nth-child(5){grid-column:1/-1}
  .admin-sidebar-footer{margin-top:14px!important}
}

@media(max-width:650px){
  .admin-stat-label{font-size:11px!important;line-height:1.35!important}
  .admin-stat-card>span:last-child{font-size:11.5px!important}
}

@media(max-width:680px){
  .filter-options .filter-control{grid-column:auto!important}
}


/* V11.1 mobile interaction hardening - 2026-09-02 */
.hero-ghost,.ghost-logo,.dark-grid,.road-lines,.road-lines-v2{pointer-events:none!important}
.corner::before,.corner::after{pointer-events:none!important}
.home-hero .hero-copy{position:relative;z-index:3}
.home-hero .hero-motion-wrap{position:relative;z-index:1}
.home-hero .btn-row{position:relative;z-index:4}
.home-hero .btn-row .btn{position:relative;z-index:5;pointer-events:auto!important}
a,button,.btn,[role="button"]{touch-action:manipulation}
.btn .icon,button .icon,a .icon{pointer-events:none}

@media(max-width:700px){
  .global-modal{padding:0!important;align-items:stretch!important;justify-content:stretch!important}
  .global-modal-card{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;margin:0!important}
  .global-modal-head{padding:calc(12px + env(safe-area-inset-top)) 18px 12px!important;min-height:64px!important}
  .global-modal-scroll{overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important}
  .global-modal-body{padding:22px 18px calc(28px + env(safe-area-inset-bottom))!important}
  .global-form-two{grid-template-columns:1fr!important}
  .global-form-nav{gap:10px!important}
  .global-form-nav .btn,.global-form-nav .global-back{min-height:48px!important}
  .global-modal-close{min-width:44px!important;min-height:44px!important}
  .simple-form button[type="submit"],.newsletter button[type="submit"],.global-submit{min-height:48px!important}
  .launext-terms-consent label{min-height:44px;align-items:flex-start!important}
  .launext-captcha-refresh{min-height:44px!important}
}
