:root{
  --psi-navy:#07346e;
  --psi-navy-2:#0d4f91;
  --psi-gold:#d99a00;
  --psi-gold-soft:#fff8e6;
  --psi-ink:#102033;
  --psi-muted:#5a6678;
  --psi-line:#c7d7eb;
  --psi-line-strong:#0b4385;
  --psi-bg:#f7f9fd;
  --psi-white:#ffffff;
}

html,body{min-height:100%;}
body{
  font-family: Arial, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color:var(--psi-ink);
  background:
    radial-gradient(circle at 20% 0%, rgba(13,79,145,.08), transparent 34rem),
    radial-gradient(circle at 90% 8%, rgba(217,154,0,.10), transparent 28rem),
    var(--psi-bg);
}

a{color:var(--psi-navy);text-decoration:none;}
a:hover{color:var(--psi-navy-2);}

.navbar{
  background:linear-gradient(90deg,#062b5d,var(--psi-navy),var(--psi-navy-2)) !important;
  border-bottom:2px solid var(--psi-gold);
  box-shadow:0 10px 24px rgba(7,52,110,.22);
}
.brandmark{
  min-width:0;
  padding:.35rem 0;
}
.brandmark img{
  height:60px;
  width:auto;
  max-width:min(260px, 44vw);
  object-fit:contain;
}
.navbar-toggler{
  border:1px solid var(--psi-gold);
  background:rgba(255,255,255,.08);
}
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar .nav-link{
  color:#fff;
  font-weight:800;
  font-size:.95rem;
  border-radius:9px;
  padding:.5rem .72rem;
}
.navbar .nav-link:hover,
.navbar .nav-link.active{
  color:#fff;
  background:rgba(255,255,255,.12);
}
.navbar .nav-link.active{box-shadow:inset 0 -2px 0 var(--psi-gold);}
.navbar .nav-link:hover{color:#ffe19a;}
.navbar .dropdown-toggle::after{vertical-align:.12em;}
.navbar .btn-psi.nav-cta{
  background:#fff;
  border-color:var(--psi-gold);
  color:var(--psi-navy);
}
.navbar .btn-psi.nav-cta:hover{
  background:var(--psi-gold-soft);
  color:var(--psi-navy);
}
.dropdown-menu-psi{
  border:2px solid var(--psi-line);
  border-radius:12px;
  box-shadow:0 18px 32px rgba(7,52,110,.14);
  padding:.45rem;
  min-width:16rem;
}
.dropdown-menu-psi .dropdown-item{
  color:var(--psi-navy);
  border-radius:8px;
  font-weight:800;
  padding:.58rem .75rem;
}
.dropdown-menu-psi .dropdown-item:hover,
.dropdown-menu-psi .dropdown-item:focus,
.dropdown-menu-psi .dropdown-item.active{
  background:#edf4fb;
  color:var(--psi-navy);
}
.dropdown-menu-psi .dropdown-item.active{
  box-shadow:inset 3px 0 0 var(--psi-gold);
}
.dropdown-divider{border-color:var(--psi-line);}

.btn-psi,
.btn-psi-outline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  border-radius:10px;
  padding:.72rem 1rem;
  font-weight:850;
}
.btn-psi{
  background:var(--psi-navy);
  border:2px solid var(--psi-gold);
  color:#fff;
  box-shadow:0 10px 20px rgba(7,52,110,.16);
}
.btn-psi:hover{background:var(--psi-navy-2);color:#fff;}
.btn-psi-outline{
  border:2px solid var(--psi-navy);
  color:var(--psi-navy);
  background:#fff;
}
.btn-psi-outline:hover{background:#edf4fb;color:var(--psi-navy);}
.nav-cta{padding:.52rem .85rem;}

.page-shell{max-width:1180px;margin:0 auto;}
.section{padding:3rem 0;}
.section-tight{padding:2rem 0;}

.site-hero{
  padding:4rem 0 3rem;
}
.hero-card,
.panel,
.service-card,
.package-card,
.pricing-card{
  background:rgba(255,255,255,.96);
  border:2px solid var(--psi-line);
  border-radius:14px;
  box-shadow:0 14px 28px rgba(7,52,110,.08);
}
.hero-card{padding:1.4rem;}

.eyebrow{
  color:var(--psi-gold);
  font-size:.88rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.display-title{
  color:var(--psi-navy);
  font-family: Impact, "Arial Narrow", Arial, sans-serif;
  font-size:clamp(2.6rem, 6vw, 5.25rem);
  line-height:.96;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.page-title{
  color:var(--psi-navy);
  font-family: Impact, "Arial Narrow", Arial, sans-serif;
  font-size:clamp(2.15rem, 4.6vw, 3.75rem);
  line-height:1;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.section-title{
  color:var(--psi-navy);
  font-weight:900;
  line-height:1.1;
}
.lead-copy{
  color:var(--psi-muted);
  font-size:1.15rem;
  max-width:70ch;
}
.small-muted{color:var(--psi-muted);}

.section-bar{
  display:flex;
  align-items:center;
  gap:.7rem;
  background:linear-gradient(90deg,var(--psi-navy),var(--psi-navy-2));
  color:#fff;
  border-radius:13px;
  padding:.7rem 1rem;
  font-weight:900;
  font-size:1.25rem;
  margin-bottom:1.25rem;
}
.section-bar .badge-dot{
  display:grid;
  place-items:center;
  width:2.25rem;
  height:2.25rem;
  border-radius:50%;
  background:#fff;
  color:var(--psi-navy);
  font-weight:950;
  flex:0 0 auto;
}

.icon-circle{
  width:3.8rem;
  height:3.8rem;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--psi-navy);
  font-size:1.95rem;
  flex:0 0 auto;
}
.icon-circle.gold{background:var(--psi-gold);}
.mini-icon{
  width:2.75rem;
  height:2.75rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:var(--psi-navy);
  font-size:1.35rem;
  flex:0 0 auto;
}

.gold-callout{
  background:linear-gradient(90deg,#fff,var(--psi-gold-soft));
  border:2px solid var(--psi-gold);
  border-radius:13px;
  padding:1rem;
}
.soft-callout{
  background:#edf4fb;
  border:2px solid var(--psi-line);
  border-radius:13px;
  padding:1rem;
}

.card-title-psi{
  color:var(--psi-navy);
  font-weight:900;
  line-height:1.08;
}
.service-card,
.package-card,
.pricing-card{height:100%;padding:1.15rem;}
.service-card:hover,
.package-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 32px rgba(7,52,110,.12);
}
.service-card,
.package-card{transition:transform .16s ease, box-shadow .16s ease;}

.guide-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:-.35rem 0 1rem;
}
.guide-clear{padding:.42rem .7rem;}
.guide-helper{margin:-.45rem 0 1rem;}

.problem-option{
  width:100%;
  text-align:left;
  font:inherit;
  color:inherit;
  cursor:pointer;
  position:relative;
  appearance:none;
}
.problem-option:focus-visible,
.match-card:focus-visible{
  outline:3px solid rgba(217,154,0,.45);
  outline-offset:3px;
}
.problem-check{transition:background .16s ease, transform .16s ease;}
.problem-state{
  display:inline-flex;
  align-items:center;
  margin:.75rem 0 0 3.75rem;
  color:var(--psi-navy);
  font-size:.82rem;
  font-weight:900;
}
.problem-option[aria-pressed="true"]{
  border-color:var(--psi-gold);
  background:linear-gradient(180deg,#fff,var(--psi-gold-soft));
  box-shadow:0 20px 36px rgba(7,52,110,.13), 0 0 0 4px rgba(217,154,0,.13);
}
.problem-option[aria-pressed="true"] .problem-check{
  background:var(--psi-gold);
  transform:scale(1.04);
}
.problem-option[aria-pressed="true"] .problem-state{
  color:#6f4800;
}

.match-card{
  position:relative;
  overflow:hidden;
}
.match-pill{
  display:none;
  align-items:center;
  border:2px solid var(--psi-navy);
  background:#fff;
  color:var(--psi-navy);
  border-radius:999px;
  padding:.32rem .65rem;
  font-size:.82rem;
  font-weight:900;
}
.match-card.is-matched{
  border-color:var(--psi-gold);
  background:linear-gradient(180deg,#fff,var(--psi-gold-soft));
  box-shadow:0 20px 36px rgba(7,52,110,.14);
}
.match-card.is-matched .match-pill{
  display:inline-flex;
}
.match-card.is-top-match{
  box-shadow:0 22px 42px rgba(7,52,110,.17), 0 0 0 4px rgba(217,154,0,.16);
}
.match-card.is-top-match .match-pill{
  background:var(--psi-navy);
  border-color:var(--psi-gold);
  color:#fff;
}
.match-card.is-unmatched{
  opacity:.58;
  filter:saturate(.78);
}
.match-card.is-unmatched:hover{
  opacity:.86;
}

.problem-grid,
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.bundle-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.process-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.pricing-highlight-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}

.price-tag{
  display:inline-flex;
  align-items:center;
  border:2px solid var(--psi-gold);
  background:var(--psi-gold-soft);
  color:#6f4800;
  border-radius:999px;
  padding:.36rem .7rem;
  font-size:.9rem;
  font-weight:900;
}
.badge-soft{
  display:inline-flex;
  align-items:center;
  border:1.5px solid var(--psi-line);
  background:#fff;
  color:var(--psi-navy);
  border-radius:999px;
  padding:.32rem .65rem;
  font-size:.88rem;
  font-weight:800;
}

.list-psi,
.list-check{
  margin:0;
  padding-left:1.15rem;
}
.list-psi li,
.list-check li{
  margin-bottom:.42rem;
  color:#1d2736;
}
.list-psi li::marker,
.list-check li::marker{color:var(--psi-gold);}

.pricing-list{
  margin:0;
  padding:0;
  list-style:none;
}
.pricing-list li{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.65rem 0;
  border-bottom:1px solid var(--psi-line);
}
.pricing-list li:last-child{border-bottom:0;}
.pricing-list strong{color:var(--psi-navy);}

.form-control,
.form-select,
textarea{
  background:#fff !important;
  border:2px solid var(--psi-line) !important;
  color:var(--psi-ink) !important;
  border-radius:9px !important;
}
.form-control:focus,
textarea:focus,
.form-select:focus{
  border-color:var(--psi-navy) !important;
  box-shadow:0 0 0 .2rem rgba(7,52,110,.13) !important;
}
.form-label{font-weight:850;color:var(--psi-navy);}
.alert{
  border:2px solid var(--psi-line);
  border-radius:13px;
  background:#fff;
  color:var(--psi-ink);
}

.footer{
  background:#fff;
  color:var(--psi-navy);
  padding:2rem 0;
  border-top:2px solid var(--psi-gold);
}
.footer a{color:var(--psi-navy);}

@media (max-width:1199.98px){
  .problem-grid,.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pricing-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:991.98px){
  .site-hero{padding:2.5rem 0;}
  .bundle-grid,.process-grid{grid-template-columns:1fr;}
  .brandmark img{height:48px;max-width:min(230px, 62vw);}
  .navbar-collapse{
    border-top:1px solid var(--psi-line);
    margin-top:.5rem;
    padding-top:.6rem;
  }
  .nav-cta{
    width:100%;
    margin-top:.35rem;
  }
  .dropdown-menu-psi{
    border:1px solid var(--psi-line);
    box-shadow:none;
    margin:.15rem 0 .45rem;
  }
}
@media (max-width:767.98px){
  .problem-grid,.service-grid,.pricing-highlight-grid{grid-template-columns:1fr;}
  .display-title{font-size:2.7rem;}
  .page-title{font-size:2.25rem;}
  .section{padding:2.2rem 0;}
  .pricing-list li{display:block;}
  .guide-toolbar{display:block;}
  .guide-clear{margin-top:.75rem;width:100%;}
}
