/* Content remains visible if JavaScript is unavailable. Motion adds no layout shifts. */
.home-hero{overflow:hidden}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .insight-card img { transition: filter .45s ease; }
  .insight-card:hover img { filter: brightness(1.08); }
  .services-panel { transition: border-color .4s ease, box-shadow .4s ease; }
  .services-panel:hover { border-color: #c6a66e; box-shadow: 0 12px 32px #00000024; }
  .client-card { transition: border-color .35s ease, box-shadow .35s ease; }
  .client-card:hover { border-color: #a78a52; box-shadow: 0 6px 18px #282c2410; }
}
@media print {
  main * { animation: none !important; transition: none !important; }
}
/* Image-led page titles share one restrained motion language. */
.inner-hero-animated{position:relative;isolation:isolate;overflow:hidden}
.inner-hero-animated>.container{position:relative;z-index:1}
.inner-hero-animated .banner-visual{position:absolute;inset:0;z-index:-2;pointer-events:none}
.inner-hero-animated .banner-visual img{width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.45)}
.inner-hero-animated:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#080c0bea 0%,#080c0bd9 55%,#080c0bbd 100%);pointer-events:none}
.inner-hero-animated .banner-intro{color:#e3e0d8}
.banner-accent{display:block;width:74px;height:2px;margin-top:38px;background:#c4a56c;transform-origin:left}
@media(prefers-reduced-motion:no-preference){
 .inner-hero-animated .banner-visual{animation:hsnco-banner-drift 18s ease-in-out infinite alternate}
 .banner-accent{animation:hsnco-banner-line 1.6s cubic-bezier(.2,.7,.2,1) both}
}
@keyframes hsnco-banner-drift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-.6%,-.4%,0)}}
@keyframes hsnco-banner-line{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.inner-hero-animated .banner-visual,.banner-accent{animation:none!important}}
/* Homepage: a visible, ongoing crossfade rather than a one-off intro. */
.hero-visual{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-visual .hero-slide{opacity:0;object-position:center}
.hero-visual .hero-slide:first-child{opacity:1}
@media(prefers-reduced-motion:no-preference){
 .hero-visual{animation:hsnco-home-drift 18s ease-in-out infinite alternate}
 .hero-visual .hero-slide{animation:hsnco-home-crossfade 18s linear infinite}
 .hero-visual .hero-slide:nth-child(2){animation-delay:-13.5s}
 .hero-visual .hero-slide:nth-child(3){animation-delay:-9s}
 .hero-visual .hero-slide:nth-child(4){animation-delay:-4.5s}
}
@keyframes hsnco-home-crossfade{0%,19%{opacity:1}25%,94%{opacity:0}100%{opacity:1}}
@keyframes hsnco-home-drift{from{transform:scale(1.01)}to{transform:scale(1.09)}}
@media(prefers-reduced-motion:reduce){.hero-visual,.hero-visual .hero-slide{animation:none!important}.hero-visual .hero-slide{opacity:0}.hero-visual .hero-slide:first-child{opacity:1}}