/* Progressive motion: content is visible before JavaScript and after any failure. */
#yz-mainproto {
  --yz-motion-ease:cubic-bezier(.22,.61,.36,1);
  --yz-motion-short:240ms;
  --yz-motion-reveal:720ms;
  --yz-motion-fade:1200ms;
}
#yz-mainproto .yz-hero-line { display:block; }
#yz-mainproto .yz-newportrait .yz-hero-slide {
  opacity:0;
  transition:opacity var(--yz-motion-fade) ease-in-out;
  pointer-events:none;
}
#yz-mainproto .yz-newportrait .yz-hero-slide.is-current { opacity:1; }
#yz-mainproto .yz-newportrait.yz-hero-illustration .yz-hero-slide { object-position:50% 50%;filter:none; }
#yz-mainproto .yz-newportrait:after { pointer-events:none; }
#yz-mainproto .yz-photo-toggle {
  position:absolute;z-index:3;top:18px;right:22px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-width:68px;min-height:44px;margin:0;padding:8px 11px;
  border:1px solid rgba(255,255,255,.5);border-radius:22px;
  background:rgba(19,48,42,.85);color:#fff;
  font-size:11px;font-weight:500;line-height:1.2;letter-spacing:.04em;
  cursor:pointer;transform:none;
  transition:background-color var(--yz-motion-short),border-color var(--yz-motion-short),box-shadow var(--yz-motion-short);
}
#yz-mainproto .yz-photo-toggle[hidden] { display:none!important; }
#yz-mainproto .yz-newportrait .yz-photo-caption-detail { min-height:50px; }
#yz-mainproto .yz-photo-toggle svg { width:12px;height:12px;flex:none; }
#yz-mainproto .yz-photo-toggle .yz-photo-play { display:none; }
#yz-mainproto .yz-photo-toggle[data-paused="true"] .yz-photo-pause { display:none; }
#yz-mainproto .yz-photo-toggle[data-paused="true"] .yz-photo-play { display:block; }
#yz-mainproto .yz-photo-toggle:focus-visible { outline:3px solid #dbe7a4;outline-offset:-5px; }

/* All navigation and contact controls retain their physical position on hover. */
#yz-mainproto .yz-btn,
#yz-mainproto .yz-btn:hover,
#yz-mainproto .yz-head-cta,
#yz-mainproto .yz-head-cta:hover,
#yz-mainproto .yz-link,
#yz-mainproto .yz-link:hover,
#yz-mainproto .yz-feature:hover,
#yz-mainproto .yz-business:hover,
#yz-mainproto .yz-service:hover,
#yz-mainproto .yz-article-card:hover {
  transform:none;
}
#yz-mainproto .yz-btn,
#yz-mainproto .yz-head-cta,
#yz-mainproto .yz-link,
#yz-mainproto .yz-nav a,
#yz-mainproto .yz-dock a,
#yz-mainproto .yz-feature,
#yz-mainproto .yz-business,
#yz-mainproto .yz-service,
#yz-mainproto .yz-article-card,
#yz-mainproto .yz-guide-options button,
#yz-mainproto .wpcf7 input[type=submit] {
  transition:background-color var(--yz-motion-short) var(--yz-motion-ease),
    color var(--yz-motion-short) var(--yz-motion-ease),
    border-color var(--yz-motion-short) var(--yz-motion-ease),
    box-shadow var(--yz-motion-short) var(--yz-motion-ease);
}
#yz-mainproto .yz-office-interior-image {
  transition:transform 900ms var(--yz-motion-ease);
}
@media (hover:hover) and (pointer:fine) {
  #yz-mainproto .yz-photo-toggle:hover { background:#173e3b;border-color:#dbe7a4; }
  #yz-mainproto .yz-btn:hover,
  #yz-mainproto .yz-head-cta:hover { box-shadow:0 4px 14px rgba(23,62,59,.14); }
  #yz-mainproto .yz-feature:hover,
  #yz-mainproto .yz-service:hover,
  #yz-mainproto .yz-article-card:hover { border-color:#9eae91;box-shadow:0 8px 24px rgba(23,62,59,.07); }
  #yz-mainproto .yz-business:hover { box-shadow:inset 0 0 0 1px #c4d0bb; }
  #yz-mainproto .yz-link:hover { border-color:currentColor; }
  #yz-mainproto .yz-office-interior-frame:hover .yz-office-interior-image { transform:scale(1.025); }
}
@media (min-width:601px) and (max-width:820px) {
  #yz-mainproto .yz-newportrait .yz-photo-caption-detail { min-height:73px; }
}
@media (max-width:600px) {
  #yz-mainproto .yz-newportrait .yz-photo-caption-detail { min-height:45px; }
}
@media (max-width:560px) {
  #yz-mainproto .yz-photo-toggle { top:12px;right:16px; }
}
@media (prefers-reduced-motion:reduce) {
  #yz-mainproto .yz-hero-line,
  #yz-mainproto [data-yz-motion-reveal],
  #yz-mainproto .yz-hero-slide,
  #yz-mainproto .yz-office-interior-image,
  #yz-mainproto .yz-office-interior-frame:hover .yz-office-interior-image {
    animation:none!important;transition:none!important;transform:none!important;
  }
  #yz-mainproto .yz-photo-toggle { display:none!important; }
}

/* Generated hero art and the genuine representative portrait have distinct roles. */
#yz-mainproto .yz-hero-illustration .yz-photo-caption-detail { display:block;min-height:70px; }
#yz-mainproto .yz-hero-illustration .yz-photo-caption-detail>span { display:block;font-size:10px; }
#yz-mainproto .yz-hero-illustration .yz-photo-caption-detail strong { display:block;font-size:24px;line-height:1.65;letter-spacing:.05em;margin-top:5px; }
#yz-mainproto .yz-about-mark.yz-about-portrait { position:relative;display:block;overflow:hidden;min-height:0;aspect-ratio:4 / 5;width:100%;max-width:420px;margin:0 auto;border-radius:4px 72px 4px 4px; }
#yz-mainproto .yz-about-portrait img { display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0%; }
#yz-mainproto #yz-home-about { scroll-margin-top:150px; }
@media (max-width:600px) {
  #yz-mainproto .yz-about-mark.yz-about-portrait { max-width:290px;border-radius:4px 50px 4px 4px; }
  #yz-mainproto .yz-hero-illustration .yz-photo-caption-detail { min-height:60px; }
  #yz-mainproto .yz-hero-illustration .yz-photo-caption-detail strong { font-size:22px; }
}

/* Homepage hero refinement only: clear copy, generous illustration, stable controls. */
#yz-mainproto .yz-hero-editorial .yz-newhero-grid {
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(32px,5vw,72px);padding-top:52px;padding-bottom:44px;
}
#yz-mainproto .yz-hero-editorial .yz-newhero-copy { min-width:0; }
#yz-mainproto .yz-hero-editorial h1 {
  font-size:clamp(40px,4.8vw,64px);line-height:1.5;letter-spacing:.035em;
  margin:24px 0 25px;white-space:normal;
}
#yz-mainproto .yz-hero-editorial .yz-hero-line { white-space:nowrap; }
#yz-mainproto .yz-hero-editorial .yz-newportrait {
  min-height:0;aspect-ratio:4 / 5;width:100%;max-width:480px;
  align-self:center;justify-self:end;border-radius:8px 80px 8px 8px;
  background:#527567;box-shadow:0 14px 38px rgba(9,29,25,.12);
}
#yz-mainproto .yz-hero-editorial .yz-newportrait .yz-hero-slide { min-height:0; }
#yz-mainproto .yz-hero-editorial .yz-newportrait:after {
  inset:57% 0 0;background:linear-gradient(transparent,rgba(13,38,31,.85));
}
#yz-mainproto .yz-hero-editorial .yz-newportrait figcaption { left:26px;right:24px;bottom:24px; }
#yz-mainproto .yz-hero-editorial .yz-newportrait figcaption>span { font-size:11px;line-height:1.8;margin-bottom:10px; }
#yz-mainproto .yz-hero-editorial .yz-photo-caption-detail { min-height:60px; }
#yz-mainproto .yz-hero-editorial .yz-photo-caption-detail strong { font-size:clamp(19px,2vw,24px); }
#yz-mainproto .yz-hero-editorial .yz-hero-strip { align-items:center;line-height:1.8;padding-top:20px;padding-bottom:22px; }
@media (min-width:601px) and (max-width:820px) {
  #yz-mainproto .yz-hero-editorial .yz-newhero-grid {
    grid-template-columns:minmax(0,1fr);gap:32px;padding-top:40px;padding-bottom:32px;
  }
  #yz-mainproto .yz-hero-editorial h1 { font-size:48px;line-height:1.4;margin-top:20px; }
  #yz-mainproto .yz-hero-editorial .yz-hero-caption { margin-top:26px; }
  #yz-mainproto .yz-hero-editorial .yz-newportrait {
    max-width:none;aspect-ratio:7 / 5;border-radius:6px 64px 6px 6px;justify-self:stretch;
  }
  #yz-mainproto .yz-hero-editorial .yz-newportrait .yz-hero-slide { object-position:50% 48%; }
  #yz-mainproto .yz-hero-editorial .yz-photo-caption-detail strong { font-size:25px; }
}
@media (max-width:600px) {
  #yz-mainproto .yz-hero-editorial .yz-newhero-grid {
    grid-template-columns:minmax(0,1fr);gap:28px;padding-top:34px;padding-bottom:25px;
  }
  #yz-mainproto .yz-hero-editorial h1 { font-size:clamp(32px,9.8vw,46px);line-height:1.45;margin:20px 0 22px; }
  #yz-mainproto .yz-hero-editorial .yz-newhero-copy>p { font-size:13px; }
  #yz-mainproto .yz-hero-editorial .yz-newportrait {
    max-width:none;aspect-ratio:1 / 1;min-height:290px;border-radius:5px 48px 5px 5px;
  }
  #yz-mainproto .yz-hero-editorial .yz-newportrait figcaption { left:22px;right:20px;bottom:18px; }
  #yz-mainproto .yz-hero-editorial .yz-newportrait figcaption>span { font-size:10px; }
  #yz-mainproto .yz-hero-editorial .yz-photo-caption-detail strong { font-size:22px; }
  #yz-mainproto .yz-hero-editorial .yz-hero-strip { padding-top:0;gap:10px 18px; }
}
@media (max-width:359px) {
  #yz-mainproto .yz-hero-editorial .yz-buttons { gap:12px; }
  #yz-mainproto .yz-hero-editorial .yz-newhero-copy .yz-btn { padding-left:14px;padding-right:14px; }
  #yz-mainproto .yz-hero-editorial .yz-newportrait figcaption { left:18px;right:16px; }
  #yz-mainproto .yz-hero-editorial .yz-photo-caption-detail strong { font-size:20px; }
}


/* Copy entrances use the Web Animations API only. No CSS selector hides waiting text.
   Focus, printing and reduced motion always expose the full, stationary copy. */
#yz-mainproto [data-yz-motion-reveal]:focus-within {
  opacity:1!important;transform:none!important;
}
@media (prefers-reduced-motion:reduce), print {
  #yz-mainproto [data-yz-motion-reveal],
  #yz-mainproto .yz-hero-line {
    opacity:1!important;animation:none!important;transition:none!important;transform:none!important;
  }
}
