/* CustodyProviders.com V8.4 — premium institutional visual system
   Presentation-only layer. No content, SEO semantics, data or behavior changed. */

:root{
  --v84-navy:#081a2f;
  --v84-navy-2:#102a49;
  --v84-blue:#2563eb;
  --v84-blue-dark:#1d4ed8;
  --v84-blue-soft:#eef5ff;
  --v84-bg:#f5f7fb;
  --v84-bg-soft:#f9fbfe;
  --v84-surface:#ffffff;
  --v84-text:#172338;
  --v84-muted:#5b6b80;
  --v84-soft:#8290a3;
  --v84-line:#dfe6ef;
  --v84-line-strong:#cfd8e5;
  --v84-success:#0f766e;
  --v84-radius:20px;
  --v84-radius-sm:12px;
  --v84-shadow-xs:0 1px 2px rgba(15,23,42,.035);
  --v84-shadow-sm:0 6px 20px rgba(15,23,42,.055);
  --v84-shadow:0 14px 38px rgba(15,23,42,.075);
  --v84-shadow-hover:0 20px 50px rgba(15,23,42,.105);
}

/* Base canvas */
html{background:var(--v84-bg)!important;color-scheme:light!important;}
html body{
  background:
    radial-gradient(900px 420px at 50% -160px,rgba(37,99,235,.07),transparent 68%),
    linear-gradient(180deg,#fbfcff 0%,var(--v84-bg) 42%,#f8fafc 100%)!important;
  color:var(--v84-text)!important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  line-height:1.62!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
html body main{padding-bottom:24px;}
html body p,
html body li,
html body dd,
html body .lead,
html body .small,
html body .muted{
  color:var(--v84-muted)!important;
}
::selection{background:#dbeafe;color:var(--v84-navy);}

/* Layout rhythm */
html body .container{
  max-width:1220px!important;
  padding-left:26px!important;
  padding-right:26px!important;
}
html body .section{padding-top:58px!important;padding-bottom:58px!important;}
html body .section-head{margin-bottom:24px!important;}
html body .section-head h2{margin-bottom:8px!important;}
html body .section-head p{max-width:72ch;}
html body main hr{border:0;border-top:1px solid var(--v84-line)!important;margin:32px 0!important;}

/* Header: wide, single-row and quieter */
html body .header,
html body .site-header{
  background:rgba(255,255,255,.94)!important;
  border-bottom:1px solid rgba(203,213,225,.72)!important;
  box-shadow:0 3px 18px rgba(15,23,42,.045)!important;
  backdrop-filter:blur(18px) saturate(1.15)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15)!important;
}
html body .header .container.nav,
html body .site-header .container.nav{
  max-width:1480px!important;
  min-height:80px!important;
  padding:10px 28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  gap:18px!important;
}
html body .header .brand,
html body .site-header .brand{
  flex:0 0 auto!important;
  width:auto!important;
  max-width:none!important;
}
html body .header .brand .site-logo,
html body .site-header .brand .site-logo{
  width:205px!important;
  height:auto!important;
}
html body .header .navlinks,
html body .site-header .navlinks{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
  gap:2px!important;
  width:auto!important;
  min-width:0!important;
}
html body .header .navlinks a,
html body .site-header .navlinks a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:40px!important;
  padding:9px 9px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:transparent!important;
  color:#34445a!important;
  font-size:13.5px!important;
  font-weight:650!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
html body .header .navlinks a:hover,
html body .site-header .navlinks a:hover{
  background:#f1f5f9!important;
  color:var(--v84-navy)!important;
}
html body .header .navlinks .nav-cta,
html body .site-header .navlinks .nav-cta,
html body .header .navlinks a[href*="register"],
html body .site-header .navlinks a[href*="register"]{
  margin-left:5px!important;
  padding:10px 14px!important;
  background:var(--v84-blue)!important;
  border-color:var(--v84-blue)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 5px 14px rgba(37,99,235,.18)!important;
}
html body .header .navlinks .nav-cta:hover,
html body .site-header .navlinks .nav-cta:hover,
html body .header .navlinks a[href*="register"]:hover{
  background:var(--v84-blue-dark)!important;
  border-color:var(--v84-blue-dark)!important;
  transform:translateY(-1px);
}

/* Hero rhythm and premium surfaces */
html body .hero{padding-top:50px!important;padding-bottom:40px!important;}
html body .hero.hero-subpage{padding-top:42px!important;padding-bottom:34px!important;}
html body .hero-inner{gap:28px!important;align-items:stretch!important;}
html body .hero-copy,
html body .hero-card,
html body .content-card,
html body .sidebar-card,
html body .topic-card,
html body .faq-card,
html body .legal-card,
html body .card,
html body .contact-card,
html body .pricing-card,
html body .pricing-tier-clean,
html body .filters-shell,
html body .research-card{
  background:rgba(255,255,255,.98)!important;
  color:var(--v84-text)!important;
  border:1px solid var(--v84-line)!important;
  border-radius:var(--v84-radius)!important;
  box-shadow:var(--v84-shadow-sm)!important;
}
html body .hero-copy,
html body .hero-card{
  padding:34px!important;
}
html body .hero-card{
  background:linear-gradient(155deg,#ffffff 0%,#fbfdff 100%)!important;
}
html body .hero-copy h1,
html body .hero-copy h2,
html body .hero-card h2,
html body .hero-card h3,
html body .content-card h2,
html body .content-card h3,
html body .sidebar-card h3,
html body .card h2,
html body .card h3{
  color:var(--v84-navy)!important;
}

/* Homepage: more restrained and polished, without changing content */
html body .hero-shell{
  max-width:1120px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
html body #home-title{
  max-width:1040px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
html body .hero-search-block{
  max-width:980px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  background:rgba(255,255,255,.98)!important;
  border:1px solid var(--v84-line)!important;
  border-radius:22px!important;
  box-shadow:var(--v84-shadow)!important;
}
html body .search-panel{
  border-color:var(--v84-line)!important;
  background:#fbfcfe!important;
}

/* Eyebrows, pills and indicators */
html body .eyebrow{
  padding:7px 12px!important;
  border-radius:999px!important;
  background:var(--v84-blue-soft)!important;
  border:1px solid #cfe0ff!important;
  color:#2454b8!important;
  font-size:11.5px!important;
  font-weight:800!important;
  letter-spacing:.065em!important;
  box-shadow:none!important;
}
html body .eyebrow .dot,
html body .dot{background:var(--v84-blue)!important;}
html body .pill,
html body .meta-pills .pill,
html body .count-pill{
  background:#f7f9fc!important;
  color:#44546a!important;
  border:1px solid var(--v84-line)!important;
  border-radius:999px!important;
  box-shadow:none!important;
}

/* Buttons */
html body .btn,
html body button.btn,
html body .open-page-btn,
html body .view-profile-btn,
html body .resource-link{
  min-height:44px!important;
  padding:10px 16px!important;
  border-radius:11px!important;
  font-size:14px!important;
  font-weight:750!important;
  line-height:1.2!important;
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease!important;
}
html body .btn-primary,
html body .btn.primary,
html body button.primary,
html body .open-page-btn{
  background:var(--v84-blue)!important;
  border:1px solid var(--v84-blue)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 5px 14px rgba(37,99,235,.17)!important;
}
html body .btn-primary:hover,
html body .btn.primary:hover,
html body button.primary:hover,
html body .open-page-btn:hover{
  background:var(--v84-blue-dark)!important;
  border-color:var(--v84-blue-dark)!important;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(37,99,235,.22)!important;
}
html body .btn-secondary,
html body .btn.secondary,
html body .btn.ghost,
html body .view-profile-btn,
html body .resource-link{
  background:#fff!important;
  color:#26364c!important;
  -webkit-text-fill-color:#26364c!important;
  border:1px solid var(--v84-line-strong)!important;
  box-shadow:var(--v84-shadow-xs)!important;
}
html body .btn-secondary:hover,
html body .btn.secondary:hover,
html body .btn.ghost:hover,
html body .view-profile-btn:hover,
html body .resource-link:hover{
  background:#f7f9fc!important;
  color:var(--v84-navy)!important;
  border-color:#b9c7d8!important;
  transform:translateY(-1px);
}

/* Cards and directory */
html body .provider-grid,
html body .cards-grid,
html body .topic-grid,
html body .research-grid{gap:18px!important;}
html body .provider-card,
html body .directory-card{
  background:#fff!important;
  border:1px solid var(--v84-line)!important;
  border-radius:18px!important;
  box-shadow:var(--v84-shadow-xs)!important;
  padding:22px!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease!important;
}
@media (hover:hover){
  html body .provider-card:hover,
  html body .directory-card:hover,
  html body .topic-card:hover,
  html body .research-card:hover{
    transform:translateY(-2px)!important;
    border-color:#cbd8e8!important;
    box-shadow:var(--v84-shadow)!important;
  }
}
html body .provider-name{color:var(--v84-navy)!important;font-weight:800!important;}
html body .provider-sub{color:#68788d!important;}
html body .provider-bottom{margin-top:18px!important;padding-top:16px!important;border-top:1px solid #edf1f6!important;}

/* Forms and filters */
html body input,
html body select,
html body textarea,
html body .search-input,
html body .select{
  min-height:48px!important;
  border-radius:12px!important;
  border:1px solid var(--v84-line-strong)!important;
  background:#fff!important;
  color:var(--v84-text)!important;
  -webkit-text-fill-color:var(--v84-text)!important;
  box-shadow:inset 0 1px 0 rgba(15,23,42,.015)!important;
}
html body textarea{min-height:120px!important;}
html body input::placeholder,
html body textarea::placeholder{color:#8795a8!important;opacity:1!important;}
html body input:focus,
html body select:focus,
html body textarea:focus{
  outline:none!important;
  border-color:#7aa7ff!important;
  box-shadow:0 0 0 4px rgba(37,99,235,.10)!important;
}
html body label,
html body .filter-field > span{
  color:#33445a!important;
  font-weight:700!important;
}
html body .filters-shell{
  padding:28px!important;
}
html body .filters-bar,
html body .filters-grid{gap:14px!important;}
html body .filter-reset-btn{align-self:end!important;}

/* Evidence, scope and research modules */
html body .scope-explainer,
html body .evidence-panel,
html body .smart-search-summary,
html body .cta-panel{
  background:linear-gradient(145deg,#ffffff 0%,#f9fbff 100%)!important;
  border:1px solid var(--v84-line)!important;
  border-radius:18px!important;
  box-shadow:var(--v84-shadow-sm)!important;
}
html body .scope-stats>div,
html body .mini-metrics>div,
html body .metric,
html body .signal,
html body .evidence-item{
  background:#fff!important;
  border:1px solid #e4eaf2!important;
  border-radius:14px!important;
  box-shadow:none!important;
}
html body .mini-metrics strong,
html body .scope-stats strong,
html body .metric strong,
html body .signal strong{
  color:var(--v84-navy)!important;
}

/* Tables: clearer hierarchy, less spreadsheet-like */
html body main table{
  width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  background:#fff!important;
  border:1px solid var(--v84-line)!important;
  border-radius:16px!important;
  box-shadow:var(--v84-shadow-xs)!important;
  overflow:hidden!important;
}
html body main thead th{
  background:#f5f8fc!important;
  color:#33445a!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  border-bottom:1px solid var(--v84-line)!important;
}
html body main th,
html body main td{
  padding:15px 16px!important;
  border-color:#edf1f5!important;
  vertical-align:top!important;
}
html body main tbody tr:hover td{background:#fbfcff!important;}
html body main td{color:#53647a!important;}
html body main td strong,
html body main td b{color:var(--v84-navy)!important;}

/* Links */
html body main a:not(.btn):not(.view-profile-btn):not(.resource-link){
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
html body main p a,
html body main li a,
html body main td a{color:#1f5ed5!important;}
html body main p a:hover,
html body main li a:hover,
html body main td a:hover{color:#1747a6!important;}

/* Footer */
html body .footer,
html body .site-footer{
  margin-top:64px!important;
  padding-top:46px!important;
  padding-bottom:34px!important;
  background:linear-gradient(180deg,#0a1c32 0%,#07172a 100%)!important;
  border-top:0!important;
  color:#d9e3f0!important;
}
html body .footer .container,
html body .site-footer .container{max-width:1220px!important;}
html body .footer h4,
html body .site-footer h4{color:#fff!important;}
html body .footer a,
html body .site-footer a,
html body .footer p,
html body .site-footer p{color:#c2cede!important;}
html body .footer a:hover,
html body .site-footer a:hover{color:#fff!important;}
html body .footer-grid{gap:34px!important;}

/* Accessibility and interaction */
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible{
  outline:3px solid rgba(37,99,235,.34)!important;
  outline-offset:3px!important;
}

/* Laptop / tablet: use the existing global mobile menu before nav wraps */
@media(max-width:1100px){
  html body .header .container.nav,
  html body .site-header .container.nav{
    max-width:100%!important;
    min-height:72px!important;
    padding:10px 22px!important;
  }
  html body .header .brand .site-logo,
  html body .site-header .brand .site-logo{width:178px!important;}
  html body .header .navlinks,
  html body .site-header .navlinks{display:none!important;}
  html body .mobile-menu-toggle,
  html body #subpage-mobile-menu-toggle,
  html body #mobile-toggle.mobile-menu-toggle{
    display:inline-flex!important;
    background:#fff!important;
    border:1px solid var(--v84-line-strong)!important;
    box-shadow:var(--v84-shadow-xs)!important;
  }
  html body .mobile-menu-toggle span,
  html body #subpage-mobile-menu-toggle span,
  html body #mobile-toggle.mobile-menu-toggle span{background:var(--v84-navy)!important;}
}

/* Mobile */
@media(max-width:760px){
  html body .container{
    padding-left:18px!important;
    padding-right:18px!important;
  }
  html body .section{padding-top:40px!important;padding-bottom:40px!important;}
  html body .hero,
  html body .hero.hero-subpage{padding-top:28px!important;padding-bottom:26px!important;}
  html body .hero-copy,
  html body .hero-card,
  html body .content-card,
  html body .sidebar-card,
  html body .topic-card,
  html body .faq-card,
  html body .legal-card,
  html body .card,
  html body .contact-card,
  html body .filters-shell{
    padding:21px!important;
    border-radius:17px!important;
  }
  html body .header .container.nav,
  html body .site-header .container.nav{
    min-height:68px!important;
    padding:9px 16px!important;
  }
  html body .header .brand .site-logo,
  html body .site-header .brand .site-logo{width:150px!important;}
  html body .hero-actions,
  html body .cta-actions{
    gap:9px!important;
  }
  html body .hero-actions .btn,
  html body .cta-actions .btn{
    width:100%!important;
  }
  html body .provider-grid,
  html body .cards-grid,
  html body .topic-grid{gap:14px!important;}
  html body .provider-card,
  html body .directory-card{padding:19px!important;}
  html body main th,
  html body main td{padding:12px 13px!important;}
  html body .footer,
  html body .site-footer{margin-top:44px!important;padding-top:34px!important;}
}
@media(max-width:420px){
  html body .container{padding-left:14px!important;padding-right:14px!important;}
  html body .header .brand .site-logo,
  html body .site-header .brand .site-logo{width:142px!important;}
  html body .hero-copy,
  html body .hero-card,
  html body .content-card,
  html body .sidebar-card,
  html body .filters-shell{padding:18px!important;}
}

/* Motion preference */
@media(prefers-reduced-motion:reduce){
  html body *,
  html body *::before,
  html body *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
  }
}
