/* ==========================================================================
   HEIGHTED — theme styles (layout, typography accents, motion)
   Tokens live in theme.json; this file uses them via CSS variables.
   ========================================================================== */
:root {
  --hz-ink: var(--wp--preset--color--ink, #17181C);
  --hz-ivory: var(--wp--preset--color--ivory, #F4F1EA);
  --hz-gold: var(--wp--preset--color--gold, #C8A66A);
  --hz-silver: var(--wp--preset--color--silver, #B8BDC6);
  --hz-slate: var(--wp--preset--color--slate, #5E636B);
  --hz-navy: var(--wp--preset--color--navy, #1D2B3A);
  --hz-ease: cubic-bezier(.65,0,.35,1);
  --hz-hair: 1px solid rgba(94,99,107,.35);
  --hz-hair-dark: 1px solid rgba(184,189,198,.18);
}
body { -webkit-font-smoothing: antialiased; }
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--hz-gold); outline-offset: 3px; }
.skip-link:focus { background: var(--hz-ink); color: var(--hz-ivory); }

/* ---------- small type helpers ---------- */
.hz-kicker, .hz-kicker a { font-family: var(--wp--preset--font-family--inter); font-size: .8125rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--hz-gold); text-decoration: none; }
.hz-meta, .hz-meta a { font-size: .875rem; color: var(--hz-slate); }
.hz-page-title { margin-top: var(--wp--preset--spacing--50); }
.hz-main { padding-bottom: var(--wp--preset--spacing--60); }
.hz-main--full { padding-bottom: 0; }
.hz-archive-head { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--40); border-bottom: var(--hz-hair); margin-bottom: var(--wp--preset--spacing--50); }

/* ---------- header ---------- */
.hz-header-wrap { position: sticky; top: 0; z-index: 50; }
.admin-bar .hz-header-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .hz-header-wrap { top: 0; } }
.hz-header { background: rgba(23,24,28,.92); color: var(--hz-ivory); border-bottom: var(--hz-hair-dark); backdrop-filter: saturate(140%) blur(10px); -webkit-backdrop-filter: saturate(140%) blur(10px); transition: background .4s var(--hz-ease); }
.hz-header.is-scrolled { background: rgba(23,24,28,.98); }
.hz-header__bar { padding-top: .9rem; padding-bottom: .9rem; gap: 1.5rem; }
.hz-header__right { gap: 1.25rem; }
.hz-logo img { max-width: 210px; height: auto; }
@media (max-width: 600px) { .hz-logo img { max-width: 150px; } }
.hz-nav { font-size: .8125rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.hz-nav a { text-decoration: none; color: var(--hz-ivory); }
.hz-nav a:hover, .hz-nav .current-menu-item > a { color: var(--hz-gold); }
.hz-nav .wp-block-navigation__submenu-container { background: var(--hz-ink) !important; color: var(--hz-ivory) !important; border: var(--hz-hair-dark) !important; padding: .5rem 0; min-width: 260px !important; }
.hz-nav .wp-block-navigation__submenu-container a { padding: .55rem 1.1rem !important; letter-spacing: .06em; text-transform: none; font-size: .9375rem; }
.hz-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--hz-ink) !important; color: var(--hz-ivory) !important; padding: 2rem; }
.hz-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.125rem; }
.hz-nav .wp-block-navigation__responsive-container-open, .hz-nav .wp-block-navigation__responsive-container-close { color: var(--hz-ivory); }

/* ---------- sections (used by homepage & pages) ---------- */
.hz-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); position: relative; }
.hz-dark { background: var(--hz-ink); color: var(--hz-ivory); }
.hz-navy { background: var(--hz-navy); color: var(--hz-ivory); }
.hz-dark a:not(.wp-element-button), .hz-navy a:not(.wp-element-button) { color: var(--hz-ivory); }
.hz-dark .wp-element-button, .hz-navy .wp-element-button { background: var(--hz-ivory); color: var(--hz-ink); }
.hz-dark .wp-element-button:hover, .hz-navy .wp-element-button:hover { background: var(--hz-gold); color: var(--hz-ink); }
.is-style-outline .wp-element-button { background: transparent !important; color: currentColor !important; border: 1px solid currentColor; }
.is-style-outline .wp-element-button:hover { border-color: var(--hz-gold); color: var(--hz-gold) !important; }
.hz-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.5; max-width: 38ch; }
.hz-rule { width: 88px; height: 2px; background: var(--hz-gold); border: 0; margin-left: 0; }

/* hero with architectural line field (no stock photography needed) */
.hz-hero { min-height: min(88vh, 900px); display: flex; flex-direction: column; justify-content: center; overflow: hidden; background: var(--hz-ink); color: var(--hz-ivory); position: relative; isolation: isolate; }
.hz-hero::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(29,43,58,.55) 0%, rgba(23,24,28,0) 60%),
    repeating-linear-gradient(90deg, rgba(184,189,198,.07) 0 1px, transparent 1px 120px);
}
.hz-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 18%; height: 2px; background: linear-gradient(90deg, transparent, var(--hz-gold) 20%, var(--hz-gold) 80%, transparent); transform-origin: center; animation: hz-line 1.4s var(--hz-ease) .2s both; z-index: -1; opacity: .85; }
.hz-hero h1 { font-size: clamp(2.75rem, 7.2vw, 6.25rem); letter-spacing: -.02em; max-width: 12ch; }
.hz-hero .hz-lead { color: var(--hz-silver); }
@keyframes hz-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* cards */
.hz-cards { gap: 1px !important; background: rgba(94,99,107,.28); border: var(--hz-hair); }
.hz-card { background: var(--hz-ivory); padding: 2rem !important; transition: background .4s var(--hz-ease); position: relative; }
.hz-dark .hz-card, .hz-navy .hz-card { background: var(--hz-ink); }
.hz-card::before { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 0; background: var(--hz-gold); transition: width .6s var(--hz-ease); }
.hz-card:hover::before { width: 100%; }
.hz-card h3 { font-size: 1.25rem; margin-top: 0; }
.hz-card .hz-num { font-family: var(--wp--preset--font-family--montserrat); color: var(--hz-gold); font-weight: 600; font-size: .875rem; letter-spacing: .1em; }
.hz-card a { font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }

/* chairman intro */
.hz-portrait img { aspect-ratio: 4/5; object-fit: cover; width: 100%; filter: saturate(.92); }
.hz-portrait { position: relative; }
.hz-portrait::after { content: ""; position: absolute; left: -14px; bottom: -14px; width: 40%; height: 40%; border-left: 2px solid var(--hz-gold); border-bottom: 2px solid var(--hz-gold); pointer-events: none; }
.hz-portrait-empty { aspect-ratio: 4/5; border: 1px dashed var(--hz-slate); display: flex; align-items: center; justify-content: center; color: var(--hz-slate); }

/* article */
.hz-article__meta { color: var(--hz-slate); font-size: .9375rem; gap: 1rem; }
.hz-article .wp-block-post-content { font-size: 1.125rem; }
.hz-post-grid .wp-block-post-title { font-size: 1.25rem; }
.hz-post-grid .wp-block-post-title a { text-decoration: none; }
.hz-post-grid .wp-block-post-featured-image img { transition: transform .8s var(--hz-ease); }
.hz-post-grid .wp-block-post-featured-image { overflow: hidden; }
.hz-post-grid li:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.hz-search { max-width: 520px; }
.hz-search .wp-block-search__input { border: var(--hz-hair); background: #fff; padding: .8rem 1rem; }

/* footer */
.hz-footer { background: var(--hz-ink); color: var(--hz-silver); padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--40); border-top: 2px solid var(--hz-gold); }
.hz-footer a { color: var(--hz-ivory); text-decoration: none; }
.hz-footer a:hover { color: var(--hz-gold); }
.hz-footer__title { font-family: var(--wp--preset--font-family--inter); font-size: .8125rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--hz-gold); }
.hz-footer__tagline { max-width: 34ch; }
.hz-footer__bottom { border-top: var(--hz-hair-dark); margin-top: var(--wp--preset--spacing--50); padding-top: 1.5rem; font-size: .8125rem; }

/* 404 */
.hz-404 { padding-top: var(--wp--preset--spacing--70); }

/* ---------- motion (only when JS confirms motion is allowed) ---------- */
.hz-motion .hz-reveal, .hz-motion .hz-card, .hz-motion .hz-project-card, .hz-motion .hz-section h2 { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--hz-ease), transform .8s var(--hz-ease); }
.hz-motion .is-visible { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
