/* Newsletter Signup — Banner / Triple-Vertical zones (wide horizontal strip).
 * Mirrors the Split-Vertical envelope design: airmail border, text-left,
 * QR-right column sized to QR width + 2.5% padding each side. */

.ns-banner {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
}

.ns-banner-card {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: row;
    color: #1f2937;
    width: 86%;
    height: 80%;
    box-sizing: border-box;
    box-shadow: 0 1cqmin 2cqmin rgba(0, 0, 0, 0.15);

    /* Airmail border */
    border: 4cqmin solid transparent;
    border-radius: 0;
    background-image:
        linear-gradient(#ffffff, #ffffff),
        repeating-linear-gradient(
            45deg,
            #d92020 0 5cqmin,
            #ffffff 5cqmin 8cqmin,
            #1a4ec4 8cqmin 13cqmin,
            #ffffff 13cqmin 16cqmin
        );
    background-origin: padding-box, border-box;
    background-clip: padding-box, border-box;
}

/* Left side — text, centered. */
.ns-banner-left {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3cqmin;
    box-sizing: border-box;
    gap: 2.5cqmin;
    text-align: center;
}
.ns-banner-sender {
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    font-size: 11cqmin !important;
    color: #111827 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.1 !important;
}
.ns-banner-address {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.5cqmin;
}
.ns-banner-address-line {
    line-height: 1.7 !important;
    text-decoration: underline solid #1f2937;
    text-decoration-thickness: 0.5cqmin;
    text-underline-offset: 2.5cqmin;
}
.ns-banner-address-sub {
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 500 !important;
    font-size: 7cqmin !important;
    color: #4b5563 !important;
}
.ns-banner-address-url {
    font-family: 'Roboto Mono', monospace !important;
    font-size: 5.5cqmin !important;
    color: #F97316 !important;
    word-break: break-all;
}

/* Right side — QR stamp, hugged to its width plus 2.5% padding each side. */
.ns-banner-right {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 2.5%;
    box-sizing: content-box;
    gap: 1.5cqmin;
}
.ns-banner-qr-wrap {
    position: relative;
    width: 60cqmin;
    height: 60cqmin;
}
.ns-banner-qr-wrap::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #ffffff;
    --d: 0.9cqmin;
    -webkit-mask:
        radial-gradient(circle var(--d) at var(--d) var(--d), transparent 98%, #000) 0 0 / calc(2 * var(--d)) calc(2 * var(--d));
    mask:
        radial-gradient(circle var(--d) at var(--d) var(--d), transparent 98%, #000) 0 0 / calc(2 * var(--d)) calc(2 * var(--d));
}
.ns-banner-qr {
    position: absolute;
    inset: 1.6cqmin;
    background: #ffffff;
    border: 0.4cqmin solid #F97316;
    box-sizing: border-box;
    padding: 0.4cqmin;
    z-index: 1;
}
.ns-banner-qr svg {
    width: 100%;
    height: 100%;
    display: block;
}
.ns-banner-scan {
    text-align: center;
    font-size: 4cqmin !important;
    font-weight: 700 !important;
    font-family: 'Montserrat', sans-serif !important;
    color: #F97316 !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
