/* Homepage hero: preserve the brand photograph and copy, improve focus and motion. */
.hero {
  isolation:isolate; position:relative; display:flex; align-items:center;
  min-height:740px; margin-top:90px; padding:72px 6% 76px;
  background:#f4f8fc; border-bottom:1px solid #dce6f0;
  overflow:hidden;
}
.hero-photo { position:absolute; z-index:-3; inset:0 0 0 auto; width:72%; overflow:hidden; }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:70% center; animation:hero-photo-enter 1.6s cubic-bezier(.2,.65,.3,1) both; }
.hero-photo-wash { position:absolute; z-index:-2; inset:0; pointer-events:none; background:linear-gradient(90deg,#f4f8fc 0%,#f4f8fcfa 30%,#f4f8fced 42%,#f4f8fc8c 58%,#f4f8fc0d 77%),linear-gradient(0deg,#f4f8fcaa,transparent 28%); }
.hero::after { content:""; position:absolute; z-index:-1; width:310px; height:310px; border:1px solid #ffffff50; border-radius:50%; right:-120px; top:90px; box-shadow:0 0 0 38px #ffffff15,0 0 0 76px #ffffff0a; pointer-events:none; animation:hero-ring-enter 1.8s ease-out both; }
.hero-content { width:65%; max-width:780px; }
.hero-title { font:600 clamp(44px,5vw,76px)/1.08 var(--sans); letter-spacing:-.052em; color:#152b49; margin-bottom:28px; animation:hero-copy-enter .8s .08s cubic-bezier(.2,.65,.3,1) backwards; }
.hero-title em { display:inline-block; margin-left:.08em; font-family:var(--serif); font-weight:400; font-style:italic; letter-spacing:-.04em; background:none; background-clip:initial; -webkit-text-fill-color:#2156c5; color:#2156c5; position:relative; }
.hero-title em::after { content:""; position:absolute; left:2%; bottom:-4px; width:96%; height:2px; background:linear-gradient(90deg,#2156c580,#56b5e440); transform-origin:left; animation:hero-underline 1s .65s ease-out backwards; }
.hero-sub { max-width:560px; font-size:17px; line-height:1.85; margin-bottom:30px; color:#455f7d; animation:hero-copy-enter .8s .2s ease-out backwards; }
.hero-actions { margin:0; gap:14px; animation:hero-copy-enter .8s .32s ease-out backwards; }
.hero-actions a { min-height:52px; padding:14px 25px; transition:transform .2s,box-shadow .2s,background .2s; }
.hero-actions .btn-glow { box-shadow:0 6px 20px #2156c523; }
.hero-actions .btn-ghost { background:#ffffffc9; }
.hero-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-top:42px; padding-top:24px; border-top:1px solid #bdcfe2; animation:hero-copy-enter .8s .44s ease-out backwards; }
.stat-num { font-size:clamp(26px,3vw,40px); line-height:1.2; font-style:normal; letter-spacing:-.04em; }
.stat-label { font-size:10px; letter-spacing:.06em; color:#4d647e; margin-top:8px; }
.scroll-hint { display:none; }
@keyframes hero-copy-enter { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes hero-photo-enter { from { opacity:.55; transform:scale(1.045); } to { opacity:1; transform:scale(1); } }
@keyframes hero-ring-enter { from { opacity:0; transform:scale(.85); } to { opacity:1; transform:scale(1); } }
@keyframes hero-underline { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(min-width:1600px) { .hero { padding-left:max(6%,calc((100vw - 1440px)/2)); padding-right:max(6%,calc((100vw - 1440px)/2)); min-height:780px; } }
@media(max-width:1000px) {
 .hero { min-height:660px; padding:65px 6%; }
 .hero-content { width:76%; }
 .hero-photo { width:78%; }
 .hero-photo-wash { background:linear-gradient(90deg,#f4f8fc 0%,#f4f8fcf0 42%,#f4f8fc80 75%,#f4f8fc33); }
 .hero-title { font-size:clamp(44px,6.2vw,65px); }
}
@media(max-width:650px) {
 .hero { min-height:0; margin-top:80px; padding:240px 6% 42px; }
 .hero-photo { top:0; bottom:auto; width:100%; height:300px; }
 .hero-photo img { object-position:75% 35%; }
 .hero-photo-wash { background:linear-gradient(0deg,#f4f8fc 0%,#f4f8fc 60%,#f4f8fc00 93%); }
 .hero::after { display:none; }
 .hero-content { width:100%; max-width:none; }
 .hero-title { font-size:clamp(38px,8.6vw,54px); line-height:1.12; letter-spacing:-.045em; margin-bottom:22px; }
 .hero-sub { font-size:15px; margin-bottom:24px; }
 .hero-actions { gap:10px; }
 .hero-actions a { padding:13px 18px; font-size:13px; }
 .hero-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:30px; }
 .stat-num { font-size:32px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero *, .hero::after { animation:none !important; transition:none !important; }
}
@media(max-width:650px) {
 .hero-photo-wash { background:linear-gradient(to bottom,transparent 0px,#f4f8fc0d 140px,#f4f8fcc9 230px,#f4f8fc 300px); }
}

/* One heading system across the homepage, including Supporting Capabilities. */
:root { --home-heading-color:#152b49; --home-heading-accent:#2156c5; --home-section-heading-size:clamp(30px,3.5vw,50px); }
.hero-title,
h2.section-title,
.capabilities-header h2 {
  font-family:var(--sans);
  font-style:normal;
  font-weight:600;
  letter-spacing:-.04em;
  line-height:1.15;
  color:var(--home-heading-color);
  text-transform:none;
  text-wrap:balance;
}
h2.section-title,
.capabilities-header h2 { font-size:var(--home-section-heading-size); }
.hero-title em,
h2.section-title em,
.capabilities-header h2 span {
  font-family:inherit;
  font-size:inherit;
  font-style:normal;
  font-weight:inherit;
  letter-spacing:inherit;
  line-height:inherit;
  color:var(--home-heading-accent);
  -webkit-text-fill-color:var(--home-heading-accent);
  background:none;
}
.hero-title em { display:inline; margin-left:0; }
.hero-title em::after { display:none; }
