/* Phone Shield — shared public site styles */
:root {
  --ps-navy: #07142d;
  --ps-navy-2: #0b1f42;
  --ps-blue: #0d6efd;
  --ps-blue-dark: #0a58ca;
  --ps-green: #16a34a;
  --ps-yellow: #ffdd00;
  --ps-ink: #13213a;
  --ps-muted: #5b6b82;
  --ps-line: #e6ebf2;
  --ps-soft: #f4f7fb;
  --ps-radius: 18px;
  --ps-shadow: 0 12px 34px rgba(11, 31, 66, .10);
}

html { scroll-behavior: smooth; }
body {
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--ps-ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--ps-blue-dark); }
a:hover { color: var(--ps-blue); }
:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; border-radius: 4px; }

.skip-link {
  position: absolute; left: -999px; top: 8px; z-index: 2000;
  background: var(--ps-navy); color: #fff; padding: 10px 16px; border-radius: 8px;
}
.skip-link:focus { left: 12px; }

/* Navigation */
.ps-nav {
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--ps-line);
  box-shadow: 0 4px 18px rgba(7,20,45,.05);
  backdrop-filter: blur(10px);
}
.ps-brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; }
.ps-brand img { width: 38px; height: 43px; object-fit: contain; }
.ps-brand-name { font-weight: 800; color: var(--ps-navy); letter-spacing: -.02em; line-height: 1; }
.ps-brand-name small { display: block; font-size: .62rem; font-weight: 700; letter-spacing: .13em; color: var(--ps-muted); margin-top: 4px; }
.ps-nav .nav-link { color: #30425c; font-weight: 600; border-radius: 999px; padding: .55rem .9rem !important; }
.ps-nav .nav-link:hover, .ps-nav .nav-link.active { color: var(--ps-blue-dark); background: #eef4ff; }
.ps-nav .btn { font-weight: 700; }

/* Hero */
.ps-hero {
  position: relative; overflow: hidden; color: #fff;
  background:
    radial-gradient(900px 420px at 82% 12%, rgba(22,163,74,.26), transparent 62%),
    radial-gradient(700px 380px at 12% 88%, rgba(13,110,253,.40), transparent 65%),
    linear-gradient(145deg, var(--ps-navy) 0%, var(--ps-navy-2) 58%, #0d3f86 100%);
  padding: 76px 0 92px;
}
.ps-hero::after {
  content: ""; position: absolute; inset: auto -12% -62% 42%; height: 110%;
  background: radial-gradient(closest-side, rgba(255,255,255,.08), transparent 70%);
  border-radius: 50%; pointer-events: none;
}
.ps-hero .container { position: relative; z-index: 1; }
.ps-kicker {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.20);
  color: #fff; font-size: .82rem; font-weight: 700; letter-spacing: .02em;
  padding: .48rem .85rem; border-radius: 999px; margin-bottom: 1.1rem;
}
.ps-hero h1 { font-weight: 800; letter-spacing: -.035em; line-height: 1.05; }
.ps-hero .lead { color: #d7e4fb; max-width: 720px; }
.ps-hero .search-box {
  border: 0; border-radius: 999px; padding: 1.1rem 4.1rem 1.1rem 1.35rem;
  font-size: 1.06rem; box-shadow: 0 18px 44px rgba(0,0,0,.28);
}
.ps-hero .search-btn {
  position: absolute; top: 50%; right: .45rem; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: 50%; border: 0;
  background: var(--ps-blue); color: #fff; font-size: 1.15rem;
  display: grid; place-items: center;
}
.ps-hero .search-btn:hover { background: var(--ps-blue-dark); }
.ps-hero .form-note { color: #a9bfe2; font-size: .82rem; }
.ps-hero .trust-row { display: flex; flex-wrap: wrap; gap: .55rem 1.25rem; color: #c7d8f5; font-size: .82rem; }
.ps-hero .trust-row i { color: #6ee7a0; }

/* Sections and cards */
.ps-section { padding: 72px 0; }
.ps-section-sm { padding: 48px 0; }
.ps-section-soft { background: var(--ps-soft); }
.ps-eyebrow { color: var(--ps-blue-dark); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ps-title { font-weight: 800; letter-spacing: -.025em; color: var(--ps-navy); }
.ps-sub { color: var(--ps-muted); max-width: 720px; }
.ps-card {
  background: #fff; border: 1px solid var(--ps-line); border-radius: var(--ps-radius);
  box-shadow: var(--ps-shadow); transition: transform .2s ease, box-shadow .2s ease;
}
.ps-card-hover:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(11,31,66,.14); }
.ps-icon {
  width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center;
  background: #eaf2ff; color: var(--ps-blue-dark); font-size: 1.35rem; flex: 0 0 auto;
}
.ps-icon.green { background: #e8f8ef; color: #128040; }
.ps-icon.red { background: #fdecef; color: #c6283f; }
.ps-icon.yellow { background: #fff8d6; color: #8a6500; }
.ps-kpi { display: flex; align-items: center; gap: .9rem; padding: 1.15rem 1.25rem; }
.ps-kpi h3 { font-size: 1.55rem; font-weight: 800; margin: 0; color: var(--ps-navy); letter-spacing: -.02em; }
.ps-kpi small { color: var(--ps-muted); font-weight: 700; font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; }

.ps-callout {
  background: linear-gradient(120deg, var(--ps-navy), #0d3f86);
  color: #e8f1ff; border-radius: var(--ps-radius); padding: 1.5rem;
}
.ps-callout h2, .ps-callout h3 { color: #fff; }
.ps-callout .btn-light { font-weight: 700; }

.ps-banner {
  border-radius: 26px; overflow: hidden; color: #fff;
  background:
    radial-gradient(600px 280px at 88% 20%, rgba(255,221,0,.18), transparent 60%),
    linear-gradient(130deg, #07142d, #0b3b7a);
  padding: 42px;
}
.ps-banner h2 { font-weight: 800; letter-spacing: -.02em; }
.ps-banner p { color: #cfe0fa; }

/* Steps */
.ps-step-num {
  width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center;
  background: var(--ps-blue); color: #fff; font-weight: 800; font-size: .95rem; flex: 0 0 auto;
}

/* Sponsor tiers */
.ps-tier { position: relative; height: 100%; }
.ps-tier.featured { border: 2px solid var(--ps-blue); box-shadow: 0 20px 48px rgba(13,110,253,.18); }
.ps-tier .price { font-size: 1.55rem; font-weight: 800; color: var(--ps-navy); letter-spacing: -.02em; }
.ps-tier ul { padding-left: 1.1rem; color: var(--ps-muted); }
.ps-tier li { margin-bottom: .45rem; }

/* Tables and forms */
.ps-table { font-size: .92rem; }
.ps-table thead th { color: var(--ps-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; border-bottom-color: var(--ps-line); }
.ps-form .form-control, .ps-form .form-select {
  border-radius: 12px; border-color: #d8e1ee; padding: .8rem .95rem;
}
.ps-form .form-control:focus, .ps-form .form-select:focus {
  border-color: var(--ps-blue); box-shadow: 0 0 0 .22rem rgba(13,110,253,.14);
}
.ps-form label { font-weight: 700; font-size: .86rem; color: #2b3b55; }
.btn-ps { background: var(--ps-blue); border-color: var(--ps-blue); color: #fff; font-weight: 700; border-radius: 999px; padding: .7rem 1.25rem; }
.btn-ps:hover { background: var(--ps-blue-dark); border-color: var(--ps-blue-dark); color: #fff; }
.btn-ps-outline { border: 1.5px solid var(--ps-blue); color: var(--ps-blue-dark); font-weight: 700; border-radius: 999px; padding: .65rem 1.2rem; background: #fff; }
.btn-ps-outline:hover { background: #eef4ff; color: var(--ps-blue-dark); }
.btn-ps-dark { background: var(--ps-navy); border-color: var(--ps-navy); color: #fff; font-weight: 700; border-radius: 999px; padding: .7rem 1.25rem; }
.btn-ps-dark:hover { background: #0b2b5c; border-color: #0b2b5c; color: #fff; }

/* Legal / prose */
.ps-prose { max-width: 860px; }
.ps-prose h2 { font-size: 1.35rem; font-weight: 800; color: var(--ps-navy); margin-top: 2rem; }
.ps-prose h3 { font-size: 1.05rem; font-weight: 800; margin-top: 1.4rem; }
.ps-prose p, .ps-prose li { color: #33445e; line-height: 1.75; }
.ps-prose .meta { color: var(--ps-muted); font-size: .86rem; }

/* Footer */
.ps-footer { background: #061126; color: #b9c8de; padding: 56px 0 26px; }
.ps-footer h2, .ps-footer h3 { color: #fff; font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.ps-footer a { color: #c9d7ea; text-decoration: none; }
.ps-footer a:hover { color: #fff; text-decoration: underline; }
.ps-footer .brandline { display: flex; align-items: center; gap: .7rem; color: #fff; font-weight: 800; font-size: 1.15rem; }
.ps-footer .brandline img { width: 38px; height: 43px; }
.ps-footer .legal { border-top: 1px solid rgba(255,255,255,.10); margin-top: 2.2rem; padding-top: 1.2rem; font-size: .8rem; color: #8fa4c2; }

/* Share / utility */
.ps-share a { display: inline-flex; align-items: center; gap: .4rem; }
.ps-badge-soft { background: #eef4ff; color: #0a58ca; border-radius: 999px; padding: .3rem .7rem; font-size: .76rem; font-weight: 700; }
.ps-list-check { list-style: none; padding-left: 0; }
.ps-list-check li { position: relative; padding-left: 1.6rem; margin-bottom: .55rem; color: #33445e; }
.ps-list-check li::before { content: "✓"; position: absolute; left: 0; color: var(--ps-green); font-weight: 800; }
.ps-list-x { list-style: none; padding-left: 0; }
.ps-list-x li { position: relative; padding-left: 1.6rem; margin-bottom: .55rem; color: #33445e; }
.ps-list-x li::before { content: "✕"; position: absolute; left: 0; color: #c6283f; font-weight: 800; }
.ps-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; word-break: break-all; }

@media (max-width: 991.98px) {
  .ps-hero { padding: 56px 0 72px; }
  .ps-hero h1 { font-size: 2.35rem; }
  .ps-section { padding: 56px 0; }
  .ps-banner { padding: 30px; }
}
@media (max-width: 575.98px) {
  .ps-hero h1 { font-size: 2rem; }
  .ps-kpi h3 { font-size: 1.3rem; }
  .ps-banner { padding: 24px; border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ps-card, .ps-card-hover { transition: none; }
}
