/**
 * NDK Advanced Newsletter - Frontend Styles (PrestaShop Native & Modern Integration)
 */

#blockEmailSubscription_ndkan.block_newsletter {
    background: transparent;
    padding: 15px 0;
    margin: 15px 0;
    font-family: inherit;
}

.ndkan-newsletter-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

.ndkan-newsletter-col-title {
    padding-right: 20px;
    margin-bottom: 12px;
}

.ndkan-newsletter-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: inherit;
    margin: 0 0 6px 0;
    line-height: 1.3;
}

.ndkan-newsletter-desc {
    font-size: 0.85rem;
    color: inherit;
    opacity: 0.8;
    margin: 0;
    line-height: 1.4;
}

.ndkan-newsletter-col-form {
    display: flex;
    flex-direction: column;
}

.ndkan-form {
    width: 100%;
    max-width: 600px;
}

/* Optional fields row: First name & Last name side-by-side */
.ndkan-optional-row {
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
    width: 100% !important;
}

.ndkan-opt-field {
    flex: 1 1 0% !important;
    min-width: 0 !important;
}

.ndkan-opt-field--lang {
    flex: 0 0 auto !important;
    min-width: 110px !important;
}

.ndkan-input-opt,
.ndkan-select-opt {
    display: block !important;
    width: 100% !important;
    height: 42px !important;
    font-size: 0.9rem !important;
    padding: 0 12px !important;
    background: #ffffff !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    color: #232323 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}

.ndkan-input-opt:focus,
.ndkan-select-opt:focus {
    border-color: #24b9d7 !important;
    outline: none !important;
}

/* Main Input Group (Email + Subscribe Button on the SAME LINE) */
.ndkan-input-wrapper {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 100% !important;
    position: relative !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    margin-bottom: 8px !important;
}

.ndkan-email-input {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: 100% !important;
    height: 44px !important;
    padding: 0 14px !important;
    font-size: 0.95rem !important;
    background: #ffffff !important;
    border: 1px solid #ced4da !important;
    border-right: none !important;
    border-radius: 4px 0 0 4px !important;
    color: #232323 !important;
    margin: 0 !important;
    outline: none !important;
    box-sizing: border-box !important;
}

.ndkan-email-input:focus {
    border-color: #24b9d7 !important;
    z-index: 2;
}

.ndkan-submit-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: 44px !important;
    padding: 0 22px !important;
    background: #24b9d7 !important;
    border: 1px solid #24b9d7 !important;
    border-radius: 0 4px 4px 0 !important;
    color: #ffffff !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
    transition: background-color 0.2s ease, border-color 0.2s ease !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.ndkan-submit-btn:hover {
    background: #1e9fb9 !important;
    border-color: #1e9fb9 !important;
}

.ndkan-submit-btn:disabled,
.ndkan-submit-btn.is-loading {
    background: #7bd4e6 !important;
    border-color: #7bd4e6 !important;
    cursor: not-allowed !important;
}

/* Spinner */
.ndkan-spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    border-top-color: #ffffff;
    animation: ndkan-spin 0.8s linear infinite;
}

.ndkan-submit-btn.is-loading .ndkan-btn-text {
    display: none;
}

.ndkan-submit-btn.is-loading .ndkan-spinner {
    display: inline-block;
}

@keyframes ndkan-spin {
    to { transform: rotate(360deg); }
}

/* Consents Block */
.ndkan-consents-block {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ndkan-checkbox-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    font-size: 0.84rem !important;
    color: inherit !important;
    opacity: 0.88;
    margin: 2px 0 !important;
    cursor: pointer !important;
    line-height: 1.35 !important;
    user-select: none !important;
}

.ndkan-real-checkbox {
    margin: 3px 0 0 0 !important;
    cursor: pointer !important;
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
    accent-color: #24b9d7 !important;
}

.ndkan-check-label {
    flex: 1;
}

/* Feedback message */
.ndkan-feedback {
    margin-top: 10px;
    animation: ndkan-fade-in 0.2s ease-in-out;
}

@keyframes ndkan-fade-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.ndkan-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 4px;
    font-size: 0.9rem;
    line-height: 1.35;
}

.ndkan-alert-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.ndkan-alert-content {
    flex: 1;
    font-weight: 500;
}

.ndkan-alert--success {
    background: #e8f8f0 !important;
    border: 1px solid #a3e6cd !important;
    color: #0d6832 !important;
}

.ndkan-alert--error {
    background: #fde8e8 !important;
    border: 1px solid #f8b4b4 !important;
    color: #9b1c1c !important;
}

.ndkan-alert--info {
    background: #ebf5ff !important;
    border: 1px solid #b4d3f8 !important;
    color: #1e429f !important;
}

/* Customer account pages */
.ndkan-consent-page {
    max-width: 720px;
    margin: 2rem auto;
}

.ndkan-consent-card {
    background: #ffffff;
    padding: 1.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 1.25rem;
}

.ndkan-status {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.85rem;
    font-weight: 600;
}

.ndkan-status--0 {
    background: #fef3c7;
    color: #92400e;
}

.ndkan-status--1 {
    background: #d1fae5;
    color: #065f46;
}

.ndkan-status--2 {
    background: #fee2e2;
    color: #991b1b;
}

.ndkan-confirm-page,
.ndkan-unsubscribe-page {
    max-width: 600px;
    margin: 3rem auto;
    text-align: center;
    background: #ffffff;
    padding: 2.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}
