.subscribe-popup__link,
.subscribe-popup__btn {
    display: inline-block;
    vertical-align: middle;
    margin-right: 1rem;
    padding: 1rem 2rem;
    border: 1px solid #F38375;
    background-color: white;
    transition: background .2s;
    font-family: 'Nominee-ExtraBoldExtended';
    font-size: 1.2rem;
    line-height: 1;
    color: #F38375;
    cursor: pointer;
}
.subscribe-popup__link:hover,
.subscribe-popup__btn:hover {
    background-color: #F38375;
    color: white;
}

.m-newsletter__form input::selection,
.code-input::selection {
    background: #ffffff4f;
}

.m-newsletter__form input::-moz-selection,
.code-input::-moz-selection {
    background: #ffffff4f;
}

.subscribe-popup .code-inputs {
    margin: 20px 0;
}

.subscribe-popup .code-input {
    width: 44px;
    height: 52px;
    border: 2px solid #ddd;
    border-radius: 8px;
    text-align: center;
    font-size: 24px;
    font-weight: 500;
    color: #333;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
    outline: none;
    -moz-appearance: textfield;
    caret-color: #F38375;
}

.subscribe-popup .code-input::-webkit-outer-spin-button,
.subscribe-popup .code-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.subscribe-popup .code-input:focus {
    border-color: #F38375;
}

.subscribe-popup .code-input:valid {
    border-color: #4CAF50;
    background: #f1f8e9;
}

.subscribe-popup .code-input.error {
    border-color: #f44336;
    box-shadow: 0 0 0 3px rgba(244, 67, 54, 0.15);
    animation: codeShake 0.3s ease-in-out;
}

.subscribe-popup .code-input::placeholder {
    color: #ccc;
    font-size: 18px;
}

.subscribe-popup .code-input:hover:not(:focus):not(.error) {
    border-color: #bbb;
}

@keyframes codeShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-5px); }
}