/* Signature Experience: existing overlay owner and targets remain intact. */
:root { --signature-ink:#103632; --signature-gold:#cdb380; }
/* Geometry measurement temporarily reads natural flow. It must not nominate
   a lower home card as a browser scroll anchor during history restoration. */
main:has([data-signature-experience]) { overflow-anchor:none; }
/* Base snapshots stay neutral even before the new document's JS reads route
   state. Named photos/header/island retain their own native transitions. */
::view-transition-old(root),::view-transition-new(root) { animation:none!important;mix-blend-mode:normal; }
/* An unpaired outgoing title must never hover over the returned home. Native
   photo/header/island groups still animate; only the orphan text is omitted. */
html[data-motion-route="home"]::view-transition-old(yl-title) { display:none; }
/* Let the shared photograph carry the journey; the page never blacks out. */
html[data-yl-from="home"]:not([data-yl-nav="locale"])::view-transition-old(root),
html[data-yl-from="home"]:not([data-yl-nav="locale"])::view-transition-new(root),
html[data-motion-route="home"]:not([data-yl-nav="locale"])::view-transition-old(root),
html[data-motion-route="home"]:not([data-yl-nav="locale"])::view-transition-new(root),
html[data-motion-route="home"][data-yl-dir="back"]::view-transition-old(root),
html[data-motion-route="home"][data-yl-dir="back"]::view-transition-new(root) { animation:none!important;mix-blend-mode:normal; }
html[data-yl-from="home"]::view-transition-group(*) { animation-timing-function:cubic-bezier(.22,.68,.16,1); }
/* Focus never waits for a stagger, and transforms never move a hit target. */
:where(a,button,input,select,textarea):focus-visible { outline:3px solid #96702d;outline-offset:4px; }
.service-card-link:focus-visible .card-image img { transform:scale(1.025); }
.signature-experience .button:active { transform:none;filter:brightness(.93); }
.signature-experience .button { transition:background-color 160ms,color 160ms,box-shadow 160ms; }
.desktop-nav .nav-sub::before { content:"";position:absolute;inset:-16px 0 auto;height:16px; }
/* Fixed backdrop effects do not hide an interrupted state. */
html[data-motion-route="home"] .yl-veil,
html[data-yl-from="home"] .yl-veil { display:none; }
@media (prefers-reduced-motion:reduce),(forced-colors:active) {
  html::view-transition-group(*) { animation-duration:.001ms!important;animation-delay:0ms!important; }
  .service-card-link:focus-visible .card-image img { transform:none; }
}
/* Keep the navigation stacking context above the header's reading-progress
   ::after (z:1); raising dropdown children alone cannot escape their parent. */
.site-header .header-inner{position:relative;z-index:2}

/* Keep the independent preview action inside its card instead of after a 100%-height link. */
.representative-services > .service-card:has(> .yl-service-preview),
.service-grid > .service-card:has(> .yl-service-preview) {
  display:flex !important;
  flex-direction:column;
  height:auto !important;
  min-height:0;
}
.representative-services > .service-card:has(> .yl-service-preview) > .service-card-link,
.service-grid > .service-card:has(> .yl-service-preview) > .service-card-link {
  height:auto !important;
  min-height:0;
  flex:1 1 auto;
}
.service-card > .yl-service-preview { flex-shrink:0; align-self:flex-start; }
