.ecp-wrap { font-family: inherit; }
.ecp-hero {
	background: linear-gradient(135deg, #0d1b3e 0%, #1a3a6b 55%, #0f4c8a 100%);
	overflow: hidden; padding: 130px 20px 80px; position: relative; text-align: center;
}
.ecp-hero::before { background: radial-gradient(circle at 65% 42%, rgba(0,140,255,.14), transparent 54%); content: ""; height: 200%; left: -50%; pointer-events: none; position: absolute; top: -50%; width: 200%; }
.ecp-hero-inner { margin: auto; max-width: 850px; position: relative; }
.ecp-label { background: rgba(255,255,255,.1); border: 1px solid rgba(126,184,255,.25); border-radius: 24px; color: #7eb8ff; display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 1.8px; margin-bottom: 21px; padding: 6px 17px; text-transform: uppercase; }
.ecp-hero h1 { color: #fff; font-size: clamp(31px, 4vw, 48px); font-weight: 800; line-height: 1.18; margin: 0 0 18px; }
.ecp-hero p { color: rgba(255,255,255,.76); font-size: 18px; line-height: 1.65; margin: 0 auto 32px; max-width: 760px; }
.ecp-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.ecp-btn { align-items: center; border-radius: 30px; display: inline-flex; font-size: 15px; font-weight: 700; gap: 8px; justify-content: center; padding: 14px 31px; text-decoration: none; transition: background .2s, transform .2s; }
.ecp-btn-primary { background: #2563eb; box-shadow: 0 4px 20px rgba(37,99,235,.38); color: #fff !important; }
.ecp-btn-primary:hover { background: #1d4ed8; transform: translateY(-2px); }
.ecp-btn-outline { background: rgba(255,255,255,.1); border: 1.5px solid rgba(255,255,255,.3); color: #fff !important; }
.ecp-btn-outline:hover { background: rgba(255,255,255,.18); transform: translateY(-2px); }
.ecp-meta { display: flex; flex-wrap: wrap; gap: 24px; justify-content: center; margin-top: 35px; }
.ecp-meta span { align-items: center; color: rgba(255,255,255,.66); display: flex; font-size: 13.5px; gap: 6px; }
.ecp-meta i { color: #4ade80; }
.ecp-inner { margin: 0 auto; max-width: 1280px; padding-left: 20px; padding-right: 20px; }
.ecp-capabilities { background: #f8faff; padding: 60px 20px; }
.ecp-capabilities-grid { display: grid; gap: 24px; grid-template-columns: repeat(4, minmax(0,1fr)); margin: auto; max-width: 1100px; }
.ecp-capability { background: #fff; border: 1px solid #edf0f7; border-radius: 14px; padding: 28px 22px; text-align: center; transition: box-shadow .2s, transform .2s; }
.ecp-capability:hover, .ecp-card:hover { box-shadow: 0 14px 36px rgba(37,99,235,.1); transform: translateY(-4px); }
.ecp-icon { align-items: center; background: linear-gradient(135deg,#2563eb,#1d4ed8); border-radius: 14px; color: #fff; display: flex; height: 54px; justify-content: center; margin: 0 auto 16px; width: 54px; }
.ecp-icon i { font-size: 21px; }
.ecp-capability h2 { color: #0d1b3e; font-size: 16px; font-weight: 800; line-height: 1.35; margin: 0 0 10px; }
.ecp-capability p { color: #666; font-size: 13.5px; line-height: 1.62; margin: 0; }
.ecp-projects { background: #fff; padding: 76px 0; }
.ecp-section-head { margin: 0 auto 42px; max-width: 820px; text-align: center; }
.ecp-section-head h2 { color: #0d1b3e; font-size: clamp(26px,2.8vw,34px); font-weight: 800; line-height: 1.25; margin: 0 0 12px; }
.ecp-section-head p { color: #667085; font-size: 16px; line-height: 1.65; margin: 0; }
.ecp-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 40px; }
.ecp-filter { align-items: center; background: #fff; border: 1.5px solid #e2e8f0; border-radius: 30px; color: #555; cursor: pointer; display: inline-flex; font-size: 13.5px; font-weight: 700; gap: 7px; padding: 10px 20px; transition: all .2s; }
.ecp-filter:hover { background: #f0f6ff; border-color: #2563eb; color: #2563eb; }
.ecp-filter.active { background: #2563eb; border-color: #2563eb; box-shadow: 0 4px 14px rgba(37,99,235,.32); color: #fff; }
.ecp-grid { display: grid; gap: 22px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.ecp-card { background: #fff; border: 1px solid #edf0f7; border-radius: 16px; display: flex; flex-direction: column; min-width: 0; overflow: hidden; transition: border-color .2s, box-shadow .2s, transform .2s; }
.ecp-card:hover { border-color: #bfdbfe; }
.ecp-card[hidden] { display: none; }
.ecp-card-media { background: #eaf2ff; display: block; height: 230px; overflow: hidden; position: relative; }
.ecp-card-media img { display: block; height: 100%; object-fit: cover; object-position: top center; transition: transform .32s; width: 100%; }
.ecp-card:hover .ecp-card-media img { transform: scale(1.025); }
.ecp-card-media-placeholder { align-items: center; background: linear-gradient(145deg,#eff6ff,#dbeafe); color: rgba(37,99,235,.3); display: flex; justify-content: center; }
.ecp-card-media-placeholder i { font-size: 46px; }
.ecp-card-body { align-items: flex-start; display: flex; flex: 1; flex-direction: column; padding: 20px 22px 22px; }
.ecp-badge { align-items: center; background: #eff6ff; border-radius: 30px; color: #2563eb; display: inline-flex; font-size: 12px; font-weight: 800; gap: 6px; line-height: 1; margin: 0 0 13px; padding: 8px 11px; }
.ecp-card h3 { color: #101828; font-size: 19px; font-weight: 800; line-height: 1.35; margin: 0 0 9px; }
.ecp-card h3 a { color: inherit; text-decoration: none; }
.ecp-card p { color: #667085; font-size: 13.5px; line-height: 1.65; margin: 0 0 15px; }
.ecp-card-link { color: #2563eb; font-size: 13.5px; font-weight: 800; margin-top: auto; text-decoration: none; }
.ecp-card-link i { font-size: 11px; margin-left: 4px; transition: margin .2s; }
.ecp-card-link:hover i { margin-left: 8px; }
.ecp-empty { background: #f8faff; border: 1px solid #dbeafe; border-radius: 16px; color: #667085; margin: 0 auto; max-width: 680px; padding: 42px 24px; text-align: center; }
.ecp-empty i { color: rgba(37,99,235,.35); display: block; font-size: 36px; margin-bottom: 12px; }
.ecp-empty p { margin: 0; }
.ecp-empty a { color: #2563eb; font-weight: 700; }
.ecp-process { background: #f5f9ff; padding: 78px 0; }
.ecp-process-grid { display: grid; gap: 0; grid-template-columns: repeat(4,minmax(0,1fr)); }
.ecp-process-grid article { border-left: 1px solid #dbeafe; padding: 0 28px; position: relative; }
.ecp-process-grid article:first-child { border-left: 0; }
.ecp-process-grid span { color: #c7dcff; display: block; font-size: 34px; font-weight: 900; line-height: 1; margin-bottom: 15px; }
.ecp-process-grid h3 { color: #0d1b3e; font-size: 16px; font-weight: 800; margin: 0 0 10px; }
.ecp-process-grid p { color: #667085; font-size: 13.5px; line-height: 1.65; margin: 0; }
.ecp-cta { background: linear-gradient(135deg,#1e293b,#0f172a); padding: 82px 20px; text-align: center; }
.ecp-cta-inner { margin: auto; max-width: 760px; }
.ecp-cta h2 { color: #fff; font-size: clamp(26px,3vw,36px); font-weight: 800; line-height: 1.28; margin: 0 0 16px; }
.ecp-cta p { color: rgba(255,255,255,.72); font-size: 17px; line-height: 1.65; margin: 0 0 32px; }
@media (max-width: 1050px) {
	.ecp-capabilities-grid, .ecp-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.ecp-process-grid { gap: 28px 0; }
	.ecp-process-grid article:nth-child(odd) { border-left: 0; }
}
@media (max-width: 920px) { .ecp-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 768px) {
	.ecp-hero { padding: 135px 20px 68px; }
	.ecp-hero p { font-size: 16px; }
	.ecp-meta { gap: 13px; margin-top: 28px; }
	.ecp-card-media { height: 205px; }
}
@media (max-width: 600px) {
	.ecp-capabilities-grid, .ecp-grid, .ecp-process-grid { grid-template-columns: 1fr; }
	.ecp-capabilities, .ecp-projects, .ecp-process, .ecp-cta { padding-bottom: 58px; padding-top: 58px; }
	.ecp-filter { font-size: 12.5px; padding: 9px 14px; }
	.ecp-card-media { height: 210px; }
	.ecp-process-grid article { border-left: 0; padding: 0; }
	.ecp-actions .ecp-btn { width: 100%; }
}
