:root {
  --itp-navy: #12213b;
  --itp-navy-2: #1b2f50;
  --itp-blue: #4f78a8;
  --itp-pale: #eef5fb;
  --itp-pale-2: #f7fafc;
  --itp-orange: #e76534;
  --itp-orange-dark: #c94d1e;
  --itp-ink: #27364b;
  --itp-muted: #68778b;
  --itp-border: #dbe4ec;
  --itp-white: #fff;
  --itp-shadow: 0 18px 48px rgba(18, 33, 59, .10);
}

html { scroll-behavior: smooth; }
body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: var(--itp-ink);
  background: var(--itp-white);
  line-height: 1.65;
}
a { color: #295f99; }
a:hover { color: var(--itp-orange-dark); }

.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 2000;
  background: #fff;
  color: #000;
  padding: .75rem 1rem;
}
.skip-link:focus { left: .75rem; top: .75rem; }

.site-header {
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(219, 228, 236, .9);
  backdrop-filter: blur(10px);
}
.navbar { min-height: 82px; }
.brand-mark {
  width: 112px;
  height: 65px;
  object-fit: contain;
  border-radius: .35rem;
  box-shadow: 0 6px 18px rgba(18,33,59,.08);
}
.brand-copy { margin-left: .8rem; line-height: 1.05; }
.brand-copy strong {
  display: block;
  color: var(--itp-navy);
  font-size: 1.05rem;
  letter-spacing: .02em;
}
.brand-copy span {
  display: block;
  color: var(--itp-muted);
  font-size: .75rem;
  margin-top: .25rem;
}
.navbar-light .navbar-nav .nav-link {
  color: #34445b;
  font-weight: 600;
  padding-left: .85rem;
  padding-right: .85rem;
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active { color: var(--itp-orange-dark); }
.dropdown-menu { border: 1px solid var(--itp-border); box-shadow: var(--itp-shadow); border-radius: .8rem; }
.dropdown-item { padding: .6rem 1rem; }
.dropdown-item:active { background: var(--itp-navy); }

.btn-itp {
  background: var(--itp-orange);
  border-color: var(--itp-orange);
  color: #fff;
  font-weight: 700;
  border-radius: .65rem;
  padding: .72rem 1.15rem;
}
.btn-itp:hover, .btn-itp:focus { background: var(--itp-orange-dark); border-color: var(--itp-orange-dark); color: #fff; }
.btn-itp-outline {
  border: 1px solid #aebdca;
  color: var(--itp-navy);
  background: #fff;
  font-weight: 700;
  border-radius: .65rem;
  padding: .72rem 1.15rem;
}
.btn-itp-outline:hover { border-color: var(--itp-navy); color: var(--itp-navy); background: var(--itp-pale-2); }

.hero {
  position: relative;
  overflow: hidden;
  padding: 5.8rem 0 5rem;
  background:
    radial-gradient(circle at 92% 18%, rgba(79,120,168,.14), transparent 26rem),
    linear-gradient(145deg, #ffffff 0%, #f7fafc 56%, #eef5fb 100%);
}
.hero::after {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  right: -160px;
  bottom: -200px;
  border: 1px solid rgba(79,120,168,.16);
  border-radius: 50%;
  box-shadow: 0 0 0 55px rgba(79,120,168,.045), 0 0 0 110px rgba(79,120,168,.025);
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .77rem;
  font-weight: 800;
  color: var(--itp-orange-dark);
  margin-bottom: 1rem;
}
.eyebrow::before { content:""; width: 26px; height: 2px; background: var(--itp-orange); }
.hero h1, .page-hero h1 {
  color: var(--itp-navy);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.07;
}
.hero h1 { font-size: clamp(2.65rem, 5.4vw, 5rem); max-width: 820px; }
.hero .lead { color: #53667c; font-size: clamp(1.1rem, 2vw, 1.35rem); max-width: 700px; }

.hero-system {
  position: relative;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(79,120,168,.22);
  border-radius: 1.25rem;
  padding: 1.25rem;
  box-shadow: var(--itp-shadow);
}
.hero-system .system-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--itp-border);
  padding-bottom: .8rem;
  margin-bottom: 1rem;
}
.hero-system .dots { display: flex; gap: .35rem; }
.hero-system .dots span { width: 8px; height: 8px; border-radius: 50%; background: #b8c6d4; }
.hero-system .dots span:last-child { background: var(--itp-orange); }
.system-node {
  border: 1px solid var(--itp-border);
  border-radius: .8rem;
  background: #fff;
  padding: .9rem 1rem;
  min-height: 100%;
}
.system-node small { color: var(--itp-muted); display:block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.system-node strong { display:block; color: var(--itp-navy); margin-top:.2rem; }
.system-arrow { color: var(--itp-orange); font-weight: 800; text-align:center; padding:.2rem 0; }

.trust-strip { border-top: 1px solid var(--itp-border); border-bottom: 1px solid var(--itp-border); background:#fff; }
.trust-item { padding: 1.1rem 0; text-align:center; }
.trust-item strong { display:block; color:var(--itp-navy); font-size:1rem; }
.trust-item span { color:var(--itp-muted); font-size:.86rem; }

.section { padding: 5rem 0; }
.section-soft { background: var(--itp-pale-2); }
.section-blue { background: var(--itp-navy); color:#e8eef5; }
.section-title { color:var(--itp-navy); font-weight:800; letter-spacing:-.025em; }
.section-intro { color:var(--itp-muted); max-width: 760px; }
.section-blue .section-title { color:#fff; }
.section-blue .section-intro { color:#bdc9d7; }

.service-card {
  display:block;
  height:100%;
  text-decoration:none;
  color:inherit;
  background:#fff;
  border:1px solid var(--itp-border);
  border-radius:1rem;
  padding:1.45rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.service-card:hover { transform:translateY(-4px); box-shadow:var(--itp-shadow); border-color:#b9c9d8; color:inherit; }
.service-no {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:.75rem;
  background:var(--itp-pale);
  color:var(--itp-orange-dark);
  font-weight:800;
  font-size:.85rem;
}
.service-card h3 { color:var(--itp-navy); font-size:1.17rem; font-weight:800; margin-top:1rem; }
.service-card p { color:var(--itp-muted); margin-bottom:1rem; }
.service-card .more { color:#315f8c; font-weight:700; font-size:.92rem; }

.feature-list { list-style:none; padding:0; margin:0; }
.feature-list li { position:relative; padding-left:1.85rem; margin-bottom:.85rem; }
.feature-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.55rem;
  width:.72rem;
  height:.72rem;
  border-radius:50%;
  background:var(--itp-orange);
  box-shadow: 0 0 0 4px rgba(231,101,52,.12);
}

.case-card {
  height:100%;
  background:#fff;
  border:1px solid var(--itp-border);
  border-radius:1rem;
  overflow:hidden;
}
.case-card .case-band { height:6px; background:linear-gradient(90deg,var(--itp-navy),var(--itp-blue),var(--itp-orange)); }
.case-card .case-body { padding:1.4rem; }
.case-card .case-label { color:var(--itp-orange-dark); text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; font-weight:800; }
.case-card h3 { color:var(--itp-navy); font-size:1.2rem; font-weight:800; margin-top:.45rem; }
.case-result { background:var(--itp-pale); border-radius:.7rem; padding:.85rem 1rem; color:#40536a; font-size:.92rem; }

.quote-card {
  border-left: 4px solid var(--itp-orange);
  padding:1.2rem 1.35rem;
  background:#fff;
  border-radius:.2rem .8rem .8rem .2rem;
  box-shadow:0 8px 30px rgba(18,33,59,.06);
}
.quote-card blockquote { margin:0; color:#3f5065; }
.quote-card footer { color:var(--itp-muted); font-size:.88rem; margin-top:.8rem; }

.cta-band {
  background:linear-gradient(135deg, #172844, #21395e);
  border-radius:1.25rem;
  padding:2rem;
  color:#fff;
  box-shadow:var(--itp-shadow);
}
.cta-band h2 { font-weight:800; letter-spacing:-.02em; }
.cta-band p { color:#ced9e5; margin-bottom:0; }

.page-hero {
  padding: 4.2rem 0 3.5rem;
  background:linear-gradient(145deg,#fff 0%,#f5f9fc 100%);
  border-bottom:1px solid var(--itp-border);
}
.page-hero h1 { font-size:clamp(2.3rem,4.7vw,4rem); }
.page-hero .lead { color:#5a6d82; max-width:800px; }

.content h2, .content h3 { color:var(--itp-navy); font-weight:800; letter-spacing:-.015em; }
.content h2 { margin-top:2.4rem; }
.content p, .content li { color:#44566c; }
.info-panel {
  background:var(--itp-pale-2);
  border:1px solid var(--itp-border);
  border-radius:1rem;
  padding:1.35rem;
}
.info-panel h2, .info-panel h3 { color:var(--itp-navy); font-weight:800; }

.process-step { border-left:2px solid #d8e2eb; padding-left:1.2rem; position:relative; margin-bottom:1.5rem; }
.process-step::before { content:""; position:absolute; left:-7px; top:.3rem; width:12px; height:12px; border-radius:50%; background:var(--itp-orange); }
.process-step h3 { font-size:1.05rem; }

.contact-card {
  background:#fff;
  border:1px solid var(--itp-border);
  border-radius:1rem;
  padding:1.5rem;
  box-shadow:0 12px 38px rgba(18,33,59,.07);
}
.form-label { font-weight:700; color:#34465d; }
.form-control { border-color:#cfdbe5; border-radius:.65rem; padding:.72rem .85rem; }
.form-control:focus { border-color:#7898b8; box-shadow:0 0 0 .2rem rgba(79,120,168,.15); }
.required { color:var(--itp-orange-dark); }
.hp-field { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

.site-footer { background:#0f1c31; color:#c3cedb; padding:3.6rem 0 1.2rem; }
.site-footer h2, .site-footer h3 { color:#fff; font-size:1rem; font-weight:800; }
.site-footer a { color:#d8e2ec; text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.site-footer .footer-small { color:#8fa0b3; font-size:.84rem; }
.footer-logo { width:110px; height:auto; border-radius:.3rem; }

.breadcrumb { font-size:.88rem; }
.breadcrumb a { color:#526f8f; text-decoration:none; }
.breadcrumb-item.active { color:#7b8795; }

.not-found { min-height:55vh; display:flex; align-items:center; }

@media (max-width: 991.98px) {
  .navbar { min-height:auto; padding-top:.7rem; padding-bottom:.7rem; }
  .brand-copy span { display:none; }
  .hero { padding:4.3rem 0 3.8rem; }
  .hero-system { margin-top:2rem; }
  .section { padding:4rem 0; }
  .navbar-collapse { padding: .8rem 0 1rem; }
}
@media (max-width: 575.98px) {
  .brand-mark { width:88px; height:52px; }
  .brand-copy { margin-left:.55rem; }
  .brand-copy strong { font-size:.92rem; }
  .hero { padding-top:3.5rem; }
  .hero h1 { font-size:2.55rem; }
  .cta-band { padding:1.4rem; }
}
.hero-layer { z-index: 1; }
.footer-rule { border-color: rgba(255,255,255,.12); }
.contact-heading, .notfound-heading { color: var(--itp-navy); }
body { overflow-x: hidden; }
@media (max-width: 991.98px) {
  .row.g-5 { --bs-gutter-x: 1.5rem; }
}
/* Home-page CTA: keep the card visually separate from the dark section above. */
.home-cta-section { padding-top: 2.5rem; }
@media (max-width: 991.98px) {
  .home-cta-section { padding-top: 2rem; }
}
