/* ============================================
   Venta landing — Grupo Norte
   ============================================ */

.gn-vhero {
    background: linear-gradient(160deg, var(--c-base) 0%, var(--c-base-soft) 55%, rgba(180, 101, 74, 0.07) 100%);
    padding-block: clamp(var(--s-8), 7vw, var(--s-10));
}
.gn-vhero__text { max-width: 60ch; }
.gn-vhero .gn-display { margin: 0 0 var(--s-5); }
.gn-vhero p { font-size: 1.25rem; color: var(--c-text-soft); margin-bottom: var(--s-6); }

.gn-benefit {
    padding: var(--s-6);
    background: var(--c-white);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-sm);
}
.gn-benefit h3 { color: var(--c-accent); margin-bottom: var(--s-3); }
.gn-benefit p { margin: 0; color: var(--c-text-soft); }

.gn-vserv { background: var(--c-base-soft); }
.gn-vserv__item { padding: var(--s-5); }
.gn-vserv__item h3 {
    margin-bottom: var(--s-2);
    font-family: var(--font-body);
    font-weight: var(--fw-semi);
}
.gn-vserv__item p { margin: 0; color: var(--c-text-soft); }

.gn-vcontact__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--s-8);
    align-items: start;
}
@media (max-width: 850px) {
    .gn-vcontact__grid { grid-template-columns: 1fr; gap: var(--s-7); }
}

.gn-form { display: flex; flex-direction: column; gap: var(--s-4); margin-top: var(--s-5); }
.gn-field { display: flex; flex-direction: column; gap: var(--s-2); }
.gn-field label { font-size: 0.875rem; font-weight: var(--fw-medium); }
.gn-field input,
.gn-field select,
.gn-field textarea {
    width: 100%;
    box-sizing: border-box;
    font: inherit;
    padding: var(--s-3) var(--s-4);
    border: 1px solid var(--c-border);
    border-radius: var(--r-md);
    background: var(--c-white);
    color: var(--c-text);
}
.gn-field textarea { resize: vertical; min-height: 96px; }
.gn-field input:focus,
.gn-field select:focus,
.gn-field textarea:focus {
    outline: 2px solid var(--c-accent);
    outline-offset: 1px;
    border-color: var(--c-accent);
}
.gn-check {
    display: flex;
    gap: var(--s-2);
    align-items: flex-start;
    font-size: 0.875rem;
    color: var(--c-text-soft);
}
.gn-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.gn-alert { padding: var(--s-4); border-radius: var(--r-md); margin: var(--s-4) 0; }
.gn-alert--ok { background: #E6EFE3; color: var(--c-secondary); border: 1px solid var(--c-secondary); }
.gn-alert--err { background: #F5E4DC; color: var(--c-accent-dark); border: 1px solid var(--c-accent-dark); }

/* Inline field-level validation errors */
.gn-field--err input,
.gn-field--err select,
.gn-field--err textarea {
    border-color: var(--c-accent-dark);
    box-shadow: 0 0 0 3px rgba(142, 79, 58, 0.10);
}
.gn-field__err {
    color: var(--c-accent-dark);
    font-size: 0.8125rem;
    margin-top: 6px;
    font-weight: 500;
}
.gn-check.gn-field--err { color: var(--c-accent-dark); }
.gn-check.gn-field--err .gn-field__err { margin-left: 0; }

.gn-vcontact__info {
    background: var(--c-text);
    color: var(--c-base);
    padding: var(--s-6);
    border-radius: var(--r-lg);
}
.gn-vcontact__info h3 { color: var(--c-base); margin-bottom: var(--s-5); }
.gn-vcontact__info ul { display: flex; flex-direction: column; gap: var(--s-4); margin-bottom: var(--s-5); }
.gn-vcontact__info li { display: flex; flex-direction: column; gap: 2px; font-size: 0.9375rem; }
.gn-vcontact__info strong {
    color: var(--c-gold);
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: var(--ls-wide);
}
.gn-vcontact__info a { color: var(--c-base); }
.gn-vcontact__info a:hover { color: var(--c-gold); }
