:root {
  --twz-navy: #0b1b34;
  --twz-gold: #d89b27;
}

html { scroll-behavior: smooth; }

body { overflow-x: hidden; }

#siteHeader {
  background: rgba(255, 255, 255, 0.97) !important;
  border-color: rgba(11, 27, 52, 0.08) !important;
  box-shadow: 0 1px 0 rgba(11, 27, 52, 0.04);
}

#siteHeader > div:first-child {
  min-height: 76px;
  padding-top: 0.8rem !important;
  padding-bottom: 0.8rem !important;
}

#siteHeader img { height: 44px !important; }

#siteHeader nav a:not([class*="bg-navy"]) {
  position: relative;
  padding-block: 0.65rem;
}

#siteHeader nav a:not([class*="bg-navy"])::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  content: "";
  background: var(--twz-gold);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
}

#siteHeader nav a:hover::after,
#siteHeader nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

#siteHeader nav a[aria-current="page"] { color: var(--twz-navy); }

.min-h-\[760px\] { min-height: 650px !important; }

main > section { scroll-margin-top: 78px; }

main section.py-20,
main section.lg\:py-24 { padding-block: 4.75rem !important; }

main h1,
main h2 { text-wrap: balance; }

main p { text-wrap: pretty; }

[class*="shadow-card"],
[class*="shadow-soft"] {
  transition: transform 280ms ease, box-shadow 280ms ease, border-color 280ms ease;
}

main [class*="shadow-card"]:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(11, 27, 52, 0.12);
}

main img { transition: transform 600ms cubic-bezier(.2,.7,.2,1); }

main [class*="overflow-hidden"]:hover > img,
main [class*="overflow-hidden"]:hover picture img { transform: scale(1.025); }

footer > div:first-child { padding-block: 2.5rem !important; }

footer a:hover { text-decoration: underline; text-underline-offset: 4px; }

.twz-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 650ms ease, transform 650ms ease;
}

.twz-reveal.is-visible { opacity: 1; transform: none; }

@media (min-width: 768px) and (max-width: 1099px) {
  #siteHeader nav { display: none !important; }
  #menuBtn { display: inline-flex !important; align-items: center; gap: .5rem; }
  #mobileMenu { display: block; background: rgba(255,255,255,.99); }
  #mobileMenu.hidden { display: none !important; }
  #mobileMenu ul { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem 1rem; }
  #mobileMenu li:last-child { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  #siteHeader > div:first-child { min-height: 68px; padding-inline: 1.25rem !important; }
  #siteHeader img { height: 38px !important; }
  #mobileMenu { background: rgba(255,255,255,.99); }
  .min-h-\[760px\] { min-height: auto !important; }
  main section.py-20,
  main section.lg\:py-24 { padding-block: 3.75rem !important; }
  main h1 { font-size: clamp(2.25rem, 10vw, 3rem) !important; line-height: 1.08 !important; }
  main h2 { line-height: 1.12 !important; }
  footer > div:first-child { padding-block: 2rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .twz-reveal { opacity: 1; transform: none; }
}
