/* Final responsive hardening for CustodyProviders.com
   Focus: mobile menu availability on all pages, forms, provider filter, cards, footer and modal safety. */
:root{--cp-bg:#04101f;--cp-card:#0d1b36;--cp-card-2:#10213f;--cp-line:rgba(148,163,184,.22);--cp-text:#ffffff;--cp-muted:#d3def4;--cp-blue:#5b9bff;}
*{box-sizing:border-box;min-width:0;}
html,body{max-width:100%;overflow-x:hidden!important;}
body{background:linear-gradient(180deg,#04101f 0%,#071a32 100%)!important;color:var(--cp-text)!important;}
img,svg,video,canvas{max-width:100%;height:auto;}
.container{width:100%;max-width:1240px;margin-left:auto;margin-right:auto;}
a,button,.btn,input,select,textarea{touch-action:manipulation;}
h1,h2,h3,h4,h5,h6,p,li,a,span,strong,label,summary,.brand,.btn,.pill,.provider-name,.footer-copy,.lead{overflow-wrap:anywhere;word-break:normal;}

/* Header and mobile menu */
.header{position:relative;z-index:1000;}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;}
.brand{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;}
.brand span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mobile-menu-toggle,#subpage-mobile-menu-toggle{display:none;width:46px!important;height:46px!important;min-width:46px!important;flex:0 0 46px!important;border-radius:14px!important;border:1px solid var(--cp-line)!important;background:#0d1b36!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:4px!important;padding:0!important;}
.mobile-menu-toggle span,#subpage-mobile-menu-toggle span{display:block!important;width:18px!important;height:2px!important;background:#fff!important;border-radius:999px!important;flex:0 0 2px!important;}
#global-mobile-menu-backdrop[hidden],#global-mobile-menu-panel[hidden]{display:none!important;}

/* Grid safety */
.hero-inner,.hero-grid,.directory-layout,.subpage-grid,.contact-grid,.pricing-grid,.pricing-grid-pro,.pricing-grid-clean,.topic-grid,.research-grid,.cards-grid,.provider-filter-grid,.provider-grid,.footer-grid,.footer-shell,.mini-metrics,.form-grid,.filters-bar,.filters-grid,.filter-row,.site-map-list{min-width:0;}
.hero-copy,.hero-card,.content-card,.sidebar-card,.contact-card,.cta-panel,.pricing-card,.pricing-tier,.pricing-tier-clean,.provider-card,.filters-shell,.topic-card,.faq-card,.research-card,.legal-card{min-width:0;max-width:100%;}

/* Forms */
.contact-grid{display:grid!important;grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr)!important;gap:24px!important;align-items:start!important;}
.contact-card{width:100%!important;max-width:none!important;}
.contact-card .form-grid,form .form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important;margin-top:22px!important;}
.contact-card .form-grid label,form .form-grid label{display:flex!important;flex-direction:column!important;gap:8px!important;min-width:0!important;font-weight:800!important;line-height:1.35!important;color:#fff!important;}
.contact-card input,.contact-card select,.contact-card textarea,form input,form select,form textarea{display:block!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;min-height:52px!important;padding:14px 16px!important;border-radius:14px!important;border:1px solid var(--cp-line)!important;background:#10213f!important;color:#fff!important;font:600 16px/1.35 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;}
.contact-card textarea,form textarea{min-height:136px!important;resize:vertical!important;}
.contact-card input[type="hidden"],form input[type="hidden"]{display:none!important;}
.contact-card .hero-cta,form .hero-cta,.hero-actions,.cta-actions,.lead-gate-actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important;align-items:center!important;}
.contact-card .hero-cta .btn,form .hero-cta .btn{min-height:52px!important;justify-content:center!important;}
.contact-grid > aside.hero-card .mini-metrics{grid-template-columns:1fr!important;}

/* Provider filter */
.filters-bar,.filters-grid,.filter-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;align-items:end!important;}
.filters-bar input,.filters-bar select,.filters-grid input,.filters-grid select,.filter-row input,.filter-row select{width:100%!important;min-height:50px!important;}
.filter-reset-btn{width:100%;min-height:50px!important;white-space:normal!important;}
.provider-filter-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;}
.provider-filter-grid .provider-card{display:flex!important;flex-direction:column!important;}
.provider-filter-grid .provider-card.is-hidden,.provider-filter-grid [data-provider-card].is-hidden{display:none!important;}
.provider-top,.provider-ident{min-width:0;}
.provider-bottom,.provider-actions{display:flex;flex-wrap:wrap;gap:10px;}
.provider-bottom .btn,.provider-bottom .view-profile-btn,.provider-actions .btn{flex:1 1 150px;justify-content:center;text-align:center;}

/* Modals */
#provider-access-modal,.provider-access-modal,.lead-gate-modal,.profile-modal-overlay{position:fixed;inset:0;z-index:99999!important;background:rgba(2,6,23,.62);padding:18px;overflow:auto;}
#provider-access-modal:not(.show),.provider-access-modal:not(.show){display:none!important;}
.lead-gate-card,.profile-modal-card{width:min(620px,100%)!important;max-width:calc(100vw - 32px)!important;margin:8vh auto!important;background:#0d1b36!important;border:1px solid var(--cp-line)!important;border-radius:24px!important;color:#fff!important;padding:24px!important;}
.profile-modal-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;}
.profile-modal-close{min-height:44px!important;border-radius:12px!important;}

@media (max-width:1100px){
  .provider-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .filters-bar,.filters-grid,.filter-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:980px){
  .hero-inner,.hero-grid,.directory-layout,.subpage-grid,.contact-grid,.pricing-grid,.pricing-grid-pro,.pricing-grid-clean,.topic-grid,.research-grid,.cards-grid,.footer-shell{grid-template-columns:1fr!important;}
  .contact-card .form-grid,form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .mini-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:760px){
  body{background:#041225!important;}
  .container{padding-left:16px!important;padding-right:16px!important;}
  .header{position:sticky!important;top:0!important;background:rgba(4,18,37,.97)!important;backdrop-filter:blur(12px);}
  .nav{min-height:68px!important;position:relative!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding-top:10px!important;padding-bottom:10px!important;}
  .brand{max-width:calc(100% - 64px)!important;min-height:44px!important;position:relative!important;z-index:1202!important;}
  .brand-mark{width:38px!important;height:38px!important;flex:0 0 38px!important;}
  .brand span:last-child{font-size:15px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .mobile-menu-toggle,#subpage-mobile-menu-toggle{display:inline-flex!important;position:relative!important;z-index:1203!important;}
  .navlinks{display:none!important;}
  .header.menu-open .navlinks{display:none!important;}
  #global-mobile-menu-panel{position:fixed!important;top:74px!important;left:16px!important;right:16px!important;display:grid;grid-template-columns:1fr!important;gap:10px!important;max-height:calc(100vh - 96px)!important;overflow:auto!important;padding:14px!important;border-radius:18px!important;background:#0b1730!important;border:1px solid var(--cp-line)!important;box-shadow:0 24px 60px rgba(0,0,0,.40)!important;z-index:99999!important;}
  #global-mobile-menu-panel a{display:flex!important;align-items:center!important;justify-content:center!important;min-height:48px!important;padding:12px 14px!important;border-radius:14px!important;background:#122446!important;border:1px solid var(--cp-line)!important;color:#fff!important;text-decoration:none!important;font-weight:800!important;text-align:center!important;}
  #global-mobile-menu-backdrop{position:fixed!important;inset:0!important;background:rgba(2,6,23,.55)!important;z-index:99998!important;}
  .hero,.hero-subpage{padding-top:24px!important;padding-bottom:28px!important;}
  .hero-inner,.hero-grid,.directory-layout,.subpage-grid,.contact-grid,.pricing-grid,.pricing-grid-pro,.pricing-grid-clean,.topic-grid,.research-grid,.cards-grid,.provider-filter-grid,.provider-grid,.footer-grid,.footer-shell,.mini-metrics,.form-grid,.filters-bar,.filters-grid,.filter-row,.site-map-list{grid-template-columns:1fr!important;}
  .hero-copy,.hero-card,.content-card,.sidebar-card,.contact-card,.cta-panel,.pricing-card,.pricing-tier,.pricing-tier-clean,.provider-card,.filters-shell,.topic-card,.faq-card,.research-card,.legal-card{padding:20px!important;border-radius:18px!important;}
  h1,.hero h1,.hero-copy h1{font-size:clamp(28px,9vw,36px)!important;line-height:1.08!important;letter-spacing:-.035em!important;}
  h2,.section-head h2{font-size:clamp(23px,7vw,30px)!important;line-height:1.14!important;}
  h3{font-size:clamp(19px,5.6vw,24px)!important;line-height:1.18!important;}
  .lead,.hero-copy .lead{font-size:16px!important;line-height:1.62!important;}
  .btn,a.btn,button.btn,.hero-actions .btn,.cta-actions .btn,.provider-bottom .btn,.provider-bottom .view-profile-btn,.provider-actions .btn,.contact-card .hero-cta .btn,form .hero-cta .btn{width:100%!important;min-height:48px!important;justify-content:center!important;text-align:center!important;}
  .contact-card .form-grid,form .form-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .contact-card .form-grid label[style],form .form-grid label[style]{grid-column:auto!important;}
  input,select,textarea{font-size:16px!important;}
  .provider-top,.provider-ident,.score-wrap,.profile-modal-head{flex-direction:column!important;align-items:flex-start!important;}
  .provider-bottom,.provider-actions,.hero-actions,.cta-actions,.lead-gate-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;}
  .meta-pills,.provider-badges,.provider-tags{gap:8px!important;}
  .pill:not(a),.badge,.provider-tags span,.meta-pills span{min-height:34px!important;}
  .footer{padding:24px 0 38px!important;}
  .footer-grid{padding:22px!important;gap:18px!important;border-radius:22px!important;}
  .footer-copy{max-width:none!important;}
  .lead-gate-card,.profile-modal-card{margin:24px auto!important;max-width:100%!important;padding:20px!important;border-radius:18px!important;}
}
@media (max-width:420px){
  .container{padding-left:14px!important;padding-right:14px!important;}
  .brand span:last-child{font-size:14px!important;}
  .brand-mark{width:34px!important;height:34px!important;flex:0 0 34px!important;}
  h1,.hero h1,.hero-copy h1{font-size:clamp(27px,9.2vw,34px)!important;}
  .hero-copy,.hero-card,.content-card,.sidebar-card,.contact-card,.cta-panel,.pricing-card,.pricing-tier,.provider-card,.filters-shell,.topic-card,.faq-card,.research-card,.legal-card{padding:18px!important;}
}
