:root{
  --bg:#F7F9FC;
  --bg-soft:#EEF4FB;
  --card:#FFFFFF;
  --card-2:#F8FAFC;
  --text:#1F2937;
  --muted:#6B7280;
  --line:rgba(255,255,255,.09);
  --brand:#2F6FED;
  --brand-2:#5B8DEF;
  --accent:#4F8DF7;
  --danger:#DC2626;
  --shadow:0 24px 70px rgba(0,0,0,.34);
  --radius:22px;
  --max:1180px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:
radial-gradient(1000px 500px at 10% -10%, rgba(88,166,255,.18), transparent 60%),
radial-gradient(900px 450px at 100% 0%, rgba(124,231,255,.12), transparent 55%),
linear-gradient(180deg,#050c18,#F7F9FC 40%,#060d19 100%);color:var(--text)}
a{text-decoration:none;color:inherit}
img{max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(5,12,24,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:18px}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#031226;font-weight:900;box-shadow:0 14px 34px rgba(88,166,255,.28)}
.brand-copy strong{display:block;font-size:14px;letter-spacing:.18em;text-transform:uppercase}
.brand-copy span{display:block;font-size:12px;color:var(--muted)}
.nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.nav a{font-size:14px;color:#dbe6fb}
.nav a:hover{color:#fff}
.nav .btn{margin-left:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border-radius:14px;border:1px solid var(--line);font-weight:700;background:rgba(255,255,255,.04);color:#fff}
.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#041428;border:0;box-shadow:0 16px 40px rgba(88,166,255,.22)}
.btn.secondary{background:rgba(255,255,255,.05)}
.btn.soft{background:rgba(140,255,193,.08);border-color:rgba(140,255,193,.18);color:#dfffee}
.hero{padding:70px 0 42px}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:stretch}
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:#dce9ff;font-size:13px}
.dot{width:8px;height:8px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 7px rgba(140,255,193,.11)}
.hero h1{font-size:56px;line-height:1.02;margin:18px 0 14px;max-width:12ch}
.hero p{margin:0;color:#d0dcf3;font-size:18px;line-height:1.65;max-width:62ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.hero-note{margin-top:12px;color:var(--muted);font-size:14px}
.panel,.card,.band,.table-card,.contact-card{border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.03));border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:22px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat{padding:16px;border-radius:18px;background:rgba(0,0,0,.15);border:1px solid var(--line)}
.stat strong{display:block;font-size:22px}
.stat span{display:block;color:var(--muted);font-size:13px;margin-top:4px;line-height:1.4}
.stat-list{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:12px}
.stat-list li{display:flex;gap:10px;color:#d8e4fb;line-height:1.45}
.stat-list li::before{content:"•";color:var(--brand-2)}
.section{padding:34px 0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}
.section-head h2{margin:0;font-size:34px}
.section-head p{margin:0;color:var(--muted);max-width:58ch;line-height:1.65}
.grid-3,.grid-2,.grid-4{display:grid;gap:16px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{padding:22px}
.card h3,.card h4{margin:0 0 8px}
.card p{margin:0;color:#cfdbf2;line-height:1.6}
.card ul{margin:12px 0 0;padding-left:18px;color:#cfdbf2;line-height:1.6}
.tag{display:inline-block;padding:7px 11px;border-radius:999px;background:rgba(88,166,255,.12);border:1px solid rgba(88,166,255,.2);font-size:12px;color:#dff0ff;margin-bottom:10px}
.band{padding:26px}
.band-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:center}
.checks{display:grid;gap:12px;margin-top:14px}
.checks div{display:flex;gap:10px;color:#dce7fb}
.checks div::before{content:"✓";color:var(--accent);font-weight:900}
.portal-box{padding:22px;background:linear-gradient(135deg,rgba(88,166,255,.1),rgba(124,231,255,.08));border-radius:18px;border:1px solid rgba(88,166,255,.16)}
.portal-box h3{margin:0 0 8px}
.portal-links{display:grid;gap:10px;margin-top:14px}
.portal-links a{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;background:rgba(0,0,0,.18);border:1px solid var(--line);color:#e9f2ff}
.portal-links a span{color:var(--muted);font-size:13px}
.cta-strip{padding:30px 0 48px}
.cta-panel{padding:28px;border-radius:26px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(88,166,255,.18),rgba(124,231,255,.12));display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:center}
.cta-panel h2{margin:0 0 8px;font-size:32px}
.cta-panel p{margin:0;color:#d8e6ff;line-height:1.6}
.footer{padding:26px 0 50px;border-top:1px solid var(--line);margin-top:20px}
.footer-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:18px}
.footer p,.footer li,.footer a{color:var(--muted);line-height:1.7;font-size:14px}
.footer strong{display:block;margin-bottom:10px;color:#fff}
.footer ul{list-style:none;margin:0;padding:0}
.page-hero{padding:56px 0 28px}
.page-hero h1{margin:10px 0 12px;font-size:48px}
.page-hero p{margin:0;color:var(--muted);line-height:1.7;font-size:18px;max-width:64ch}
.kicker{color:var(--brand-2);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:12px}
.table-card{padding:12px;overflow:auto}
table{width:100%;border-collapse:collapse;min-width:720px}
th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);font-size:14px}
th{color:#fff}
td{color:#d5e1f5}
.note{font-size:13px;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-card{padding:22px}
.list-clean{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.list-clean li{color:#d6e2f7;line-height:1.55}
.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.badge-chip{padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line);font-size:13px;color:#e6f0ff}
@media (max-width:960px){
  .hero-grid,.band-grid,.cta-panel,.footer-grid,.contact-grid,.grid-3,.grid-4,.grid-2{grid-template-columns:1fr}
  .hero h1{font-size:40px}
  .page-hero h1{font-size:36px}
  .section-head{display:block}
}
@media (max-width:640px){
  .nav{display:none}
  .hero{padding-top:46px}
  .hero h1{font-size:34px}
  .page-hero h1{font-size:32px}
  .stats{grid-template-columns:1fr}
  .btn{width:100%}
  .hero-actions{display:grid}
}

/* ===== ESSE LIGHT POLISH OVERRIDE ===== */
:root{
  --bg: #F7F9FC !important;
  --bg-soft: #EEF4FB !important;
  --card: #FFFFFF !important;
  --card-2: #F8FAFC !important;
  --text: #1F2937 !important;
  --muted: #6B7280 !important;
  --line: rgba(15,23,42,.08) !important;
  --brand: #2F6FED !important;
  --brand-2: #5B8DEF !important;
  --accent: #4F8DF7 !important;
  --danger: #DC2626 !important;
  --shadow: 0 20px 60px rgba(15,23,42,.08) !important;
}

html, body{
  background: linear-gradient(180deg,#F8FAFC 0%,#F7F9FC 45%,#EEF4FB 100%) !important;
  color: #1F2937 !important;
}

body *{
  border-color: rgba(15,23,42,.08);
}

.site-header, header{
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 8px 30px rgba(15,23,42,.04) !important;
}

.site-header a, header a,
.site-header .nav-link, header .nav-link,
.site-header .logo, header .logo,
.site-header .brand, header .brand,
nav a{
  color: #1F2937 !important;
}

main, section, .section, .hero, .hero-section, .hero-wrap{
  background-color: transparent !important;
}

.hero::before, .hero::after,
.hero-section::before, .hero-section::after,
.section::before, .section::after{
  opacity: .18 !important;
}

.card, .feature-card, .service-card, .info-card, .glass, .panel, .box, .tile,
[class*="card"], [class*="panel"], [class*="tile"]{
  background: #FFFFFF !important;
  color: #1F2937 !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 16px 40px rgba(15,23,42,.06) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

p, li, span, small, .muted, .subtitle, .eyebrow, .desc, .description{
  color: #6B7280 !important;
}

h1, h2, h3, h4, h5, h6, strong, b, .title, .heading{
  color: #1F2937 !important;
}

a{
  color: #2F6FED !important;
}

button,
.btn,
a.btn,
input[type="submit"],
input[type="button"]{
  background: #2F6FED !important;
  color: #FFFFFF !important;
  border: 1px solid #2F6FED !important;
  box-shadow: 0 10px 24px rgba(47,111,237,.18) !important;
}

button:hover,
.btn:hover,
a.btn:hover,
input[type="submit"]:hover,
input[type="button"]:hover{
  background: #2459C7 !important;
  border-color: #2459C7 !important;
}

.btn-secondary,
.btn-outline,
.button-secondary,
a.btn-secondary{
  background: #FFFFFF !important;
  color: #1F2937 !important;
  border: 1px solid rgba(15,23,42,.12) !important;
  box-shadow: none !important;
}

input, select, textarea{
  background: #FFFFFF !important;
  color: #1F2937 !important;
  border: 1px solid rgba(15,23,42,.12) !important;
}

.badge, .tag, .pill{
  background: rgba(47,111,237,.08) !important;
  color: #2F6FED !important;
  border: 1px solid rgba(47,111,237,.12) !important;
}
/* ===== END ESSE LIGHT POLISH OVERRIDE ===== */

/* ===== BLOCK SEO + TYPO POLISH ===== */
.hero h1{
  font-size: clamp(2.4rem, 4.2vw, 4.2rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
  max-width: 10.5ch !important;
}
.hero p{
  font-size: 1.05rem !important;
  line-height: 1.7 !important;
  max-width: 62ch !important;
  color: #475569 !important;
}
.section h2,
.band h2,
.cta-panel h2{
  font-size: clamp(1.7rem, 2.2vw, 2.4rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em !important;
}
.card h3,
.portal-box h3{
  font-size: 1.2rem !important;
  line-height: 1.25 !important;
}
.eyebrow, .kicker, .tag{
  letter-spacing: 0 !important;
}
.hero-note{
  color: #64748B !important;
  font-size: .95rem !important;
}
.portal-links a span,
.card p,
.section p,
.band p,
.cta-panel p{
  color: #64748B !important;
}
.hero-actions{
  gap: 12px !important;
  flex-wrap: wrap !important;
}
/* ===== END BLOCK SEO + TYPO POLISH ===== */


/* ===== ESSE TYPO + SEO TRUST BLOCK ===== */
.hero h1{
  font-size: clamp(2.1rem, 3.6vw, 3.4rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  max-width: 12ch !important;
}
.hero p{
  font-size: 1rem !important;
  line-height: 1.72 !important;
  max-width: 60ch !important;
  color: #475569 !important;
}
.section h2,
.band h2,
.cta-panel h2{
  font-size: clamp(1.5rem, 2vw, 2.2rem) !important;
  line-height: 1.16 !important;
  letter-spacing: -0.015em !important;
}
.card h3,
.portal-box h3{
  font-size: 1.08rem !important;
  line-height: 1.3 !important;
}
.site-header .brand-copy strong{
  font-size: .98rem !important;
  letter-spacing: .02em !important;
}
.nav a{
  font-size: .95rem !important;
}
.footer a{
  text-decoration: none;
}
.footer a:hover{
  text-decoration: underline;
}
/* ===== END ESSE TYPO + SEO TRUST BLOCK ===== */

/* ===== BLOCK: readability fix for portal section ===== */
.checks div{
  color:#334155 !important;
  font-weight:500 !important;
}
.checks div::before{
  color:#2F6FED !important;
}
.portal-box .note,
.portal-links a span{
  color:#475569 !important;
}
.portal-links a{
  background:#FFFFFF !important;
  color:#1F2937 !important;
  border:1px solid rgba(15,23,42,.10) !important;
}
.band .kicker{
  color:#2F6FED !important;
}
.band h2{
  color:#1F2937 !important;
  max-width:18ch !important;
}
.band{
  background:#FFFFFF !important;
}
@media (max-width:960px){
  .band h2{max-width:none !important;}
}
/* ===== END BLOCK ===== */

/* block: homepage heading + portal readability */
.hero h1{
  font-size: clamp(2rem, 3vw, 3rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  max-width: 13ch !important;
}
.hero p{
  font-size: 1.02rem !important;
  line-height: 1.7 !important;
  max-width: 64ch !important;
  color: #475569 !important;
}
.band h2{
  font-size: clamp(1.55rem, 2.2vw, 2.25rem) !important;
  line-height: 1.15 !important;
  max-width: 22ch !important;
}
.checks div{
  color:#334155 !important;
  font-size:1rem !important;
  line-height:1.65 !important;
  font-weight:500 !important;
}
.portal-links a span,
.portal-box .note{
  color:#475569 !important;
}

/* block: legal pages compact typography */
.page-hero h1{
  font-size: clamp(1.9rem, 2.7vw, 2.8rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
}
.page-hero p{
  font-size: 1rem !important;
  line-height: 1.7 !important;
  max-width: 72ch !important;
  color: #475569 !important;
}
.card h2{
  font-size: 1.18rem !important;
  line-height: 1.3 !important;
  margin-top: 1.35rem !important;
}
.card p, .card li{
  font-size: .98rem !important;
  line-height: 1.72 !important;
  color: #334155 !important;
}
.card ul{
  padding-left: 1.2rem !important;
}


/* ===== HOME CTA REFINEMENT ===== */
.hero-actions .btn,
.hero-actions a,
.nav .btn,
.nav a.btn,
.cta-panel .btn,
.portal-links a{
  background: #EEF1F4 !important;
  color: #2F3742 !important;
  border: 1px solid #D6DCE3 !important;
  box-shadow: none !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
}

.hero-actions .btn.primary,
.nav .btn.primary,
.cta-panel .btn.primary{
  background: #2F3742 !important;
  color: #FFFFFF !important;
  border-color: #2F3742 !important;
}

.hero-actions .btn.secondary,
.hero-actions .btn.soft,
.nav .btn.secondary,
.cta-panel .btn.secondary,
.portal-links a{
  background: #F5F7FA !important;
  color: #2F3742 !important;
  border: 1px solid #D6DCE3 !important;
}

.hero-actions .btn:hover,
.hero-actions a:hover,
.nav .btn:hover,
.nav a.btn:hover,
.cta-panel .btn:hover,
.portal-links a:hover{
  background: #E7EBF0 !important;
  border-color: #C9D1D9 !important;
  color: #27303B !important;
}

.hero-actions .btn.primary:hover,
.nav .btn.primary:hover,
.cta-panel .btn.primary:hover{
  background: #25303B !important;
  border-color: #25303B !important;
  color: #FFFFFF !important;
}

.hero h1{
  font-size: clamp(2rem, 3vw, 3.15rem) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.02em !important;
  max-width: 16ch !important;
}

.hero p{
  max-width: 66ch !important;
  line-height: 1.72 !important;
  color: #4B5563 !important;
}

.portal-links{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 10px !important;
}

.portal-links a{
  text-decoration: none !important;
}

@media (max-width: 860px){
  .portal-links{
    grid-template-columns: 1fr !important;
  }

  .hero h1{
    max-width: none !important;
  }
}
/* ===== END HOME CTA REFINEMENT ===== */

/* ===== ESSE HOME BUTTON + STATUS DOT FIX ===== */

/* all top/home CTA buttons -> premium grey */
.hero-actions .btn,
.hero-actions a,
.nav .btn,
.nav a.btn,
.cta-panel .btn,
.portal-links a,
button,
a.btn{
  background: #EEF1F4 !important;
  color: #2F3742 !important;
  border: 1px solid #D6DCE3 !important;
  box-shadow: none !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
}

/* keep hover calm */
.hero-actions .btn:hover,
.hero-actions a:hover,
.nav .btn:hover,
.nav a.btn:hover,
.cta-panel .btn:hover,
.portal-links a:hover,
button:hover,
a.btn:hover{
  background: #E5E9EE !important;
  color: #27303B !important;
  border-color: #C9D1D9 !important;
}

/* kill dark primary buttons */
.hero-actions .btn.primary,
.nav .btn.primary,
.cta-panel .btn.primary,
button.primary,
a.btn.primary{
  background: #EEF1F4 !important;
  color: #2F3742 !important;
  border: 1px solid #D6DCE3 !important;
}

/* status pill dot -> green blinking */
.eyebrow .dot,
.hero .eyebrow .dot,
.kicker .dot{
  width: 10px !important;
  height: 10px !important;
  border-radius: 999px !important;
  display: inline-block !important;
  background: #22C55E !important;
  box-shadow: 0 0 0 0 rgba(34,197,94,.65) !important;
  animation: essePulse 1.6s infinite !important;
}

/* if dot is made via pseudo or border */
.eyebrow,
.hero .eyebrow{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}

@keyframes essePulse{
  0%{
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(34,197,94,.60);
    opacity: 1;
  }
  70%{
    transform: scale(1.08);
    box-shadow: 0 0 0 10px rgba(34,197,94,0);
    opacity: .95;
  }
  100%{
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(34,197,94,0);
    opacity: 1;
  }
}

/* blue chips under sections -> softer green */
.tag,
.pill,
.badge{
  color: #2F6B45 !important;
  border-color: #CFE9D8 !important;
}

/* only for homepage feature chips if they exist */
.section .tag,
.section .pill{
  background: #F2FBF5 !important;
}

