/* Shared site actions: solid, editorial lines, and quiet card links. */
.home-button.home-button {
    --button-ink: #2d2e2f;
    --button-paper: #f7f5f0;
    --button-gold: #98743c;
    --button-fill: #2d2e2f;
    --button-hover: #434547;
    --button-label: #f7f5f0;
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 54px;
    min-width: 160px;
    max-width: 100%;
    padding: 16px 26px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--button-ink);
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .025em;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: color .35s, background .35s, border-color .35s, box-shadow .35s, transform .4s cubic-bezier(.16,1,.3,1);
}
.home-button.home-button > .home-button-label { position: relative; font: inherit; color: inherit; transform: none; }
.home-button.home-button:focus-visible { outline: 2px solid var(--button-gold); outline-offset: 6px; }
.home-button.home-button::before, .home-button.home-button::after { content: ''; position: absolute; pointer-events: none; }
.home-button.home-button--solid { background: var(--button-fill); color: var(--button-label); overflow: hidden; }
.home-button.home-button--solid::before { inset: 0; z-index: -1; background: var(--button-hover); transform: translateY(100%); transition: transform .5s cubic-bezier(.16,1,.3,1); }
.home-button.home-button--solid::after { inset: auto 0 0; height: 3px; background: #b18b4d; transform: scaleX(0); transform-origin: left; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.home-button.home-button--solid:not(:disabled):is(:hover,:focus-visible) { transform: translateY(-2px); box-shadow: 0 8px 18px #2d2e2f16; }
.home-button.home-button--solid:not(:disabled):is(:hover,:focus-visible)::before { transform: translateY(0); }
.home-button.home-button--solid:not(:disabled):is(:hover,:focus-visible)::after { transform: scaleX(1); }
.home-button.home-button--lines { border-block: 2px solid var(--button-gold); overflow: hidden; }
.home-button.home-button--lines::before { inset: 0; z-index: -1; background: var(--button-fill); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.home-button.home-button--lines:not(:disabled):is(:hover,:focus-visible) { color: var(--button-label); border-color: var(--button-fill); }
.home-button.home-button--lines:not(:disabled):is(:hover,:focus-visible)::before { transform: scaleX(1); }
.home-button.home-button--text { justify-content: flex-start; padding-inline: 14px; min-width: 150px; }
.home-button.home-button--text::before { inset: 0; z-index: -1; background: #ece4d3; transform: scaleY(0); transform-origin: bottom; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.home-button.home-button--text::after { bottom: 0; left: 0; width: 100%; height: 2px; background: var(--button-gold); transform: scaleX(.6); transform-origin: left; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.home-button.home-button--text:not(:disabled):is(:hover,:focus-visible)::after,
.news-card-link:is(:hover,:focus-visible) .home-button--text::after,
.project-open:is(:hover,:focus-visible) .home-button--text::after { transform: scaleX(1); }
.home-button.home-button--text:not(:disabled):is(:hover,:focus-visible)::before,
.news-card-link:is(:hover,:focus-visible) .home-button--text::before,
.project-open:is(:hover,:focus-visible) .home-button--text::before { transform: scaleY(1); }
.home-button.home-button--light { --button-fill: #f7f5f0; --button-hover: #e2d3b8; --button-label: #2d2e2f; }
.home-button.home-button--on-dark { --button-ink: #f7f5f0; --button-gold: #d7b97f; --button-fill: #f7f5f0; --button-label: #2d2e2f; }
.home-button.home-button--on-dark.home-button--text::before { background: #f7f5f0; }
.home-button.home-button--on-dark.home-button--text:not(:disabled):is(:hover,:focus-visible),
.project-open:is(:hover,:focus-visible) .home-button--on-dark { color: #2d2e2f; }
.home-button.home-button:active { transform: translateY(0); box-shadow: none; }
.home-button.home-button:disabled { opacity: .5; cursor: wait; }
.nav-contact.home-button::after { width: auto; bottom: 0; }
.nav-contact.home-button { margin-left: clamp(24px, 4vw, 72px); }
.immersive-cta.home-button { backdrop-filter: none; pointer-events: auto; }
.about-link.home-button, .project-dialog-copy .home-button { margin-top: 28px; }
.news-read.home-button { margin-top: auto; }
.news-copy .news-card-title { margin-top: 0; }
.project-caption:has(.home-button) { flex-wrap: wrap; }
.project-action.home-button { flex-shrink: 0; }
.footer-input-line:has(.home-button) { align-items: center; gap: 16px; padding-bottom: 14px; }
.footer-input-line .home-button { flex-shrink: 0; min-width: 120px; }
.footer-talk.home-button { margin-top: 0; }
@media (max-width: 1100px) { .nav-contact.home-button { margin: 24px 0 0; width: 100%; } }
@media (max-width: 600px) {
    .home-button.home-button { min-height: 50px; font-size:var(--type-meta); padding: 14px 22px; }
    .home-button.home-button--text { padding-inline: 14px; min-width: 138px; }
    .footer-input-line:has(.home-button) { gap: 10px; }
    .footer-input-line .home-button { min-width: 104px; padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .home-button.home-button, .home-button.home-button::before, .home-button.home-button::after { transition: none; }
    .home-button.home-button--solid:not(:disabled):is(:hover,:focus-visible) { transform: none; }
}

/* Inner-page cards share the same quiet action treatment. */
[data-button-card]:is(:hover,:focus-visible):not(:disabled) .home-button--text::before { transform: scaleY(1); }
[data-button-card]:is(:hover,:focus-visible):not(:disabled) .home-button--text::after { transform: scaleX(1); }
.home-button.home-button > .home-button-label { margin: 0; letter-spacing: inherit; line-height: inherit; }
.home-button.home-button > .home-button-label :is(span,strong,small) { color: inherit; }
.home-button.home-button--text.vg-watch { border-top: 0; }
.home-button.home-button--text.project-index-action { flex-shrink: 0; }
.home-button.home-button--solid.careers-apply-link { box-shadow: none; }
.pd-contact-links:has(.home-button) { display: flex; flex-wrap: wrap; gap: 20px; }
.vg-source-link.home-button { margin: 16px 25px; }
.ct-details .home-button.home-button > .home-button-label { display: inline; font: inherit; }

[data-button-card]:disabled .home-button { pointer-events: none; opacity: .5; }

/* Rich action labels retain their contact details alongside the shared treatment. */
.home-button.home-button > .home-button-label .home-button-detail { display: block; margin-top: 8px;   font-weight: 400;  opacity: .85; }
.home-button.home-button > .home-button-label .home-button-eyebrow { display: block; margin-bottom: 6px;   font-weight: 400;  opacity: .85; }
