:root{
  --navy:#0b2545;
  --navy-2:#13315c;
  --accent:#c9a227;
  --accent-2:#e0b93c;
  --ink:#1c2434;
  --muted:#5d6b82;
  --line:#e4e8ef;
  --soft:#f5f7fb;
}
*{scroll-behavior:smooth}
body{
  font-family:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  color:var(--ink);
  line-height:1.7;
  background:#fff;
}
h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.02em;color:var(--navy)}
h1{font-size:2.6rem}
h2{font-size:2rem}
a{color:var(--navy-2);text-decoration:none}
a:hover{color:var(--accent)}

/* NAV */
.tfp-nav{background:var(--navy);padding:.8rem 0;box-shadow:0 2px 18px rgba(11,37,69,.18)}
.navbar-brand{display:flex;align-items:center;gap:.6rem}
.brand-mark{
  background:var(--accent);color:var(--navy);font-weight:800;
  width:40px;height:40px;border-radius:9px;display:grid;place-items:center;
  font-size:.95rem;letter-spacing:.5px;
}
.brand-text{color:#fff;font-weight:700;font-size:1.05rem;letter-spacing:-.02em}
.brand-text span{color:var(--accent)}
.tfp-nav .nav-link{color:rgba(255,255,255,.82);font-weight:500;padding:.5rem .9rem;border-radius:6px}
.tfp-nav .nav-link:hover,.tfp-nav .nav-link.active{color:#fff;background:rgba(255,255,255,.09)}
.btn-accent{background:var(--accent);border:1px solid var(--accent);color:var(--navy);font-weight:600}
.btn-accent:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--navy)}
.btn-dark{background:var(--navy);border-color:var(--navy)}
.btn-dark:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn-outline-dark{border-color:var(--navy);color:var(--navy)}
.btn-outline-dark:hover{background:var(--navy);color:#fff}

/* HERO */
.hero{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 60%,#1b4272 100%);
  color:#fff;padding:5.5rem 0 5rem;position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;right:-140px;top:-140px;width:460px;height:460px;
  border-radius:50%;background:rgba(201,162,39,.13);
}
.hero h1,.hero h2{color:#fff}
.hero-title{font-size:3.1rem;line-height:1.15;margin-bottom:1.1rem}
.hero-title span{color:var(--accent)}
.kicker{
  display:inline-block;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;
  font-weight:700;color:var(--accent);margin-bottom:.9rem;
}
.kicker.dark{color:var(--navy-2)}
.lead-muted{color:rgba(255,255,255,.82);font-size:1.1rem}
.lead-muted.dark{color:var(--muted)}
.hero-stats strong{display:block;font-size:1.5rem;color:var(--accent);line-height:1.2}
.hero-stats span{font-size:.85rem;color:rgba(255,255,255,.75)}
.hero-panel{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 24px 60px rgba(0,0,0,.28);position:relative;z-index:2}

.page-hero{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);
  color:#fff;padding:4rem 0 3.2rem;
}
.page-hero h1{color:#fff;margin-bottom:.8rem}
.tfp-crumb{justify-content:center;margin:1.2rem 0 0}
.tfp-crumb .breadcrumb-item,.tfp-crumb a{color:rgba(255,255,255,.75)}
.tfp-crumb .breadcrumb-item.active{color:var(--accent)}
.tfp-crumb .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.45)}

/* SECTIONS */
.section{padding:4.5rem 0}
.section-alt{background:var(--soft)}
.section-dark{background:var(--navy);color:rgba(255,255,255,.85)}
.section-dark h2{color:#fff}

/* CARDS */
.card{border:1px solid var(--line);border-radius:14px;transition:.25s}
.service-card .card-body{padding:1.8rem}
.service-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(11,37,69,.12);border-color:#cfd8e6}
.svc-icon{
  width:56px;height:56px;border-radius:12px;display:grid;place-items:center;
  background:rgba(201,162,39,.14);font-size:1.6rem;margin-bottom:1rem;
}
.svc-icon.large{width:72px;height:72px;font-size:2rem}
.link-arrow{font-weight:600;color:var(--navy-2)}
.link-arrow span{transition:.2s;display:inline-block}
.link-arrow:hover span{transform:translateX(5px)}
.mini-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.3rem;height:100%}
.mini-card p{margin:0;color:var(--muted);font-size:.94rem}
.step-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.6rem;height:100%;position:relative}
.step-num{font-size:2rem;font-weight:800;color:rgba(11,37,69,.12);display:block;line-height:1}
.step-card p{color:var(--muted);font-size:.94rem;margin:0}
.quote-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:1.6rem;height:100%}
.quote-card p{color:#fff;font-style:italic}
.quote-card span{color:var(--accent);font-size:.85rem;font-weight:600}
.team-card{text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.8rem 1.2rem;height:100%}
.avatar{width:64px;height:64px;border-radius:50%;background:var(--navy);color:var(--accent);display:grid;place-items:center;font-weight:800;margin:0 auto 1rem}
.team-card p{color:var(--muted);font-size:.9rem;margin:0}

/* BLOG */
.blog-card{overflow:hidden}
.blog-thumb{
  height:150px;display:grid;place-items:center;font-size:3rem;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);
}
.blog-thumb.wide{height:210px;border-radius:14px;margin-bottom:1.6rem}
.badge-cat{background:rgba(201,162,39,.18);color:#8a6f12;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;padding:.28rem .65rem;border-radius:20px}
.blog-card p{color:var(--muted);font-size:.95rem}
.article p{color:#33405a}
.lead-intro{font-size:1.12rem;color:var(--navy-2)!important;font-weight:500}
.article-note{background:var(--soft);border-left:4px solid var(--accent);padding:1.1rem 1.3rem;border-radius:8px;font-size:.94rem}

/* PANELS + FORMS */
.side-panel{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:1.8rem}
.sticky-panel{position:sticky;top:100px}
.form-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:2rem;box-shadow:0 10px 34px rgba(11,37,69,.06)}
.form-control,.form-select{border:1px solid #d5dce8;padding:.7rem .9rem;border-radius:9px}
.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(201,162,39,.18)}
.form-label{font-weight:600;font-size:.92rem;color:var(--navy)}
.form-check-input:checked{background-color:var(--navy);border-color:var(--navy)}
address{font-style:normal;color:var(--muted)}

.checklist{list-style:none;padding:0;margin:0}
.checklist li{position:relative;padding-left:1.7rem;margin-bottom:.6rem;color:var(--muted)}
.checklist li::before{content:"\2713";position:absolute;left:0;color:var(--accent);font-weight:800}
.checklist.dark li{color:#33405a}
.checklist.small li{font-size:.92rem;margin-bottom:.35rem}

/* ACCORDION */
.tfp-accordion .accordion-item{border:1px solid var(--line);border-radius:10px!important;margin-bottom:.8rem;overflow:hidden}
.tfp-accordion .accordion-button{font-weight:600;color:var(--navy)}
.tfp-accordion .accordion-button:not(.collapsed){background:rgba(201,162,39,.1);color:var(--navy);box-shadow:none}
.tfp-accordion .accordion-button:focus{box-shadow:none;border-color:var(--line)}

/* LEGAL */
.legal p{color:#33405a}
.legal h2{border-left:4px solid var(--accent);padding-left:.8rem}

/* CTA */
.cta-band{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);padding:3rem 0}
.cta-band h2,.cta-band p{color:var(--navy)}
.cta-band .btn-accent{background:var(--navy);border-color:var(--navy);color:#fff}
.cta-band .btn-accent:hover{background:#071a33;color:#fff}

/* FOOTER */
.tfp-footer{background:var(--navy);color:rgba(255,255,255,.7);padding:3.5rem 0 1.5rem}
.tfp-footer h6{color:#fff;text-transform:uppercase;font-size:.8rem;letter-spacing:.12em;margin-bottom:1rem}
.tfp-footer p{font-size:.93rem}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:.5rem}
.footer-links a{color:rgba(255,255,255,.7);font-size:.93rem}
.footer-links a:hover{color:var(--accent)}
.footer-links.dark a{color:var(--navy-2)}
.footer-links.dark a:hover{color:var(--accent)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:2.5rem;padding-top:1.3rem;font-size:.88rem}

/* TO TOP */
.to-top{
  position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;
  background:var(--accent);color:var(--navy);border:none;font-size:1.2rem;font-weight:700;
  display:none;place-items:center;z-index:1030;box-shadow:0 8px 22px rgba(0,0,0,.25);
}
.to-top.show{display:grid}

@media (max-width:991.98px){
  .hero-title{font-size:2.3rem}
  h1{font-size:2rem}
  h2{font-size:1.6rem}
  .sticky-panel{position:static}
  .tfp-nav .nav-link{padding:.55rem .3rem}
  .navbar-nav .btn{margin-top:.6rem}
}
