/* Focused public-home refinement. Homepage sections are scoped to .home-page. */
.site-header{height:96px}
.site-header.scrolled{height:80px;border-color:#e8ecf1;box-shadow:0 8px 24px rgba(16,24,40,.045)}
.brand{gap:13px}
.brand svg{width:48px;height:48px}
.brand>img{width:58px;height:58px;object-fit:contain;flex:none}
.brand b{font-size:1.45rem;letter-spacing:.01em}
.brand small{font-size:.66rem;line-height:1.3;color:#525d6d}
.primary-nav{gap:23px}
.primary-nav>ul{gap:29px}
.primary-nav>ul>li>a{font-size:.91rem;font-weight:500}
.primary-nav>ul>li.active:after{left:2px;right:2px;height:2px}
.drop-toggle{display:inline-grid;width:18px;height:18px;margin-left:5px;padding:0;place-items:center;color:#111}
.drop-toggle svg{width:10px;height:7px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .24s ease}
.has-dropdown:hover>.drop-toggle svg,.has-dropdown:focus-within>.drop-toggle svg,.has-dropdown.mobile-open>.drop-toggle svg{transform:rotate(180deg)}
.dropdown{top:calc(100% - 8px);padding:13px!important;border-radius:16px;box-shadow:0 18px 45px rgba(16,24,40,.1)}
.dropdown a{padding:11px 13px;font-size:.88rem}
.search-toggle{width:42px;height:42px;transition:background-color .25s,color .25s}
.search-toggle:hover{background:var(--primary-light);color:var(--primary-dark)}
.primary-nav a:focus-visible,.drop-toggle:focus-visible,.search-toggle:focus-visible,.nav-toggle:focus-visible{outline:2px solid rgba(65,137,221,.55);outline-offset:2px;border-radius:8px}

.home-page .eyebrow{font-size:.75rem;line-height:1.4;letter-spacing:.15em;margin-bottom:22px}
.home-page .hero{padding:68px 0 98px;background:#f3f8fe}
.home-page .hero-grid{grid-template-columns:minmax(0,.96fr) minmax(520px,1.04fr);gap:64px;align-items:center}
.home-page .hero-copy h1{max-width:680px;margin:0 0 30px;font-size:clamp(3.4rem,5.15vw,5.35rem);line-height:1.035;letter-spacing:-.047em;color:var(--black)}
.home-page .hero-copy h1::first-line{color:inherit}
.home-page .hero-accent{color:var(--primary)}
.home-page .hero-text{max-width:610px;margin:0 0 38px;color:#475467;font-size:1.1rem;line-height:1.72}
.home-page .button{min-height:54px;padding:15px 24px;gap:34px;border-radius:11px;font-size:.97rem;box-shadow:0 8px 18px rgba(65,137,221,.16);transition:background-color .28s,transform .28s,box-shadow .28s}
.home-page .button:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(36,111,199,.2)}
.home-page .hero-image:before{left:-22px;bottom:-22px;width:118px;height:118px;border-radius:22px}
.home-page .hero-image img{aspect-ratio:1.04;object-position:center center;border-radius:30px;box-shadow:0 20px 54px rgba(16,24,40,.11)}

.home-page .section{padding:100px 0}
.home-page .home-about{padding-top:104px;padding-bottom:104px}
.home-page .about-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:72px;align-items:center}
.home-page .about-image{overflow:hidden;border-radius:26px;background:#e8f1fb}
.home-page .about-image img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center}
.home-page .about-copy h2{max-width:720px;margin:0 0 36px;font-size:clamp(1.5rem,2.1vw,2.15rem);font-weight:400;line-height:1.35;letter-spacing:-.025em}
.home-page .text-link{gap:11px;padding:3px 0 5px;border-bottom-color:#98a2b3;font-size:.94rem;transition:color .25s,border-color .25s}
.home-page .text-link:hover{color:var(--primary-dark);border-color:var(--primary)}

.home-page .section-heading{align-items:flex-end;gap:64px;margin-bottom:50px}
.home-page .section-heading>div{max-width:760px}
.home-page .section-heading h2,.home-page .section-heading>h2{font-size:clamp(2.2rem,3.45vw,3.25rem);line-height:1.14;letter-spacing:-.038em}
.home-page .section-heading>p{max-width:460px;color:#596579;font-size:1rem;line-height:1.75}

.home-page .services{padding-top:102px;padding-bottom:104px}
.home-page .card-grid{gap:18px}
.home-page .service-card{min-height:366px;padding:32px 30px 30px;border-radius:18px;border-color:#e3e8ef;box-shadow:0 8px 25px rgba(16,24,40,.035);transition:transform .32s,border-color .32s,box-shadow .32s}
.home-page .service-card:hover{transform:translateY(-6px);border-color:#cbdff6;box-shadow:0 16px 34px rgba(16,24,40,.075)}
.home-page .service-card .icon{width:52px;height:52px;margin-bottom:46px;border-radius:13px}
.home-page .service-card .icon svg{width:29px;height:29px}
.home-page .service-card h3{margin-bottom:13px;font-size:1.16rem;line-height:1.42;letter-spacing:-.012em}
.home-page .service-card p{color:#596579;font-size:.96rem;line-height:1.7}
.home-page .card-arrow{padding-top:26px;font-size:.88rem}
.home-page .service-card:hover .card-arrow b{display:inline-block;transform:translateX(4px)}
.home-page .card-arrow b{transition:transform .28s}

.home-page .progress-section{padding-top:96px;padding-bottom:88px}
.home-page .progress-section .section-heading{margin-bottom:54px}
.home-page .timeline:before{top:24px;background:#d7dde5}
.home-page .milestone{padding-right:58px}
.home-page .milestone-number{width:49px;height:49px;margin-bottom:32px;border:4px solid #fff;box-shadow:0 0 0 1px #111;font-size:.74rem;letter-spacing:.04em}
.home-page .milestone-date{font-size:.72rem!important;line-height:1.4!important;letter-spacing:.13em}
.home-page .milestone h3{margin:9px 0 11px;font-size:1.22rem;line-height:1.42;letter-spacing:-.012em}
.home-page .milestone>p:last-child{max-width:350px;color:#596579;font-size:.96rem;line-height:1.72}

.home-page .latest{padding-top:102px;padding-bottom:106px}
.home-page .latest .post-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:stretch}
.home-page .latest .post-card{display:flex;min-width:0;height:100%;flex-direction:column}
.home-page .latest .post-card-image{overflow:hidden;margin-bottom:22px;border-radius:18px;background:#e7f0fa;box-shadow:0 8px 24px rgba(16,24,40,.045)}
.home-page .latest .post-card-image img{width:100%;aspect-ratio:1.5;object-fit:cover;transition:transform .42s ease}
.home-page .latest .post-card:hover .post-card-image img{transform:scale(1.025)}
.home-page .latest .post-card .post-meta{margin:0 0 10px}
.home-page .latest .post-card h2{margin:0 0 12px;font-size:clamp(1.25rem,1.75vw,1.65rem);line-height:1.35;letter-spacing:-.022em}
.home-page .latest .post-card>p:not(.post-meta){margin:0 0 22px;color:#596579;font-size:.94rem;line-height:1.7}
.home-page .latest .post-card .text-link{align-self:flex-start;margin-top:auto;font-size:.83rem}
.home-page .news-feature-grid{grid-template-columns:minmax(0,1.34fr) minmax(400px,.84fr);gap:46px;align-items:stretch}
.home-page .news-feature,.home-page .news-small{transition:color .28s}
.home-page .news-image{margin-bottom:25px;border-radius:18px;background:#e7f0fa;box-shadow:0 8px 24px rgba(16,24,40,.045)}
.home-page .news-image img{aspect-ratio:1.58;transition:transform .42s ease}
.home-page .news-image.is-placeholder img{object-fit:cover;filter:saturate(.92)}
.home-page .news-feature:hover img,.home-page .news-small:hover img{transform:scale(1.025)}
.home-page .news-feature:hover h3,.home-page .news-small:hover strong{color:var(--primary-dark)}
.home-page .post-meta{font-size:.72rem!important;letter-spacing:.1em}
.home-page .news-feature h3{max-width:740px;margin:12px 0 13px;font-size:clamp(1.75rem,2.4vw,2.3rem);line-height:1.25;letter-spacing:-.028em;transition:color .28s}
.home-page .news-feature .news-copy>p:last-child{max-width:720px;color:#596579;font-size:.96rem;line-height:1.75}
.home-page .news-small-list{display:grid;grid-template-rows:1fr 1fr;gap:27px}
.home-page .news-small{grid-template-columns:188px minmax(0,1fr);gap:22px;padding-bottom:27px}
.home-page .news-small-image{display:block;min-height:0;overflow:hidden;border-radius:14px;background:#e7f0fa;box-shadow:0 6px 18px rgba(16,24,40,.04)}
.home-page .news-small img{width:100%;height:100%;aspect-ratio:1.15;object-fit:cover;border-radius:0;transition:transform .42s ease}
.home-page .news-small.is-placeholder img{filter:saturate(.9)}
.home-page .news-small-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.home-page .news-small .post-meta{display:block;color:var(--primary-dark);font-weight:700;line-height:1.45;text-transform:uppercase}
.home-page .news-small .post-meta i{display:inline-block;width:4px;height:4px;margin:0 7px;border-radius:50%;background:#a6afbb;vertical-align:middle}
.home-page .news-small strong{display:block;margin:9px 0 8px;font-size:1.08rem;line-height:1.43;letter-spacing:-.012em;transition:color .28s}
.home-page .news-excerpt{display:-webkit-box;overflow:hidden;color:#667085;font-size:.88rem;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2}

.footer{padding-top:92px}
.footer-grid{gap:50px}
.footer h2{margin-bottom:24px;font-size:.76rem;letter-spacing:.11em}
.footer-grid>div>a{margin:11px 0;color:#b3bac4;font-size:.86rem;line-height:1.6;transition:color .25s}
.footer-grid>div>a:hover,.footer-bottom a:hover{color:var(--primary)}
.footer-about p{max-width:295px;color:#9ca5b2;font-size:.89rem;line-height:1.75}
.footer-brand{gap:13px;font-size:1.68rem!important;margin-bottom:26px!important}
.footer-brand svg{width:47px}
.footer-brand img{width:62px;height:62px;object-fit:contain;flex:none}
.socials{gap:9px;margin-top:22px}
.socials a{width:35px;height:35px;border-color:#3c4148;color:#c2c7cf;font-size:.7rem;transition:color .25s,border-color .25s,background-color .25s}
.socials a:hover{border-color:var(--primary);background:var(--primary);color:#fff!important}
.footer-bottom{margin-top:62px;padding:27px 0;color:#8c95a2;font-size:.76rem}

@media(max-width:1280px){
  .container{width:min(var(--container),calc(100% - 64px))}
  .primary-nav>ul{gap:23px}
  .home-page .hero-grid{grid-template-columns:minmax(0,1fr) minmax(470px,1fr);gap:48px}
  .home-page .hero-copy h1{font-size:clamp(3.25rem,5vw,4.35rem)}
  .home-page .service-card{padding-inline:27px}
}

@media(max-width:1120px){
  .brand small{display:none}
  .primary-nav{gap:15px}
  .primary-nav>ul{gap:18px}
  .home-page .hero-grid{grid-template-columns:1fr 1fr;gap:40px}
  .home-page .hero-copy h1{font-size:clamp(3rem,5vw,3.55rem)}
  .home-page .hero-text{font-size:1.02rem}
  .home-page .card-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .home-page .service-card{min-height:318px}
  .home-page .service-card .icon{margin-bottom:35px}
  .home-page .news-feature-grid{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:32px}
  .home-page .news-small{grid-template-columns:145px minmax(0,1fr);gap:17px}
  .home-page .news-excerpt{display:none}
  .footer-grid{grid-template-columns:1.35fr repeat(2,1fr)}
  .footer-grid>div:nth-child(4),.footer-grid>div:nth-child(5){margin-top:14px}
}

@media(max-width:820px){
  .container{width:min(var(--container),calc(100% - 40px))}
  .site-header,.site-header.scrolled{height:76px}
  .brand svg{width:43px;height:43px}
  .brand>img{width:48px;height:48px}
  .brand b{font-size:1.35rem}
  .primary-nav{inset:76px 0 0;padding:24px 20px 42px}
  .primary-nav>ul>li>a{font-size:1rem}
  .drop-toggle{width:42px;height:42px;margin-left:0;padding:0}
  .drop-toggle svg{width:11px;height:8px}
  .search-panel{top:76px}
  .home-page .hero{padding:56px 0 72px}
  .home-page .hero-grid{grid-template-columns:1fr;gap:48px}
  .home-page .hero-copy{max-width:690px}
  .home-page .hero-copy h1{max-width:680px;font-size:clamp(3rem,8.5vw,4rem)}
  .home-page .hero-text{max-width:650px;font-size:1.06rem}
  .home-page .hero-image img{aspect-ratio:1.32;border-radius:26px}
  .home-page .section{padding:78px 0}
  .home-page .home-about{padding-block:78px}
  .home-page .about-grid{grid-template-columns:1fr;gap:38px}
  .home-page .about-image img{aspect-ratio:16/10}
  .home-page .about-copy h2{max-width:720px}
  .home-page .section-heading{display:block;margin-bottom:40px}
  .home-page .section-heading>p,.home-page .section-heading>.text-link{margin-top:22px}
  .home-page .section-heading>p{max-width:640px}
  .home-page .progress-section{padding-bottom:62px}
  .home-page .timeline{grid-template-columns:1fr}
  .home-page .timeline:before{top:0;bottom:0;left:24px;right:auto;width:1px;height:auto}
  .home-page .milestone{padding:0 0 42px 78px}
  .home-page .milestone-number{position:absolute;left:0;margin:0}
  .home-page .milestone>p:last-child{max-width:580px}
  .home-page .news-feature-grid{grid-template-columns:1fr;gap:42px}
  .home-page .latest .post-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px}
  .home-page .news-small-list{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:20px}
  .home-page .news-small{grid-template-columns:1fr;padding:0 0 25px;gap:16px}
  .home-page .news-small img{aspect-ratio:1.6}
  .home-page .news-excerpt{display:-webkit-box}
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:42px 30px}
  .footer-about{grid-column:1/-1}
}

@media(max-width:560px){
  .container{width:calc(100% - 32px)}
  .home-page .eyebrow{margin-bottom:18px;font-size:.7rem}
  .home-page .hero{padding:45px 0 62px}
  .home-page .hero-grid{gap:44px}
  .home-page .hero-copy h1{margin-bottom:24px;font-size:clamp(2.55rem,11.35vw,3.2rem);line-height:1.04;letter-spacing:-.044em}
  .home-page .hero-text{margin-bottom:32px;font-size:1rem;line-height:1.72}
  .home-page .button{min-height:52px;padding:14px 21px;font-size:.93rem}
  .home-page .hero-image img{aspect-ratio:1.18;border-radius:22px}
  .home-page .hero-image:before{display:none}
  .home-page .section{padding:64px 0}
  .home-page .home-about{padding-block:65px}
  .home-page .about-grid{gap:30px}
  .home-page .about-image{border-radius:20px}
  .home-page .about-image img{aspect-ratio:4/3}
  .home-page .about-copy h2{margin-bottom:29px;font-size:clamp(1.5rem,6.2vw,1.75rem)}
  .home-page .section-heading{margin-bottom:34px}
  .home-page .section-heading h2,.home-page .section-heading>h2{font-size:2.15rem;line-height:1.18}
  .home-page .card-grid{grid-template-columns:1fr;gap:15px}
  .home-page .service-card{min-height:0;padding:28px 27px}
  .home-page .service-card .icon{margin-bottom:32px}
  .home-page .service-card h3{font-size:1.14rem}
  .home-page .progress-section{padding-top:65px;padding-bottom:48px}
  .home-page .progress-section .section-heading{margin-bottom:42px}
  .home-page .milestone{padding-left:70px;padding-bottom:38px}
  .home-page .milestone-number{width:45px;height:45px}
  .home-page .timeline:before{left:22px}
  .home-page .latest{padding-block:66px 70px}
  .home-page .news-feature-grid{gap:38px}
  .home-page .latest .post-grid{grid-template-columns:1fr;gap:34px}
  .home-page .news-image{border-radius:16px}
  .home-page .news-feature h3{font-size:1.62rem}
  .home-page .news-small-list{grid-template-columns:1fr;gap:25px}
  .home-page .news-small{grid-template-columns:118px minmax(0,1fr);gap:16px}
  .home-page .news-small img{aspect-ratio:1.15;height:100%}
  .home-page .news-small strong{font-size:1rem}
  .home-page .news-excerpt{display:none}
  .footer{padding-top:68px}
  .footer-grid{gap:38px 24px}
  .footer-grid>div:nth-child(4),.footer-grid>div:nth-child(5){margin-top:0}
  .footer-grid>div>a{font-size:.82rem}
  .footer-bottom{margin-top:48px}
}

@media(max-width:410px){
  .home-page .hero-copy h1{font-size:clamp(2.42rem,11.1vw,2.75rem)}
  .home-page .news-small{grid-template-columns:1fr;gap:14px}
  .home-page .news-small img{aspect-ratio:1.65}
  .home-page .news-excerpt{display:-webkit-box}
  .footer-grid{column-gap:20px}
}

@media(prefers-reduced-motion:reduce){
  .site-header,.drop-toggle svg,.search-toggle,.home-page .button,.home-page .service-card,.home-page .news-image img,.home-page .news-small img,.footer a{transition:none!important}
}
