:root{
  --navy-deep: #101F3B;
  --navy: #16305C;
  --navy-mid: #1E3A66;
  --gold: #C79A2E;
  --gold-light: #E8C464;
  --sky: #5588C4;
  --cream: #F6F4EE;
  --white: #FFFFFF;
  --ink: #1B2130;
  --ink-soft: #4B5468;
  --line: #E3E0D7;
  --red: #C24A3E;
  --green: #2E7D5B;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Public Sans', sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Fraunces', serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
button, .btn{cursor:pointer; font-family:inherit;}

/* Focus visibility */
a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

/* ---------- NAVBAR - Can add Items if needed. Used for logo as of now ---------- */
.nav{
  position:sticky; top:0; z-index:40;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px;}
.nav-left{display:flex; align-items:center; gap:12px;}
.nav-left img{height:46px; width:auto;}
.nav-links{display:flex; align-items:center; gap:34px; font-size:15px; font-weight:500; color:var(--ink-soft);}
.nav-links a:hover{color:var(--navy);}
.nav-cta{
  background:var(--navy); color:var(--white); padding:11px 22px;
  border-radius:3px; font-weight:600; font-size:14.5px; border:none;
}
.nav-cta:hover{background:var(--navy-mid);}
.nav-toggle{display:none;}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  background:radial-gradient(140% 130% at 82% 8%, var(--navy-mid) 0%, var(--navy) 42%, var(--navy-deep) 100%);
  color:var(--white);
  overflow:hidden;
  padding:96px 0 120px;
}
.hero-arc{
  position:absolute; right:-180px; top:-220px; width:760px; height:760px;
  border-radius:50%;
  border:2px solid rgba(199,154,46,0.35);
}
.hero-arc.two{right:-320px; top:-120px; width:620px; height:620px; border-color:rgba(85,136,196,0.28);}
.hero-inner{position:relative;}
.eyebrow-mark{
  display:flex; align-items:center; gap:10px; margin-bottom:22px;
}
.eyebrow-mark svg{flex-shrink:0;}
.eyebrow-mark span{font-size:14.5px; letter-spacing:0.02em; color:var(--gold-light); font-weight:600;}
.hero h1{
  font-size:clamp(34px, 4.4vw, 54px);
  font-weight:600;
  line-height:1.12;
  max-width:11ch;
  color:var(--white);
}
.hero p.lede{
  margin-top:22px; font-size:18px; color:#D7DEEC; max-width:46ch;
}
.hero-ctas{display:flex; align-items:center; gap:22px; margin-top:34px; flex-wrap:wrap;}
.btn-gold{
  background:var(--gold); color:var(--navy-deep); font-weight:700; font-size:15.5px;
  padding:15px 30px; border-radius:3px; border:none; box-shadow:0 10px 24px -10px rgba(199,154,46,0.55);
}
.btn-gold:hover{background:var(--gold-light);}
.link-ghost{font-weight:600; font-size:15px; color:var(--white); border-bottom:1px solid rgba(255,255,255,0.4); padding-bottom:2px;}
.link-ghost:hover{border-color:var(--gold-light); color:var(--gold-light);}
.hero-card{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:6px;
  padding:26px;
  backdrop-filter:blur(2px);
}
.hero-card .row{display:flex; justify-content:space-between; align-items:baseline; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.12);}
.hero-card .row:last-child{border-bottom:none;}
.hero-card .row span:first-child{font-size:14px; color:#B9C3D9;}
.hero-card .row span:last-child{font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:var(--gold-light);}

/* ---------- TRUST BAR ---------- */
.trust{padding:52px 0; background:var(--white); border-bottom:1px solid var(--line);}
.trust p{text-align:center; font-size:14px; color:var(--ink-soft); font-weight:600; margin-bottom:28px;}
.trust-logos{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;}
.trust-logos .mark{
  font-family:'Fraunces', serif; font-weight:600; font-size:19px; color:#9BA3B4; letter-spacing:0.01em;
  display:flex; align-items:center; gap:8px;
}
.trust-logos .mark svg{opacity:0.7;}

/* ---------- PROMO (split text/stat section) ---------- */
.promo{background:var(--cream); padding:104px 0;}
.promo-inner{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
.promo-tag{
  display:inline-flex; align-items:center; gap:8px; background:#EFE6CE; color:#8A6A16;
  font-size:13.5px; font-weight:600; padding:6px 14px; border-radius:20px; margin-bottom:18px;
}
.promo h2{font-size:clamp(28px,3vw,38px); font-weight:600; line-height:1.22; max-width:14ch; color:var(--navy-deep);}
.promo p.body{margin-top:18px; font-size:16.5px; color:var(--ink-soft); max-width:46ch;}
.btn-navy{
  margin-top:28px; background:var(--navy); color:var(--white); font-weight:700; font-size:15.5px;
  padding:15px 28px; border-radius:3px; border:none; display:inline-block;
}
.btn-navy:hover{background:var(--navy-mid);}
.promo-visual{
  position:relative; background:var(--white); border-radius:10px; padding:38px;
  box-shadow:0 30px 60px -30px rgba(16,31,59,0.28); border:1px solid var(--line);
}
.promo-visual .stat-big{font-family:'Fraunces',serif; font-size:56px; font-weight:600; color:var(--navy);}
.promo-visual .stat-label{font-size:14.5px; color:var(--ink-soft); margin-top:4px;}
.promo-visual .divider{height:1px; background:var(--line); margin:26px 0;}
.benefit-list{display:flex; flex-direction:column; gap:16px;}
.benefit-list li{list-style:none; display:flex; align-items:center; gap:12px; font-size:15px; color:var(--ink);}
.benefit-list .dot{width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.benefit-list .dot.g{background:#E7F1EB;}
.benefit-list .dot.r{background:#F7E9E7;}
.benefit-list .dot.b{background:#E7EEF7;}

/* ---------- TESTIMONIALS ---------- */
.testi{padding:104px 0; background:var(--white);}
.testi-head{text-align:center; max-width:560px; margin:0 auto 56px;}
.testi-head h2{font-size:clamp(28px,3vw,36px); font-weight:600; color:var(--navy-deep);}
.testi-head p{margin-top:12px; color:var(--ink-soft); font-size:16px;}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.testi-card{
  background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:32px;
  display:flex; flex-direction:column; gap:20px;
}
.testi-card .quote{font-size:16px; color:var(--ink); line-height:1.6;}
.testi-card .who{display:flex; align-items:center; gap:12px; margin-top:auto;}
.avatar{
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:600; font-size:16px; color:var(--white); flex-shrink:0;
}
.avatar.a1{background:var(--navy);}
.avatar.a2{background:var(--gold); color:var(--navy-deep);}
.avatar.a3{background:var(--sky);}
.who-name{font-weight:700; font-size:14.5px;}
.who-role{font-size:13px; color:var(--ink-soft);}

/* ================= CAROUSEL: ENDLESS LOOPING (PARTNER LOGOS) ================= */
.carousel-loop{
  overflow:hidden;
  width:100%;
  padding:24px 0;
  background:var(--white);
  border-bottom:1px solid var(--line);
}
.track-loop{
  display:flex;
  align-items:center;
  width:max-content;
}
.track-loop img{
  width:120px;
  height:60px;
  object-fit:contain;
  flex-shrink:0;
  margin-right:50px;
}


/* ================= SOCIAL ICONS (footer) ================= */
.social-icons{
  display:flex;
  gap:12px;
}
.social-icon{
  width:38px; height:38px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,0.08);
  color:#AEB7CB;
  transition:background 0.2s, color 0.2s;
}
.social-icon:hover{
  background:var(--gold);
  color:var(--navy-deep);
}

/* ================= CAROUSEL: PROMO CARD SLIDER (Services Offered) ================= */
.services-promo{
  padding:88px 0 100px;
  background:var(--white);
}

.promo-carousel{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
  display:flex;
  align-items:center;
  gap:16px;
}

.promo-track{
  flex:1;
  display:flex;
  overflow:hidden;
  border-radius:24px;
  background:var(--cream);
}

.promo-slide{
  min-width:100%;
  flex-shrink:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:40px;
  padding:56px;
  transition:transform 0.5s ease;
}

.promo-slide-text{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
  min-width:0;
}

.promo-eyebrow{
  font-size:14px;
  font-weight:700;
  color:var(--navy);
}

.promo-slide-text h3{
  font-family:'Fraunces',serif;
  font-size:clamp(24px,2.6vw,32px);
  font-weight:600;
  color:var(--ink);
  line-height:1.2;
}

.promo-slide-text p{
  font-size:16px;
  color:var(--ink-soft);
  max-width:40ch;
}

.promo-slide-visual{
  height:320px;
  border-radius:16px;
  overflow:hidden;
  background:var(--navy-deep);
  min-width:0;
}
.promo-slide-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.promo-arrow{
  flex-shrink:0;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--ink-soft);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background 0.2s, color 0.2s, border-color 0.2s;
}
.promo-arrow:hover{background:var(--navy); color:var(--white); border-color:var(--navy);}
.promo-arrow:disabled{opacity:0.35; cursor:default; pointer-events:none;}

.promo-dots{display:flex; justify-content:center; gap:8px; margin-top:24px;}
.promo-dots .dot-btn{
  width:8px; height:8px; border-radius:50%;
  background:#D6D9E0; border:none; padding:0; cursor:pointer;
  transition:background 0.2s, transform 0.2s;
}
.promo-dots .dot-btn.active{background:var(--navy); transform:scale(1.3);}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-deep); color:#C7CEDD; padding:72px 0 28px;}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-brand img{height:44px; width:auto; margin-bottom:16px; border-radius:4px; background:var(--white); padding:4px;}
.footer-brand p{font-size:14.5px; color:#9EA9C0; max-width:32ch;}
.footer-col h4{font-family:'Public Sans',sans-serif; font-size:14px; font-weight:700; color:var(--white); margin-bottom:16px;}
.footer-col ul{list-style:none; display:flex; flex-direction:column; gap:11px;}
.footer-col a{font-size:14.5px; color:#AEB7CB;}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:13.5px; color:#8E97AC; flex-wrap:wrap; gap:12px;}
.footer-bottom .legal{display:flex; gap:22px;}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 880px){
  .nav-links{display:none;}
  .promo-inner{grid-template-columns:1fr; gap:44px;}
  .testi-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr; row-gap:36px;}
  .trust-logos{justify-content:center;}
}
@media (max-width:800px){
  .promo-slide{grid-template-columns:1fr; padding:32px;}
  .promo-arrow{width:36px; height:36px;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}