/* Footer designer credit: scoped so it never changes the existing footer layout. */
.wqs-site-credit {
    --credit-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --credit-ease-hover: cubic-bezier(0.22, 1, 0.36, 1);
    --credit-duration-open: 480ms;
    --credit-duration-close: 320ms;
    position: relative;
    display: inline-flex;
    vertical-align: baseline;
    z-index: 4;
}

.wqs-site-credit__trigger,
.wqs-site-credit__close,
.wqs-site-credit__copy {
    font: inherit;
}

.wqs-site-credit__trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0;
    border: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
    text-decoration: none;
    transition: color 180ms var(--credit-ease-hover), transform 180ms var(--credit-ease-hover);
}

.wqs-site-credit__trigger::after {
    position: absolute;
    right: 0;
    bottom: 2px;
    left: 0;
    height: 1px;
    background: currentColor;
    content: '';
    opacity: 0;
    transform: scaleX(0.35);
    transform-origin: left;
    transition: opacity 180ms var(--credit-ease-hover), transform 180ms var(--credit-ease-hover);
}

.wqs-site-credit__trigger:hover,
.wqs-site-credit__trigger:focus-visible,
.wqs-site-credit.is-open .wqs-site-credit__trigger {
    color: var(--wqs-template-accent, #81271a);
    transform: translateY(-1px);
}

.wqs-site-credit__trigger:hover::after,
.wqs-site-credit__trigger:focus-visible::after,
.wqs-site-credit.is-open .wqs-site-credit__trigger::after {
    opacity: 0.8;
    transform: scaleX(1);
}

.wqs-site-credit__trigger:focus-visible,
.wqs-site-credit__close:focus-visible,
.wqs-site-credit__copy:focus-visible,
.wqs-site-credit__email:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.wqs-site-credit__panel {
    position: absolute;
    bottom: calc(100% + 16px);
    left: min(0px, calc(100vw - 420px));
    box-sizing: border-box;
    width: min(380px, calc(100vw - 32px));
    padding: 24px;
    border: 1px solid var(--credit-panel-border, rgba(21, 21, 21, 0.32));
    border-radius: 0;
    color: var(--credit-name-color, #151515);
    background: var(--credit-panel-background, #fff);
    box-shadow: 0 20px 52px rgba(0, 0, 0, 0.16);
    opacity: 0;
    pointer-events: none;
    transform: translateY(14px) scale(0.985);
    transform-origin: left bottom;
    visibility: hidden;
    transition: opacity var(--credit-duration-close) ease, transform var(--credit-duration-close) ease, visibility 0s linear var(--credit-duration-close);
}

.wqs-site-credit__panel::before {
    position: absolute;
    bottom: -7px;
    left: 24px;
    width: 12px;
    height: 12px;
    border-right: 1px solid var(--credit-panel-border, rgba(21, 21, 21, 0.32));
    border-bottom: 1px solid var(--credit-panel-border, rgba(21, 21, 21, 0.32));
    background: var(--credit-panel-background, #fff);
    content: '';
    transform: rotate(45deg);
}

.wqs-site-credit.is-open .wqs-site-credit__panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    visibility: visible;
    transition: opacity var(--credit-duration-open) var(--credit-ease-out), transform var(--credit-duration-open) var(--credit-ease-out), visibility 0s;
}

.wqs-site-credit__close {
    position: absolute;
    top: 9px;
    right: 10px;
    z-index: 2;
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    box-sizing: border-box;
    border: 1px solid var(--credit-divider, #d8d8d3);
    border-radius: 50%;
    color: var(--credit-close-color, #151515);
    background: transparent;
    cursor: pointer;
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1;
    place-items: center;
    transition: color 220ms var(--credit-ease-hover), background 220ms var(--credit-ease-hover), border-color 220ms var(--credit-ease-hover), transform 220ms var(--credit-ease-hover), box-shadow 220ms var(--credit-ease-hover);
}

.wqs-site-credit__close > span {
    display: block;
    line-height: 1;
    transform: translateY(-1px);
}

.wqs-site-credit__close:hover,
.wqs-site-credit__close:focus-visible {
    color: var(--credit-close-hover-color, var(--wqs-button-hover-color, #fff));
    background: var(--wqs-button-hover-background, #81271a);
    border-color: var(--wqs-button-hover-background, #81271a);
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.16);
    outline: 0;
    transform: rotate(90deg);
}

.wqs-site-credit__content > * {
    opacity: 0;
    transform: translateY(8px);
}

.wqs-site-credit.is-open .wqs-site-credit__content > * {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 360ms var(--credit-ease-out), transform 360ms var(--credit-ease-out);
}

.wqs-site-credit.is-open .wqs-site-credit__name {
    transition-delay: 70ms;
}

.wqs-site-credit.is-open .wqs-site-credit__details {
    transition-delay: 140ms;
}

.wqs-site-credit__eyebrow {
    margin: 0;
    color: var(--credit-eyebrow-color, #5d5b57);
    font-family: var(--credit-eyebrow-font, var(--wqs-font-primary, Inter, sans-serif));
    font-size: var(--credit-eyebrow-size, 0.7rem);
    font-style: var(--credit-eyebrow-style, normal);
    font-weight: var(--credit-eyebrow-weight, 600);
    letter-spacing: var(--credit-eyebrow-tracking, 0.12em);
    line-height: 1.35;
    text-transform: uppercase;
    text-align: var(--credit-eyebrow-align, left);
}

.wqs-site-credit__name {
    margin: 0.45rem 36px 1.6rem 0;
    color: var(--credit-name-color, #151515);
    font-family: var(--credit-name-font, var(--wqs-font-serif, 'Playfair Display', serif));
    font-size: var(--credit-name-size, 39px);
    font-style: var(--credit-name-style, normal);
    font-weight: var(--credit-name-weight, 400);
    letter-spacing: var(--credit-name-tracking, 0);
    line-height: 1;
    text-align: var(--credit-name-align, left);
}

.wqs-site-credit__body {
    margin: -0.65rem 0 1.45rem;
    color: var(--credit-body-color, #5d5b57);
    font-family: var(--credit-body-font, var(--wqs-font-primary, Inter, sans-serif));
    font-size: var(--credit-body-size, 0.88rem);
    font-style: var(--credit-body-style, normal);
    font-weight: var(--credit-body-weight, normal);
    letter-spacing: var(--credit-body-tracking, 0);
    line-height: 1.55;
    text-align: var(--credit-body-align, left);
}

.wqs-site-credit__details {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 118px;
    gap: 1.5rem;
    align-items: end;
    padding-top: 1.35rem;
    border-top: 1px solid var(--credit-divider, rgba(21, 21, 21, 0.16));
}

.wqs-site-credit__email-block {
    min-width: 0;
}

.wqs-site-credit__email {
    display: flex;
    width: 100%;
    justify-content: var(--credit-email-justify, flex-start);
    margin-top: 0.45rem;
    color: var(--credit-email-color, #151515);
    font-family: var(--credit-email-font, var(--wqs-font-primary, Inter, sans-serif));
    font-size: var(--credit-email-size, 0.93rem);
    font-style: var(--credit-email-style, normal);
    font-weight: var(--credit-email-weight, normal);
    letter-spacing: var(--credit-email-tracking, 0);
    line-height: 1.4;
    overflow-wrap: anywhere;
    text-decoration: none;
    text-align: var(--credit-email-align, left);
}

.wqs-site-credit__email:hover {
    color: var(--credit-email-hover-color, #81271a);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.wqs-site-credit__copy {
    display: inline-flex;
    width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: var(--credit-copy-justify, flex-start);
    margin-top: 0.9rem;
    padding: 0;
    border: 0;
    color: var(--credit-copy-color, #151515);
    background: transparent;
    cursor: pointer;
    font-family: var(--credit-copy-font, var(--wqs-font-primary, Inter, sans-serif));
    font-size: var(--credit-copy-size, 0.75rem);
    font-style: var(--credit-copy-style, normal);
    font-weight: var(--credit-copy-weight, 600);
    letter-spacing: var(--credit-copy-tracking, 0.08em);
    line-height: 1;
    text-align: var(--credit-copy-align, left);
    text-transform: uppercase;
    transition: color 180ms var(--credit-ease-hover), transform 180ms var(--credit-ease-hover);
}

.wqs-site-credit__copy:hover {
    color: var(--credit-copy-hover-color, #81271a);
    transform: translateY(-1px);
}

.wqs-site-credit__wechat {
    margin: 0;
    text-align: right;
}

.wqs-site-credit__wechat img {
    display: block;
    box-sizing: border-box;
    width: 118px;
    height: 118px;
    margin: 0 0 0.6rem auto;
    background: var(--credit-qr-background, #fff);
    border: 6px solid var(--credit-qr-background, #fff);
    image-rendering: auto;
    object-fit: contain;
    opacity: 0;
    transform: scale(0.96);
}

.wqs-site-credit.is-open .wqs-site-credit__wechat img {
    opacity: 1;
    transform: scale(1);
    transition: opacity 420ms var(--credit-ease-out) 220ms, transform 420ms var(--credit-ease-out) 220ms;
}

.wqs-site-credit__wechat figcaption {
    margin: 0;
    color: var(--credit-qr-label-color, #5d5b57);
    font-family: var(--credit-qr-label-font, var(--wqs-font-primary, Inter, sans-serif));
    font-size: var(--credit-qr-label-size, 0.7rem);
    font-style: var(--credit-qr-label-style, normal);
    font-weight: var(--credit-qr-label-weight, 600);
    letter-spacing: var(--credit-qr-label-tracking, 0.12em);
    line-height: 1.35;
    text-align: var(--credit-qr-label-align, right);
    text-transform: uppercase;
}

.wqs-site-credit__label {
    margin: 0;
    color: var(--credit-email-label-color, #5d5b57);
    font-family: var(--credit-email-label-font, var(--wqs-font-primary, Inter, sans-serif));
    font-size: var(--credit-email-label-size, 0.7rem);
    font-style: var(--credit-email-label-style, normal);
    font-weight: var(--credit-email-label-weight, 600);
    letter-spacing: var(--credit-email-label-tracking, 0.12em);
    line-height: 1.35;
    text-align: var(--credit-email-label-align, left);
    text-transform: uppercase;
}

@media (max-width: 640px) {
    .wqs-site-credit__panel {
        position: fixed;
        right: 16px;
        bottom: max(16px, env(safe-area-inset-bottom));
        left: 16px;
        width: auto;
        max-height: min(520px, calc(100dvh - 32px));
        overflow-y: auto;
        transform-origin: center bottom;
    }

    .wqs-site-credit__panel::before {
        display: none;
    }

    .wqs-site-credit__name {
        font-size: min(var(--credit-name-size, 39px), 11vw);
    }
}

@media (max-width: 380px) {
    .wqs-site-credit__details {
        grid-template-columns: 1fr;
    }

    .wqs-site-credit__wechat,
    .wqs-site-credit__wechat figcaption {
        text-align: left;
    }

    .wqs-site-credit__wechat img {
        margin-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wqs-site-credit *,
    .wqs-site-credit *::before,
    .wqs-site-credit *::after {
        transition-duration: 140ms !important;
        transition-delay: 0ms !important;
        animation: none !important;
    }

    .wqs-site-credit__panel,
    .wqs-site-credit__content > *,
    .wqs-site-credit__wechat img {
        transform: none !important;
    }
}
