:root {
  --vh-black: #08090a;
  --vh-charcoal: #111214;
  --vh-graphite: #1b1d20;
  --vh-stone: #0e1012;
  --vh-white: #f4f0eb;
  --vh-ivory: #d7d1c9;
  --vh-gray: #8e8a84;
  --vh-copper: #b36a3c;
  --vh-copper-dark: #92502c;
  --vh-copper-light: #cb8552;
  --vh-rule: #2a2d31;
  --vh-pad: clamp(1.25rem, 5vw, 5rem);
  --vh-max: 100rem;
  --vh-serif: "Cormorant Garamond", Georgia, serif;
  --vh-sans: Inter, "Helvetica Neue", Arial, sans-serif;
}

html { scroll-behavior: smooth; }
body.vh-home { background: var(--vh-black); color: var(--vh-white); font-family: var(--vh-sans); margin: 0; }
.vh-home .site-header, .vh-home .site-footer { display: none; }
.vh-home .entry-content, .vh-home .wp-block-cover { margin: 0; }
.vh-home .entry-content > * { max-width: none; }
.vh-main { overflow: clip; }

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 2px solid var(--vh-copper-light);
  outline-offset: 4px;
}

.vh-skip-link:focus { background: var(--vh-white); color: var(--vh-black); left: 1rem; padding: .75rem 1rem; position: fixed; top: 1rem; z-index: 1000; }

.vh-header { inset: 0 0 auto; position: absolute; z-index: 50; }
.vh-header__inner { align-items: center; border-bottom: 1px solid rgb(244 240 235 / 12%); display: flex; justify-content: space-between; margin: auto; max-width: var(--vh-max); min-height: clamp(5rem, 8vw, 7rem); padding: 0 var(--vh-pad); }
.vh-brand, .vh-brand .custom-logo-link { align-items: center; display: inline-flex; }
.vh-brand img { height: auto; max-height: clamp(2.5rem, 4vw, 3.75rem); width: auto; }
.vh-brand__text { color: var(--vh-white); font-size: .9rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.vh-nav__list { align-items: center; display: flex; gap: clamp(1.2rem, 3vw, 3.25rem); list-style: none; margin: 0; padding: 0; }
.vh-nav a { color: var(--vh-white); font-size: clamp(.76rem, .7rem + .18vw, .92rem); letter-spacing: .025em; position: relative; text-decoration: none; }
.vh-nav a::after { background: var(--vh-copper); bottom: -.55rem; content: ""; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: right; transition: transform 200ms ease; width: 100%; }
.vh-nav a:hover::after, .vh-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.vh-nav__cta a { border: 1px solid var(--vh-copper-dark); padding: .8rem 1.25rem; transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease; }
.vh-nav__cta a::after { display: none; }
.vh-menu-toggle { background: transparent; border: 0; display: none; height: 2.75rem; padding: .65rem; width: 2.75rem; }
.vh-menu-toggle span[aria-hidden] { background: var(--vh-white); display: block; height: 1px; margin: .4rem 0; width: 100%; }

.vh-section { box-sizing: border-box; position: relative; }
.vh-section :is(h1, h2, h3, .wp-block-heading) { color: var(--vh-white) !important; }
.vh-shell { box-sizing: border-box; margin-inline: auto; max-width: var(--vh-max); padding-inline: var(--vh-pad); width: 100%; }
.vh-display { font-family: var(--vh-serif); font-weight: 400; letter-spacing: -.025em; line-height: .98; }
.vh-eyebrow { color: var(--vh-copper-light); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; }

.vh-hero { min-height: max(48rem, 100svh); }
.vh-hero .wp-block-cover__background { background: linear-gradient(90deg, rgb(4 5 6 / 91%) 0%, rgb(4 5 6 / 60%) 42%, rgb(4 5 6 / 16%) 72%, rgb(4 5 6 / 52%) 100%) !important; opacity: 1 !important; }
.vh-hero .wp-block-cover__image-background { object-position: 58% 50%; }
.vh-hero__content { display: flex; flex-direction: column; justify-content: center; min-height: max(48rem, 100svh); padding-top: clamp(7rem, 15vh, 11rem); }
.vh-hero__title { font-size: clamp(4.25rem, 4vw + 2.5rem, 7.6rem); max-width: 8.5ch; text-wrap: balance; }
.vh-hero__rule { background: var(--vh-copper); height: 1px; margin: 1.5rem 0 1.25rem; width: 3.25rem; }
.vh-hero__support { color: var(--vh-ivory) !important; font-size: clamp(1.1rem, 1rem + .4vw, 1.45rem); max-width: 32ch; }
.vh-scroll { bottom: clamp(2rem, 5vh, 4rem); color: var(--vh-white); font-size: .64rem; left: var(--vh-pad); letter-spacing: .26em; position: absolute; text-transform: uppercase; }
.vh-scroll::before { background: var(--vh-copper); content: ""; display: block; height: 2rem; margin-bottom: .8rem; width: 1px; }

.vh-manifesto { background: radial-gradient(circle at 18% 15%, rgb(255 255 255 / 3%), transparent 30%), var(--vh-charcoal); border-bottom: 1px solid var(--vh-rule); border-top: 1px solid var(--vh-rule); padding-block: clamp(6rem, 11vw, 11rem); }
.vh-manifesto__grid { align-items: center; display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); width: 100%; }
.vh-manifesto__title { font-size: clamp(3.8rem, 5.6vw, 7rem); margin: 0; max-width: 10ch; overflow-wrap: normal; word-break: normal; }
.vh-manifesto__copy { border-left: 1px solid var(--vh-copper-dark); padding: 1rem 0 1rem clamp(2rem, 4vw, 4rem); }
.vh-manifesto__lead { color: var(--vh-white) !important; font-size: clamp(1.2rem, 1rem + .5vw, 1.55rem); line-height: 1.45; }
.vh-manifesto__body { color: var(--vh-gray) !important; font-size: clamp(.95rem, .9rem + .15vw, 1.08rem); line-height: 1.75; max-width: 34ch; }

.vh-capabilities { background: var(--vh-stone); }
.vh-capabilities > .vh-capabilities__grid,
.vh-capabilities.is-layout-constrained > .vh-capabilities__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none !important; width: 100%; }
.vh-capability { border-right: 1px solid var(--vh-rule); min-height: 35rem; min-width: 0; overflow: hidden; padding: clamp(2rem, 3vw, 3.25rem); position: relative; }
.vh-capabilities__grid > .vh-capability { margin-block-start: 0 !important; }
.vh-capability:last-child { border-right: 0; }
.vh-capability__media { aspect-ratio: 4 / 3; margin: calc(clamp(2rem, 4vw, 4rem) * -1) calc(clamp(2rem, 4vw, 4rem) * -1) 2rem; overflow: hidden; }
.vh-capability__media img { height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.2,.7,.2,1); width: 100%; }
.vh-capability:hover .vh-capability__media img { transform: scale(1.025); }
.vh-capability h3 { font-family: var(--vh-serif); font-size: clamp(1.8rem, 2.4vw, 2.75rem); font-weight: 400; margin: 0 0 .85rem; overflow-wrap: normal; word-break: normal; }
.vh-capability p { color: var(--vh-gray) !important; line-height: 1.7; max-width: 32ch; }
.vh-text-link { color: var(--vh-copper-light); display: inline-flex; font-size: .88rem; gap: .8rem; margin-top: 1rem; text-decoration: none; }
.vh-text-link::after { content: "⟶"; transition: transform 180ms ease; }
.vh-text-link:hover::after { transform: translateX(.25rem); }

.vh-city { min-height: clamp(32rem, 48vw, 49rem); }
.vh-city .wp-block-cover__background { background: linear-gradient(90deg, rgb(6 8 10 / 86%), rgb(6 8 10 / 38%) 60%, rgb(6 8 10 / 18%)) !important; opacity: 1 !important; }
.vh-city__content { display: flex; flex-direction: column; justify-content: center; min-height: clamp(32rem, 48vw, 49rem); }
.vh-city__title { font-size: clamp(2.8rem, 3.6vw, 4.5rem); max-width: 20ch; }
.vh-city__copy { color: var(--vh-ivory) !important; line-height: 1.7; max-width: 39ch; }

.vh-closing { background: radial-gradient(circle at 50% 0%, rgb(179 106 60 / 7%), transparent 38%), var(--vh-charcoal); padding: clamp(7rem, 12vw, 12rem) var(--vh-pad); text-align: center; }
.vh-closing h2 { font-family: var(--vh-serif); font-size: clamp(3rem, 5vw, 6rem); font-weight: 400; margin-inline: auto; max-width: 15ch; }
.vh-button .wp-block-button__link { background: transparent; border: 1px solid var(--vh-copper); border-radius: 0; color: var(--vh-white); font-family: var(--vh-sans); font-size: .88rem; letter-spacing: .035em; padding: .9rem 1.7rem; transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease; }

.vh-nav__cta a,
.vh-button .wp-block-button__link { isolation: isolate; overflow: hidden; position: relative; }

.vh-nav__cta a::before,
.vh-button .wp-block-button__link::before {
  background: linear-gradient(108deg, transparent 18%, rgb(255 205 164 / 12%) 36%, rgb(255 238 222 / 58%) 50%, rgb(255 205 164 / 18%) 64%, transparent 82%);
  background-position: 100% 0;
  background-size: 280% 100%;
  content: "";
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.vh-nav__cta a:hover,
.vh-nav__cta a:focus-visible,
.vh-button .wp-block-button__link:hover,
.vh-button .wp-block-button__link:focus-visible { background: var(--vh-copper-dark); border-color: var(--vh-copper-light); }

.vh-button .wp-block-button__link:hover,
.vh-button .wp-block-button__link:focus-visible { transform: translateY(-1px); }

.vh-nav__cta a:hover::before,
.vh-nav__cta a:focus-visible::before,
.vh-button .wp-block-button__link:hover::before,
.vh-button .wp-block-button__link:focus-visible::before { animation: vh-primary-button-sheen 900ms cubic-bezier(.22, 1, .36, 1) both; }

@keyframes vh-primary-button-sheen {
  0% { background-position: 100% 0; opacity: 0; }
  18%, 82% { opacity: .72; }
  100% { background-position: 0 0; opacity: 0; }
}

.vh-footer { background: var(--vh-black); border-top: 1px solid var(--vh-copper-dark); color: var(--vh-gray); padding: 2rem var(--vh-pad); }
.vh-footer__inner { align-items: center; display: grid; gap: 2rem; grid-template-columns: 1fr auto 1fr; margin-inline: auto; max-width: var(--vh-max); }
.vh-footer__brand img { height: auto; max-height: 2.4rem; width: auto; }
.vh-footer p { margin: 0; text-align: center; }
.vh-footer nav { display: flex; gap: 1.25rem; justify-content: flex-end; }
.vh-footer a { color: var(--vh-gray); font-size: .8rem; text-decoration: none; }

.vh-js .vh-reveal { opacity: 0; transform: translateY(1.25rem); transition: opacity 700ms ease, transform 700ms cubic-bezier(.2,.7,.2,1); }
.vh-js .vh-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .vh-menu-toggle { display: block; }
  .vh-nav { background: rgb(8 9 10 / 98%); border-top: 1px solid var(--vh-rule); display: none; inset: 100% 0 auto; padding: 1.5rem var(--vh-pad) 2rem; position: absolute; }
  .vh-nav.is-open { display: block; }
  .vh-nav__list { align-items: stretch; flex-direction: column; gap: .25rem; }
  .vh-nav a { display: block; padding: .8rem 0; }
  .vh-nav__cta a { margin-top: .5rem; padding-inline: 1rem; }
  .vh-manifesto__grid { grid-template-columns: 1fr; }
  .vh-manifesto__copy { max-width: 34rem; }
  .vh-capabilities > .vh-capabilities__grid,
  .vh-capabilities.is-layout-constrained > .vh-capabilities__grid { grid-template-columns: 1fr; }
  .vh-capability { border-bottom: 1px solid var(--vh-rule); border-right: 0; min-height: auto; }
  .vh-capability__media { aspect-ratio: 16 / 8; }
  .vh-footer__inner { grid-template-columns: 1fr; text-align: center; }
  .vh-footer__brand, .vh-footer nav { justify-content: center; }
}

@media (max-width: 520px) {
  .vh-hero__title { font-size: clamp(3.65rem, 18vw, 5rem); }
  .vh-hero .wp-block-cover__image-background { object-position: 66% 50%; }
  .vh-manifesto__title { font-size: clamp(3.4rem, 16vw, 5rem); }
  .vh-manifesto__copy { padding-left: 1.5rem; }
  .vh-city .wp-block-cover__background { background: linear-gradient(90deg, rgb(6 8 10 / 88%), rgb(6 8 10 / 50%)) !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .vh-js .vh-reveal { opacity: 1; transform: none; }
  .vh-nav__cta a::before,
  .vh-button .wp-block-button__link::before { animation: none !important; opacity: 0; }
}
