:root{
    --navy:#0B2A4A;
    --navy-2:#123B66;
    --ink:#1B2430;
    --muted:#66707F;
    --bg:#FFFFFF;
    --bg-soft:#F6F8FA;
    --line:#E7EAEE;
    --blue:#2F6FED;
    --purple:#7C5CFF;
    --pink:#D6409F;
    --font-head:'Plus Jakarta Sans', sans-serif;
    --font-body:'Inter', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg); color:var(--ink); font-family:var(--font-body); line-height:1.6; -webkit-font-smoothing:antialiased;}
  a{color:inherit; text-decoration:none;}
  img,svg{display:block; max-width:100%;}
  :focus-visible{outline:2px solid var(--blue); outline-offset:2px;}
  .wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
  @media (max-width:640px){.wrap{padding:0 20px;}}
  ul{list-style:none;}

  /* ---------- NAV ---------- */
  header.site{position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
  .nav{display:flex; align-items:center; justify-content:space-between; height:78px; gap:24px;}
  .logo{font-family:var(--font-head); font-weight:800; font-size:1.3rem; letter-spacing:-0.01em; color:var(--navy);}
  nav.links{display:flex; align-items:center; gap:30px; font-size:0.92rem; color:var(--ink); font-weight:500;}
  nav.links a{display:flex; align-items:center; gap:4px; color:var(--ink);}
  nav.links a:hover{color:var(--blue);}
  .nav-right{display:flex; align-items:center; gap:18px;}
  .btn{
    font-family:var(--font-body); font-weight:600; font-size:0.9rem; padding:12px 20px; border-radius:8px;
    display:inline-flex; align-items:center; gap:8px; transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn-primary{background:var(--navy); color:#fff;}
  .btn-primary:hover{background:var(--navy-2); transform:translateY(-1px);}
  .btn-light{background:#fff; color:var(--navy);}
  .btn-light:hover{box-shadow:0 6px 18px rgba(0,0,0,0.12);}
  .lang{font-size:0.88rem; color:var(--muted); display:flex; align-items:center; gap:4px;}
  @media (max-width:900px){ nav.links{display:none;} }

  /* ---------- HERO ---------- */
  .hero{padding:64px 0 0;}
  .hero-inner{
    background:linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 100%);
    border-radius:20px; overflow:hidden; position:relative; display:grid; grid-template-columns:1.05fr 0.95fr; min-height:440px;
  }
  @media (max-width:900px){ .hero-inner{grid-template-columns:1fr; min-height:0;} }
  .hero-copy{padding:64px 56px; position:relative; z-index:2;}
  @media (max-width:640px){ .hero-copy{padding:44px 28px;} }
  h1.hero-title{
    font-family:var(--font-head); font-weight:800; font-size:clamp(1.9rem,3.6vw,2.7rem); line-height:1.15;
    letter-spacing:-0.01em; color:#fff; max-width:14ch;
  }
  .hero-sub{margin-top:20px; max-width:42ch; color:#C6D2E4; font-size:1.02rem;}
  .hero-actions{margin-top:32px;}

  .hero-visual{position:relative; overflow:hidden;}
  .hero-visual svg{position:absolute; inset:0; width:100%; height:100%;}
  .hero-visual .node{fill:#fff; opacity:0.9;}
  .hero-visual .link{stroke:rgba(255,255,255,0.25); stroke-width:1;}

  /* ---------- ACHIEVE ---------- */
  section.achieve{padding:88px 0 0;}
  .achieve h2{font-family:var(--font-head); font-weight:800; font-size:clamp(1.4rem,2.4vw,1.8rem); letter-spacing:-0.01em; margin-bottom:44px;}
  .achieve-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
  @media (max-width:860px){ .achieve-grid{grid-template-columns:1fr; gap:32px;} }
  .achieve-item{display:flex; gap:18px; padding:0 32px; border-left:1px solid var(--line);}
  .achieve-item:first-child{border-left:none; padding-left:0;}
  @media (max-width:860px){ .achieve-item{border-left:none; padding:0;} }
  .icon-circle{
    width:52px; height:52px; border-radius:50%; background:#EAF0FE; display:flex; align-items:center; justify-content:center;
    flex-shrink:0; color:var(--blue);
  }
  .achieve-item h3{font-family:var(--font-head); font-weight:700; font-size:1.05rem; margin-bottom:6px;}
  .achieve-item p{color:var(--muted); font-size:0.92rem;}

  /* ---------- CAPABILITIES + PROCESS ---------- */
  section.split{padding:88px 0;}
  .split-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
  @media (max-width:960px){ .split-grid{grid-template-columns:1fr; gap:56px;} }
  .split h2{font-family:var(--font-head); font-weight:700; font-size:1.15rem; margin-bottom:28px;}

  .cap-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:520px){ .cap-grid{grid-template-columns:1fr 1fr;} }
  .cap-card{border:1px solid var(--line); border-radius:14px; padding:22px 18px; transition:box-shadow .2s ease, transform .2s ease;}
  .cap-card:hover{box-shadow:0 10px 26px rgba(11,42,74,0.08); transform:translateY(-3px);}
  .cap-card .icon-sq{width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:16px;}
  .cap-card.blue .icon-sq{background:#EAF0FE; color:var(--blue);}
  .cap-card.purple .icon-sq{background:#F1EDFF; color:var(--purple);}
  .cap-card.pink .icon-sq{background:#FBE9F4; color:var(--pink);}
  .cap-card h4{font-family:var(--font-head); font-weight:700; font-size:0.96rem; margin-bottom:6px;}
  .cap-card p{color:var(--muted); font-size:0.82rem; margin-bottom:14px;}
  .cap-card .arrow{font-size:0.82rem; font-weight:600; color:var(--blue); display:inline-flex; align-items:center; gap:4px;}

  .process-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:22px;}
  @media (max-width:600px){ .process-steps{grid-template-columns:repeat(2,1fr); gap:20px;} }
  .p-step{display:flex; flex-direction:column; align-items:flex-start; gap:10px; position:relative;}
  .p-num{
    width:40px; height:40px; border-radius:50%; border:1.5px solid var(--navy); color:var(--navy);
    display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:0.85rem;
  }
  .p-step h4{font-family:var(--font-head); font-weight:700; font-size:0.95rem; margin-top:4px;}
  .p-step p{color:var(--muted); font-size:0.82rem;}
  .p-connector{position:absolute; top:20px; left:calc(100% - 6px); width:calc(100% - 28px); height:1px; background:var(--line);}
  @media (max-width:600px){ .p-connector{display:none;} }

  /* ---------- CASE STUDIES ---------- */
  section.cases{padding:88px 0; background:var(--bg-soft);}
  .cases-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; flex-wrap:wrap; gap:16px;}
  .cases-head h2{font-family:var(--font-head); font-weight:800; font-size:clamp(1.4rem,2.4vw,1.8rem); letter-spacing:-0.01em;}
  .cases-head a{font-size:0.9rem; font-weight:600; color:var(--blue); display:inline-flex; align-items:center; gap:6px;}
  .case-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  @media (max-width:900px){ .case-grid{grid-template-columns:1fr;} }
  .case-card{background:#fff; border-radius:16px; overflow:hidden; border:1px solid var(--line); transition:box-shadow .2s ease, transform .2s ease;}
  .case-card:hover{box-shadow:0 14px 34px rgba(11,42,74,0.1); transform:translateY(-4px);}
  .case-thumb{height:170px; position:relative; overflow:hidden;}
  .case-thumb svg{width:100%; height:100%;}
  .case-body{padding:22px;}
  .case-tag{font-family:var(--font-body); font-size:0.72rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:10px; display:block;}
  .case-tag.blue{color:var(--blue);} .case-tag.purple{color:var(--purple);} .case-tag.pink{color:var(--pink);}
  .case-body h3{font-family:var(--font-head); font-weight:700; font-size:1.08rem; margin-bottom:8px;}
  .case-body p{color:var(--muted); font-size:0.88rem; margin-bottom:16px;}
  .case-body .read{font-size:0.86rem; font-weight:600; color:var(--navy); display:inline-flex; align-items:center; gap:6px;}

  /* ---------- CTA BANNER ---------- */
  section.cta{padding:0 0 88px;}
  .cta-banner{
    background:linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 100%); border-radius:18px; padding:36px 44px;
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; position:relative; overflow:hidden;
  }
  .cta-left{display:flex; align-items:center; gap:20px;}
  .cta-icon{width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,0.12); display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0;}
  .cta-left h3{font-family:var(--font-head); font-weight:700; font-size:1.2rem; color:#fff; margin-bottom:4px;}
  .cta-left p{color:#C6D2E4; font-size:0.9rem;}

  /* ---------- FOOTER ---------- */
  footer.foot{border-top:1px solid var(--line); padding:64px 0 32px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:32px; margin-bottom:48px;}
  @media (max-width:900px){ .foot-grid{grid-template-columns:1fr 1fr; gap:36px;} }
  .foot-brand .logo{margin-bottom:16px; display:block;}
  .foot-brand address{font-style:normal; color:var(--muted); font-size:0.88rem; line-height:1.7; margin-bottom:14px;}
  .foot-brand .ids{color:var(--muted); font-size:0.82rem; line-height:1.8;}
  .foot-col h5{font-family:var(--font-head); font-weight:700; font-size:0.88rem; margin-bottom:16px;}
  .foot-col ul li{margin-bottom:10px;}
  .foot-col a{color:var(--muted); font-size:0.88rem;}
  .foot-col a:hover{color:var(--navy);}
  .social{display:flex; gap:10px; margin-top:14px;}
  .social a{width:32px; height:32px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--muted);}
  .social a:hover{border-color:var(--navy); color:var(--navy);}
  .foot-bottom{border-top:1px solid var(--line); padding-top:24px; font-size:0.82rem; color:var(--muted);}

  .reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

/* High-quality photographic assets */
.hero-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.case-thumb img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}


/* Final image treatment: assets are pre-cropped to the block proportions.
   Keep the intended composition and avoid browser-side zoom/cropping. */
.hero-visual{
  overflow:hidden;
}
.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.case-thumb{
  overflow:hidden;
}
.case-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}


/* Contact form */
.contact-form-section{
  padding:72px 24px;
  background:#f4f7fb;
}
.contact-form-wrap{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:72px;
  align-items:start;
}
.contact-kicker{
  color:#1559d6;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  margin-bottom:14px;
}
.contact-form-intro h2{
  margin:0 0 18px;
  color:#0b1d3a;
  font-size:42px;
  line-height:1.08;
  letter-spacing:-.04em;
}
.contact-form-intro p{
  max-width:440px;
  margin:0;
  color:#607089;
  font-size:15px;
  line-height:1.7;
}
.contact-form{
  padding:32px;
  background:#fff;
  border:1px solid #e0e6ee;
  border-radius:16px;
  box-shadow:0 16px 42px rgba(11,29,58,.06);
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.contact-form label{
  display:block;
  margin-bottom:18px;
}
.contact-form label>span{
  display:block;
  margin-bottom:8px;
  color:#0b1d3a;
  font-size:12px;
  font-weight:700;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  border:1px solid #d7e0ea;
  border-radius:8px;
  background:#fff;
  padding:13px 14px;
  color:#0b1d3a;
  font:inherit;
  font-size:14px;
  outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.contact-form textarea{resize:vertical;min-height:140px}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  border-color:#1559d6;
  box-shadow:0 0 0 3px rgba(21,89,214,.10);
}
.contact-form .consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.contact-form .consent input{
  width:17px;
  height:17px;
  margin-top:1px;
  flex:0 0 auto;
}
.contact-form .consent span{
  margin:0;
  color:#607089;
  font-size:11px;
  line-height:1.5;
  font-weight:400;
}
.contact-submit{
  border:0;
  border-radius:8px;
  padding:14px 20px;
  background:#071b45;
  color:#fff;
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.contact-submit span{margin-left:18px}
@media(max-width:800px){
  .contact-form-wrap{grid-template-columns:1fr;gap:30px}
  .contact-form-intro h2{font-size:34px}
  .form-row{grid-template-columns:1fr;gap:0}
  .contact-form{padding:22px}
}

.form-status{
  display:none;
  margin:0 0 16px;
  padding:12px 14px;
  border:1px solid #cbd8e8;
  border-radius:8px;
  background:#f4f8fd;
  color:#334a68;
  font-size:12px;
  line-height:1.5;
}
.form-status.visible{display:block}

.form-status.success{
  display:block;
  border-color:#b9dec6;
  background:#f0faf3;
  color:#176331;
}
.form-status.error{
  display:block;
  border-color:#e4c3c3;
  background:#fff5f5;
  color:#8a2e2e;
}
.contact-submit:disabled{
  opacity:.65;
  cursor:wait;
}


/* Harmonized Capabilities + Process section */
.harmonized-block{
  background:#fff;
}

.harmonized-block .section-inner,
.harmonized-block .capabilities-layout,
.harmonized-block .capabilities-process-grid,
.harmonized-block .capabilities-wrap{
  max-width:1180px;
  margin:0 auto;
}

/* Main two-column balance */
.harmonized-block .capabilities-content,
.harmonized-block .capabilities-process,
.harmonized-block .capabilities-grid-wrap{
  align-items:stretch;
}

/* Common section spacing */
.harmonized-block{
  padding-top:54px !important;
  padding-bottom:54px !important;
}

.harmonized-block h2,
.harmonized-block h3,
.harmonized-block h4{
  letter-spacing:-.02em;
}

/* Detect likely left/right columns and normalize */
.harmonized-block .capabilities-left,
.harmonized-block .capabilities-panel,
.harmonized-block .capabilities-column,
.harmonized-block .process-panel,
.harmonized-block .process-column,
.harmonized-block .challenge-panel{
  min-width:0;
}

/* Cards: wider, lower, more consistent */
.harmonized-block .capability-card,
.harmonized-block .cap-card{
  min-height:0 !important;
  height:100%;
  border:1px solid #dfe6ee !important;
  border-radius:14px !important;
  padding:20px 18px 18px !important;
  background:#fff !important;
  box-shadow:0 7px 20px rgba(9,27,56,.035);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.harmonized-block .capability-card:hover,
.harmonized-block .cap-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(9,27,56,.075);
  border-color:#cbd8e8 !important;
}

.harmonized-block .capability-card h3,
.harmonized-block .cap-card h3{
  font-size:15px !important;
  line-height:1.25 !important;
  margin:10px 0 7px !important;
}

.harmonized-block .capability-card p,
.harmonized-block .cap-card p{
  font-size:12px !important;
  line-height:1.5 !important;
  color:#66758b !important;
  margin:0 !important;
}

.harmonized-block .capability-card .icon,
.harmonized-block .cap-card .icon,
.harmonized-block .cap-icon,
.harmonized-block .service-icon{
  width:40px !important;
  height:40px !important;
  min-width:40px;
  border-radius:10px !important;
  display:grid !important;
  place-items:center !important;
}

.harmonized-block .capability-card > a,
.harmonized-block .cap-card > a{
  margin-top:14px !important;
  display:inline-flex !important;
  color:#1559d6 !important;
  font-weight:700 !important;
  text-decoration:none !important;
}

/* likely capability grids */
.harmonized-block .capability-grid,
.harmonized-block .capabilities-grid,
.harmonized-block .cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}

/* Process side becomes a cohesive panel */
.harmonized-block .process-panel,
.harmonized-block .process-column,
.harmonized-block .challenge-panel{
  background:#f7f9fc !important;
  border:1px solid #e2e8f0 !important;
  border-radius:16px !important;
  padding:26px 28px !important;
  height:100%;
}

.harmonized-block .process-panel > h3,
.harmonized-block .process-column > h3,
.harmonized-block .challenge-panel > h3{
  font-size:18px !important;
  margin:0 0 26px !important;
}

/* Step row */
.harmonized-block .process-steps,
.harmonized-block .steps,
.harmonized-block .process-flow{
  position:relative;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:start !important;
}

.harmonized-block .process-steps::before,
.harmonized-block .steps::before,
.harmonized-block .process-flow::before{
  content:"";
  position:absolute;
  left:7%;
  right:7%;
  top:21px;
  height:1px;
  background:#cfdae7;
  z-index:0;
}

.harmonized-block .process-step,
.harmonized-block .step,
.harmonized-block .process-flow article{
  position:relative;
  z-index:1;
}

.harmonized-block .step-number,
.harmonized-block .step-num,
.harmonized-block .process-step > span:first-child{
  width:44px !important;
  height:44px !important;
  border:1px solid #9fb1c7 !important;
  border-radius:50% !important;
  background:#fff !important;
  display:grid !important;
  place-items:center !important;
  font-size:12px !important;
  font-weight:700 !important;
  margin:0 0 18px !important;
  color:#0b1d3a !important;
}

.harmonized-block .process-step h4,
.harmonized-block .step h3,
.harmonized-block .process-flow h3{
  font-size:14px !important;
  margin:0 0 7px !important;
}

.harmonized-block .process-step p,
.harmonized-block .step p,
.harmonized-block .process-flow p{
  font-size:11px !important;
  line-height:1.5 !important;
  color:#66758b !important;
  margin:0 !important;
}

/* Hide redundant arrow glyphs between numbered steps if present */
.harmonized-block .flow-arrow,
.harmonized-block .process-arrow{
  display:none !important;
}

/* Overall left/right split */
.harmonized-block .split-grid,
.harmonized-block .capabilities-layout,
.harmonized-block .capabilities-process-grid{
  display:grid !important;
  grid-template-columns:1.08fr .92fr !important;
  gap:28px !important;
  align-items:stretch !important;
}

/* Ensure headings line up visually */
.harmonized-block .section-label,
.harmonized-block .eyebrow{
  margin-bottom:18px !important;
}

/* Tablet/mobile */
@media(max-width:980px){
  .harmonized-block .split-grid,
  .harmonized-block .capabilities-layout,
  .harmonized-block .capabilities-process-grid{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:760px){
  .harmonized-block{
    padding-top:40px !important;
    padding-bottom:40px !important;
  }
  .harmonized-block .capability-grid,
  .harmonized-block .capabilities-grid,
  .harmonized-block .cards{
    grid-template-columns:1fr 1fr !important;
  }
  .harmonized-block .process-steps,
  .harmonized-block .steps,
  .harmonized-block .process-flow{
    grid-template-columns:1fr 1fr !important;
  }
  .harmonized-block .process-steps::before,
  .harmonized-block .steps::before,
  .harmonized-block .process-flow::before{
    display:none;
  }
}
@media(max-width:520px){
  .harmonized-block .capability-grid,
  .harmonized-block .capabilities-grid,
  .harmonized-block .cards,
  .harmonized-block .process-steps,
  .harmonized-block .steps,
  .harmonized-block .process-flow{
    grid-template-columns:1fr !important;
  }
}


/* Final hero correction: white content area + full uncropped panoramic image */
.hero,
.hero-section,
.hero-card,
.hero-container{
  background:#fff !important;
}

/* Hero wrapper should be two independent columns with no visual overlap */
.hero-inner,
.hero-content-wrap,
.hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items:stretch !important;
  gap:0 !important;
  background:#fff !important;
}

/* Left content panel */
.hero-copy,
.hero-content,
.hero-text{
  position:relative !important;
  z-index:2 !important;
  background:#fff !important;
  color:#0b1d3a !important;
  padding:58px 52px !important;
  border-radius:16px 0 0 16px !important;
}

.hero-copy h1,
.hero-content h1,
.hero-text h1{
  color:#0b1d3a !important;
}

.hero-copy p,
.hero-content p,
.hero-text p{
  color:#607089 !important;
}

/* Keep CTA as the strong brand accent */
.hero-copy .btn,
.hero-copy .button,
.hero-content .btn,
.hero-content .button,
.hero-text .btn,
.hero-text .button{
  background:#071b45 !important;
  color:#fff !important;
}

/* Right image panel */
.hero-visual,
.hero-media,
.hero-image{
  position:relative !important;
  z-index:1 !important;
  overflow:hidden !important;
  background:#fff !important;
  border-radius:0 16px 16px 0 !important;
  min-height:0 !important;
  height:auto !important;
}

/* Remove all overlays/gradients/colored layers over the image */
.hero-visual::before,
.hero-visual::after,
.hero-media::before,
.hero-media::after,
.hero-image::before,
.hero-image::after,
.hero-overlay,
.hero-fade{
  display:none !important;
  content:none !important;
  background:none !important;
}

/* Show the full photo. No cover crop. */
.hero-visual img,
.hero-media img,
.hero-image img{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  background:#fff !important;
}

/* If the parent has rounded card clipping, keep the overall shape */
.hero-card,
.hero-container{
  overflow:hidden !important;
  border-radius:16px !important;
  border:1px solid #e2e8f0 !important;
  box-shadow:0 10px 30px rgba(11,29,58,.04) !important;
}

/* Prevent old dark background from bleeding under either column */
.hero-copy::before,
.hero-copy::after,
.hero-content::before,
.hero-content::after{
  display:none !important;
  content:none !important;
}

@media(max-width:900px){
  .hero-inner,
  .hero-content-wrap,
  .hero-grid{
    grid-template-columns:1fr !important;
  }

  .hero-copy,
  .hero-content,
  .hero-text{
    border-radius:16px 16px 0 0 !important;
    padding:42px 28px !important;
  }

  .hero-visual,
  .hero-media,
  .hero-image{
    border-radius:0 0 16px 16px !important;
  }

  .hero-visual img,
  .hero-media img,
  .hero-image img{
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
  }
}


/* Final full-width capabilities section */
.capabilities-full{padding-top:56px!important;padding-bottom:58px!important;}
.capabilities-full .reveal{width:100%;}
.capabilities-full .cap-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;}
.capabilities-full .cap-card{min-height:235px!important;padding:24px 22px!important;border-radius:14px!important;}
.capabilities-full .cap-card h4{font-size:1.05rem!important;margin-top:18px!important;}
.capabilities-full .cap-card p{font-size:.92rem!important;line-height:1.55!important;max-width:300px;}
.capabilities-full .icon-sq{width:48px!important;height:48px!important;border-radius:12px!important;}
.capabilities-full .arrow{display:block;margin-top:28px;color:#1559d6;font-size:1.05rem;}

/* Final case-study photography and CTAs */
.case-thumb{height:205px!important;background:#eef3f8!important;}
.case-thumb img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;display:block!important;}
.discuss-project{display:inline-flex;align-items:center;gap:10px;margin-top:6px;color:#1559d6!important;font-size:.88rem;font-weight:700;text-decoration:none;cursor:pointer;}
.discuss-project:hover{color:#0b2a4a!important;}

@media(max-width:900px){
  .capabilities-full .cap-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:560px){
  .capabilities-full .cap-grid{grid-template-columns:1fr!important;}
  .capabilities-full .cap-card{min-height:0!important;}
}

/* Hero — final layout matching the approved second reference */
section.hero.wrap{
  padding-top:22px !important;
}
section.hero .hero-inner{
  display:grid !important;
  grid-template-columns:38% 62% !important;
  min-height:390px !important;
  overflow:hidden !important;
  border-radius:12px !important;
  background:#0B2A4A !important;
  gap:0 !important;
}
section.hero .hero-copy{
  background:linear-gradient(145deg,#071b3d 0%,#0b2a4a 72%,#10375d 100%) !important;
  color:#fff !important;
  padding:52px 54px !important;
  border-radius:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
section.hero .hero-title{
  color:#fff !important;
  font-size:clamp(2rem,3vw,2.75rem) !important;
  line-height:1.12 !important;
  max-width:12ch !important;
}
section.hero .hero-sub{
  color:#fff !important;
  opacity:.92 !important;
  margin-top:18px !important;
  max-width:38ch !important;
  font-size:.96rem !important;
  line-height:1.55 !important;
}
section.hero .hero-actions{margin-top:24px !important;}
section.hero .hero-copy .btn,
section.hero .hero-copy .btn-primary{
  background:#fff !important;
  color:#0B2A4A !important;
  border-radius:7px !important;
  padding:12px 18px !important;
  box-shadow:none !important;
}
section.hero .hero-visual{
  height:390px !important;
  min-height:390px !important;
  border-radius:0 !important;
  background:#dce8f3 !important;
  overflow:hidden !important;
}
section.hero .hero-visual img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  border-radius:0 !important;
}
@media(max-width:900px){
  section.hero .hero-inner{grid-template-columns:1fr !important;}
  section.hero .hero-copy{padding:42px 30px !important;}
  section.hero .hero-visual{height:auto !important;min-height:0 !important;}
  section.hero .hero-visual img{height:auto !important;object-fit:contain !important;}
}


/* Separate Lead Generation capability */
.capability-grid,
.capabilities-grid,
.cards{
  align-items:stretch;
}
@media(min-width:981px){
  .capability-grid,
  .capabilities-grid,
  .cards{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(max-width:980px) and (min-width:641px){
  .capability-grid,
  .capabilities-grid,
  .cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:640px){
  .capability-grid,
  .capabilities-grid,
  .cards{
    grid-template-columns:1fr;
  }
}

/* Final capabilities layout */
@media(min-width:981px){
  .capability-grid,
  .capabilities-grid,
  .cards{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
