/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .will-anim, .is-inview { transition: none !important; animation: none !important; }
}

/* ===== Base reveal presets ===== */
.reveal-up      { opacity: 0; transform: translateY(24px); will-change: transform, opacity; }
.reveal-fade    { opacity: 0; will-change: opacity; }
.reveal-scale   { opacity: 0; transform: scale(.98); will-change: transform, opacity; }
.reveal-clipimg { opacity: 0; transform: translateY(8px); clip-path: inset(0 0 12% 0 round 10px); will-change: clip-path, transform, opacity; }
.reveal-stagger > * { opacity: 0; transform: translateY(14px); will-change: transform, opacity; }

/* Active state */
.is-inview.reveal-up,
.is-inview.reveal-fade,
.is-inview.reveal-scale,
.is-inview.reveal-clipimg,
.is-inview.reveal-stagger > * {
  opacity: 1; transform: none; transition: transform .7s ease, opacity .7s ease;
}
.is-inview.reveal-scale { transition-duration: .9s; }
.is-inview.reveal-clipimg { transition: clip-path 1.1s ease, transform .7s ease, opacity .7s ease; clip-path: inset(0 0 0 0 round 10px); }
.is-inview.reveal-stagger > * { transition-delay: calc(var(--stagger, .08s) * var(--i, 0)); }

/* ===== Specific site elements ===== */

/* Header */
.header_wide.Fixed { will-change: transform, background; }
.header_wide.Fixed.is-scrolled { transform: translateY(0); backdrop-filter: saturate(140%) blur(6px); }
.header_wide .nav_logo img { transition: transform .25s ease; }
.header_wide .nav_logo a:hover img { transform: scale(1.03); }

/* Nav underline */
.main_menu li a { position: relative; text-decoration: none; }

/* Banner / hero */
.banner { overflow: clip; position: relative; }
.banner .bannerContent h1 { line-height: 1.1; }
.banner .bannerBg img {
  transition: transform .15s linear;
  will-change: transform;
}
.bannerBg {overflow: hidden;}
.banner .stamp-image-container { transform-origin: 50% 50%; will-change: transform, opacity; }
.banner .stamp-image-container img { display:block; }

/* Sections */
.section .title_row .half h2,
.section .title_row .half .h1 { will-change: transform, opacity; }
.section .bottom_half { will-change: transform, opacity; }
.section .logo_container img { will-change: transform, opacity; }

/* Side image blocks */
.image_full_half_container { position: relative; overflow: clip; }
.image_full_half { background-size: cover; background-position: center; }
.image_full_half_inner img { display:block; width:100%; height:auto; will-change: transform, opacity; }

/* Buttons */
a.button { transition: transform .2s ease; display:inline-flex }
a.button:hover { transform: translateY(-2px); }

/* Footer subtle reveal */
.footer_wide { will-change: transform, opacity; }

/* Mobile menu trigger small tap feedback */
.menu_trigger { transition: transform .15s ease; }
.menu_trigger:active { transform: scale(.96); }



/* Make the inner <img> do the work, not background-image */
.image_full_half { 
  background: none !important;   /* ignore any inline background-image */
  
  overflow: hidden; 
}

.image_full_half_inner { width: 100%; height: 100%; overflow: hidden; position: relative; }

.half:not(.text_with_small_image_image) .image_full_half_inner img {opacity: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;             /* always fills the box */
  /* transform: scale(var(--zoom-start, 1.18)); 
  transition: transform .18s linear;          */
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .image_full_half_inner img { transition: none; transform: none; }
}