/* ============================================================
   Retrobay Buyback — Frontend styles
   ------------------------------------------------------------
   Estrategia de especificidad: TODO se anida bajo un root scope
   (.nb-buyback-wizard, .nb-buyback-myaccount, .nb-plan-renove)
   y combina con descendiente (.scope .clase) para vencer estilos
   del tema de WordPress sin recurrir a !important.

   Tipografia: usamos un display serif (Georgia fallback) para
   titulares y system-stack sans para cuerpo. Si quieres usar
   Playfair Display + Inter, sobrescribe las variables --nb-font-*
   en el CSS de tu tema (ver final del archivo).
   ============================================================ */

/* ============================================================
   1. Tokens de diseno (variables CSS)
   ============================================================ */
.nb-buyback-wizard,
.nb-buyback-myaccount,
.nb-plan-renove,
.nb-plan-renove-block,
.nb-plan-renove-thankyou {
    --nb-bg: #ffffff;
    --nb-bg-soft: #f7f7f8;
    --nb-bg-muted: #efeff2;
    --nb-text: #1a1a1a;
    --nb-text-muted: #6b6b6b;
    --nb-text-soft: #8a8a8e;
    --nb-border: #e5e5e8;
    --nb-border-strong: #1a1a1a;

    --nb-primary: #1a1a1a;
    --nb-primary-hover: #000000;
    --nb-on-primary: #ffffff;

    --nb-accent: #6c3fb8;
    --nb-accent-hover: #5a32a0;
    --nb-accent-soft: #f4f1ff;
    --nb-accent-border: #d9c8f7;

    --nb-pop: #e8ff7a;
    --nb-pop-soft: #f4ffd0;

    --nb-success: #1f6b3a;
    --nb-success-bg: #e9f8ee;
    --nb-success-border: #a8d8b9;
    --nb-warning: #7a5a00;
    --nb-warning-bg: #fff8e1;
    --nb-warning-border: #f0d680;
    --nb-error: #8a1d1d;
    --nb-error-bg: #fdecec;
    --nb-error-border: #f3b8b8;
    --nb-info: #1d3a8a;
    --nb-info-bg: #eef4ff;
    --nb-info-border: #bcd1ff;

    --nb-radius: 14px;
    --nb-radius-sm: 10px;
    --nb-radius-pill: 999px;

    --nb-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    --nb-shadow-md: 0 4px 16px rgba(0, 0, 0, .06);
    --nb-shadow-lg: 0 12px 32px rgba(0, 0, 0, .08);

    --nb-font-display: Georgia, "Times New Roman", "Liberation Serif", serif;
    --nb-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    --nb-transition: 150ms ease;
}

/* ============================================================
   2. Reset scoped
   ============================================================ */
.nb-buyback-wizard,
.nb-buyback-wizard *,
.nb-buyback-wizard *::before,
.nb-buyback-wizard *::after,
.nb-buyback-myaccount,
.nb-buyback-myaccount *,
.nb-buyback-myaccount *::before,
.nb-buyback-myaccount *::after {
    box-sizing: border-box;
}

.nb-buyback-wizard,
.nb-buyback-myaccount {
    font-family: var(--nb-font-body);
    color: var(--nb-text);
    line-height: 1.55;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Neutralizar herencias del tema */
.nb-buyback-wizard h1,
.nb-buyback-wizard h2,
.nb-buyback-wizard h3,
.nb-buyback-wizard h4,
.nb-buyback-wizard h5,
.nb-buyback-wizard h6,
.nb-buyback-myaccount h2,
.nb-buyback-myaccount h3,
.nb-buyback-myaccount h4 {
    font-family: var(--nb-font-display);
    font-weight: 700;
    color: var(--nb-text);
    line-height: 1.2;
    margin: 0;
    letter-spacing: -.01em;
    text-transform: none;
    text-align: left;
}

.nb-buyback-wizard p,
.nb-buyback-wizard ul,
.nb-buyback-wizard ol,
.nb-buyback-wizard dl,
.nb-buyback-myaccount p,
.nb-buyback-myaccount ul,
.nb-buyback-myaccount ol,
.nb-buyback-myaccount dl {
    margin: 0;
    color: var(--nb-text);
}

.nb-buyback-wizard ul,
.nb-buyback-wizard ol {
    padding-left: 0;
    list-style: none;
}

.nb-buyback-wizard a,
.nb-buyback-myaccount a {
    color: var(--nb-text);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--nb-transition);
}

.nb-buyback-wizard a:hover,
.nb-buyback-myaccount a:hover {
    color: var(--nb-accent);
}

.nb-buyback-wizard img {
    max-width: 100%;
    height: auto;
    display: block;
}

.nb-buyback-wizard button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

/* ============================================================
   3. Container del wizard
   ============================================================ */
.nb-buyback-wizard {
    max-width: 1100px;
    margin: 32px auto 64px;
    padding: 0 16px;
    background: transparent;
}

.nb-buyback-wizard .nb-loader {
    padding: 64px 0;
    text-align: center;
    color: var(--nb-text-muted);
}

/* ============================================================
   4. Botones
   ============================================================ */
.nb-buyback-wizard .nb-btn-primary,
.nb-buyback-wizard .nb-btn-secondary,
.nb-buyback-myaccount .nb-btn-primary,
.nb-buyback-myaccount .nb-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 24px;
    border-radius: var(--nb-radius-sm);
    font-family: var(--nb-font-body);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--nb-transition), color var(--nb-transition), border-color var(--nb-transition), transform var(--nb-transition);
    border: 1px solid transparent;
}

.nb-buyback-wizard .nb-btn-primary,
.nb-buyback-myaccount .nb-btn-primary {
    background: var(--nb-primary);
    color: var(--nb-on-primary);
    border-color: var(--nb-primary);
}

.nb-buyback-wizard .nb-btn-primary:hover,
.nb-buyback-myaccount .nb-btn-primary:hover {
    background: var(--nb-primary-hover);
    border-color: var(--nb-primary-hover);
    color: var(--nb-on-primary);
}

.nb-buyback-wizard .nb-btn-secondary,
.nb-buyback-myaccount .nb-btn-secondary {
    background: var(--nb-bg);
    color: var(--nb-text);
    border-color: var(--nb-border-strong);
}

.nb-buyback-wizard .nb-btn-secondary:hover,
.nb-buyback-myaccount .nb-btn-secondary:hover {
    background: var(--nb-bg-soft);
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-btn-primary[disabled],
.nb-buyback-wizard .nb-btn-secondary[disabled] {
    opacity: .5;
    cursor: not-allowed;
}

.nb-buyback-wizard .nb-btn-primary:focus-visible,
.nb-buyback-wizard .nb-btn-secondary:focus-visible {
    outline: 2px solid var(--nb-accent);
    outline-offset: 2px;
}

/* ============================================================
   5. Wizard: home / hero / category grid
   ============================================================ */
.nb-buyback-wizard .nb-wizard-home {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.nb-buyback-wizard .nb-wizard-hero {
    text-align: center;
    padding: 24px 0 8px;
}

.nb-buyback-wizard .nb-wizard-hero h1 {
    font-family: var(--nb-font-display);
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700;
    margin-bottom: 12px;
}

.nb-buyback-wizard .nb-wizard-hero p {
    font-size: 1.15rem;
    color: var(--nb-text-muted);
    max-width: 560px;
    margin: 0 auto;
}

.nb-buyback-wizard .nb-wizard-section-title {
    font-family: var(--nb-font-body);
    font-size: 1rem;
    font-weight: 600;
    color: var(--nb-text);
    margin-bottom: 16px;
}

.nb-buyback-wizard .nb-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

.nb-buyback-wizard .nb-category-card {
    background: var(--nb-pop);
    border: 0;
    border-radius: var(--nb-radius);
    padding: 20px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    transition: transform var(--nb-transition), box-shadow var(--nb-transition);
    text-align: center;
    color: var(--nb-text);
    overflow: hidden;
}

.nb-buyback-wizard .nb-category-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--nb-shadow-md);
}

.nb-buyback-wizard .nb-category-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--nb-radius-sm);
    background: var(--nb-bg);
}

.nb-buyback-wizard .nb-category-card span {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-trust-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px;
    padding: 16px 20px;
    background: var(--nb-bg-soft);
    border-radius: var(--nb-radius);
    font-size: .92rem;
    color: var(--nb-text-muted);
}

.nb-buyback-wizard .nb-trust-row > div {
    padding: 4px 0;
}

/* ============================================================
   6. Wizard: layout dos columnas
   ============================================================ */
.nb-buyback-wizard .nb-wizard-grid {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 48px;
    align-items: start;
    padding: 16px 0;
}

@media (max-width: 860px) {
    .nb-buyback-wizard .nb-wizard-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

.nb-buyback-wizard .nb-wizard-left {
    position: sticky;
    top: 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.nb-buyback-wizard .nb-wizard-right {
    min-height: 280px;
    padding: 8px 0;
}

.nb-buyback-wizard .nb-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 0;
    padding: 0;
    color: var(--nb-text);
    font-family: var(--nb-font-body);
    font-size: .95rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    align-self: flex-start;
}

.nb-buyback-wizard .nb-back:hover {
    color: var(--nb-accent);
}

/* Resumen */
.nb-buyback-wizard .nb-summary {
    background: var(--nb-bg);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius);
    padding: 20px 24px;
}

.nb-buyback-wizard .nb-summary h4 {
    font-family: var(--nb-font-body);
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--nb-text-muted);
    margin: 0 0 16px;
}

.nb-buyback-wizard .nb-summary dl {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.nb-buyback-wizard .nb-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    font-size: .95rem;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--nb-border);
}

.nb-buyback-wizard .nb-summary-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.nb-buyback-wizard .nb-summary-row dt {
    color: var(--nb-text-muted);
    font-weight: 400;
}

.nb-buyback-wizard .nb-summary-row dd {
    margin: 0;
    font-weight: 600;
    text-align: right;
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-summary-empty {
    color: var(--nb-text-soft);
    font-style: italic;
}

.nb-buyback-wizard .nb-summary-empty p {
    color: inherit;
}

/* ============================================================
   7. Wizard: pregunta + opciones
   ============================================================ */
.nb-buyback-wizard .nb-question {
    font-family: var(--nb-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--nb-text);
    margin-bottom: 20px;
}

.nb-buyback-wizard .nb-help {
    font-size: .95rem;
    color: var(--nb-text-muted);
    margin-bottom: 24px;
    max-width: 640px;
}

.nb-buyback-wizard .nb-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 520px;
}

.nb-buyback-wizard .nb-options-row {
    flex-direction: row;
    flex-wrap: wrap;
}

.nb-buyback-wizard .nb-options-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 640px;
}

.nb-buyback-wizard .nb-option {
    background: var(--nb-bg);
    color: var(--nb-text);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-sm);
    padding: 16px 20px;
    cursor: pointer;
    font-family: var(--nb-font-body);
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    transition: border-color var(--nb-transition), background var(--nb-transition), transform var(--nb-transition);
    flex: 1 1 120px;
    min-width: 120px;
}

.nb-buyback-wizard .nb-option:hover {
    border-color: var(--nb-border-strong);
    background: var(--nb-bg-soft);
}

.nb-buyback-wizard .nb-option:focus-visible {
    outline: 2px solid var(--nb-accent);
    outline-offset: 2px;
}

.nb-buyback-wizard .nb-option-card {
    background: var(--nb-bg);
    color: var(--nb-text);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-sm);
    padding: 18px 22px;
    cursor: pointer;
    font-family: var(--nb-font-body);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 6px;
    transition: border-color var(--nb-transition), background var(--nb-transition);
}

.nb-buyback-wizard .nb-option-card:hover {
    border-color: var(--nb-border-strong);
    background: var(--nb-bg-soft);
}

.nb-buyback-wizard .nb-option-card strong {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-option-card small {
    font-size: .9rem;
    color: var(--nb-text-muted);
    line-height: 1.4;
}

.nb-buyback-wizard .nb-checklist {
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
    color: var(--nb-text-muted);
    font-size: .95rem;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.nb-buyback-wizard .nb-checklist li {
    padding-left: 4px;
}

/* ============================================================
   8. Wizard: modelos grid
   ============================================================ */
.nb-buyback-wizard .nb-models-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}

.nb-buyback-wizard .nb-model-card {
    background: var(--nb-bg);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-sm);
    padding: 14px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    text-align: center;
    transition: border-color var(--nb-transition), transform var(--nb-transition), box-shadow var(--nb-transition);
}

.nb-buyback-wizard .nb-model-card:hover {
    border-color: var(--nb-border-strong);
    transform: translateY(-2px);
    box-shadow: var(--nb-shadow-md);
}

.nb-buyback-wizard .nb-model-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--nb-radius-sm);
    background: var(--nb-bg-soft);
}

.nb-buyback-wizard .nb-model-name {
    font-weight: 700;
    font-size: .95rem;
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-model-price {
    color: var(--nb-text-muted);
    font-size: .85rem;
}

/* ============================================================
   8b. Wizard: subida de fotos
   ============================================================ */
.nb-buyback-wizard .nb-photo-uploader {
    margin-bottom: 24px;
    padding: 20px;
    background: var(--nb-bg-soft);
    border: 1px dashed var(--nb-border-strong);
    border-radius: var(--nb-radius);
}

.nb-buyback-wizard .nb-photo-uploader[data-state="full"] {
    border-style: solid;
    border-color: var(--nb-success-border);
    background: var(--nb-success-bg);
}

.nb-buyback-wizard .nb-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
}

.nb-buyback-wizard .nb-photo-thumb {
    position: relative;
    aspect-ratio: 1;
    border-radius: var(--nb-radius-sm);
    overflow: hidden;
    border: 1px solid var(--nb-border);
    background: var(--nb-bg);
}

.nb-buyback-wizard .nb-photo-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.nb-buyback-wizard .nb-photo-remove {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    border: 0;
    cursor: pointer;
    font-size: 1.2rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background var(--nb-transition);
}

.nb-buyback-wizard .nb-photo-remove:hover {
    background: var(--nb-error);
}

.nb-buyback-wizard .nb-photo-add {
    aspect-ratio: 1;
    border-radius: var(--nb-radius-sm);
    border: 2px dashed var(--nb-border);
    background: var(--nb-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    color: var(--nb-text-muted);
    transition: border-color var(--nb-transition), color var(--nb-transition), background var(--nb-transition);
    padding: 12px;
    text-align: center;
}

.nb-buyback-wizard .nb-photo-add:hover,
.nb-buyback-wizard .nb-photo-add:focus-within {
    border-color: var(--nb-accent);
    color: var(--nb-accent);
    background: var(--nb-accent-soft);
    outline: none;
}

.nb-buyback-wizard .nb-photo-add-icon {
    font-size: 2rem;
    line-height: 1;
    font-weight: 300;
}

.nb-buyback-wizard .nb-photo-add-label {
    font-size: .85rem;
    font-weight: 600;
}

.nb-buyback-wizard .nb-photo-status {
    margin: 12px 0 0;
    font-size: .9rem;
    color: var(--nb-text-muted);
    min-height: 1.2em;
}

.nb-buyback-wizard .nb-photo-status.is-error {
    color: var(--nb-error);
}

.nb-buyback-wizard .nb-photo-actions {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    flex-wrap: wrap;
}

/* ============================================================
   9. Wizard: oferta
   ============================================================ */
.nb-buyback-wizard .nb-offer {
    max-width: 640px;
    margin: 32px auto;
    text-align: center;
    background: var(--nb-bg);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius);
    padding: 40px 32px;
    box-shadow: var(--nb-shadow);
}

.nb-buyback-wizard .nb-offer header {
    color: var(--nb-text-muted);
    font-family: var(--nb-font-body);
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 16px;
}

.nb-buyback-wizard .nb-offer h2 {
    font-family: var(--nb-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0 0 12px;
    text-align: center;
}

.nb-buyback-wizard .nb-offer-price {
    font-family: var(--nb-font-display);
    font-size: clamp(2.8rem, 7vw, 4.5rem);
    font-weight: 700;
    color: var(--nb-accent);
    margin: 8px 0 12px;
    line-height: 1;
    letter-spacing: -.02em;
}

.nb-buyback-wizard .nb-offer-sub {
    color: var(--nb-text-muted);
    font-size: .95rem;
    margin: 0 0 24px;
}

.nb-buyback-wizard .nb-offer .nb-summary {
    text-align: left;
    margin: 24px 0;
}

.nb-buyback-wizard .nb-offer-perks {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    padding: 16px 0;
    border-top: 1px solid var(--nb-border);
    border-bottom: 1px solid var(--nb-border);
    margin: 24px 0;
    font-size: .9rem;
    color: var(--nb-text-muted);
}

.nb-buyback-wizard .nb-offer-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 16px;
    flex-wrap: wrap;
}

/* ============================================================
   10. Wizard: formulario datos del cliente
   ============================================================ */
.nb-buyback-wizard .nb-customer-form {
    max-width: 720px;
    margin: 0 auto;
    background: var(--nb-bg);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius);
    padding: 32px;
}

.nb-buyback-wizard .nb-customer-form h2 {
    margin: 0 0 8px;
    font-size: clamp(1.5rem, 3vw, 2rem);
}

.nb-buyback-wizard .nb-customer-form h3 {
    margin: 24px 0 12px;
    font-family: var(--nb-font-body);
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--nb-text-muted);
}

.nb-buyback-wizard .nb-form-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.nb-buyback-wizard .nb-form-row label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 200px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--nb-text-muted);
}

.nb-buyback-wizard .nb-form-row label.nb-grow {
    flex: 2 1 300px;
}

.nb-buyback-wizard .nb-form-row input {
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-sm);
    padding: 12px 14px;
    font-family: var(--nb-font-body);
    font-size: 1rem;
    color: var(--nb-text);
    background: var(--nb-bg);
    transition: border-color var(--nb-transition), box-shadow var(--nb-transition);
}

.nb-buyback-wizard .nb-form-row input:focus {
    outline: none;
    border-color: var(--nb-accent);
    box-shadow: 0 0 0 3px var(--nb-accent-soft);
}

.nb-buyback-wizard .nb-form-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 24px;
    flex-wrap: wrap;
}

/* ============================================================
   11. Wizard: confirmacion
   ============================================================ */
.nb-buyback-wizard .nb-confirmation {
    max-width: 720px;
    margin: 32px auto;
    text-align: center;
    padding: 24px;
}

.nb-buyback-wizard .nb-confirmation h2 {
    font-family: var(--nb-font-display);
    font-size: clamp(2rem, 4vw, 2.6rem);
    margin: 0 0 12px;
    text-align: center;
}

.nb-buyback-wizard .nb-confirmation > p {
    color: var(--nb-text-muted);
    font-size: 1.05rem;
}

.nb-buyback-wizard .nb-conf-card {
    background: var(--nb-accent-soft);
    border: 1px solid var(--nb-accent-border);
    border-radius: var(--nb-radius);
    padding: 24px 28px;
    text-align: left;
    margin: 24px 0;
}

.nb-buyback-wizard .nb-conf-card h3 {
    margin: 0 0 16px;
    font-family: var(--nb-font-body);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--nb-text);
    text-transform: none;
    letter-spacing: 0;
}

.nb-buyback-wizard .nb-conf-card ol {
    counter-reset: nb-step;
    list-style: none;
    padding-left: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.nb-buyback-wizard .nb-conf-card ol li {
    counter-increment: nb-step;
    position: relative;
    padding-left: 40px;
    color: var(--nb-text);
    font-size: .98rem;
    line-height: 1.5;
}

.nb-buyback-wizard .nb-conf-card ol li::before {
    content: counter(nb-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--nb-bg);
    border: 1px solid var(--nb-accent-border);
    color: var(--nb-accent);
    font-family: var(--nb-font-body);
    font-weight: 700;
    font-size: .9rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nb-buyback-wizard .nb-conf-summary {
    background: var(--nb-bg);
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius);
    padding: 20px 24px;
    margin-bottom: 24px;
    text-align: left;
}

.nb-buyback-wizard .nb-conf-summary p {
    margin: 6px 0;
    font-size: .95rem;
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-conf-summary code {
    background: var(--nb-bg-soft);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: .92rem;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    color: var(--nb-text);
}

.nb-buyback-wizard .nb-conf-actions {
    margin: 24px 0;
}

.nb-buyback-wizard .nb-conf-note {
    color: var(--nb-text-muted);
    font-size: .9rem;
}

/* ============================================================
   12. Wizard: pantallas terminales (no elegible / tech / login)
   ============================================================ */
.nb-buyback-wizard .nb-ineligible,
.nb-buyback-wizard .nb-tech-review,
.nb-buyback-wizard .nb-login-required {
    max-width: 600px;
    margin: 32px auto;
    text-align: center;
    padding: 40px 32px;
    background: var(--nb-bg-soft);
    border-radius: var(--nb-radius);
}

.nb-buyback-wizard .nb-ineligible h2,
.nb-buyback-wizard .nb-tech-review h2,
.nb-buyback-wizard .nb-login-required h2 {
    margin: 0 0 16px;
    font-size: clamp(1.5rem, 3vw, 2rem);
    text-align: center;
}

.nb-buyback-wizard .nb-ineligible p,
.nb-buyback-wizard .nb-tech-review p,
.nb-buyback-wizard .nb-login-required p {
    color: var(--nb-text-muted);
    margin-bottom: 12px;
}

.nb-buyback-wizard .nb-ineligible button,
.nb-buyback-wizard .nb-tech-review button,
.nb-buyback-wizard .nb-login-required a {
    margin-top: 16px;
}

/* Pantalla de error global */
.nb-buyback-wizard .nb-error {
    max-width: 520px;
    margin: 32px auto;
    padding: 24px;
    border: 1px solid var(--nb-error-border);
    background: var(--nb-error-bg);
    border-radius: var(--nb-radius);
    text-align: center;
}

.nb-buyback-wizard .nb-error h3 {
    margin: 0 0 8px;
    color: var(--nb-error);
    font-family: var(--nb-font-body);
    font-size: 1.1rem;
    font-weight: 700;
}

.nb-buyback-wizard .nb-error p {
    color: var(--nb-error);
    margin: 0 0 16px;
}

/* ============================================================
   13. My Account - lista de renoves
   ============================================================ */
.nb-buyback-myaccount {
    max-width: 100%;
}

.nb-buyback-myaccount .nb-myaccount-title {
    font-family: var(--nb-font-display);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin: 0 0 24px;
}

.nb-buyback-myaccount .nb-renoves-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.nb-buyback-myaccount .nb-renove-card {
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius);
    padding: 24px;
    background: var(--nb-bg);
    transition: border-color var(--nb-transition), box-shadow var(--nb-transition);
}

.nb-buyback-myaccount .nb-renove-card:hover {
    border-color: var(--nb-border-strong);
    box-shadow: var(--nb-shadow-md);
}

.nb-buyback-myaccount .nb-renove-card.is-highlight {
    border-color: var(--nb-accent);
    box-shadow: 0 0 0 3px var(--nb-accent-soft);
}

.nb-buyback-myaccount .nb-renove-card h3 {
    margin: 0 0 12px;
    font-family: var(--nb-font-display);
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.nb-buyback-myaccount .nb-renove-state {
    display: inline-block;
    background: var(--nb-bg-muted);
    color: var(--nb-text);
    padding: 4px 12px;
    border-radius: var(--nb-radius-pill);
    font-family: var(--nb-font-body);
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.nb-buyback-myaccount .nb-renove-meta {
    color: var(--nb-text-muted);
    font-size: .9rem;
    line-height: 1.7;
}

.nb-buyback-myaccount .nb-renove-meta strong {
    color: var(--nb-text);
    font-weight: 600;
}

.nb-buyback-myaccount .nb-renove-meta code {
    background: var(--nb-bg-soft);
    padding: 2px 8px;
    border-radius: 4px;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: .85rem;
}

.nb-buyback-myaccount .nb-renove-actions {
    margin-top: 16px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.nb-buyback-myaccount .nb-renove-actions .button,
.nb-buyback-myaccount .nb-doc-actions .button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: var(--nb-radius-sm);
    font-family: var(--nb-font-body);
    font-size: .9rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid var(--nb-border-strong);
    background: var(--nb-bg);
    color: var(--nb-text);
    cursor: pointer;
    transition: background var(--nb-transition);
}

.nb-buyback-myaccount .nb-renove-actions .button:hover,
.nb-buyback-myaccount .nb-doc-actions .button:hover {
    background: var(--nb-bg-soft);
    color: var(--nb-text);
}

.nb-buyback-myaccount .nb-renove-actions .button.button-primary,
.nb-buyback-myaccount .nb-iban-form .button-primary {
    background: var(--nb-primary);
    color: var(--nb-on-primary);
    border-color: var(--nb-primary);
}

.nb-buyback-myaccount .nb-renove-actions .button.button-primary:hover,
.nb-buyback-myaccount .nb-iban-form .button-primary:hover {
    background: var(--nb-primary-hover);
    color: var(--nb-on-primary);
}

/* IBAN form */
.nb-buyback-myaccount .nb-iban-form {
    background: var(--nb-bg-soft);
    border-radius: var(--nb-radius-sm);
    padding: 20px;
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.nb-buyback-myaccount .nb-iban-form label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--nb-text-muted);
}

.nb-buyback-myaccount .nb-iban-form input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-sm);
    font-family: var(--nb-font-body);
    font-size: 1rem;
    color: var(--nb-text);
    background: var(--nb-bg);
}

.nb-buyback-myaccount .nb-iban-form input:focus {
    outline: none;
    border-color: var(--nb-accent);
    box-shadow: 0 0 0 3px var(--nb-accent-soft);
}

.nb-buyback-myaccount .nb-iban-msg {
    font-size: .85rem;
    color: var(--nb-success);
    align-self: flex-start;
}

/* ============================================================
   14. My Account - vista detalle
   ============================================================ */
.nb-buyback-myaccount .nb-back-link {
    margin-bottom: 16px;
}

.nb-buyback-myaccount .nb-renove-banner {
    border-radius: var(--nb-radius);
    padding: 18px 22px;
    margin-bottom: 24px;
    border: 1px solid;
}

.nb-buyback-myaccount .nb-renove-banner strong {
    display: block;
    margin-bottom: 4px;
    font-family: var(--nb-font-body);
    font-size: 1.05rem;
    font-weight: 700;
}

.nb-buyback-myaccount .nb-renove-banner p {
    margin: 0;
    font-size: .95rem;
    color: inherit;
}

.nb-buyback-myaccount .nb-banner-info     { background: var(--nb-info-bg); border-color: var(--nb-info-border); color: var(--nb-info); }
.nb-buyback-myaccount .nb-banner-success  { background: var(--nb-success-bg); border-color: var(--nb-success-border); color: var(--nb-success); }
.nb-buyback-myaccount .nb-banner-warning  { background: var(--nb-warning-bg); border-color: var(--nb-warning-border); color: var(--nb-warning); }
.nb-buyback-myaccount .nb-banner-error    { background: var(--nb-error-bg); border-color: var(--nb-error-border); color: var(--nb-error); }

.nb-buyback-myaccount .nb-renove-detail {
    margin-top: 8px;
}

.nb-buyback-myaccount .nb-renove-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--nb-border);
}

.nb-buyback-myaccount .nb-renove-header h2 {
    margin: 0;
    font-family: var(--nb-font-display);
    font-size: 1.4rem;
}

.nb-buyback-myaccount .nb-renove-ref {
    font-size: .9rem;
    color: var(--nb-text-muted);
}

.nb-buyback-myaccount .nb-renove-ref code {
    background: var(--nb-bg-soft);
    padding: 4px 10px;
    border-radius: 4px;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: .85rem;
    color: var(--nb-text);
}

/* Timeline */
.nb-buyback-myaccount .nb-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    padding: 16px 0 24px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--nb-border);
    position: relative;
}

.nb-buyback-myaccount .nb-timeline::before {
    content: '';
    position: absolute;
    left: 12.5%;
    right: 12.5%;
    top: 26px;
    height: 2px;
    background: var(--nb-border);
    z-index: 0;
}

.nb-buyback-myaccount .nb-timeline-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    position: relative;
    z-index: 1;
    text-align: center;
}

.nb-buyback-myaccount .nb-timeline-dot {
    display: block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--nb-bg-muted);
    border: 3px solid var(--nb-bg);
    box-shadow: 0 0 0 1px var(--nb-border);
    transition: background var(--nb-transition), box-shadow var(--nb-transition);
}

.nb-buyback-myaccount .nb-timeline-step.is-done .nb-timeline-dot {
    background: var(--nb-accent);
    box-shadow: 0 0 0 1px var(--nb-accent);
}

.nb-buyback-myaccount .nb-timeline-label {
    font-family: var(--nb-font-body);
    font-size: .85rem;
    font-weight: 600;
    color: var(--nb-text);
}

.nb-buyback-myaccount .nb-timeline-step small {
    color: var(--nb-text-muted);
    font-size: .75rem;
}

/* Cards */
.nb-buyback-myaccount .nb-renove-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.nb-buyback-myaccount .nb-card {
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius);
    padding: 24px;
    background: var(--nb-bg);
}

.nb-buyback-myaccount .nb-card h3 {
    margin: 0 0 16px;
    font-family: var(--nb-font-body);
    font-size: .8rem;
    font-weight: 700;
    color: var(--nb-text-muted);
    text-transform: uppercase;
    letter-spacing: .08em;
}

.nb-buyback-myaccount .nb-card dl {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: .92rem;
}

.nb-buyback-myaccount .nb-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--nb-border);
}

.nb-buyback-myaccount .nb-card dl > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.nb-buyback-myaccount .nb-card dl dt {
    color: var(--nb-text-muted);
}

.nb-buyback-myaccount .nb-card dl dd {
    margin: 0;
    font-weight: 600;
    text-align: right;
    color: var(--nb-text);
}

.nb-buyback-myaccount .nb-doc-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.nb-buyback-myaccount .nb-photos-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 8px;
}

.nb-buyback-myaccount .nb-photo-thumb-link {
    display: block;
    aspect-ratio: 1;
    border-radius: var(--nb-radius-sm);
    overflow: hidden;
    border: 1px solid var(--nb-border);
    transition: transform var(--nb-transition), border-color var(--nb-transition);
}

.nb-buyback-myaccount .nb-photo-thumb-link:hover {
    transform: scale(1.04);
    border-color: var(--nb-border-strong);
}

.nb-buyback-myaccount .nb-photo-thumb-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ============================================================
   15. Plan Renove - bloque en ficha producto
   ============================================================ */
.nb-plan-renove-block {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 16px 18px;
    border-radius: var(--nb-radius);
    background: var(--nb-accent-soft);
    border: 1px solid var(--nb-accent-border);
    margin: 16px 0;
    font-family: var(--nb-font-body);
    font-size: .95rem;
    color: var(--nb-text);
    line-height: 1.5;
}

.nb-plan-renove-block .nb-plan-renove-icon {
    font-size: 1.4rem;
    color: var(--nb-accent);
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}

.nb-plan-renove-block .nb-plan-renove-text {
    flex: 1;
}

.nb-plan-renove-block .nb-plan-renove-text strong {
    color: var(--nb-accent);
    font-weight: 700;
}

.nb-plan-renove-block .nb-plan-renove-text small {
    display: block;
    margin-top: 6px;
    color: var(--nb-text-muted);
    font-size: .82rem;
    line-height: 1.4;
}

/* Plan Renove - thank-you page */
.nb-plan-renove-thankyou {
    margin: 24px 0;
    padding: 28px;
    border-radius: var(--nb-radius);
    background: var(--nb-accent-soft);
    border: 1px solid var(--nb-accent-border);
    font-family: var(--nb-font-body);
    color: var(--nb-text);
}

.nb-plan-renove-thankyou h3 {
    margin: 0 0 8px;
    font-family: var(--nb-font-display);
    font-size: 1.4rem;
    color: var(--nb-accent);
}

.nb-plan-renove-thankyou p {
    margin: 0 0 16px;
    color: var(--nb-text-muted);
}

.nb-plan-renove-thankyou .nb-plan-renove-drafts {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.nb-plan-renove-thankyou .nb-plan-renove-drafts .button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: var(--nb-radius-sm);
    background: var(--nb-primary);
    color: var(--nb-on-primary);
    text-decoration: none;
    font-weight: 600;
    border: 1px solid var(--nb-primary);
    transition: background var(--nb-transition);
    align-self: flex-start;
}

.nb-plan-renove-thankyou .nb-plan-renove-drafts .button:hover {
    background: var(--nb-primary-hover);
    color: var(--nb-on-primary);
}

/* ============================================================
   16. Responsive ajustes finos
   ============================================================ */
@media (max-width: 600px) {
    .nb-buyback-wizard {
        margin: 16px auto 32px;
    }
    .nb-buyback-wizard .nb-wizard-hero {
        padding: 8px 0;
    }
    .nb-buyback-wizard .nb-offer,
    .nb-buyback-wizard .nb-customer-form {
        padding: 24px 20px;
    }
    .nb-buyback-myaccount .nb-renove-cards {
        grid-template-columns: 1fr;
    }
    .nb-buyback-myaccount .nb-timeline-label {
        font-size: .72rem;
    }
}

/* ============================================================
   15b. Card de contraoferta (vista detalle My Account)
   ============================================================ */
.nb-buyback-myaccount .nb-counteroffer-card,
.nb-counteroffer-card {
    border: 2px solid #f0d680;
    background: #fff8e1;
    border-radius: 14px;
    padding: 24px;
    margin-bottom: 24px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: #1a1a1a;
}

.nb-counteroffer-card .nb-counteroffer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
}

.nb-counteroffer-card .nb-counteroffer-header h3 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: 1.3rem;
    font-weight: 700;
    color: #7a5a00;
}

.nb-counteroffer-card .nb-counteroffer-deadline {
    display: inline-block;
    background: #1a1a1a;
    color: #fff;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
}

.nb-counteroffer-card .nb-counteroffer-prices {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
    padding: 24px 16px;
    background: #fff;
    border-radius: 10px;
    margin-bottom: 20px;
}

.nb-counteroffer-card .nb-counteroffer-old,
.nb-counteroffer-card .nb-counteroffer-new {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}

.nb-counteroffer-card .nb-counteroffer-label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #6b6b6b;
}

.nb-counteroffer-card .nb-counteroffer-amount {
    font-family: Georgia, serif;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.nb-counteroffer-card .nb-counteroffer-strike {
    color: #8a8a8e;
    text-decoration: line-through;
    font-size: 1.5rem;
}

.nb-counteroffer-card .nb-counteroffer-highlight {
    color: #6c3fb8;
    font-size: 2.4rem;
}

.nb-counteroffer-card .nb-counteroffer-arrow {
    font-size: 1.6rem;
    color: #8a8a8e;
    line-height: 1;
}

.nb-counteroffer-card .nb-counteroffer-reason {
    background: #fff;
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 16px;
    font-size: .95rem;
    line-height: 1.5;
}

.nb-counteroffer-card .nb-counteroffer-reason strong {
    display: block;
    color: #7a5a00;
    margin-bottom: 4px;
    font-weight: 700;
}

.nb-counteroffer-card .nb-counteroffer-reason p {
    margin: 0;
    color: #1a1a1a;
}

.nb-counteroffer-card .nb-counteroffer-help {
    font-size: .9rem;
    color: #6b6b6b;
    margin: 0 0 20px;
    line-height: 1.5;
}

.nb-counteroffer-card .nb-counteroffer-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.nb-counteroffer-card .nb-counteroffer-actions button {
    flex: 1 1 200px;
    padding: 14px 20px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    border: 1px solid #1a1a1a;
    transition: background 150ms ease, transform 150ms ease;
    font-family: inherit;
}

.nb-counteroffer-card .nb-counteroffer-accept {
    background: #1a1a1a;
    color: #fff;
}

.nb-counteroffer-card .nb-counteroffer-accept:hover {
    background: #000;
    transform: translateY(-1px);
}

.nb-counteroffer-card .nb-counteroffer-reject {
    background: #fff;
    color: #1a1a1a;
}

.nb-counteroffer-card .nb-counteroffer-reject:hover {
    background: #f6f6f8;
}

.nb-counteroffer-card .nb-counteroffer-actions button[disabled] {
    opacity: .5;
    cursor: not-allowed;
}

.nb-counteroffer-card .nb-counteroffer-status {
    margin: 12px 0 0;
    font-size: .9rem;
    color: #1f6b3a;
    text-align: center;
    min-height: 1.2em;
}

.nb-counteroffer-card .nb-counteroffer-status.is-error {
    color: #8a1d1d;
}

/* ============================================================
   16b. Modal pre-envio (compartido wizard + my-account)
   ============================================================ */
.nb-pre-shipping-modal {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    max-width: 100vw;
    max-height: 100vh;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    z-index: 99999;
}

.nb-pre-shipping-modal::backdrop {
    background: rgba(0, 0, 0, .5);
}

.nb-pre-shipping-modal[hidden] { display: none; }

.nb-pre-shipping-modal .nb-modal-shell {
    box-sizing: border-box;
    background: #fff;
    width: min(560px, 100%);
    max-height: 100vh;
    margin: 0 0 0 auto;
    height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: #1a1a1a;
    box-shadow: -16px 0 48px rgba(0, 0, 0, .12);
    animation: nb-modal-slide-in .25s ease-out;
}

@keyframes nb-modal-slide-in {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

.nb-pre-shipping-modal .nb-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid #e5e5e8;
    flex-shrink: 0;
}

.nb-pre-shipping-modal .nb-modal-step {
    font-weight: 700;
    font-size: 1rem;
    color: #1a1a1a;
}

.nb-pre-shipping-modal .nb-modal-close {
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 1.4rem;
    line-height: 1;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a1a1a;
    transition: background 150ms ease;
}

.nb-pre-shipping-modal .nb-modal-close:hover { background: #f0f0f4; }

.nb-pre-shipping-modal .nb-modal-body {
    padding: 24px;
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.nb-pre-shipping-modal .nb-modal-body[hidden] { display: none; }

.nb-pre-shipping-modal .nb-modal-body h3 {
    font-family: Georgia, serif;
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 4px;
    color: #1a1a1a;
}

.nb-pre-shipping-modal .nb-modal-body p {
    margin: 0;
    color: #6b6b6b;
    font-size: .95rem;
    line-height: 1.5;
}

.nb-pre-shipping-modal .nb-modal-check {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 16px;
    border: 1px solid #e5e5e8;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 150ms ease, background 150ms ease;
}

.nb-pre-shipping-modal .nb-modal-check:hover {
    border-color: #1a1a1a;
    background: #fafafa;
}

.nb-pre-shipping-modal .nb-modal-check input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 2px 0 0;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: #6c3fb8;
}

.nb-pre-shipping-modal .nb-modal-check-text {
    flex: 1;
}

.nb-pre-shipping-modal .nb-modal-check-text strong {
    display: block;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 4px;
}

.nb-pre-shipping-modal .nb-modal-check-text small {
    display: block;
    color: #6b6b6b;
    font-size: .85rem;
    line-height: 1.4;
}

.nb-pre-shipping-modal .nb-modal-accordion {
    border: 1px solid #e5e5e8;
    border-radius: 10px;
    overflow: hidden;
}

.nb-pre-shipping-modal .nb-modal-accordion summary {
    padding: 14px 16px;
    cursor: pointer;
    font-weight: 600;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nb-pre-shipping-modal .nb-modal-accordion summary::-webkit-details-marker { display: none; }

.nb-pre-shipping-modal .nb-modal-accordion summary::after {
    content: "▾";
    font-size: .9rem;
    transition: transform 150ms ease;
}

.nb-pre-shipping-modal .nb-modal-accordion[open] summary::after {
    transform: rotate(180deg);
}

.nb-pre-shipping-modal .nb-modal-accordion-body {
    padding: 0 16px 16px;
    font-size: .9rem;
    color: #6b6b6b;
    line-height: 1.55;
}

.nb-pre-shipping-modal .nb-modal-accordion-body p { margin: 8px 0; color: inherit; }

.nb-pre-shipping-modal .nb-modal-deadline {
    background: #fff8e1;
    border: 1px solid #f0d680;
    color: #7a5a00;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: .9rem;
    text-align: center;
    margin: 8px 0;
}

.nb-pre-shipping-modal .nb-modal-actions-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}

.nb-pre-shipping-modal .nb-modal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 20px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid #1a1a1a;
    transition: background 150ms ease;
    text-align: center;
    font-family: inherit;
}

.nb-pre-shipping-modal .nb-modal-btn-primary {
    background: #1a1a1a;
    color: #fff;
}

.nb-pre-shipping-modal .nb-modal-btn-primary:hover {
    background: #000;
    color: #fff;
}

.nb-pre-shipping-modal .nb-modal-btn-secondary {
    background: #fff;
    color: #1a1a1a;
}

.nb-pre-shipping-modal .nb-modal-btn-secondary:hover {
    background: #f6f6f8;
    color: #1a1a1a;
}

.nb-pre-shipping-modal .nb-modal-btn[disabled] {
    opacity: .5;
    cursor: not-allowed;
}

.nb-pre-shipping-modal .nb-modal-footer {
    padding: 16px 24px;
    border-top: 1px solid #e5e5e8;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
}

.nb-pre-shipping-modal .nb-modal-status {
    font-size: .85rem;
    color: #1f6b3a;
    align-self: center;
    text-align: center;
}

.nb-pre-shipping-modal .nb-modal-status.is-error { color: #8a1d1d; }

.nb-buyback-wizard .nb-legal-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 16px 0 20px;
    padding: 14px;
    border: 1px solid #e5e5e8;
    border-radius: 8px;
    background: #fafafa;
    font-size: .92rem;
    line-height: 1.45;
}

.nb-buyback-wizard .nb-legal-check input {
    margin-top: 3px;
    flex: 0 0 auto;
}

@media (max-width: 600px) {
    .nb-pre-shipping-modal .nb-modal-shell {
        width: 100%;
        margin: 0;
    }
}

/* ============================================================
   17. Override hooks para temas
   ------------------------------------------------------------
   Si quieres usar otra tipografia, anade en tu tema (con mayor
   especificidad que la del plugin):

       body .nb-buyback-wizard,
       body .nb-buyback-myaccount {
           --nb-font-display: 'Playfair Display', Georgia, serif;
           --nb-font-body: 'Inter', sans-serif;
           --nb-accent: #ff5500;
           --nb-pop: #d4ff00;
       }

   Las variables CSS son la API publica del plugin para temas.
   ============================================================ */

/* ============================================================
   Repair wizard — selectores especificos
   ============================================================ */
.nb-buyback-wizard--repair .nb-tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.5rem 0 1rem;
}

.nb-buyback-wizard--repair .nb-tag {
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--nb-border, #d4d4d4);
    background: #fff;
    color: var(--nb-text, #1c1c1c);
    font: inherit;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.nb-buyback-wizard--repair .nb-tag:hover {
    border-color: var(--nb-accent, #ff5500);
}

.nb-buyback-wizard--repair .nb-tag.is-active {
    background: var(--nb-accent, #ff5500);
    border-color: var(--nb-accent, #ff5500);
    color: #fff;
}

.nb-buyback-wizard--repair .nb-char-count {
    display: block;
    margin-top: 0.25rem;
    color: #6b6b6b;
    font-size: 0.8rem;
    text-align: right;
}

.nb-buyback-wizard--repair textarea[name="description"] {
    width: 100%;
    resize: vertical;
    padding: 0.6rem 0.75rem;
    border-radius: 6px;
    border: 1px solid var(--nb-border, #d4d4d4);
    font: inherit;
}

