/* Formulieren — NR Agri.
   Eigen klassen met voorvoegsel nrf-, zodat er niets botst met het thema.
   Kleuren komen uit het thema als die er zijn, met een eigen terugval. */

.nrf {
    --nrf-primary: var(--nr-primary, #6CBF4A);
    --nrf-primary-dark: var(--nr-primary-dark, #46812F);
    --nrf-heading: var(--nr-secondary, #142C73);
    --nrf-border: #d5dae3;
    --nrf-text: #1f2937;
    --nrf-muted: #6b7280;
    --nrf-error: #d92d20;
    font-size: 15px;
    color: var(--nrf-text);
}

.nrf-title {
    font-size: 1.6rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--nrf-heading);
    margin: 0 0 .6rem;
}

.nrf-intro {
    margin: 0 0 1.4rem;
    line-height: 1.65;
    color: var(--nrf-muted);
}

.nrf-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem 1rem;
}

.nrf-cell {
    grid-column: span 12;
    min-width: 0;
}

@media (min-width: 768px) {
    .nrf-cell--half { grid-column: span 6; }
    .nrf-cell--third { grid-column: span 4; }
    .nrf-cell--two-thirds { grid-column: span 8; }
}

.nrf-label {
    display: block;
    font-weight: 600;
    font-size: .92rem;
    margin-bottom: .35rem;
    color: var(--nrf-heading);
}

.nrf-req {
    color: var(--nrf-error);
    margin-left: .15rem;
}

.nrf-input {
    display: block;
    width: 100%;
    padding: .7rem .85rem;
    border: 1px solid var(--nrf-border);
    border-radius: 9px;
    background: #fff;
    font-size: 1rem;
    font-family: inherit;
    color: var(--nrf-text);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.nrf-input:focus {
    outline: none;
    border-color: var(--nrf-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--nrf-primary) 22%, transparent);
}

.nrf-input::placeholder { color: #9aa3b2; }

.nrf-textarea { resize: vertical; min-height: 8rem; }

.nrf-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .7rem center;
    background-size: 1.15rem;
    padding-right: 2.4rem;
}

.nrf-file {
    padding: .55rem .6rem;
    font-size: .92rem;
}

.nrf-choices {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.nrf-choice,
.nrf-consent {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    line-height: 1.55;
    cursor: pointer;
}

.nrf-choice input,
.nrf-consent input {
    flex: none;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: .22rem;
    accent-color: var(--nrf-primary);
}

.nrf-consent {
    font-size: .9rem;
    color: var(--nrf-muted);
}

.nrf-consent a,
.nrf-intro a,
.nrf-note a {
    color: var(--nr-info, #006EB8);
    text-decoration: underline;
}

.nrf-heading {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--nrf-heading);
    margin: .8rem 0 .1rem;
    padding-top: .8rem;
    border-top: 1px solid #eceff3;
}

.nrf-paragraph { line-height: 1.65; color: var(--nrf-muted); }

.nrf-note {
    margin: .35rem 0 0;
    font-size: .82rem;
    line-height: 1.5;
    color: var(--nrf-muted);
}

.nrf-error {
    margin: .35rem 0 0;
    font-size: .84rem;
    color: var(--nrf-error);
    font-weight: 500;
}

.nrf-cell.has-error .nrf-input { border-color: var(--nrf-error); }

.nrf-actions { margin-top: .4rem; }

.nrf-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 11rem;
    padding: .8rem 1.9rem;
    border: 0;
    border-radius: 9px;
    background: var(--nrf-primary);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background .15s ease;
}

.nrf-button:hover { background: var(--nrf-primary-dark); }
.nrf-button[disabled] { opacity: .65; cursor: default; }

.nrf-message {
    margin-bottom: 1.1rem;
    padding: .85rem 1rem;
    border-radius: 9px;
    line-height: 1.55;
    font-size: .95rem;
}

.nrf-message--ok {
    background: #eff8ef;
    color: #2f6b2f;
    border-left: 3px solid var(--nrf-primary-dark);
}

.nrf-message--error {
    background: #fdf0f0;
    color: #a11c1c;
    border-left: 3px solid var(--nrf-error);
}

/* Het lokveld voor bots: onzichtbaar, maar niet met display:none —
   sommige bots slaan verborgen velden juist over. */
.nrf-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 640px) {
    .nrf-button { width: 100%; }
}
