/* ════════════════════════════════════════════════════════════════
   NML — Global Form System
   Tokens from global.css:
     --color-text-primary   #0B101F
     --color-text-secondary #303D60
     --color-text-tertiary  #8A9BCF
     --color-line           #D5DAFA
     --color-line-blue      #889CF1
     --color-bg             #FFFFFF
     --color-bg-secondary   #F5F6FA
     --color-error          #F44336
     --color-error-dark     #D32F2F
     --color-warning        #FF9800
     --color-warning-dark   #F57C00
     --color-success        #4CAF50
     --color-success-dark   #388E3C
   ════════════════════════════════════════════════════════════════ */

/* ── Field wrapper ───────────────────────────────────────────── */
.nml-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* ── Label ───────────────────────────────────────────────────── */
.nml-field__label {
    display: block;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    color: #303D60;
}

.nml-field__required {
    color: var(--color-error);
    margin-left: 2px;
}

/* ── Base input / textarea / select ─────────────────────────── */
.nml-input,
.nml-textarea,
.nml-select {
    display: block;
    width: 100%;
    height: 40px;
    padding: 10px 12px;
    background: #FFFFFF;
    border: 1px solid #D5DAFA;
    border-radius: 8px;
    box-shadow: 0 0 0 0.5px transparent;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    color: #8A9BCF;
    outline: none;
    transition: all 0.3s;
    appearance: none;
    -webkit-appearance: none;
}

.nml-textarea {
    min-height: 120px;
    resize: vertical;
}

/* ── Placeholder ─────────────────────────────────────────────── */
.nml-input::placeholder,
.nml-textarea::placeholder,
.nml-select::placeholder {
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    color: #8A9BCF;
}

/* ── Hover ───────────────────────────────────────────────────── */
.nml-input:hover:not(:disabled):not(:focus),
.nml-textarea:hover:not(:disabled):not(:focus),
.nml-select:hover:not(:disabled):not(:focus) {
    border-color: var(--color-line-blue);
}

/* ── Focused ─────────────────────────────────────────────────── */
.nml-input:hover,
.nml-textarea:hover,
.nml-select:hover {
    border-color: #889CF1;
    color: #8A9BCF;
}

.nml-input:focus,
.nml-textarea:focus,
.nml-select:focus {
    border-color: #889CF1;
    box-shadow: 0 0 0 0.5px #889CF1;
    color: #0B101F;
}

/* ── Disabled ────────────────────────────────────────────────── */
.nml-input:disabled,
.nml-textarea:disabled,
.nml-select:disabled {
    cursor: not-allowed;
    background: rgba(22, 47, 111, 0.04);
    border: 1px solid #D5DAFA;
    border-radius: 8px;
}

.nml-input:disabled::placeholder,
.nml-textarea:disabled::placeholder {
    color: var(--color-text-tertiary);
}

/* ════════════════════════════════════════════════════════════════
   Validation states — applied on the .nml-field wrapper
   ════════════════════════════════════════════════════════════════ */

/* ── Error ───────────────────────────────────────────────────── */
.nml-field--error .nml-input,
.nml-field--error .nml-textarea,
.nml-field--error .nml-select {
    border-color: var(--color-error);
}

.nml-field--error .nml-input:hover,
.nml-field--error .nml-textarea:hover,
.nml-field--error .nml-select:hover {
    border-color: var(--color-error-dark);
}

.nml-field--error .nml-input:hover:not(:disabled):not(:focus),
.nml-field--error .nml-textarea:hover:not(:disabled):not(:focus),
.nml-field--error .nml-select:hover:not(:disabled):not(:focus) {
    border-color: var(--color-error-dark);
}

.nml-field--error .nml-input:focus,
.nml-field--error .nml-textarea:focus,
.nml-field--error .nml-select:focus {
    border-color: var(--color-error);
    box-shadow: 0 0 0 0.5px var(--color-error);
}

/* ── Warning ─────────────────────────────────────────────────── */
.nml-field--warning .nml-input,
.nml-field--warning .nml-textarea,
.nml-field--warning .nml-select {
    border-color: var(--color-warning);
}

.nml-field--warning .nml-input:focus,
.nml-field--warning .nml-textarea:focus,
.nml-field--warning .nml-select:focus {
    border-color: var(--color-warning);
}

/* ── Success ─────────────────────────────────────────────────── */
.nml-field--success .nml-input,
.nml-field--success .nml-textarea,
.nml-field--success .nml-select {
    border-color: var(--color-success);
}

.nml-field--success .nml-input:focus,
.nml-field--success .nml-textarea:focus,
.nml-field--success .nml-select:focus {
    border-color: var(--color-success);
}

/* ── Info ────────────────────────────────────────────────────── */
.nml-field--info .nml-input,
.nml-field--info .nml-textarea,
.nml-field--info .nml-select {
    border-color: var(--color-text-secondary);
}

.nml-field--info .nml-input:focus,
.nml-field--info .nml-textarea:focus,
.nml-field--info .nml-select:focus {
    border-color: var(--color-text-secondary);
}

/* ════════════════════════════════════════════════════════════════
   Hint / feedback messages below fields
   ════════════════════════════════════════════════════════════════ */
.nml-field__hint {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
}

.nml-field__hint span:last-child {
    margin-top: 2px;
}

/* Icon circle shared base */
.nml-field__hint-icon {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Error hint */
.nml-field--error   .nml-field__hint { color: var(--color-error); }
.nml-field--warning .nml-field__hint { color: var(--color-warning); }
.nml-field--success .nml-field__hint { color: var(--color-success-dark); }
.nml-field--info    .nml-field__hint { color: var(--color-text-secondary); }

/* ── Hint icons (inline SVG via mask-image) ─────────────────── */
.nml-field__hint-icon--error {
    background-color: var(--color-error);
    -webkit-mask-image: url("/wp-content/uploads/2026/06/Icon-1-3.svg");
    mask-image: url("/wp-content/uploads/2026/06/Icon-1-3.svg");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.nml-field__hint-icon--warning {
    background-color: var(--color-warning);
    -webkit-mask-image: url("/wp-content/uploads/2026/06/Icon-2-2.svg");
    mask-image: url("/wp-content/uploads/2026/06/Icon-2-2.svg");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.nml-field__hint-icon--success {
    background-color: var(--color-success-dark);
    -webkit-mask-image: url("/wp-content/uploads/2026/06/Icon-3-2.svg");
    mask-image: url("/wp-content/uploads/2026/06/Icon-3-2.svg");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.nml-field__hint-icon--info {
    background-color: var(--color-text-secondary);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='7' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M8 7v5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='5' r='.75' fill='currentColor'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='7' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M8 7v5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='5' r='.75' fill='currentColor'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* ════════════════════════════════════════════════════════════════
   Status / alert banners  (form-level feedback)
   Usage: <div class="nml-alert nml-alert--error">…</div>
   ════════════════════════════════════════════════════════════════ */
.nml-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 8px;
    font-family: 'Fixel Text', sans-serif;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
}

.nml-alert__icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Error */
.nml-alert--error {
    background: rgba(244, 67, 54, 0.08);
    border: 1px solid rgba(244, 67, 54, 0.40);
    color: var(--color-error-dark);
}
.nml-alert--error .nml-alert__icon {
    background-color: var(--color-error);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M9 5.5v4' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='12.5' r='.875' fill='currentColor'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M9 5.5v4' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='12.5' r='.875' fill='currentColor'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* Warning */
.nml-alert--warning {
    background: rgba(255, 152, 0, 0.08);
    border: 1px solid rgba(255, 152, 0, 0.40);
    color: var(--color-warning-dark);
}
.nml-alert--warning .nml-alert__icon {
    background-color: var(--color-warning);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 2L16.5 15H1.5L9 2Z' stroke='currentColor' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 7v3.5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='13' r='.875' fill='currentColor'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 2L16.5 15H1.5L9 2Z' stroke='currentColor' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 7v3.5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='13' r='.875' fill='currentColor'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* Success */
.nml-alert--success {
    background: rgba(76, 175, 80, 0.08);
    border: 1px solid rgba(76, 175, 80, 0.40);
    color: var(--color-success-dark);
}
.nml-alert--success .nml-alert__icon {
    background-color: var(--color-success-dark);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M5.5 9l2.5 2.5 5-5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M5.5 9l2.5 2.5 5-5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* Info */
.nml-alert--info {
    background: rgba(48, 61, 96, 0.06);
    border: 1px solid rgba(48, 61, 96, 0.25);
    color: var(--color-text-secondary);
}
.nml-alert--info .nml-alert__icon {
    background-color: var(--color-text-secondary);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M9 8v5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='5.5' r='.875' fill='currentColor'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9' cy='9' r='8' stroke='currentColor' stroke-width='1.5'/%3E%3Cpath d='M9 8v5' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='5.5' r='.875' fill='currentColor'/%3E%3C/svg%3E");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

@media (max-width: 991px) {
    .nml-input,
    .nml-textarea,
    .nml-select {
        height: 44px;
    }
}