/* Form de registro Nezeni Pharma */
.nezeni-form { max-width: 760px; margin: 2em auto; }
.nezeni-form fieldset { border: 1px solid #e8e4e0; padding: 1.5em; margin-bottom: 1.5em; border-radius: 4px; }
.nezeni-form legend { padding: 0 .6em; font-weight: 600; color: #cc0946; font-size: 1.1em; }
.nezeni-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8em 1em; }
.nezeni-form-grid p { margin: 0; }
.nezeni-form-grid p.full { grid-column: 1 / -1; }
.nezeni-form label { display: block; font-size: .9em; color: #555; }
.nezeni-form input, .nezeni-form select { width: 100%; padding: .55em .7em; border: 1px solid #d0cdc7; border-radius: 3px; font-size: 1em; }
.nezeni-form input:focus, .nezeni-form select:focus { outline: none; border-color: #cc0946; }
.nezeni-form .checkbox label { display: flex; gap: .6em; font-size: .95em; color: #333; line-height: 1.5; }
.nezeni-form .checkbox input { width: auto; }
.nezeni-form .button {
  background: #cc0946; color: #fff; border: none; padding: .85em 2em;
  font-size: 1.05em; font-weight: 500; border-radius: 3px; cursor: pointer;
  letter-spacing: .03em;
}
.nezeni-form .button:hover { background: #9c0635; }
.nezeni-form-submit { text-align: center; margin: 2em 0 1em; }
.nezeni-form-disclaimer { text-align: center; font-size: .85em; color: #888; }
.nezeni-form-errors {
  background: #fff5f7; border-left: 4px solid #cc0946;
  padding: 1em 1.5em; margin-bottom: 1.5em; border-radius: 0 4px 4px 0;
}
.nezeni-form-errors ul { margin: .5em 0 0 1.2em; padding: 0; }
@media (max-width: 600px) {
  .nezeni-form-grid { grid-template-columns: 1fr; }
  .nezeni-form fieldset { padding: 1em; }
}


/* ─── Mi cuenta · stats dashboard ─── */
.nezeni-mi-cuenta-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
    margin-bottom: 2em;
}
.nezeni-mi-cuenta-stats .stat-card {
    background: #fafaf7;
    border-left: 4px solid #cc0946;
    padding: 1.2em 1.4em;
    border-radius: 0 4px 4px 0;
}
.nezeni-mi-cuenta-stats .stat-label {
    font-size: .72em;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #888;
    font-weight: 600;
    margin-bottom: .4em;
}
.nezeni-mi-cuenta-stats .stat-value {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.5em;
    color: #1a1a1a;
    line-height: 1.2;
    margin-bottom: .15em;
}
.nezeni-mi-cuenta-stats .stat-detail {
    font-size: .85em;
    color: #555;
}
.nezeni-mi-cuenta-stats .stat-progress {
    height: 4px;
    background: #e5e1da;
    border-radius: 2px;
    margin-top: .8em;
    overflow: hidden;
}
.nezeni-mi-cuenta-stats .stat-progress-bar {
    height: 100%;
    background: #cc0946;
    transition: width .3s ease;
}

/* ─── Recursos grid (formación / material POS) ─── */
.nezeni-recursos-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2em;
    margin: 1.5em 0 2em;
}
.recurso-card {
    background: #fff;
    border: 1px solid #e8e4e0;
    border-radius: 4px;
    padding: 1.4em;
}
.recurso-card.placeholder {
    background: #fafaf7;
    color: #555;
}
.recurso-thumb {
    background: #cc0946;
    color: #fff;
    width: 44px; height: 44px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.3em;
    margin-bottom: .8em;
}
.recurso-card h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.2em;
    margin: 0 0 .4em 0;
    color: #1a1a1a;
}
.recurso-card p {
    font-size: .9em;
    color: #555;
    margin: 0 0 .6em 0;
}
.recurso-card em {
    font-size: .8em;
    color: #888;
    font-style: italic;
}

/* ─── Info box ─── */
.nezeni-info-box {
    background: #fff5f7;
    border-left: 4px solid #cc0946;
    padding: 1em 1.4em;
    border-radius: 0 4px 4px 0;
    color: #555;
    font-size: .92em;
    line-height: 1.55;
    margin: 1.5em 0;
}
.nezeni-info-box strong { color: #cc0946; }

/* ─── Tarifa ─── */
.nezeni-tarifa-download {
    background: #fafaf7;
    padding: 1.2em 1.5em;
    border-radius: 4px;
    margin-bottom: 2em;
    text-align: center;
}
.nezeni-tarifa-download .button {
    background: #cc0946;
    color: #fff;
    padding: .7em 1.5em;
    border-radius: 3px;
    text-decoration: none;
    font-weight: 500;
    display: inline-block;
}
.nezeni-tarifa-download .button:hover { background: #9c0635; color: #fff; }
.nezeni-tarifa-download small {
    display: block;
    margin-top: .6em;
    color: #888;
    font-size: .85em;
}
.nezeni-tarifa-tabla {
    width: 100%;
    border-collapse: collapse;
    margin: 1em 0 2em;
    font-size: .92em;
}
.nezeni-tarifa-tabla th {
    background: #fff5f7;
    color: #cc0946;
    text-align: left;
    padding: .7em .9em;
    border-bottom: 2px solid #cc0946;
}
.nezeni-tarifa-tabla td {
    padding: .65em .9em;
    border-bottom: 1px solid #e8e4e0;
}
.nezeni-tarifa-tabla tr:nth-child(even) td { background: #fafaf7; }
.nezeni-modalidades-list {
    list-style: none;
    padding: 0;
}
.nezeni-modalidades-list li {
    padding: .8em 1em;
    border-left: 3px solid #cc0946;
    background: #fafaf7;
    margin-bottom: .6em;
    border-radius: 0 4px 4px 0;
}
.nezeni-modalidades-list strong { color: #cc0946; }

@media (max-width: 700px) {
    .nezeni-mi-cuenta-stats { grid-template-columns: 1fr; }
    .nezeni-recursos-grid { grid-template-columns: 1fr; }
    .nezeni-tarifa-tabla { font-size: .85em; }
    .nezeni-tarifa-tabla th, .nezeni-tarifa-tabla td { padding: .5em .6em; }
}

.lead {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 1.1em;
    color: #555;
    line-height: 1.55;
    margin: 0 0 1.5em;
}


/* ─── HEROES editorial premium ─── */
.nezeni-section-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 1.2;
    max-height: 320px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 2.4em;
    display: flex;
    align-items: flex-end;
}
.nezeni-section-hero .nezeni-section-hero-overlay {
    background: linear-gradient(to top, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.75) 50%, rgba(255,255,255,0) 100%);
    width: 100%;
    padding: 4em 2em 1.6em;
}
.nezeni-section-hero .eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #cc0946;
    font-weight: 600;
    margin-bottom: 0.5em;
}
.nezeni-section-hero h2 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 2.2em;
    font-weight: 500;
    color: #1a1a1a;
    margin: 0 0 0.3em 0;
    line-height: 1.1;
    letter-spacing: -0.015em;
}
.nezeni-section-hero .lead {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.1em;
    color: #555;
    line-height: 1.55;
    max-width: 32em;
    margin: 0;
}

/* Quick actions del dashboard */
.nezeni-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.6em;
    margin-top: 2em;
}
.quick-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1em 1.2em;
    background: #fafaf7;
    border-left: 3px solid #cc0946;
    border-radius: 0 4px 4px 0;
    text-decoration: none;
    color: #1a1a1a;
    transition: all 0.2s ease;
    font-family: 'Cormorant Garamond', serif;
}
.quick-action:hover {
    background: #fff5f7;
    transform: translateX(2px);
    color: #cc0946;
}
.qa-label { font-size: 1.15em; font-weight: 500; }
.qa-arrow { font-size: 1.2em; color: #cc0946; }

.recurso-card.cta em.cta {
    color: #cc0946;
    font-weight: 500;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    font-style: normal;
}
.recurso-card a, .recurso-card { text-decoration: none; color: inherit; }
a.recurso-card:hover { background: #fff5f7; transform: translateY(-2px); transition: all 0.2s ease; }

/* Recurso card destacada (Argumentario conservantes) */
.recurso-card-featured { background: linear-gradient(180deg, #fff8fb 0%, #fff 100%); border: 1px solid #cc0946; box-shadow: 0 4px 14px rgba(204, 9, 70, 0.08); position: relative; }
.recurso-card-featured::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #cc0946 0%, #e63b6e 100%); border-radius: 4px 4px 0 0; }
.recurso-card-featured .recurso-thumb { background: #1a1a1a; color: #cc0946; }
.recurso-card-featured h3 { color: #cc0946; }
.recurso-badge { display: inline-block; background: #cc0946; color: #fff; font-family: 'Inter', sans-serif; font-size: 0.55em; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.3em 0.7em; border-radius: 12px; margin-left: 0.5em; vertical-align: middle; }
a.recurso-card-featured:hover { background: linear-gradient(180deg, #fff5f7 0%, #fff8fb 100%); box-shadow: 0 8px 22px rgba(204, 9, 70, 0.14); }

@media (max-width: 700px) {
    .nezeni-section-hero { aspect-ratio: 3/1.6; max-height: 220px; }
    .nezeni-section-hero .nezeni-section-hero-overlay { padding: 2em 1.2em 1em; }
    .nezeni-section-hero h2 { font-size: 1.5em; }
    .nezeni-section-hero .lead { font-size: 0.95em; }
    .nezeni-quick-actions { grid-template-columns: repeat(2, 1fr); }
}


/* ═══ TEMA GLOBAL ═══ */
/* ─── Pharma Nezeni · branding global ─── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    --nezeni-granate: #cc0946;
    --nezeni-granate-deep: #9c0635;
    --nezeni-cream: #fafaf7;
    --nezeni-cream-deep: #f3efe8;
    --nezeni-carbon: #1a1a1a;
    --nezeni-gray-mid: #555;
    --nezeni-line: #e8e4e0;
}

body, body.wp-core-ui {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--nezeni-carbon);
    background: #fff;
}

.serif, h1.serif, h2.serif, h3.serif {
    font-family: 'Cormorant Garamond', Georgia, serif;
    letter-spacing: -0.005em;
}

/* Headings frontend */
.entry-title, h1.page-title, .wp-block-post-title {
    font-family: 'Cormorant Garamond', serif;
    color: var(--nezeni-carbon);
    font-weight: 500;
    letter-spacing: -0.015em;
}

/* Botones globales */
.button, button[type="submit"], input[type="submit"], .wp-block-button__link {
    background: var(--nezeni-granate) !important;
    color: #fff !important;
    border: none;
    padding: 0.7em 1.6em;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    letter-spacing: 0.02em;
    border-radius: 3px;
    text-transform: none;
    cursor: pointer;
    transition: background 0.2s ease;
    font-size: 0.95em;
}
.button:hover, button[type="submit"]:hover, .wp-block-button__link:hover {
    background: var(--nezeni-granate-deep) !important;
    color: #fff !important;
}

/* Links */
a { color: var(--nezeni-granate); text-decoration: none; }
a:hover { color: var(--nezeni-granate-deep); text-decoration: underline; }

/* WooCommerce my-account override ligero */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    color: var(--nezeni-carbon);
    border-left: 3px solid transparent;
    padding-left: 0.8em;
    transition: all 0.15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    color: var(--nezeni-granate);
    border-left-color: var(--nezeni-granate);
    background: var(--nezeni-cream);
}

/* WC notices */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
    border-top-color: var(--nezeni-granate);
    background: var(--nezeni-cream);
}
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before { color: var(--nezeni-granate); }

/* Loop / shop */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
    font-family: 'Cormorant Garamond', serif;
    color: var(--nezeni-carbon);
}
.woocommerce .price ins, .woocommerce ul.products li.product .price ins {
    color: var(--nezeni-granate);
    font-weight: 500;
    text-decoration: none;
}

/* Producto individual */
.product .price { font-family: 'Cormorant Garamond', serif; color: var(--nezeni-granate); font-size: 1.6em; font-weight: 500; }

/* ─── Título de producto · titular profesional · v0.9.39 ─── */
body.np-single-product .product .product_title,
body.np-single-product h1.product_title,
body.np-single-product .entry-summary h1.product_title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 2.6rem !important;
    line-height: 1.1 !important;
    color: var(--nezeni-carbon) !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 0.5em !important;
    padding: 0 !important;
}
@media (max-width: 600px) {
    body.np-single-product .product .product_title,
    body.np-single-product h1.product_title { font-size: 2rem !important; }
}

/* Logo placeholder en header */
.site-header .site-title a, .wp-block-site-title a {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 600;
    color: var(--nezeni-granate);
    letter-spacing: -0.01em;
}

/* Mensaje "precio restringido" en catálogo sin login */
.precio-restringido {
    color: var(--nezeni-granate);
    font-style: italic;
    font-family: 'Cormorant Garamond', serif;
    font-size: 0.95em;
}


/* ─── FICHA PRODUCTO PREMIUM ─── */
.nezeni-margin-box {
    background: var(--nezeni-cream);
    border-left: 3px solid var(--nezeni-granate);
    padding: 1em 1.4em;
    margin: 1em 0 1.5em;
    border-radius: 0 4px 4px 0;
}
.nezeni-margin-box .margin-row {
    display: flex;
    justify-content: space-between;
    padding: 0.4em 0;
    border-bottom: 1px solid rgba(204,9,70,0.1);
    font-size: 0.95em;
}
.nezeni-margin-box .margin-row:last-child { border-bottom: none; }
.nezeni-margin-box .margin-row.highlight {
    margin-top: 0.4em;
    padding-top: 0.7em;
    border-top: 1px solid var(--nezeni-granate);
    border-bottom: none;
}
.nezeni-margin-box .margin-label { color: var(--nezeni-gray-mid); font-size: 0.92em; }
.nezeni-margin-box .margin-value { font-family: 'Cormorant Garamond', serif; font-size: 1.15em; color: var(--nezeni-carbon); }
.nezeni-margin-box .margin-row.highlight .margin-value strong { color: var(--nezeni-granate); font-size: 1.2em; }

/* ─── Información profesional · Estilo cubista cards ─── */
.nezeni-ficha-pharma.np-info-pro {
    margin: 1.6em 0 1.2em;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
}
.np-info-pro-head {
    margin-bottom: 0.85em;
    padding-bottom: 0.6em;
    border-bottom: 1px solid rgba(204,9,70,0.22);
}
.np-info-pro-eyebrow {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--nezeni-granate);
    font-weight: 700;
}
.np-info-pro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.np-info-pro-cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
    background: #fbfbfb;
    border: 1px solid var(--nezeni-line);
    border-radius: 6px;
    transition: border-color 0.18s ease;
}
.np-info-pro-cell:hover {
    border-color: rgba(204,9,70,0.35);
}
.np-info-pro-cell.np-info-pro-wide {
    grid-column: 1 / -1;
}
.np-info-pro-cell.np-info-pro-highlight {
    background: #fdf6f8;
    border-color: rgba(204,9,70,0.32);
    grid-column: 1 / -1;
}
.np-info-pro-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.68em;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
}
.np-info-pro-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.18em;
    color: var(--nezeni-carbon);
    line-height: 1.2;
    font-weight: 500;
}
.np-info-pro-value.np-info-pro-mono {
    font-family: 'SF Mono', 'Menlo', Consolas, monospace;
    font-size: 0.95em;
    letter-spacing: 0.02em;
    color: #232020;
    font-weight: 500;
}
.np-info-pro-value.np-info-pro-strong {
    color: var(--nezeni-granate);
    font-weight: 600;
    font-size: 1.25em;
}
@media (max-width: 600px) {
    .np-info-pro-grid { grid-template-columns: 1fr; }
}

/* Cross-sell */
.nezeni-cross-sell {
    margin: 3em 0 2em;
    padding-top: 2em;
    border-top: 1px solid var(--nezeni-line);
}
.nezeni-cross-sell h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8em;
    color: var(--nezeni-granate);
    margin-bottom: 0.3em;
}
.nezeni-cross-sell .lead {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.05em;
    color: var(--nezeni-gray-mid);
    margin-bottom: 1.5em;
}
.cross-sell-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1em;
}
.cross-card {
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease;
    display: block;
}
.cross-card:hover { transform: translateY(-2px); }
.cross-img {
    aspect-ratio: 1/1;
    background: var(--nezeni-cream);
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 0.6em;
}
.cross-img img { width: 100%; height: 100%; object-fit: contain; padding: 0.5em; }
.cross-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1em;
    color: var(--nezeni-carbon);
    line-height: 1.25;
    margin-bottom: 0.2em;
}
.cross-price { font-size: 0.88em; color: var(--nezeni-granate); font-weight: 500; }

@media (max-width: 700px) {
    .cross-sell-grid { grid-template-columns: repeat(2, 1fr); }
}


/* ─── HOME PHARMA · editorial premium ─── */
.nezeni-home-hero {
    position: relative;
    min-height: 480px;
    background-image: linear-gradient(135deg, rgba(255,255,255,0.65), rgba(255,255,255,0.92)), url('/wp-content/mu-plugins/nezeni-pharma/assets/heroes/hero-mi-cuenta.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4em 2em;
    text-align: center;
    margin: -1em -1em 2em -1em;
}
.nezeni-home-overlay { max-width: 720px; }
.nezeni-home-hero .eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #cc0946;
    font-weight: 600;
    margin-bottom: 1.5em;
}
.nezeni-home-hero h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 4em;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.05;
    margin: 0 0 0.6em;
    letter-spacing: -0.02em;
}
.nezeni-home-hero h1 em { color: #cc0946; font-style: italic; font-weight: 500; }
.nezeni-home-hero .hero-tagline {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.4em;
    color: #444;
    line-height: 1.45;
    margin: 1.2em 0 2.2em;
}
.nezeni-home-hero .hero-cta { display: flex; gap: 1em; justify-content: center; flex-wrap: wrap; }
.nezeni-home-hero .button {
    background: #cc0946;
    color: #fff;
    padding: 0.85em 2em;
    border-radius: 3px;
    text-decoration: none;
    font-weight: 500;
    font-size: 1em;
    letter-spacing: 0.02em;
}
.nezeni-home-hero .button:hover { background: #9c0635; color: #fff; }
.nezeni-home-hero .button-secondary {
    background: transparent;
    color: #cc0946;
    padding: 0.85em 2em;
    border: 1px solid #cc0946;
    border-radius: 3px;
    text-decoration: none;
    font-weight: 500;
    font-size: 1em;
}
.nezeni-home-hero .button-secondary:hover { background: #cc0946; color: #fff; }

.nezeni-home-section {
    padding: 4em 2em;
    max-width: 1080px;
    margin: 0 auto;
}
.nezeni-home-section-cream {
    background: #fafaf7;
    max-width: 100%;
    margin: 0 -2em;
    padding-left: 2em;
    padding-right: 2em;
}
.nezeni-home-section .section-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #cc0946;
    font-weight: 600;
    margin-bottom: 1em;
}
.nezeni-home-section h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.5em;
    color: #1a1a1a;
    line-height: 1.1;
    margin: 0 0 0.7em;
    max-width: 18em;
}
.nezeni-home-section h2 em { color: #cc0946; font-style: italic; }
.nezeni-home-section .lead {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.3em;
    color: #555;
    line-height: 1.5;
    max-width: 32em;
    margin-bottom: 1em;
}

/* Pilares */
.nezeni-pillars-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4em;
    margin-top: 2.5em;
}
.nezeni-pillar-home .pillar-num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 4em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.3em;
}
.nezeni-pillar-home h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.9em;
    line-height: 1.15;
    margin: 0 0 0.7em;
    font-weight: 500;
    color: #1a1a1a;
}
.nezeni-pillar-home h3 em { color: #cc0946; font-style: italic; font-weight: 500; }
.nezeni-pillar-home .pillar-claim {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.2em;
    color: #cc0946;
    line-height: 1.5;
    margin: 0.7em 0 1.2em;
}
.nezeni-pillar-home p {
    font-size: 0.95em;
    color: #444;
    line-height: 1.65;
}
.nezeni-additional {
    margin-top: 4em;
    padding-top: 2em;
    border-top: 1px solid rgba(204,9,70,0.18);
    text-align: center;
}
.nezeni-additional p {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.05em;
    color: #555;
    line-height: 1.7;
    max-width: 60em;
    margin: 0 auto;
}

/* Acreditación */
.nezeni-accred-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.8em;
    margin-top: 2.5em;
    max-width: 900px;
}
.accred-item {
    padding: 2em 1.5em;
    background: #fafaf7;
    border-radius: 2px;
    position: relative;
}
.accred-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 28px;
    height: 1px;
    background: #cc0946;
}
.accred-num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2.4em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.5em;
    font-weight: 500;
}
.accred-label {
    font-size: 0.78em;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1a1a1a;
    font-weight: 600;
    margin-bottom: 0.7em;
}
.accred-item p { font-size: 0.9em; color: #555; line-height: 1.55; margin: 0; }

/* Beneficios */
.nezeni-benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2em;
    margin-top: 2.5em;
}
.benefit-item .benefit-num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2.2em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.5em;
    font-weight: 500;
}
.benefit-item p { font-size: 0.95em; color: #444; line-height: 1.55; }
.benefit-item p strong { color: #1a1a1a; }

/* Steps */
.nezeni-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2em;
    margin: 2.5em 0;
}
.step-item .step-num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 3em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.3em;
    font-weight: 500;
}
.step-item h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.25em;
    color: #1a1a1a;
    margin: 0 0 0.5em;
    font-weight: 500;
}
.step-item p { font-size: 0.9em; color: #555; line-height: 1.55; margin: 0; }

.nezeni-home-final-cta {
    text-align: center;
    margin: 4em 0 0;
    padding-top: 3em;
    border-top: 1px solid rgba(204,9,70,0.18);
}
.nezeni-home-final-cta .button {
    background: #cc0946;
    color: #fff !important;
    padding: 1em 2.5em;
    border-radius: 3px;
    text-decoration: none;
    font-weight: 500;
    font-size: 1.05em;
    display: inline-block;
}
.nezeni-home-final-cta .cta-note { margin-top: 1em; font-size: 0.95em; color: #888; }
.nezeni-home-final-cta .cta-note a { color: #cc0946; }

/* Footer */
.nezeni-home-footer {
    background: #fafaf7;
    text-align: center;
    padding: 5em 2em 4em;
    margin: 0 -2em;
    border-top: 1px solid rgba(204,9,70,0.18);
}
.nezeni-home-footer .footer-quote {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2em;
    color: #1a1a1a;
    max-width: 18em;
    margin: 0 auto 1em;
    font-weight: 400;
}
.nezeni-home-footer .footer-quote em { color: #cc0946; }
.nezeni-home-footer .footer-divider {
    width: 60px; height: 1px; background: #cc0946; margin: 2em auto;
}
.nezeni-home-footer .footer-brand {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5em;
    color: #cc0946;
    margin: 1em 0 0.4em;
    font-weight: 600;
}
.nezeni-home-footer .footer-detail {
    font-size: 0.92em;
    color: #888;
    margin: 0.3em 0;
}
.nezeni-home-footer a { color: #888; text-decoration: underline; }

/* Responsive */
@media (max-width: 900px) {
    .nezeni-home-hero h1 { font-size: 2.6em; }
    .nezeni-pillars-grid { grid-template-columns: 1fr; gap: 2.5em; }
    .nezeni-accred-grid, .nezeni-benefits-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2em; }
    .nezeni-steps-grid { grid-template-columns: repeat(2, 1fr); gap: 2em 1.5em; }
    .nezeni-home-section { padding: 3em 1em; }
    .nezeni-home-section-cream { margin: 0 -1em; padding-left: 1em; padding-right: 1em; }
    .nezeni-home-section h2 { font-size: 1.9em; }
}
@media (max-width: 540px) {
    .nezeni-home-hero { padding: 3em 1em; min-height: 380px; }
    .nezeni-home-hero h1 { font-size: 2em; }
    .nezeni-home-hero .hero-tagline { font-size: 1.1em; }
    .nezeni-home-hero .hero-cta { flex-direction: column; }
    .nezeni-accred-grid, .nezeni-benefits-grid, .nezeni-steps-grid { grid-template-columns: 1fr; }
}


/* ─── PEDIDO RÁPIDO B2B ─── */
.nezeni-pedido-rapido { max-width: 1280px; margin: 0 auto; padding: 1em; }
.nezeni-pedido-rapido .pr-header { margin-bottom: 1.5em; padding-bottom: 1em; border-bottom: 1px solid var(--nezeni-line); }
.nezeni-pedido-rapido h2 { font-family: 'Cormorant Garamond', serif; font-size: 2.2em; color: var(--nezeni-granate); margin: 0 0 0.3em; font-weight: 500; letter-spacing: -0.015em; }
.nezeni-pedido-rapido .lead { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.1em; color: var(--nezeni-gray-mid); margin: 0; }

.pr-filters { display: flex; gap: 0.5em; flex-wrap: wrap; margin-bottom: 1.4em; }
.filter-chip {
    padding: 0.4em 1em;
    background: var(--nezeni-cream);
    border: 1px solid var(--nezeni-line);
    border-radius: 20px;
    text-decoration: none;
    color: var(--nezeni-gray-mid);
    font-size: 0.88em;
    transition: all 0.15s ease;
}
.filter-chip small { color: #999; margin-left: 0.3em; }
.filter-chip:hover { background: var(--nezeni-cream-deep); color: var(--nezeni-carbon); }
.filter-chip.active { background: var(--nezeni-granate); color: white; border-color: var(--nezeni-granate); }
.filter-chip.active small { color: rgba(255,255,255,0.85); }

.pr-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1.5em; }
.pr-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92em;
    min-width: 900px;
}
/* (Definición unificada más abajo en el archivo · línea ~1108) */
.pr-table tbody td {
    padding: 0.75em 0.85em;
    border-bottom: 1px solid #f0ebe8;
    vertical-align: middle;
    background: #fff;
}
/* ZEBRA STRIPING · alternar product-rows (sin contar headers de categoría) */
.pr-table tbody .pr-product-row:nth-of-type(odd) td { background: #fff; }
.pr-table tbody .pr-product-row:nth-of-type(even) td { background: #fdf6f8; }
.pr-table tbody .pr-product-row:hover td { background: #fbe9ef !important; }
.pr-table tbody .pr-product-row.has-qty td { background: #fcd9e3 !important; }

/* Header fila CATEGORÍA · separador visual fuerte */
.pr-cat-row td.pr-cat-cell {
    background: linear-gradient(135deg, #cc0946 0%, #9c0635 100%) !important;
    color: #fff !important;
    padding: 0.9em 1.2em !important;
    border-bottom: none !important;
}
.pr-cat-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.25em;
    font-weight: 500;
    letter-spacing: -0.005em;
    color: #fff;
}
.pr-cat-count {
    margin-left: 0.7em;
    padding: 0.25em 0.7em;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
    vertical-align: middle;
}

.pr-table .col-ref { font-family: 'Inter', monospace; color: #888; font-size: 0.85em; width: 60px; }
.pr-table .col-name { min-width: 240px; }
.pr-product-link { color: var(--nezeni-carbon); text-decoration: none; font-weight: 500; }
.pr-product-link:hover { color: var(--nezeni-granate); text-decoration: underline; }
.pr-table .col-format { font-size: 0.85em; color: var(--nezeni-gray-mid); white-space: nowrap; }
.pr-table .col-caducidad { font-size: 0.85em; color: #444; white-space: nowrap; width: 100px; text-align: center; }
.pr-table .col-caducidad strong { font-size: 1.05em; color: #1a1a1a; }
.pr-lote-mini { font-size: 0.8em; color: #999; letter-spacing: 0.04em; }
.pr-no-data { color: #ccc; }
.pr-table .col-price { text-align: right; font-family: 'Cormorant Garamond', serif; font-size: 1.15em; color: var(--nezeni-carbon); width: 90px; }
.pr-table .col-price strong { font-weight: 600; }
.pr-table .col-pvpr { text-align: right; color: #888; font-size: 0.92em; width: 80px; }
.pr-table .col-qty { width: 100px; text-align: center; }
.pr-table .col-subtotal { text-align: right; font-family: 'Cormorant Garamond', serif; font-size: 1.1em; color: var(--nezeni-carbon); width: 90px; min-width: 90px; }
/* (small dentro de th ya cubierto por la versión unificada con pr-th-sub abajo) */

/* Empty state búsqueda */
.pr-empty-cell {
    text-align: center !important;
    padding: 2.4em 1em !important;
    color: #888;
    font-style: italic;
    background: #fafaf7 !important;
}

/* Stepper qty · valor VISIBLE (fix v0.9.12) */
.qty-stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e0d8d2;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}
.qty-btn {
    background: #faf3f5;
    border: none;
    width: 26px;
    height: 30px;
    cursor: pointer;
    color: #cc0946;
    font-size: 1em;
    font-weight: 700;
    line-height: 1;
    transition: background 160ms ease;
}
.qty-btn:hover { background: #cc0946; color: #fff; }
.qty-input,
.pr-table .qty-input,
input.qty-input[type="number"] {
    width: 40px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #efeae6 !important;
    border-right: 1px solid #efeae6 !important;
    background: #fff !important;
    color: #1a1a1a !important;
    -webkit-text-fill-color: #1a1a1a !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    text-indent: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 30px !important;
    line-height: 30px !important;
    opacity: 1 !important;
    visibility: visible !important;
    -moz-appearance: textfield;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.qty-input:focus,
.pr-table .qty-input:focus {
    outline: none !important;
    background: #fdf6f8 !important;
    color: #cc0946 !important;
    -webkit-text-fill-color: #cc0946 !important;
}

/* ─── TOOLBAR · buscador + filtros chips ─── */
.pr-toolbar {
    display: flex;
    flex-direction: column;
    gap: 1.2em;
    margin-bottom: 1.4em;
    padding-bottom: 1em;
    border-bottom: 1px solid #efeae6;
}
.pr-search-label,
.pr-filters-label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    margin-bottom: 0.55em;
}
.pr-search-wrap { display: block; }
.pr-search-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #e0d8d2;
    border-radius: 999px;
    padding: 0.65em 1em 0.65em 2.6em;
    transition: border-color 200ms ease, box-shadow 200ms ease;
}
.pr-search-input-wrap:focus-within {
    border-color: #cc0946;
    box-shadow: 0 0 0 3px rgba(204, 9, 70, 0.10);
}
.pr-search-icon {
    position: absolute;
    left: 1em;
    color: #999;
    pointer-events: none;
}
.pr-search-input-wrap:focus-within .pr-search-icon { color: #cc0946; }
.pr-filters-wrap { display: block; }
/* ─── Cabecera tabla pedido rápido · UNIFICADA TOTAL v0.9.34 ─── */
.pr-table thead th,
.pr-table thead tr th {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    color: var(--nezeni-gray-mid) !important;
    text-align: left;
    padding: 0.95em 0.7em !important;
    background: #faf7f5 !important;
    border-bottom: 2px solid var(--nezeni-granate) !important;
    border-top: none !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
}
/* Asegurar que NINGÚN th hereda Cormorant del theme */
.pr-table thead th * {
    font-family: 'Inter', sans-serif !important;
}
.pr-table thead th .pr-th-label {
    display: block;
    font-family: 'Inter', sans-serif !important;
    font-size: 1em !important;
    font-weight: 600 !important;
    color: var(--nezeni-gray-mid) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    line-height: 1.2 !important;
}
.pr-table thead th .pr-th-sub {
    display: block;
    font-size: 0.85em !important;
    font-weight: 400 !important;
    color: #aaa !important;
    margin-top: 2px;
    letter-spacing: 0.06em !important;
    text-transform: lowercase !important;
    line-height: 1.2 !important;
}
.pr-table thead th.col-price,
.pr-table thead th.col-pvpr,
.pr-table thead th.col-qty,
.pr-table thead th.col-subtotal { text-align: right !important; }
.pr-table thead th.col-caducidad,
.pr-table thead th.col-format,
.pr-table thead th.col-ref,
.pr-table thead th.col-name { text-align: left !important; }
.pr-muestras-yes { color: var(--nezeni-granate); }
.pr-muestras-no { color: #bbb; }
.pr-modalidades-info-top { margin-top: 0.5em; margin-bottom: 2em; }
.pr-muestras-table th:nth-child(3) { text-align: center; }
.pr-muestras-table td:nth-child(3) { text-align: center; }
.pr-search {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    color: #1a1a1a;
}
.pr-search::placeholder { color: #aaa; }
.pr-search-clear {
    background: rgba(204, 9, 70, 0.10);
    border: none;
    color: #cc0946;
    width: 24px; height: 24px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    transition: background 160ms ease;
}
.pr-search-clear:hover { background: #cc0946; color: #fff; }
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.pr-footer-bar {
    position: sticky;
    bottom: 0;
    background: #fff;
    border-top: 2px solid var(--nezeni-granate);
    padding: 1.2em 1em;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1em 2em;
    align-items: center;
    box-shadow: 0 -4px 12px rgba(0,0,0,0.05);
    margin-top: 1em;
    border-radius: 4px 4px 0 0;
}
.pr-totals { display: flex; gap: 2.4em; flex-wrap: wrap; }
.pr-total-line { }
.pr-total-line .pr-label {
    display: block;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--nezeni-gray-mid);
    margin-bottom: 0.2em;
    font-weight: 600;
}
.pr-total-line .pr-value {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5em;
    color: var(--nezeni-carbon);
    font-weight: 500;
}
.modalidad-info .pr-value { font-size: 1em; line-height: 1.2; }
.modalidad-info .pr-mod-name {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.35em;
    font-weight: 600;
    color: #cc0946;
    line-height: 1.05;
    margin-bottom: 0.2em;
}
.modalidad-info .pr-mod-desc {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    color: #6a6a6a;
    line-height: 1.45;
    font-style: normal;
    max-width: 320px;
}

/* Bloque "Las 3 modalidades de pedido" debajo del módulo (información educativa) */
.pr-modalidades-info {
    margin-top: 2.4em;
    padding: 2em 1.6em;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}
.pr-modalidades-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.55rem;
    font-weight: 500;
    color: #1a1a1a;
    margin: 0 0 0.4em;
    letter-spacing: -0.005em;
}
.pr-modalidades-lead {
    font-size: 0.95rem;
    color: #5a5a5a;
    line-height: 1.6;
    margin: 0 0 1.6em;
    max-width: 56em;
}
.pr-mod-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
}
.pr-mod-card {
    background: #fafaf7;
    border-radius: 10px;
    padding: 1.3em 1.4em 1.4em;
    border: 1px solid #efeae6;
    display: flex;
    flex-direction: column;
}
.pr-mod-card-featured {
    background: linear-gradient(180deg, #fff5f7 0%, #fff 100%);
    border-color: rgba(204, 9, 70, 0.22);
    box-shadow: 0 4px 14px rgba(204, 9, 70, 0.08);
    position: relative;
}
.pr-mod-card-featured::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #cc0946 0%, #e63b6e 100%);
    border-radius: 10px 10px 0 0;
}
.pr-mod-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #cc0946;
    margin-bottom: 0.5em;
}
.pr-mod-card h4 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.2rem;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 0.8em;
    line-height: 1.2;
}
.pr-mod-card ul {
    margin: 0;
    padding-left: 1.1em;
    font-size: 0.9rem;
    color: #444;
    line-height: 1.55;
    list-style: none;
}
.pr-mod-card ul li {
    position: relative;
    padding-left: 0.9em;
    margin-bottom: 0.45em;
}
.pr-mod-card ul li::before {
    content: '·';
    position: absolute;
    left: 0;
    top: 0;
    color: #cc0946;
    font-weight: 600;
    font-size: 1.2em;
    line-height: 1;
}
.pr-mod-card ul li:last-child { margin-bottom: 0; }
.pr-mod-card ul li strong { color: #1a1a1a; font-weight: 600; }
.pr-mod-card-featured ul li strong { color: #cc0946; }

/* Tabla escalado muestras por SKU */
.pr-muestras-escala {
    margin-top: 1.6em;
    padding: 1.4em 1.6em;
    background: #fafaf7;
    border: 1px solid #efeae6;
    border-radius: 10px;
}
.pr-muestras-title {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: 1.2rem;
    color: #1a1a1a;
    margin: 0 0 0.4em;
}
.pr-muestras-lead {
    font-size: 0.9rem;
    color: #5a5a5a;
    line-height: 1.55;
    margin: 0 0 1em;
}
.pr-muestras-table {
    width: 100%;
    max-width: 480px;
    border-collapse: collapse;
    font-size: 0.92em;
}
.pr-muestras-table th {
    background: transparent;
    color: #888;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.55em 0.8em;
    text-align: left;
    border-bottom: 1px solid #cc0946;
}
.pr-muestras-table th small { font-size: 0.85em; font-weight: 400; color: #aaa; letter-spacing: normal; text-transform: none; margin-left: 0.3em; }
.pr-muestras-table td {
    padding: 0.6em 0.8em;
    border-bottom: 1px solid #efeae6;
    color: #1a1a1a;
}
.pr-muestras-table td:last-child { text-align: right; color: #cc0946; }
.pr-muestras-table tr:last-child td { border-bottom: 0; }

@media (max-width: 900px) {
    .pr-mod-cards { grid-template-columns: 1fr; }
    .pr-modalidades-info { padding: 1.4em 1.2em; }
    .pr-muestras-escala { padding: 1.1em 1em; }
}

.pr-actions { display: flex; gap: 0.6em; }
.pr-actions .button {
    background: var(--nezeni-granate);
    color: white;
    padding: 0.85em 1.6em;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    font-size: 0.95em;
    font-weight: 500;
    letter-spacing: 0.02em;
}
.pr-actions .button:hover { background: var(--nezeni-granate-deep); }
.pr-actions .button-secondary {
    background: transparent;
    color: var(--nezeni-gray-mid);
    border: 1px solid var(--nezeni-line);
    padding: 0.85em 1.4em;
    border-radius: 3px;
    cursor: pointer;
    font-size: 0.95em;
}
.pr-actions .button-secondary:hover { background: var(--nezeni-cream); }

/* .pr-footnote (deprecated v0.9.0 — reemplazado por .pr-modalidades-info) */
.pr-footnote { display: none; }

@media (max-width: 900px) {
    .pr-footer-bar { grid-template-columns: 1fr; }
    .pr-totals { gap: 1em; }
    .pr-actions { width: 100%; }
    .pr-actions .button { flex: 1; }
}


/* ═══════════════════════════════════════════
   HOME REHECHA · v2
   ═══════════════════════════════════════════ */

/* ─── Hero protagonista ─── */
.nph-hero {
    position: relative;
    min-height: 580px;
    display: flex;
    align-items: center;
    overflow: hidden;
    margin: 0 calc(50% - 50vw);
    padding: 4em 1.5em;
    isolation: isolate;
}
.nph-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: -1;
}
.nph-hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 35%, rgba(255,255,255,0.20) 70%, rgba(255,255,255,0) 100%);
}
.nph-hero-content { max-width: 580px; padding: 0 2em; position: relative; z-index: 2; }
.nph-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #cc0946;
    font-weight: 600;
    margin-bottom: 1.4em;
}
.nph-hero h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 4em;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.05;
    margin: 0 0 0.5em;
    letter-spacing: -0.02em;
}
.nph-hero h1 em { color: #cc0946; font-style: italic; font-weight: 500; }
.nph-hero-tagline {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.4em;
    color: #444;
    line-height: 1.45;
    margin: 1em 0 2em;
    max-width: 28em;
}
.nph-hero-cta { display: flex; gap: 1em; flex-wrap: wrap; }
.nph-btn {
    background: #cc0946;
    color: #fff !important;
    padding: 0.95em 2em;
    border-radius: 3px;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.95em;
    letter-spacing: 0.02em;
    display: inline-block;
    border: 1px solid #cc0946;
    transition: background 0.2s ease;
}
.nph-btn:hover { background: #9c0635; border-color: #9c0635; color: #fff !important; }
.nph-btn-ghost {
    background: transparent;
    color: #cc0946 !important;
    padding: 0.95em 2em;
    border-radius: 3px;
    text-decoration: none !important;
    font-weight: 500;
    font-size: 0.95em;
    border: 1px solid #cc0946;
    display: inline-block;
    transition: all 0.2s ease;
}
.nph-btn-ghost:hover { background: #cc0946; color: #fff !important; }

/* ─── Stats bar ─── */
.nph-statsbar {
    background: #1a1a1a;
    color: #fff;
    margin: 0 calc(50% - 50vw);
    padding: 2.5em 1em;
}
.nph-statsbar-inner {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1em;
}
.nph-stat { text-align: center; }
.nph-stat .num {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.4em;
    color: #cc0946;
    line-height: 1;
    font-weight: 500;
    margin-bottom: 0.3em;
}
.nph-stat .lbl {
    font-size: 0.8em;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.7);
}

/* ─── Principles 2-col ─── */
.nph-principles {
    background: #fafaf7;
    margin: 0 calc(50% - 50vw);
    padding: 5em 1.5em;
}
.nph-principles-inner {
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 5em;
    align-items: center;
}
.nph-principles-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.6em;
    color: #1a1a1a;
    line-height: 1.1;
    margin: 0.4em 0 1.5em;
    font-weight: 500;
}
.nph-principles-text h2 em { color: #cc0946; font-style: italic; }
.nph-principle {
    margin-bottom: 2.5em;
    padding-bottom: 2em;
    border-bottom: 1px solid rgba(204,9,70,0.15);
}
.nph-principle:last-child { border-bottom: none; padding-bottom: 0; }
.nph-principle .num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 3em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.2em;
    font-weight: 400;
}
.nph-principle h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.6em;
    line-height: 1.2;
    margin: 0.2em 0 0.5em;
    font-weight: 500;
    color: #1a1a1a;
}
.nph-principle h3 em { color: #cc0946; font-style: italic; font-weight: 500; }
.nph-principle p { color: #444; line-height: 1.7; font-size: 0.95em; margin: 0; }

.nph-principles-image img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}

/* ─── Acreditación ─── */
.nph-accred {
    max-width: 1080px;
    margin: 5em auto;
    padding: 0 1.5em;
    text-align: center;
}
.nph-accred h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.6em;
    color: #1a1a1a;
    line-height: 1.1;
    margin: 0.4em auto 0.6em;
    font-weight: 500;
    max-width: 16em;
}
.nph-accred h2 em { color: #cc0946; font-style: italic; }
.nph-accred-lead {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.2em;
    color: #555;
    max-width: 38em;
    margin: 0 auto 3em;
    line-height: 1.55;
}
.nph-accred-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5em;
}
.nph-accred-card {
    padding: 2.2em 1.6em;
    background: #fafaf7;
    border-radius: 3px;
    text-align: left;
    position: relative;
}
.nph-accred-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 32px;
    height: 1px;
    background: #cc0946;
}
.nph-accred-num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2.5em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.4em;
    font-weight: 500;
}
.nph-accred-label {
    font-size: 0.78em;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #1a1a1a;
    font-weight: 600;
    margin-bottom: 0.7em;
}
.nph-accred-card p { font-size: 0.9em; color: #555; line-height: 1.55; margin: 0; }

/* ─── Benefits 2-col foto + grid ─── */
.nph-benefits {
    background: #fafaf7;
    margin: 0 calc(50% - 50vw);
    padding: 5em 1.5em;
}
.nph-benefits-inner {
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 5em;
    align-items: center;
}
.nph-benefits-image img {
    width: 100%;
    border-radius: 4px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}
.nph-benefits-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.4em;
    color: #1a1a1a;
    line-height: 1.1;
    margin: 0.4em 0 1.5em;
    font-weight: 500;
}
.nph-benefits-text h2 em { color: #cc0946; font-style: italic; }
.nph-benefits-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.6em;
    margin-top: 2em;
}
.nph-benefit { padding-left: 1em; border-left: 2px solid #cc0946; }
.nph-benefit .num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.8em;
    color: #cc0946;
    line-height: 1;
    font-weight: 500;
    margin-bottom: 0.2em;
}
.nph-benefit p { font-size: 0.92em; color: #444; line-height: 1.55; margin: 0.3em 0 0; }
.nph-benefit p strong { color: #1a1a1a; }

/* ─── Steps ─── */
.nph-steps-section {
    max-width: 1080px;
    margin: 5em auto;
    padding: 0 1.5em;
    text-align: center;
}
.nph-steps-section h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.6em;
    color: #1a1a1a;
    line-height: 1.1;
    margin: 0.4em auto 2em;
    font-weight: 500;
    max-width: 18em;
}
.nph-steps-section h2 em { color: #cc0946; font-style: italic; }
.nph-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2em;
    margin-bottom: 3em;
    text-align: left;
}
.nph-step .num {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 3em;
    color: #cc0946;
    line-height: 1;
    margin-bottom: 0.3em;
    font-weight: 500;
}
.nph-step h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3em;
    color: #1a1a1a;
    margin: 0 0 0.4em;
    font-weight: 500;
}
.nph-step p { font-size: 0.92em; color: #555; line-height: 1.55; margin: 0; }

.nph-final-cta { padding-top: 2em; border-top: 1px solid rgba(204,9,70,0.15); }
.nph-btn-large { padding: 1.1em 2.8em; font-size: 1.05em; }
.nph-cta-note { margin-top: 1em; color: #888; font-size: 0.95em; }
.nph-cta-note a { color: #cc0946; }

/* ─── Closing ─── */
.nph-closing {
    position: relative;
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 calc(50% - 50vw);
    padding: 5em 1em;
    isolation: isolate;
    overflow: hidden;
}
.nph-closing-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: -1;
}
.nph-closing-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
}
.nph-closing-content { text-align: center; max-width: 28em; }
.nph-closing-quote {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2.4em;
    color: #fff;
    line-height: 1.2;
    margin: 0 auto 0.8em;
    font-weight: 400;
}
.nph-closing-quote em { color: #ffb8cc; }
.nph-closing-divider { width: 60px; height: 1px; background: #cc0946; margin: 1.5em auto; }
.nph-closing-brand {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.6em;
    color: #ffb8cc;
    font-weight: 600;
    margin: 0.6em 0 0.3em;
}
.nph-closing-detail { font-size: 0.92em; color: rgba(255,255,255,0.85); margin: 0; letter-spacing: 0.04em; }

/* ─── Mobile ─── */
@media (max-width: 900px) {
    .nph-hero { min-height: 460px; padding: 3em 1em; }
    .nph-hero-bg::after { background: linear-gradient(0deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.7) 60%, rgba(255,255,255,0.3) 100%); }
    .nph-hero h1 { font-size: 2.4em; }
    .nph-hero-tagline { font-size: 1.15em; }
    .nph-statsbar-inner { grid-template-columns: 1fr 1fr; gap: 1.5em; }
    .nph-stat .num { font-size: 1.8em; }
    .nph-principles-inner, .nph-benefits-inner { grid-template-columns: 1fr; gap: 2em; }
    .nph-principles-image, .nph-benefits-image { order: -1; max-width: 460px; margin: 0 auto; }
    .nph-accred-grid, .nph-benefits-grid { grid-template-columns: 1fr; }
    .nph-steps { grid-template-columns: 1fr 1fr; gap: 2em 1.5em; }
    .nph-principles, .nph-benefits { padding: 3em 1em; }
    .nph-principles-text h2, .nph-benefits-text h2, .nph-accred h2, .nph-steps-section h2 { font-size: 1.9em; }
    .nph-closing-quote { font-size: 1.6em; }
}
@media (max-width: 540px) {
    .nph-hero h1 { font-size: 1.9em; }
    .nph-hero-cta { flex-direction: column; align-items: stretch; }
    .nph-statsbar-inner { grid-template-columns: 1fr; }
    .nph-steps { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════
   MI CUENTA · stats grandes y mejor visual
   ═══════════════════════════════════════════ */
.nezeni-mi-cuenta-stats { gap: 1em; }
.nezeni-mi-cuenta-stats .stat-card { background: #fafaf7; padding: 1.3em 1.4em; border-radius: 4px; border-left: 4px solid #cc0946; }
.nezeni-mi-cuenta-stats .stat-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8em !important;
    line-height: 1.1;
}

.nezeni-quick-actions { gap: 0.8em; }
.quick-action {
    padding: 1.2em 1.4em;
    background: #fafaf7;
    border-left: 3px solid #cc0946;
    transition: all 0.2s ease;
}
.qa-label { font-size: 1.2em; }


/* ─── PRICE BOX (sin margen visible · ISDIN style) ─── */
.nezeni-price-box {
    background: var(--nezeni-cream);
    border-left: 3px solid var(--nezeni-granate);
    padding: 1.2em 1.5em;
    margin: 1em 0 1.5em;
    border-radius: 0 4px 4px 0;
}
.nezeni-price-box .price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.5em 0;
    font-size: 0.95em;
}
.nezeni-price-box .price-row.primary { padding-bottom: 0.7em; border-bottom: 1px solid rgba(204,9,70,0.15); }
.nezeni-price-box .price-row.secondary { padding-top: 0.7em; }
.nezeni-price-box .price-label { color: var(--nezeni-gray-mid); font-size: 0.92em; }
.nezeni-price-box .price-row.primary .price-label { color: var(--nezeni-granate); font-weight: 600; }
.nezeni-price-box .price-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.4em;
    color: var(--nezeni-carbon);
    font-weight: 500;
}
.nezeni-price-box .price-row.primary .price-value { font-size: 1.7em; color: var(--nezeni-granate); }
.nezeni-price-box .price-note {
    margin-top: 0.7em;
    padding-top: 0.7em;
    border-top: 1px dashed rgba(204,9,70,0.15);
}
.nezeni-price-box .price-note small { font-size: 0.78em; color: #888; line-height: 1.5; }


/* ════════════════════════════════════════════════════════════════
   v0.8.0 · MI CUENTA REDISEÑO · Apple Account minimal cards
   ════════════════════════════════════════════════════════════════ */

/* View Transitions API · navegación same-origin con fade morph */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: 220ms cubic-bezier(.2,.6,.2,1) both np-fade-out; }
::view-transition-new(root) { animation: 320ms cubic-bezier(.2,.6,.2,1) 60ms both np-fade-in; }
@keyframes np-fade-out { to { opacity: 0; transform: translateY(-4px); } }
@keyframes np-fade-in { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

/* Ocultar sidebar WC default en TODO el área de cuenta · pharma B2B */
.woocommerce-account .woocommerce-MyAccount-navigation { display: none !important; }
.woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}
.woocommerce-account .woocommerce { background: #FAFAF7; padding: 0 !important; }

/* Ocultar título "Mi cuenta" del theme — redundante con nuestro hero */
.woocommerce-account .entry-header .entry-title,
.woocommerce-account .ast-archive-title,
.woocommerce-account .page-title,
.woocommerce-account .ast-page-header { display: none !important; }
.woocommerce-account .entry-content { margin: 0 !important; padding: 0 !important; }
.woocommerce-account .ast-container,
.woocommerce-account .ast-row { max-width: 100% !important; padding: 0 !important; }
.woocommerce-account.ast-no-sidebar #primary { margin: 0 !important; padding: 0 !important; }

/* Hero del dashboard */
.np-account { max-width: 1240px; margin: 0 auto; padding: 2.4em 1.6em 4em; background: #FAFAF7; color: #1a1a1a; }
.np-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1.4em;
    padding-bottom: 2em;
    border-bottom: 1px solid #E8E4E0;
    margin-bottom: 2.2em;
}
.np-eyebrow {
    display: block;
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #cc0946;
    margin-bottom: 0.6em;
}
.np-name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: clamp(2.1rem, 4vw, 3.1rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: #1a1a1a;
    margin: 0 0 0.35em;
}
.np-sub { font-size: 0.95rem; color: #6a6a6a; margin: 0; line-height: 1.5; }
.np-tier {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.4em;
    text-align: right;
}
.np-tier-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    color: #888;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.np-tier-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.55em 1em;
    background: #fff;
    border: 1px solid rgba(204, 9, 70, 0.22);
    border-radius: 999px;
    color: #cc0946;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.02em;
}

/* Summary panel (Hero + stats agrupados como bloque editorial v0.8.2) */
.np-summary {
    background: #fff;
    border-radius: 14px;
    padding: 2em 2.3em 2.1em;
    margin-bottom: 2.8em;
    box-shadow: 0 2px 20px rgba(20, 20, 20, 0.04);
}
.np-summary .np-hero {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 1.4em;
    align-items: flex-end;
}
.np-summary-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #E8E4E0 15%, #E8E4E0 85%, transparent 100%);
    margin: 0 -0.5em 1.4em;
}
.np-summary .np-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-bottom: 0;
}
.np-summary .np-stat {
    background: transparent;
    box-shadow: none;
    padding: 0.2em 1.6em;
    border-left: 1px solid #F0EBE8;
    border-radius: 0;
}
.np-summary .np-stat:first-child { border-left: 0; padding-left: 0; }
.np-summary .np-stat:last-child { padding-right: 0; }
.np-summary .np-stat:hover { box-shadow: none; transform: none; }

/* Headline "Acciones rápidas" entre summary y grid */
.np-grid-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.7em 1.2em;
    margin-bottom: 1.1em;
    padding-left: 0.3em;
}
.np-grid-header .np-eyebrow { margin: 0; }
.np-grid-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.5rem;
    color: #1a1a1a;
    margin: 0;
    line-height: 1.1;
    letter-spacing: -0.005em;
}

/* Stats row (3 cards de KPI · usado FUERA de .np-summary para retrocompatibilidad) */
.np-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
    margin-bottom: 2.4em;
}
.np-stat {
    background: #fff;
    border-radius: 10px;
    padding: 1.5em 1.6em 1.7em;
    box-shadow: 0 1px 3px rgba(20, 20, 20, 0.03);
    transition: box-shadow 240ms cubic-bezier(.2,.6,.2,1);
    display: flex;
    flex-direction: column;
}
.np-stat:hover { box-shadow: 0 6px 18px rgba(20, 20, 20, 0.06); }
.np-stat-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #888;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.6em;
    font-weight: 500;
}
.np-stat-value {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 2.3rem;
    font-weight: 500;
    line-height: 1.1;
    color: #1a1a1a;
    margin-bottom: 0.4em;
    letter-spacing: -0.01em;
}
.np-stat-value .woocommerce-Price-amount,
.np-stat-value .amount { font-family: inherit; font-weight: inherit; color: inherit; }
.np-stat-foot { font-size: 0.82rem; color: #6a6a6a; line-height: 1.5; }
.np-stat-foot strong { color: #cc0946; font-weight: 600; }

/* Progress bar */
.np-progress {
    margin-top: 0.9em;
    height: 4px;
    background: #f0eceb;
    border-radius: 999px;
    overflow: hidden;
}
.np-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #cc0946 0%, #e63b6e 100%);
    border-radius: 999px;
    transition: width 800ms cubic-bezier(.2,.6,.2,1);
}

/* Grid principal de tarjetas (6 acciones) */
.np-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.1em;
    margin-bottom: 3em;
}
.np-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    padding: 1.6em 1.6em 1.7em;
    text-decoration: none;
    color: #1a1a1a;
    box-shadow: 0 1px 3px rgba(20, 20, 20, 0.04);
    transition:
        transform 260ms cubic-bezier(.2,.6,.2,1),
        box-shadow 260ms cubic-bezier(.2,.6,.2,1),
        border-color 200ms ease;
    border: 1px solid transparent;
    overflow: hidden;
    min-height: 200px;
}
.np-card:hover,
.np-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(204, 9, 70, 0.10);
    border-color: rgba(204, 9, 70, 0.18);
}
.np-card:focus-visible {
    outline: 2px solid #cc0946;
    outline-offset: 2px;
}
.np-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.9em;
}
.np-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(204, 9, 70, 0.08);
    color: #cc0946;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1;
    transition: background 240ms ease, transform 320ms cubic-bezier(.2,.6,.2,1);
}
.np-card:hover .np-card-icon { background: rgba(204, 9, 70, 0.14); transform: rotate(8deg); }
.np-card-badge {
    background: rgba(204, 9, 70, 0.08);
    color: #cc0946;
    font-family: 'Inter', sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.3em 0.65em;
    border-radius: 999px;
}
.np-card-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.55rem;
    font-weight: 500;
    margin: 0 0 0.4em;
    line-height: 1.15;
    color: #1a1a1a;
    letter-spacing: -0.005em;
}
.np-card-desc {
    flex: 1;
    font-size: 0.92rem;
    color: #5a5a5a;
    line-height: 1.55;
    margin: 0 0 1.2em;
}
.np-card-cta {
    font-family: 'Inter', sans-serif;
    font-size: 0.88rem;
    color: #cc0946;
    font-weight: 500;
    letter-spacing: 0.01em;
    transition: gap 220ms ease;
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
}
.np-card:hover .np-card-cta { gap: 0.55em; }

/* Card primary (Pedido rápido) — granate inverso */
.np-card-primary {
    background: linear-gradient(135deg, #cc0946 0%, #a30538 100%);
    color: #fff;
    box-shadow: 0 8px 22px rgba(204, 9, 70, 0.18);
}
.np-card-primary:hover,
.np-card-primary:focus-visible {
    background: linear-gradient(135deg, #d9134e 0%, #b00b40 100%);
    color: #fff;
    box-shadow: 0 14px 34px rgba(204, 9, 70, 0.28);
    border-color: transparent;
}
.np-card-primary .np-card-title { color: #fff; }
.np-card-primary .np-card-desc { color: rgba(255, 255, 255, 0.86); }
.np-card-primary .np-card-icon { background: rgba(255, 255, 255, 0.18); color: #fff; }
.np-card-primary:hover .np-card-icon { background: rgba(255, 255, 255, 0.28); }
.np-card-primary .np-card-badge { background: rgba(255, 255, 255, 0.18); color: #fff; }
.np-card-primary .np-card-cta { color: #fff; }

/* Footer de ayuda */
.np-footer-help {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1em;
    padding: 1.6em 1.8em;
    background: #fff;
    border-radius: 10px;
    border: 1px solid #EFEAE6;
}
.np-footer-help h4 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.25rem;
    margin: 0;
    color: #1a1a1a;
}
.np-link {
    color: #cc0946;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 500;
    text-decoration: none;
    transition: opacity 220ms ease;
}
.np-link:hover { opacity: 0.7; color: #cc0946; }

/* Override del hero editorial existente para endpoints internos — mantiene branding sin sidebar */
.woocommerce-account .nezeni-section-hero { max-width: 1240px; margin-left: auto; margin-right: auto; }
.woocommerce-account .nezeni-recursos-grid,
.woocommerce-account .nezeni-tarifa-download,
.woocommerce-account .nezeni-tarifa-tabla,
.woocommerce-account .nezeni-info-box,
.woocommerce-account form.nezeni-soporte-form {
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
}

/* Botón volver al panel · presente en endpoints internos */
.np-back {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    max-width: 1240px;
    margin: 1.5em auto 0;
    padding: 0 1.6em;
    width: 100%;
    color: #888;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    text-decoration: none;
    transition: color 200ms ease, gap 200ms ease;
}
.np-back:hover { color: #cc0946; gap: 0.6em; }

/* Responsive */
@media (max-width: 980px) {
    .np-grid { grid-template-columns: repeat(2, 1fr); }
    .np-stats { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
    .np-account { padding: 1.6em 1em 3em; }
    .np-hero { padding-bottom: 1.4em; margin-bottom: 1.6em; }
    .np-tier { align-items: flex-start; text-align: left; }
    .np-stats { grid-template-columns: 1fr; gap: 0.8em; margin-bottom: 1.6em; }
    .np-grid { grid-template-columns: 1fr; gap: 0.9em; }
    .np-stat-value { font-size: 1.9rem; }
    .np-card { min-height: 0; }
    .np-card-title { font-size: 1.35rem; }
    .np-footer-help { flex-direction: column; align-items: flex-start; }

    /* Summary panel mobile: stats apilados sin separadores verticales */
    .np-summary { padding: 1.4em 1.2em 1.6em; margin-bottom: 1.8em; border-radius: 12px; }
    .np-summary .np-hero { margin-bottom: 1em; }
    .np-summary-divider { margin: 0 -0.2em 1em; }
    .np-summary .np-stats { grid-template-columns: 1fr; gap: 1.2em; }
    .np-summary .np-stat {
        border-left: 0;
        border-top: 1px solid #F0EBE8;
        padding: 1em 0 0 0;
    }
    .np-summary .np-stat:first-child { border-top: 0; padding-top: 0; }
    .np-summary .np-stat:last-child { padding-right: 0; }
    .np-grid-title { font-size: 1.3rem; }
}


/* ════════════════════════════════════════════════════════════════
   v0.8.1 · Sidebar persistente en endpoints internos
   (Inicio + Pedido rápido + Mis pedidos + Tarifa + Formación + POS + Soporte)
   La sección activa se destaca en granate inverso.
   ════════════════════════════════════════════════════════════════ */

.np-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 1.8em 1.6em 4em;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2.4em;
    align-items: start;
    background: #FAFAF7;
}

.np-sidebar {
    position: sticky;
    top: 1.4em;
    display: flex;
    flex-direction: column;
    gap: 0.35em;
}

.np-sidebar-eyebrow {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 0.68rem;
    color: #888;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0 0 0.7em 0.9em;
    display: block;
}

.np-sidebar-item {
    display: flex;
    align-items: center;
    gap: 0.7em;
    padding: 0.7em 0.85em;
    background: #fff;
    border-radius: 9px;
    text-decoration: none;
    color: #1a1a1a;
    font-family: 'Inter', sans-serif;
    font-size: 0.93rem;
    font-weight: 500;
    border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(20, 20, 20, 0.02);
    transition: transform 240ms cubic-bezier(.2,.6,.2,1),
                box-shadow 240ms cubic-bezier(.2,.6,.2,1),
                border-color 200ms ease,
                background 200ms ease,
                color 200ms ease;
    position: relative;
}

.np-sidebar-item:hover {
    color: #1a1a1a;
    border-color: rgba(204, 9, 70, 0.18);
    background: #fff;
    box-shadow: 0 4px 14px rgba(204, 9, 70, 0.08);
    transform: translateX(3px);
}

.np-sidebar-item:focus-visible {
    outline: 2px solid #cc0946;
    outline-offset: 3px;
}

.np-sidebar-item.is-active {
    background: linear-gradient(135deg, #cc0946 0%, #a30538 100%);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(204, 9, 70, 0.22);
    transform: none;
}

.np-sidebar-item.is-active:hover {
    transform: none;
    color: #fff;
}

.np-sidebar-icon {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(204, 9, 70, 0.08);
    color: #cc0946;
    font-size: 0.95rem;
    flex-shrink: 0;
    transition: background 220ms ease, color 220ms ease, transform 260ms cubic-bezier(.2,.6,.2,1);
}

.np-sidebar-item:hover .np-sidebar-icon {
    background: rgba(204, 9, 70, 0.14);
    transform: rotate(6deg);
}

.np-sidebar-item.is-active .np-sidebar-icon {
    background: rgba(255, 255, 255, 0.20);
    color: #fff;
    transform: none;
}

.np-sidebar-label {
    flex: 1;
    line-height: 1.25;
}

.np-sidebar-divider {
    height: 1px;
    background: #E8E4E0;
    margin: 0.9em 0.5em;
}

.np-sidebar-help {
    display: flex;
    flex-direction: column;
    gap: 0.25em;
    padding: 0.7em 0.85em;
    text-decoration: none;
    color: #888;
    border-radius: 9px;
    transition: color 200ms ease, background 200ms ease;
}
.np-sidebar-help:hover { color: #cc0946; background: rgba(204, 9, 70, 0.04); }
.np-sidebar-help .np-sidebar-eyebrow { margin: 0; padding: 0; font-size: 0.65rem; letter-spacing: 0.14em; }
.np-sidebar-help-mail {
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    color: #cc0946;
    font-weight: 500;
}

/* Main: el contenido del endpoint */
.np-section-main { min-width: 0; }

/* Forzar el hero existente y los grids/tabs internos a ocupar todo el main */
.np-section-main .nezeni-section-hero,
.np-section-main .nezeni-recursos-grid,
.np-section-main .nezeni-tarifa-download,
.np-section-main .nezeni-tarifa-tabla,
.np-section-main .nezeni-info-box,
.np-section-main form.nezeni-form,
.np-section-main form.nezeni-soporte-form {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Reglas para /pedido-rapido/ (no es endpoint WC, es page WP — usa body class .np-page-pedido-rapido) */
body.np-page-pedido-rapido { background: #FAFAF7; }
body.np-page-pedido-rapido .entry-header,
body.np-page-pedido-rapido .ast-page-header,
body.np-page-pedido-rapido .ast-archive-title,
body.np-page-pedido-rapido .entry-title { display: none !important; }
body.np-page-pedido-rapido .entry-content { margin: 0 !important; padding: 0 !important; }
body.np-page-pedido-rapido .ast-container,
body.np-page-pedido-rapido .ast-row { max-width: 100% !important; padding: 0 !important; }
body.np-page-pedido-rapido #primary { margin: 0 !important; padding: 0 !important; }
body.np-page-pedido-rapido .nezeni-pedido-rapido .pr-header { padding-top: 0; }

/* Responsive: en tablet/mobile el sidebar pasa a horizontal scroll de chips arriba */
@media (max-width: 980px) {
    .np-section {
        grid-template-columns: 1fr;
        gap: 1em;
        padding: 1em 1em 3em;
    }
    .np-sidebar {
        position: static;
        flex-direction: row;
        overflow-x: auto;
        gap: 0.5em;
        padding: 0.3em 0.2em 0.7em;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
    }
    .np-sidebar > .np-sidebar-eyebrow { display: none; }
    .np-sidebar-divider { display: none; }
    .np-sidebar-help { display: none; }
    .np-sidebar-item {
        flex: 0 0 auto;
        white-space: nowrap;
        padding: 0.55em 0.85em 0.55em 0.6em;
        scroll-snap-align: start;
        font-size: 0.88rem;
    }
    .np-sidebar-item:hover { transform: none; }
    .np-sidebar-icon { width: 26px; height: 26px; font-size: 0.85rem; }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.x · BLOQUE CUBISTA DE VIRTUDES EN FICHA DE PRODUCTO
   3 pilares + activos extraídos + acceso al argumentario científico
   ════════════════════════════════════════════════════════════════ */

.np-virtudes {
    max-width: 1240px;
    margin: 3em auto 2em;
    padding: 0 1.6em;
}
.np-virtudes-header {
    margin-bottom: 1.6em;
    max-width: 60em;
}
.np-virtudes-header-secondary { margin-top: 2.8em; }
.np-virtudes-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1a1a1a;
    margin: 0.3em 0 0.4em;
}
.np-virtudes-subtitle {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.6rem;
    color: #1a1a1a;
    margin: 0.3em 0 0;
    line-height: 1.15;
}
.np-virtudes-lead {
    font-size: 1rem;
    color: #5a5a5a;
    line-height: 1.55;
    margin: 0;
}

/* Grid 4 pilares en 2x2 — cubista, gran tamaño */
.np-pillars-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.1em;
    margin-bottom: 0.5em;
}
.np-pillar {
    background: #fff;
    border-radius: 14px;
    padding: 2em 1.7em 1.7em;
    box-shadow: 0 4px 22px rgba(20, 20, 20, 0.05);
    border: 1px solid #efeae6;
    position: relative;
    transition: transform 260ms cubic-bezier(.2,.6,.2,1), box-shadow 260ms cubic-bezier(.2,.6,.2,1);
}
.np-pillar:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(204, 9, 70, 0.10);
}
.np-pillar::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #cc0946 0%, #e63b6e 100%);
    border-radius: 14px 14px 0 0;
    opacity: 0;
    transition: opacity 260ms ease;
}
.np-pillar:hover::before { opacity: 1; }
.np-pillar-icon {
    font-size: 2rem;
    margin-bottom: 0.6em;
    line-height: 1;
}
.np-pillar-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 600;
    font-size: 1.35rem;
    color: #1a1a1a;
    margin: 0 0 0.6em;
    line-height: 1.2;
    letter-spacing: -0.005em;
}
.np-pillar-desc {
    font-size: 0.95rem;
    color: #4a4a4a;
    line-height: 1.55;
    margin: 0 0 1em;
}
.np-pillar-desc strong { color: #cc0946; font-weight: 600; }
.np-pillar-meta {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    color: #888;
    letter-spacing: 0.06em;
    padding-top: 0.7em;
    border-top: 1px solid #f0ebe8;
    line-height: 1.4;
}

/* Activos principales — cubista grid */
.np-actives-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.9em;
    margin-bottom: 0.5em;
}
.np-active-card {
    background: linear-gradient(180deg, #fff 0%, #fafaf7 100%);
    border-radius: 11px;
    padding: 1.4em 1.5em;
    border: 1px solid #efeae6;
    transition: transform 220ms cubic-bezier(.2,.6,.2,1), box-shadow 220ms cubic-bezier(.2,.6,.2,1), border-color 200ms ease;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    min-height: 130px;
}
.np-active-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(204, 9, 70, 0.08);
    border-color: rgba(204, 9, 70, 0.18);
}
.np-active-num {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 1.1rem;
    color: #cc0946;
    line-height: 1;
    letter-spacing: 0.04em;
    opacity: 0.8;
}
.np-active-name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 600;
    font-size: 1.05rem;
    color: #1a1a1a;
    margin: 0;
    line-height: 1.25;
}
.np-active-benefit {
    font-size: 0.9rem;
    color: #5a5a5a;
    line-height: 1.5;
    margin: 0;
    flex: 1;
}

/* CTA evidencia (argumentario) — banda granate horizontal */
.np-evidence-cta {
    margin-top: 2.4em;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.4em;
    padding: 1.8em 2em;
    background: linear-gradient(135deg, #1a1a1a 0%, #2a1018 100%);
    border-radius: 14px;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.np-evidence-cta::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; right: 0;
    width: 50%;
    background: radial-gradient(circle at top right, rgba(204, 9, 70, 0.22), transparent 60%);
    pointer-events: none;
}
.np-evidence-text { flex: 1; min-width: 280px; position: relative; z-index: 1; }
.np-evidence-text .np-eyebrow { color: #e63b6e; margin-bottom: 0.6em; }
.np-evidence-text h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.5rem;
    color: #fff;
    margin: 0.1em 0 0.4em;
    line-height: 1.15;
}
.np-evidence-text p {
    font-size: 0.92rem;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.55;
    margin: 0;
    max-width: 50em;
}
.np-evidence-actions {
    display: flex;
    gap: 0.7em;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}
.np-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.75em 1.4em;
    border-radius: 7px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    transition: transform 200ms cubic-bezier(.2,.6,.2,1), background 200ms ease, color 200ms ease;
}
.np-btn-primary {
    background: #cc0946;
    color: #fff;
}
.np-btn-primary:hover { background: #e63b6e; color: #fff; transform: translateY(-1px); }
.np-btn-ghost {
    background: transparent;
    color: rgba(255, 255, 255, 0.86);
    border: 1px solid rgba(255, 255, 255, 0.28);
}
.np-btn-ghost:hover { background: rgba(255, 255, 255, 0.08); color: #fff; border-color: rgba(255, 255, 255, 0.5); }

@media (max-width: 980px) {
    .np-pillars-grid { grid-template-columns: 1fr; }
    .np-actives-grid { grid-template-columns: 1fr 1fr; }
    .np-evidence-cta { padding: 1.4em 1.4em; }
}
@media (max-width: 540px) {
    .np-actives-grid { grid-template-columns: 1fr; }
    .np-evidence-actions { width: 100%; }
    .np-evidence-actions .np-btn { flex: 1; justify-content: center; }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.x · /mi-cuenta/datos-farmacia/ — formulario editable
   ════════════════════════════════════════════════════════════════ */

.np-mifarma { max-width: 1240px; margin: 0 auto; }

.np-mifarma-status {
    display: flex;
    align-items: center;
    gap: 1.2em;
    flex-wrap: wrap;
    background: #fff;
    border-radius: 12px;
    padding: 1.2em 1.6em;
    box-shadow: 0 2px 14px rgba(20, 20, 20, 0.04);
    margin-bottom: 1.6em;
}
.np-mifarma-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.5em 1em;
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.02em;
}
.np-mifarma-status-badge.is-ok {
    background: rgba(46, 160, 67, 0.10);
    color: #1f7a3a;
    border: 1px solid rgba(46, 160, 67, 0.22);
}
.np-mifarma-status-badge.is-pending {
    background: rgba(217, 119, 6, 0.10);
    color: #b65800;
    border: 1px solid rgba(217, 119, 6, 0.22);
}
.np-mifarma-status-note {
    margin: 0;
    font-size: 0.92rem;
    color: #5a5a5a;
    line-height: 1.5;
}
.np-mifarma-status-note strong { color: #cc0946; font-weight: 600; }

.np-alert {
    border-radius: 10px;
    padding: 1em 1.3em;
    margin-bottom: 1.4em;
    font-size: 0.93rem;
}
.np-alert-success { background: rgba(46, 160, 67, 0.08); color: #1f7a3a; border: 1px solid rgba(46, 160, 67, 0.22); }
.np-alert-error { background: rgba(204, 9, 70, 0.08); color: #9c0635; border: 1px solid rgba(204, 9, 70, 0.22); }
.np-alert strong { font-weight: 600; }

.np-mifarma-form {
    background: #fff;
    border-radius: 14px;
    padding: 1.8em 2em;
    box-shadow: 0 2px 20px rgba(20, 20, 20, 0.04);
}
.np-fieldset {
    border: 0;
    padding: 0 0 1.8em;
    margin: 0 0 1.8em;
    border-bottom: 1px solid #f0ebe8;
}
.np-fieldset:last-of-type { border-bottom: 0; padding-bottom: 0.5em; margin-bottom: 0.5em; }
.np-fieldset legend {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.3rem;
    color: #1a1a1a;
    margin-bottom: 1em;
    padding: 0;
}
.np-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.9em 1.2em;
}
.np-grid-2 p { margin: 0; }
.np-grid-2 p.full { grid-column: 1 / -1; }
.np-mifarma-form label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    color: #6a6a6a;
    font-weight: 500;
    letter-spacing: 0.04em;
    margin-bottom: 0.35em;
}
.np-mifarma-form input[type="text"],
.np-mifarma-form input[type="email"],
.np-mifarma-form input[type="tel"],
.np-mifarma-form select {
    width: 100%;
    padding: 0.7em 0.85em;
    border: 1px solid #e0d8d2;
    border-radius: 7px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    color: #1a1a1a;
    background: #fff;
    transition: border-color 200ms ease, box-shadow 200ms ease;
}
.np-mifarma-form input:focus,
.np-mifarma-form select:focus {
    outline: none;
    border-color: #cc0946;
    box-shadow: 0 0 0 3px rgba(204, 9, 70, 0.12);
}
.np-mifarma-actions { text-align: right; margin-top: 0.8em; }
.np-mifarma-actions .np-btn { padding: 0.85em 1.7em; font-size: 0.95rem; }

@media (max-width: 720px) {
    .np-grid-2 { grid-template-columns: 1fr; }
    .np-mifarma-form { padding: 1.3em 1.2em; }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.x · /mi-cuenta/equipo/ — gestión de sub-usuarios
   ════════════════════════════════════════════════════════════════ */

.np-equipo { max-width: 1240px; margin: 0 auto; }

.np-equipo-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
    margin-bottom: 1.6em;
    padding: 1.4em 1.6em;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 2px 14px rgba(20, 20, 20, 0.04);
}
.np-equipo-stat { display: flex; flex-direction: column; gap: 0.3em; }
.np-equipo-stat .np-eyebrow { margin: 0; }
.np-equipo-stat-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2rem;
    font-weight: 500;
    color: #cc0946;
    line-height: 1;
}
.np-equipo-stat-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.15;
}
.np-equipo-stat-text {
    font-size: 0.92rem;
    color: #5a5a5a;
    line-height: 1.45;
}

.np-equipo-list, .np-equipo-add {
    background: #fff;
    border-radius: 14px;
    padding: 1.7em 1.8em;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.04);
    margin-bottom: 1.4em;
}
.np-equipo-list-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.2em;
    flex-wrap: wrap;
    gap: 0.8em;
}
.np-equipo-list-head h3 {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: 1.4rem;
    color: #1a1a1a;
    margin: 0;
}
.np-equipo-list-head .np-btn { padding: 0.65em 1.2em; font-size: 0.88rem; }

.np-equipo-empty {
    background: #fafaf7;
    border: 1px dashed #e0d8d2;
    padding: 1.4em 1.6em;
    border-radius: 9px;
    color: #6a6a6a;
    text-align: center;
    margin: 0;
}
.np-equipo-empty strong { color: #cc0946; }

.np-equipo-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
}
.np-equipo-table thead th {
    background: #fafaf7;
    color: #888;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.65em 0.8em;
    text-align: left;
    border-bottom: 1px solid #efeae6;
}
.np-equipo-table tbody td {
    padding: 0.85em 0.8em;
    border-bottom: 1px solid #f0ebe8;
    color: #1a1a1a;
    line-height: 1.4;
}
.np-equipo-table tbody tr:last-child td { border-bottom: 0; }
.np-equipo-table tbody tr:hover { background: #fafaf7; }
.np-equipo-del {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: transparent;
    border: 1px solid #e0d8d2;
    color: #888;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    transition: all 200ms ease;
}
.np-equipo-del:hover {
    background: #cc0946; color: #fff; border-color: #cc0946;
}

.np-equipo-add h3 {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: 1.4rem;
    color: #1a1a1a;
    margin: 0 0 0.4em;
}
.np-equipo-add-lead {
    font-size: 0.93rem;
    color: #5a5a5a;
    line-height: 1.55;
    margin: 0 0 1.4em;
}
.np-equipo-add .np-grid-2 input,
.np-equipo-add .np-grid-2 select {
    width: 100%;
    padding: 0.7em 0.85em;
    border: 1px solid #e0d8d2;
    border-radius: 7px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    color: #1a1a1a;
    background: #fff;
}
.np-equipo-add .np-grid-2 label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    color: #6a6a6a;
    font-weight: 500;
    letter-spacing: 0.04em;
    margin-bottom: 0.35em;
}
.np-equipo-add .np-mifarma-actions { text-align: right; display: flex; gap: 0.6em; justify-content: flex-end; }
.np-btn-ghost-light {
    background: #fff;
    color: #5a5a5a;
    border: 1px solid #e0d8d2;
}
.np-btn-ghost-light:hover { background: #fafaf7; color: #1a1a1a; }

@media (max-width: 720px) {
    .np-equipo-summary { grid-template-columns: 1fr; }
    .np-equipo-table { font-size: 0.85rem; }
    .np-equipo-table thead { display: none; }
    .np-equipo-table tr { display: block; padding: 0.8em 0; border-bottom: 1px solid #f0ebe8; }
    .np-equipo-table td { display: block; padding: 0.2em 0; border-bottom: 0; }
    .np-equipo-table td:before { content: attr(data-label); font-weight: 600; color: #888; margin-right: 0.5em; }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.x · EFECTO CUBO 3D · hover/active en tarjetas
   Aplica perspective + rotateX/Y + translateZ suaves para que la
   farmacéutica perciba que las tarjetas son "cubos" tridimensionales.
   ════════════════════════════════════════════════════════════════ */

/* Contenedores con perspective para que el 3D se note */
.np-grid,
.np-pillars-grid,
.np-actives-grid,
.pr-mod-cards,
.np-cards-grid,
.nezeni-recursos-grid {
    perspective: 1200px;
    perspective-origin: 50% 50%;
}

/* Base: todas las tarjetas con transform-style 3D + transición suave */
.np-card,
.np-pillar,
.np-active-card,
.pr-mod-card,
.recurso-card {
    transform-style: preserve-3d;
    transition:
        transform 360ms cubic-bezier(.2, .8, .25, 1),
        box-shadow 360ms cubic-bezier(.2, .8, .25, 1),
        border-color 220ms ease;
    will-change: transform;
}

/* Hover: rotación cubo + elevación */
.np-card:hover,
.np-pillar:hover,
.np-active-card:hover,
.pr-mod-card:hover {
    transform: perspective(1200px) translateY(-4px) translateZ(12px) rotateX(2.5deg) rotateY(-3deg);
    box-shadow: -8px 16px 36px rgba(204, 9, 70, 0.10), 4px 4px 18px rgba(0, 0, 0, 0.04);
}

/* Hover lateral inverso para variantes (filas pares) */
.np-grid > .np-card:nth-child(even):hover,
.np-pillars-grid > .np-pillar:nth-child(even):hover,
.np-actives-grid > .np-active-card:nth-child(even):hover,
.pr-mod-cards > .pr-mod-card:nth-child(even):hover {
    transform: perspective(1200px) translateY(-4px) translateZ(12px) rotateX(2.5deg) rotateY(3deg);
    box-shadow: 8px 16px 36px rgba(204, 9, 70, 0.10), -4px 4px 18px rgba(0, 0, 0, 0.04);
}

/* Active (click) — "hundimiento" del cubo */
.np-card:active,
.np-pillar:active,
.np-active-card:active,
.pr-mod-card:active {
    transform: perspective(1200px) translateY(0) translateZ(0) rotateX(-2deg) rotateY(0) scale(0.985);
    transition-duration: 120ms;
    box-shadow: 0 2px 8px rgba(204, 9, 70, 0.10);
}

/* Card primary mantiene su gradient pero también el efecto cubo */
.np-card-primary:hover {
    transform: perspective(1200px) translateY(-4px) translateZ(14px) rotateX(2.5deg) rotateY(-3deg);
    box-shadow: -10px 20px 44px rgba(204, 9, 70, 0.28), 4px 4px 18px rgba(0, 0, 0, 0.06);
}

/* Sidebar mini-cards · efecto cubo más sutil (rotación lateral solo) */
.np-sidebar-item {
    transform-style: preserve-3d;
    perspective: 600px;
}
.np-sidebar-item:hover:not(.is-active) {
    transform: perspective(600px) translateX(4px) translateZ(8px) rotateY(-4deg);
}

/* Recurso cards (Formación/Material POS) · giro cubo sutil */
.recurso-card:hover {
    transform: perspective(1200px) translateY(-3px) translateZ(10px) rotateX(2deg) rotateY(-2deg);
    box-shadow: -6px 14px 30px rgba(204, 9, 70, 0.10);
}

/* Respeto a prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .np-card, .np-pillar, .np-active-card, .pr-mod-card, .recurso-card, .np-sidebar-item {
        transform-style: flat !important;
        transition: box-shadow 200ms ease, background 200ms ease, border-color 200ms ease !important;
    }
    .np-card:hover, .np-pillar:hover, .np-active-card:hover,
    .pr-mod-card:hover, .recurso-card:hover, .np-sidebar-item:hover {
        transform: none !important;
    }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.x · /tienda/ — grid cubista CUSTOM de categorías con bodegones
   Renderizado por render_categories_grid() en módulo 13.
   ════════════════════════════════════════════════════════════════ */

/* Ocultar el loop default WC cuando pintamos nuestro grid (body.np-shop-categories) */
body.np-shop-categories ul.products,
body.np-shop-categories .woocommerce-result-count,
body.np-shop-categories .woocommerce-ordering,
body.np-shop-categories .woocommerce-products-header,
body.np-shop-categories .ast-archive-description,
body.np-shop-categories nav.woocommerce-pagination,
body.np-shop-categories #secondary,
body.np-shop-categories .ast-shop-no-results-message,
body.np-shop-categories .ast-no-results-found,
body.np-shop-categories .no-results { display: none !important; }

/* Forzar full-width del contenido principal en /tienda/ (sin sidebar theme) */
body.np-shop-categories #primary,
body.np-shop-categories .site-content > .ast-container,
body.np-shop-categories .site-content > .container,
body.np-shop-categories .content-area {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.np-shop-categories .ast-container { max-width: 100% !important; }

/* CRÍTICO: ast-container es flex · forzar header y grid a ocupar todo el ancho */
body.np-shop-categories .site-content > .ast-container {
    display: block !important;
}
body.np-shop-categories .np-shop-header,
body.np-shop-categories .np-cats-grid {
    width: 100% !important;
    flex: 1 1 100% !important;
}

/* Header de la tienda · eyebrow + título + lead */
.np-shop-header {
    max-width: 1280px;
    margin: 0 auto;
    padding: 2.4em 1.6em 1em;
    text-align: left;
}
.np-shop-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    color: #1a1a1a;
    margin: 0.3em 0 0.4em;
    letter-spacing: -0.015em;
}
.np-shop-lead {
    font-size: 1rem;
    color: #5a5a5a;
    line-height: 1.55;
    max-width: 56em;
    margin: 0;
}

/* Grid de categorías · 3 columnas · perspective fuerte para el cubo */
.np-cats-grid {
    max-width: 1280px;
    margin: 1.8em auto 4em;
    padding: 0 1.6em;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6em;
}

/* CUBO 3D · cada card es un cubo que gira 90° en hover (cara A → cara B) */
.np-cube {
    display: block;
    text-decoration: none;
    color: inherit;
    aspect-ratio: 4 / 5;
    perspective: 1400px;
    -webkit-tap-highlight-color: transparent;
}

/* Stage: contenedor que aplica el perspective + posición relativa */
.np-cube-stage {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

/* Inner: el "cubo" que rota -90° en el eje Y al hover.
   El truco: lo trasladamos -50% en Z para que el pivote de rotación sea el
   centro del cubo (entre las dos caras), no su cara frontal. */
.np-cube-inner {
    position: absolute;
    inset: 0;
    transform-style: preserve-3d;
    transform: translateZ(calc(var(--np-cube-half) * -1));
    transition: transform 750ms cubic-bezier(.5, .0, .15, 1);
    will-change: transform;
}
/* Tamaño base del cubo: usamos --np-cube-half = mitad del ancho de la card.
   En desktop con 3 columnas y max-width 1280px, cada card ronda 400px → half ≈ 200px. */
.np-cube { --np-cube-half: 200px; }
@media (max-width: 1280px) { .np-cube { --np-cube-half: calc((100vw - 4.4em) / 3 / 2); } }
@media (max-width: 980px)  { .np-cube { --np-cube-half: calc((100vw - 3em) / 2 / 2); } }
@media (max-width: 640px)  { .np-cube { --np-cube-half: calc((100vw - 2em) / 2); } }

.np-cube:hover .np-cube-inner,
.np-cube:focus-visible .np-cube-inner {
    transform: translateZ(calc(var(--np-cube-half) * -1)) rotateY(-90deg);
}

/* Caras del cubo: ambas posición absoluta, mismo tamaño, una frontal y otra a 90° */
.np-cube-face {
    position: absolute;
    inset: 0;
    border-radius: 18px;
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-shadow: 0 10px 28px rgba(20, 20, 20, 0.10);
    display: flex;
    flex-direction: column;
}

/* Cara A: la cara FRONTAL = sobresale +half en Z (mirando al espectador) */
.np-cube-face-front {
    transform: translateZ(var(--np-cube-half));
    align-items: flex-start;
    justify-content: space-between;
    padding: 2.1em 1.8em;
    color: #fff;
    background: linear-gradient(135deg, var(--tone-from, #cc0946) 0%, var(--tone-to, #9c0635) 100%);
}
.np-cube-face-front::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.10) 0%, transparent 50%),
        radial-gradient(circle at 20% 90%, rgba(0, 0, 0, 0.15) 0%, transparent 60%);
    pointer-events: none;
}
.np-cube-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.78);
    z-index: 1;
}
.np-cube-name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: clamp(1.7rem, 2.4vw, 2.3rem);
    line-height: 1.05;
    color: #fff;
    letter-spacing: -0.005em;
    margin-top: auto;
    z-index: 1;
}
.np-cube-count {
    display: inline-block;
    margin-top: 0.7em;
    padding: 0.45em 0.95em;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    align-self: flex-start;
    z-index: 1;
}
.np-cube-hint {
    margin-top: 1.1em;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.65);
    z-index: 1;
    transition: opacity 200ms ease;
}
.np-cube:hover .np-cube-hint { opacity: 0; }

/* Cara B: trasera = rotada 90° en Y, también desplazada +half (para que quede al lado derecho del cubo) */
.np-cube-face-back {
    transform: rotateY(90deg) translateZ(var(--np-cube-half));
    background: #fff;
}
.np-cube-image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 800ms cubic-bezier(.4, .0, .2, 1);
}
.np-cube:hover .np-cube-image { transform: scale(1.05); }
.np-cube-back-body {
    position: relative;
    margin-top: auto;
    padding: 1.5em 1.7em 1.5em;
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.55) 30%, rgba(0, 0, 0, 0.82) 100%);
    color: #fff;
    z-index: 1;
}
.np-cube-back-name {
    display: block;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 1.45rem;
    color: #fff;
    margin-bottom: 0.4em;
    line-height: 1.15;
}
.np-cube-back-desc {
    display: block;
    font-size: 0.86rem;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.5;
    margin-bottom: 1em;
}
.np-cube-back-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    padding: 0.55em 1em;
    background: #cc0946;
    border-radius: 999px;
    transition: background 220ms ease, gap 220ms ease;
}
.np-cube:hover .np-cube-back-cta { background: #e63b6e; gap: 0.65em; }

/* 6 TONALIDADES de la cara FRONT (granate variando para evitar monotonía) */
.np-cube-tone-1 { --tone-from: #cc0946; --tone-to: #9c0635; }   /* granate principal */
.np-cube-tone-2 { --tone-from: #b80a3e; --tone-to: #751b30; }   /* cherry → bordeaux */
.np-cube-tone-3 { --tone-from: #d63b6e; --tone-to: #a3104a; }   /* rosa → wine */
.np-cube-tone-4 { --tone-from: #a3104a; --tone-to: #6e0826; }   /* wine deep */
.np-cube-tone-5 { --tone-from: #e2255e; --tone-to: #b80a3e; }   /* vibrant → cherry */
.np-cube-tone-6 { --tone-from: #9c0635; --tone-to: #5e041f; }   /* deep crimson */

/* MOBILE / TOUCH: no hay hover. Mostrar directamente la cara back (bodegón). */
@media (hover: none), (pointer: coarse) {
    .np-cube-inner,
    .np-cats-grid .np-cube .np-cube-inner {
        transform: translateZ(calc(var(--np-cube-half) * -1)) rotateY(-90deg) !important;
        transition: none !important;
    }
    .np-cube-hint { display: none !important; }
}

@media (max-width: 980px) {
    .np-cats-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2em; }
}
@media (max-width: 640px) {
    .np-cats-grid { grid-template-columns: 1fr; gap: 1em; padding: 0 1em; }
    /* En mobile cambia aspect-ratio · más alto para que el bodegón + texto se vean grandes */
    .np-cube { aspect-ratio: 4 / 5; }
    /* Front más grande en mobile (por si en algún momento se ve) */
    .np-cube-face-front { padding: 1.8em 1.5em; }
    .np-cube-name { font-size: 1.9rem; }
    .np-cube-count { font-size: 0.75rem; padding: 0.5em 1em; }
    /* Back: texto MÁS GRANDE en mobile · prioridad legibilidad sobre la cara back */
    .np-cube-back-body { padding: 1.7em 1.6em 1.6em; }
    .np-cube-back-name { font-size: 1.8rem; margin-bottom: 0.55em; line-height: 1.1; }
    .np-cube-back-desc { font-size: 1rem; line-height: 1.55; margin-bottom: 1.2em; }
    .np-cube-back-cta { font-size: 0.98rem; padding: 0.7em 1.2em; }
    /* En mobile la card no tiene hover → desactivar zoom de imagen para evitar lag */
    .np-cube:hover .np-cube-image { transform: none; }
}
@media (max-width: 420px) {
    .np-cube-back-name { font-size: 1.65rem; }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.x · /tienda/ DENTRO de una categoría (productos) — grid cubista
   Sobreescribe el output WC `<ul class="products"> > li.product`
   ════════════════════════════════════════════════════════════════ */

/* Contenedor del archive de categoría */
.woocommerce-shop .site-main,
.post-type-archive-product .site-main,
.tax-product_cat .site-main,
.woocommerce-shop #primary,
.post-type-archive-product #primary,
.tax-product_cat #primary {
    background: #FAFAF7;
    padding-top: 1.6em;
    padding-bottom: 3em;
}
.woocommerce-shop ul.products,
.post-type-archive-product ul.products,
.tax-product_cat ul.products {
    max-width: 1280px;
    margin: 1.5em auto 0 !important;
    padding: 0 1.6em !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.4em !important;
    perspective: 1400px;
    list-style: none;
}

/* Card de categoría: bodegón arriba grande + texto debajo */
ul.products li.product-category.product {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 22px rgba(20, 20, 20, 0.05);
    border: 1px solid #efeae6;
    transform-style: preserve-3d;
    transition:
        transform 380ms cubic-bezier(.2, .8, .25, 1),
        box-shadow 380ms cubic-bezier(.2, .8, .25, 1),
        border-color 220ms ease;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    float: none !important;
    position: relative;
    will-change: transform;
}
ul.products li.product-category.product:hover {
    transform: perspective(1400px) translateY(-5px) translateZ(16px) rotateX(2deg) rotateY(-3deg);
    box-shadow: -10px 22px 44px rgba(204, 9, 70, 0.12), 4px 4px 18px rgba(0, 0, 0, 0.05);
    border-color: rgba(204, 9, 70, 0.18);
}
ul.products li.product-category.product:nth-child(even):hover {
    transform: perspective(1400px) translateY(-5px) translateZ(16px) rotateX(2deg) rotateY(3deg);
    box-shadow: 10px 22px 44px rgba(204, 9, 70, 0.12), -4px 4px 18px rgba(0, 0, 0, 0.05);
}
ul.products li.product-category.product:active {
    transform: perspective(1400px) translateY(0) translateZ(0) rotateX(-2deg) rotateY(0) scale(0.985);
    transition-duration: 130ms;
}

/* Link wrapper full card */
ul.products li.product-category.product > a {
    display: block;
    text-decoration: none;
    color: #1a1a1a;
    height: 100%;
}

/* Bodegón arriba como banda visual de la card */
ul.products li.product-category.product > a > img {
    display: block;
    width: 100% !important;
    height: 280px !important;
    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid #f0ebe8;
    transition: transform 600ms cubic-bezier(.2, .8, .25, 1);
}
ul.products li.product-category.product:hover > a > img {
    transform: scale(1.04);
}

/* Título + count */
ul.products li.product-category.product h2.woocommerce-loop-category__title {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-weight: 500;
    font-size: 1.7rem;
    line-height: 1.15;
    color: #1a1a1a;
    margin: 1.1em 1.4em 0.5em !important;
    padding: 0;
    letter-spacing: -0.005em;
    text-align: left;
    text-transform: none;
}
ul.products li.product-category.product h2 mark.count {
    background: transparent;
    color: #cc0946;
    font-family: 'Inter', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.35em 0.7em;
    margin-left: 0.6em;
    border: 1px solid rgba(204, 9, 70, 0.22);
    border-radius: 999px;
    vertical-align: middle;
    display: inline-block;
    line-height: 1;
}

/* Descripción y CTA inyectados por nuestro hook */
ul.products li.product-category.product .np-cat-card-desc {
    font-size: 0.95rem;
    color: #5a5a5a;
    line-height: 1.55;
    margin: 0 1.4em 1em !important;
}
ul.products li.product-category.product .np-cat-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    margin: 0 1.4em 1.5em;
    color: #cc0946;
    font-family: 'Inter', sans-serif;
    font-size: 0.92rem;
    font-weight: 500;
    transition: gap 220ms ease;
}
ul.products li.product-category.product:hover .np-cat-card-cta {
    gap: 0.7em;
}

/* Astra puede meter padding extra a sus cards · neutralizamos */
ul.products li.product-category.product .astra-shop-thumbnail-wrap,
ul.products li.product-category.product .ast-woocommerce-product-content-wrapper {
    padding: 0 !important;
    margin: 0 !important;
}

/* Header de la página tienda con eyebrow + título */
.woocommerce-shop .ast-archive-description,
.post-type-archive-product .ast-archive-description {
    max-width: 1280px;
    margin: 0 auto 0.5em;
    padding: 1em 1.6em 0;
}

/* Responsive */
@media (max-width: 980px) {
    .woocommerce-shop ul.products,
    .post-type-archive-product ul.products { grid-template-columns: repeat(2, 1fr) !important; }
    ul.products li.product-category.product > a > img { height: 220px !important; }
}
@media (max-width: 640px) {
    .woocommerce-shop ul.products,
    .post-type-archive-product ul.products { grid-template-columns: 1fr !important; gap: 1em !important; }
    ul.products li.product-category.product > a > img { height: 240px !important; }
    ul.products li.product-category.product h2.woocommerce-loop-category__title { font-size: 1.5rem; }
}


/* ════════════════════════════════════════════════════════════════
   v0.9.13 · FICHA DE PRODUCTO · refactor completo
   - Imagen sticky scroll
   - Secciones cubista con tonalidades pastel
   - Slides horizontales activos/conservantes
   ════════════════════════════════════════════════════════════════ */

/* Ocultar elementos default WC innecesarios en B2B pharma */
body.np-single-product p.price,                                /* precio WC default · sustituido por nuestra tarifa pro */
body.np-single-product .ast-stock-detail,                       /* "Disponibilidad: X disponibles" · innecesario */
body.np-single-product .stock,
body.np-single-product .single-product-category,                /* duplica con breadcrumb */
body.np-single-product .product_meta { display: none !important; }

/* ─── Selector cantidad + botón "Añadir al carrito" · v0.9.19 ─── */
body.np-single-product form.cart {
    display: flex !important;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 1em 0 0.6em;
}
body.np-single-product form.cart .quantity {
    display: inline-flex !important;
    align-items: center;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 7px;
    padding: 4px;
    margin: 0 !important;
}
body.np-single-product form.cart .quantity::before {
    content: 'Unidades:';
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    padding: 0 10px 0 6px;
}
body.np-single-product form.cart .quantity input.qty {
    width: 64px !important;
    height: 36px;
    border: none !important;
    border-left: 1px solid var(--nezeni-line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-align: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.15em !important;
    font-weight: 600;
    color: var(--nezeni-carbon) !important;
    padding: 0 !important;
    box-shadow: none !important;
    -webkit-text-fill-color: var(--nezeni-carbon);
}
body.np-single-product form.cart .quantity input.qty:focus {
    outline: 2px solid rgba(204,9,70,0.25);
    outline-offset: 0;
}
body.np-single-product .single_add_to_cart_button {
    display: inline-flex !important;
    align-items: center;
    width: auto !important;
    padding: 0.9em 1.8em !important;
    background: #cc0946 !important;
    color: #fff !important;
    border-radius: 7px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    margin: 0 !important;
    border: none !important;
    transition: background 0.2s ease, transform 0.15s ease;
}
body.np-single-product .single_add_to_cart_button:hover {
    background: #b00839 !important;
    transform: translateY(-1px);
}

/* ─── Bloque escenarios modalidad bajo precio · v0.9.19 ─── */
.np-mod-scenarios {
    margin: 1.2em 0 0.4em;
    padding: 1em 1.1em;
    background: #faf7f5;
    border: 1px solid #ede5e0;
    border-radius: 8px;
}
.np-mod-scenarios-title {
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--nezeni-gray-mid);
    font-weight: 700;
    margin: 0 0 0.7em 0;
}
.np-mod-scenarios-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55em;
}
.np-mod-scenario {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.5em;
    align-items: baseline;
    padding-bottom: 0.5em;
    border-bottom: 1px dashed #ece6e2;
}
.np-mod-scenario:last-child { border-bottom: none; padding-bottom: 0; }
.np-mod-scenario-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.82em;
    color: var(--nezeni-carbon);
    line-height: 1.35;
}
.np-mod-scenario-label strong {
    display: block;
    font-weight: 600;
    color: var(--nezeni-granate);
    font-size: 1.02em;
    margin-bottom: 1px;
}
.np-mod-scenario-label small {
    display: block;
    color: var(--nezeni-gray-mid);
    font-size: 0.88em;
    margin-top: 1px;
}
.np-mod-scenario-price {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.05em;
    font-weight: 600;
    color: var(--nezeni-carbon);
    white-space: nowrap;
    text-align: right;
}
.np-mod-scenario-price small {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.65em;
    color: var(--nezeni-gray-mid);
    font-weight: 400;
    margin-top: 1px;
    letter-spacing: 0.04em;
}
.np-mod-scenario-featured {
    background: rgba(204,9,70,0.04);
    margin: 0 -1.1em;
    padding: 0.5em 1.1em;
    border-bottom: 1px dashed rgba(204,9,70,0.18) !important;
}
.np-mod-scenarios-foot {
    font-family: 'Inter', sans-serif;
    font-size: 0.68em;
    color: var(--nezeni-gray-mid);
    margin: 0.7em 0 0;
    line-height: 1.4;
    text-align: left;
}

/* Layout · 2 columnas flex SOLO para gallery + summary (Astra default es float) */
body.np-single-product .woocommerce div.product {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 2.4em !important;
    align-items: flex-start !important;
    margin-bottom: 0 !important;
}
body.np-single-product .woocommerce div.product .woocommerce-product-gallery {
    flex: 0 0 calc(50% - 1.2em);
    max-width: calc(50% - 1.2em);
    float: none !important;
    margin: 0 !important;
    width: auto !important;
    position: sticky;
    top: 100px;
    align-self: flex-start;
}
body.np-single-product .woocommerce div.product .summary {
    flex: 0 0 calc(50% - 1.2em);
    max-width: calc(50% - 1.2em);
    float: none !important;
    margin: 0 !important;
    width: auto !important;
}

/* Reset Astra container · que no comprima el contenido */
body.np-single-product .ast-container { max-width: 1240px !important; }

/* Price box · v0.9.13 con tarifa sin IVA destacada + tarifa con IVA + PVPR */
body.np-single-product .nezeni-price-box {
    background: linear-gradient(180deg, #fff 0%, #fafaf7 100%);
    border: 1px solid #f0ebe8;
    border-radius: 12px;
    padding: 1.2em 1.4em;
    margin: 1em 0;
    box-shadow: 0 2px 12px rgba(20,20,20,0.04);
}
.nezeni-price-box .price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.35em 0;
}
.nezeni-price-box .price-row.primary {
    border-bottom: 1px solid #f0ebe8;
    padding-bottom: 0.7em;
    margin-bottom: 0.3em;
}
.nezeni-price-box .price-row.primary .price-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8em;
    color: #cc0946;
    font-weight: 500;
}
.nezeni-price-box .price-row.secondary .price-label,
.nezeni-price-box .price-row.secondary .price-value {
    font-size: 0.9em;
    color: #666;
}
.nezeni-price-box .price-row .price-label small { font-size: 0.78em; color: #aaa; margin-left: 0.3em; }
.nezeni-price-box .price-note { margin-top: 0.7em; padding-top: 0.7em; border-top: 1px dashed #f0ebe8; }
.nezeni-price-box .price-note small { font-size: 0.78em; color: #888; line-height: 1.5; }

/* CONTENEDOR de secciones cubistas full-width
   IMPORTANTE: Astra envuelve el producto en .ast-article-single que no debería ser flex,
   pero algún hijo intermedio puede serlo. Forzamos width 100% con !important. */
body.np-single-product .np-product-sections {
    width: 100% !important;
    max-width: 1240px !important;
    margin: 3em auto 1em !important;
    padding: 0 1.6em !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1.4em !important;
    flex: 0 0 100% !important;
    grid-column: 1 / -1 !important;        /* si está en grid */
    align-self: stretch !important;
    clear: both !important;
}
body.np-single-product .np-prod-section {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* SECCIÓN base · tarjeta diferenciada con tonalidad */
.np-prod-section {
    border-radius: 16px;
    padding: 2em 2.2em;
    position: relative;
    border: 1px solid #f0ebe8;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}
.np-prod-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--np-tone-from, #cc0946) 0%, var(--np-tone-to, #e63b6e) 100%);
    border-radius: 16px 16px 0 0;
}

/* TONALIDADES · pastel armónico */
.np-tone-1 {
    --np-tone-from: #cc0946; --np-tone-to: #e63b6e;
    background: #fdf3f6;
    border-color: #f5dfe7;
}
.np-tone-2 {
    --np-tone-from: #b80a3e; --np-tone-to: #cc0946;
    background: #faf5ec;
    border-color: #efe6d3;
}
.np-tone-3 {
    --np-tone-from: #a3104a; --np-tone-to: #d63b6e;
    background: #fbf0f4;
    border-color: #f0d8e0;
}
.np-tone-4 {
    --np-tone-from: #1a1a1a; --np-tone-to: #cc0946;
    background: #1a1a1a;
    color: #fff;
    border-color: #2a2a2a;
}
.np-tone-4 .np-eyebrow { color: #e63b6e; }
.np-tone-4 .np-prod-section-title { color: #fff; }
.np-tone-4 .np-prod-section-lead { color: rgba(255,255,255,0.78); }

/* Tonalidad 5 · INCI · fondo crema claro */
.np-tone-5 {
    --np-tone-from: #cc0946; --np-tone-to: #5a5a5a;
    background: #fbf8f5;
    border-color: #ede3d6;
}

/* Tonalidad 6 · Aplicación · fondo gris azulado claro */
.np-tone-6 {
    --np-tone-from: #5a7a99; --np-tone-to: #cc0946;
    background: #f4f7fa;
    border-color: #dce6f0;
}

/* Bloque INCI · una sola card grande con scroll */
.np-inci-block {
    background: #fff;
    border: 1px solid #efeae6;
    border-radius: 14px;
    padding: 1.6em 1.6em;
    box-shadow: 0 2px 14px rgba(20,20,20,0.04);
}
.np-inci-list {
    background: #faf5f6;
    border: 1px solid #f0e0e7;
    border-radius: 10px;
    padding: 1.1em 1.3em;
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    line-height: 1.7;
    color: #2c2c2c;
    word-spacing: 0.04em;
    margin-bottom: 1.2em;
    max-height: 260px;
    overflow-y: auto;
}
.np-inci-list::-webkit-scrollbar { width: 7px; }
.np-inci-list::-webkit-scrollbar-track { background: rgba(204,9,70,0.05); border-radius: 4px; }
.np-inci-list::-webkit-scrollbar-thumb { background: rgba(204,9,70,0.4); border-radius: 4px; }
.np-inci-list::-webkit-scrollbar-thumb:hover { background: #cc0946; }
.np-inci-foot {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4em;
    align-items: start;
}
.np-inci-note {
    font-size: 0.82rem;
    color: #7a7a7a;
    line-height: 1.55;
    margin: 0;
    font-style: italic;
}
.np-inci-note strong { color: #cc0946; font-style: normal; }
.np-inci-meta {
    list-style: none;
    margin: 0;
    padding: 0;
}
.np-inci-meta li {
    font-size: 0.8rem;
    color: #555;
    line-height: 1.55;
    padding: 0.35em 0;
    border-bottom: 1px solid #f4ece2;
}
.np-inci-meta li:last-child { border-bottom: 0; }
.np-inci-meta li strong { color: #1a1a1a; font-weight: 600; }

/* Bloque APLICACIÓN · contenido REAL extraído de la guía nezeni · estilos hereda HTML original */
.np-aplicacion-block {
    background: #fff;
    border: 1px solid #e0e6ee;
    border-radius: 14px;
    padding: 1.8em 2em;
    box-shadow: 0 2px 14px rgba(20,20,20,0.04);
    margin-bottom: 1.4em;
}
/* Compatibilidad con HTML heredado de la guía (su-styled, headers, listas) */
.np-aplicacion-block h2,
.np-aplicacion-block h3,
.np-aplicacion-block h4 {
    font-family: 'Cormorant Garamond', serif;
    color: #1a1a1a;
    margin: 0.4em 0 0.6em;
    line-height: 1.2;
}
.np-aplicacion-block h2 { font-size: 1.55rem; }
.np-aplicacion-block h3 { font-size: 1.25rem; color: #cc0946; }
.np-aplicacion-block h4 { font-size: 1.05rem; }
.np-aplicacion-block p {
    font-size: 0.92rem;
    line-height: 1.65;
    color: #3a3a3a;
    margin: 0 0 0.9em;
}
.np-aplicacion-block ul,
.np-aplicacion-block ol {
    margin: 0 0 1em 1.4em;
    padding: 0;
}
.np-aplicacion-block li {
    font-size: 0.92rem;
    line-height: 1.6;
    color: #3a3a3a;
    margin: 0 0 0.4em;
}
.np-aplicacion-block strong { color: #1a1a1a; }
.np-aplicacion-block img { max-width: 100%; height: auto; border-radius: 8px; }
.np-aplicacion-block a { color: #cc0946; text-decoration: underline; }

/* CTA "Ver guía completa" debajo del bloque aplicación */
.np-aplicacion-cta-row {
    display: flex;
    align-items: center;
    gap: 1.2em;
    flex-wrap: wrap;
}
.np-aplicacion-cta-row .np-btn-primary {
    background: #cc0946;
    color: #fff;
    padding: 0.85em 1.6em;
    border-radius: 7px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    transition: background 200ms ease, transform 200ms ease, box-shadow 200ms ease;
    display: inline-block;
}
.np-aplicacion-cta-row .np-btn-primary:hover {
    background: #e63b6e;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(204,9,70,0.28);
}
.np-aplicacion-cta-note {
    font-size: 0.85rem;
    color: #6a7a8a;
    flex: 1;
    min-width: 220px;
    line-height: 1.5;
}

@media (max-width: 760px) {
    .np-inci-block { padding: 1.2em 1.2em; }
    .np-inci-list { max-height: 200px; font-size: 0.78rem; padding: 0.9em 1em; }
    .np-inci-foot { grid-template-columns: 1fr; gap: 1em; }
    .np-aplicacion-block { padding: 1.3em 1.3em; }
    .np-aplicacion-block h2 { font-size: 1.3rem; }
    .np-aplicacion-block h3 { font-size: 1.1rem; }
    .np-aplicacion-block p, .np-aplicacion-block li { font-size: 0.88rem; }
    .np-aplicacion-cta-row { flex-direction: column; align-items: flex-start; gap: 0.8em; }
}

.np-prod-section-head {
    margin-bottom: 1.4em;
    max-width: 60em;
}
.np-prod-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: clamp(1.5rem, 2.6vw, 2em);
    color: #1a1a1a;
    margin: 0.3em 0 0.4em;
    line-height: 1.15;
    letter-spacing: -0.01em;
}
.np-prod-section-lead {
    font-size: 1rem;
    color: #5a5a5a;
    line-height: 1.55;
    margin: 0;
}

/* Slide horizontal de tarjetas (activos / conservantes) · estilo nezeni.com */
.np-cards-slide {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0.5em 0 1em;
    margin: 0 -2.2em;        /* sangría negativa para que el scroll llegue a los bordes */
    padding-left: 2.2em;
    padding-right: 2.2em;
    scrollbar-width: thin;
    scrollbar-color: #cc0946 transparent;
}
.np-cards-slide::-webkit-scrollbar { height: 8px; }
.np-cards-slide::-webkit-scrollbar-track { background: rgba(204,9,70,0.06); border-radius: 4px; }
.np-cards-slide::-webkit-scrollbar-thumb { background: rgba(204,9,70,0.5); border-radius: 4px; }
.np-cards-slide::-webkit-scrollbar-thumb:hover { background: #cc0946; }

/* Estilo de las tarjetas (heredan del HTML extraído de nezeni.com: <table><tr><td><div>...) */
.np-cards-slide .nezeni-activos-wrapper {
    position: relative !important;
}
.np-cards-slide table {
    margin: 0 !important;
    border-collapse: separate !important;
}
.np-cards-slide table td {
    vertical-align: top;
    width: 200px !important;
    min-width: 200px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.np-cards-slide table td + td { padding-left: 12px !important; }

/* Cada tarjeta interna · clickable hacia ficha del activo */
.np-cards-slide .np-card-link,
.np-cards-slide span.np-card-link,
.np-cards-slide a {
    display: block;
    text-decoration: none;
    color: inherit;
    position: relative;          /* contenedor del badge "Ver →" */
}
.np-cards-slide td > .np-card-link > div,
.np-cards-slide td > a > div,
.np-cards-slide td > div {
    background: #fff !important;
    border: 1px solid #efeae6 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 14px rgba(20, 20, 20, 0.04) !important;
    transition: transform 240ms cubic-bezier(.2,.6,.2,1), box-shadow 240ms ease, border-color 240ms ease;
    height: auto !important;
    position: relative;
}
.np-cards-slide td:hover > .np-card-link > div,
.np-cards-slide td:hover > a > div,
.np-cards-slide td:hover > div {
    transform: translateY(-4px);
    box-shadow: 0 10px 26px rgba(204, 9, 70, 0.18) !important;
    border-color: rgba(204, 9, 70, 0.35) !important;
}
.np-cards-slide td { cursor: pointer; }

/* Badge "Ver →" permanente · top-right de cada tarjeta de activo (solo en activos, no conservantes) */
.np-cards-slide-activos td > a::after,
.np-cards-slide-activos td > .np-card-link::after {
    content: 'Ver ficha →';
    position: absolute;
    top: 10px;
    right: 10px;
    background: #cc0946;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 4px 10px;
    border-radius: 20px;
    box-shadow: 0 2px 8px rgba(204,9,70,0.30);
    z-index: 5;
    transition: transform 200ms ease, box-shadow 200ms ease;
    pointer-events: none;       /* badge decorativo · el click pasa al <a> de debajo */
}
.np-cards-slide-activos td:hover > a::after,
.np-cards-slide-activos td:hover > .np-card-link::after {
    transform: scale(1.06);
    box-shadow: 0 4px 14px rgba(204,9,70,0.45);
}
.np-cards-slide td img {
    width: 100% !important;
    height: 160px !important;
    object-fit: cover !important;
    display: block !important;
}

/* Ocultar flechas residuales heredadas del HTML de nezeni.com (sin JS) */
.np-cards-slide .nezeni-activos-arrow,
.np-cards-slide button.nezeni-activos-arrow { display: none !important; }
.np-cards-slide .nezeni-activos-wrapper::after { display: none !important; }

/* CTA evidencia · botones lado a lado */
.np-evidence-cta-row {
    display: flex;
    gap: 0.8em;
    flex-wrap: wrap;
    margin-top: 0.5em;
}
.np-tone-4 .np-btn-primary {
    background: #cc0946;
    color: #fff;
    padding: 0.85em 1.7em;
}
.np-tone-4 .np-btn-primary:hover { background: #e63b6e; color: #fff; transform: translateY(-1px); }
.np-btn-ghost-dark {
    background: transparent;
    color: rgba(255,255,255,0.85);
    border: 1px solid rgba(255,255,255,0.28);
    padding: 0.85em 1.6em;
    border-radius: 7px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.np-btn-ghost-dark:hover { background: rgba(255,255,255,0.08); color: #fff; border-color: rgba(255,255,255,0.55); }

/* Responsive */
@media (max-width: 980px) {
    body.np-single-product .woocommerce div.product { gap: 1.4em; }
    body.np-single-product .woocommerce div.product .woocommerce-product-gallery,
    body.np-single-product .woocommerce div.product .summary {
        flex: 0 0 100%;
        max-width: 100%;
    }
    body.np-single-product .woocommerce div.product .woocommerce-product-gallery {
        position: static;     /* desactivar sticky en mobile · no tiene sentido */
    }
    .np-prod-section { padding: 1.5em 1.4em; border-radius: 12px; }
    .np-cards-slide { margin: 0 -1.4em; padding-left: 1.4em; padding-right: 1.4em; }
}

/* ─── Header right wrap (carrito + acceder) · v0.9.17 ─── */
.np-header-right-wrap {
    margin-right: 0 !important;
}
.np-header-right {
    display: inline-flex;
    align-items: center;
    gap: 0.55em;
    padding-right: 6px; /* Evita que quede pegado al borde derecho */
}
.np-header-separator {
    display: inline-block;
    width: 1px;
    height: 18px;
    background: rgba(0,0,0,0.12);
    margin: 0 0.25em;
}
.np-header-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    color: var(--nezeni-carbon);
    text-decoration: none;
}
.np-header-cart:hover { color: var(--nezeni-granate); }
.np-header-cart-count {
    position: absolute;
    top: -2px; right: 0;
    background: var(--nezeni-granate);
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 1;
}
.np-header-cart-count[data-count="0"] { display: none; }
.np-header-mi-cuenta-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--nezeni-carbon);
}
.np-header-right-wrap a:hover .np-header-mi-cuenta-label { color: var(--nezeni-granate); }

/* ─── Pedidos recientes en dashboard · v0.9.18 ─── */
.np-orders-recent {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1em;
    margin-bottom: 2.4em;
}
@media (min-width: 768px) {
    .np-orders-recent { grid-template-columns: 1fr 1fr; }
}
.np-order-card {
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    padding: 1.2em 1.4em 1em;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.np-order-card:hover { border-color: rgba(204,9,70,0.32); box-shadow: 0 6px 16px rgba(0,0,0,0.06); }
.np-order-card-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1em;
    align-items: start;
    margin-bottom: 1em;
    padding-bottom: 0.85em;
    border-bottom: 1px solid #f0ebe7;
}
.np-order-card-id { display: flex; flex-direction: column; gap: 2px; }
.np-order-card-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.65em;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
}
.np-order-card-id strong {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.4em;
    color: var(--nezeni-carbon);
    font-weight: 600;
    line-height: 1;
}
.np-order-card-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
}
.np-order-card-modalidad {
    display: inline-block;
    align-self: flex-start;
    padding: 2px 8px;
    background: #fdf6f8;
    color: var(--nezeni-granate);
    border-radius: 12px;
    font-size: 0.92em;
    font-weight: 500;
    letter-spacing: 0.02em;
}
.np-order-card-status { text-align: right; }
.np-status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    font-weight: 600;
    letter-spacing: 0.04em;
}
.np-status-amber { background: #fff5e0; color: #b07700; }
.np-status-blue  { background: #e6f0ff; color: #1356c5; }
.np-status-teal  { background: #d8f5ee; color: #00755a; }
.np-status-green { background: #e3f5e3; color: #2a7a2a; }
.np-status-gray  { background: #f0f0f0; color: #666; }
.np-status-red   { background: #ffe2e2; color: #b22020; }

/* Timeline 4 fases */
.np-order-timeline {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 0;
    list-style: none;
    margin: 0 0 1em 0;
    padding: 0;
    position: relative;
}
.np-order-timeline::before {
    content: '';
    position: absolute;
    top: 12px;
    left: 12%;
    right: 12%;
    height: 2px;
    background: #ece6e2;
    z-index: 0;
}
.np-tl-step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    z-index: 1;
}
.np-tl-dot {
    width: 24px; height: 24px;
    border-radius: 50%;
    background: #ece6e2;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #ece6e2;
    margin-bottom: 6px;
    position: relative;
    transition: background 0.25s ease;
}
.np-tl-done .np-tl-dot { background: var(--nezeni-granate); box-shadow: 0 0 0 1px var(--nezeni-granate); }
.np-tl-done .np-tl-dot::after {
    content: '✓';
    position: absolute;
    inset: 0;
    color: #fff;
    font-size: 13px;
    line-height: 20px;
    text-align: center;
    font-weight: 700;
}
.np-tl-active .np-tl-dot {
    background: #fff;
    border-color: var(--nezeni-granate);
    box-shadow: 0 0 0 1px var(--nezeni-granate), 0 0 0 4px rgba(204,9,70,0.18);
    animation: np-pulse 1.6s ease-in-out infinite;
}
.np-tl-wait .np-tl-dot {
    background: #fff5e0;
    box-shadow: 0 0 0 1px #d99300;
}
@keyframes np-pulse {
    0%, 100% { box-shadow: 0 0 0 1px var(--nezeni-granate), 0 0 0 4px rgba(204,9,70,0.18); }
    50%      { box-shadow: 0 0 0 1px var(--nezeni-granate), 0 0 0 8px rgba(204,9,70,0.08); }
}
.np-tl-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    font-weight: 600;
    color: var(--nezeni-carbon);
    margin-bottom: 2px;
}
.np-tl-todo .np-tl-label { color: #aaa; }
.np-tl-sub {
    font-family: 'Inter', sans-serif;
    font-size: 0.66em;
    color: var(--nezeni-gray-mid);
    line-height: 1.3;
}
.np-tl-done .np-tl-sub { color: #2a7a2a; }
.np-tl-active .np-tl-sub { color: var(--nezeni-granate); font-weight: 600; }
.np-tl-wait .np-tl-sub { color: #b07700; font-weight: 600; }
.np-tl-sub a { color: inherit; text-decoration: underline; }

.np-order-card-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.6em;
    border-top: 1px solid #f0ebe7;
}
.np-order-card-total {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.15em;
    color: var(--nezeni-carbon);
    font-weight: 600;
}
.np-order-card-total small {
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    color: var(--nezeni-gray-mid);
    font-weight: 400;
    margin-left: 4px;
}
.np-order-card-cta {
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-granate);
    text-decoration: none;
    font-weight: 600;
}
.np-order-card-cta:hover { color: var(--nezeni-carbon); }

@media (max-width: 600px) {
    .np-order-card-head { grid-template-columns: 1fr 1fr; }
    .np-order-card-status { grid-column: 1 / -1; text-align: left; }
    .np-tl-label { font-size: 0.65em; }
    .np-tl-sub { font-size: 0.6em; }
}

/* ─── Página /mi-cuenta/pedidos/ · toolbar + filtros + paginación · v0.9.21 ─── */
.np-pedidos-toolbar {
    display: flex;
    flex-direction: column;
    gap: 1.4em;
    margin: 1.6em 0 1.4em;
    padding-bottom: 1.4em;
    border-bottom: 1px solid #efeae6;
}
.np-pedidos-search { display: block; }
.np-pedidos-search > label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    margin-bottom: 0.55em;
}
.np-pedidos-search-input {
    display: flex;
    align-items: stretch;
    gap: 0;
    max-width: 540px;
}
.np-pedidos-search-input input[type="search"] {
    flex: 1;
    height: 42px;
    padding: 0 14px;
    border: 1px solid var(--nezeni-line);
    border-right: none;
    border-radius: 8px 0 0 8px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95em;
    background: #fff;
}
.np-pedidos-search-input input[type="search"]:focus {
    outline: none;
    border-color: var(--nezeni-granate);
    box-shadow: -1px 0 0 var(--nezeni-granate);
}
.np-pedidos-search-btn {
    height: 42px;
    padding: 0 1.4em;
    background: var(--nezeni-granate);
    color: #fff;
    border: none;
    border-radius: 0 8px 8px 0;
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.18s ease;
}
.np-pedidos-search-btn:hover { background: #b00839; }
.np-pedidos-search-clear {
    margin-left: 10px;
    padding: 0 1em;
    font-family: 'Inter', sans-serif;
    font-size: 0.8em;
    color: var(--nezeni-gray-mid);
    text-decoration: underline;
    align-self: center;
}
.np-pedidos-filters { display: block; }
.np-pedidos-filters-label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    margin-bottom: 0.55em;
}
.np-pedidos-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
}
.np-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 999px;
    font-family: 'Inter', sans-serif;
    font-size: 0.82em;
    color: var(--nezeni-carbon);
    text-decoration: none;
    transition: all 0.18s ease;
}
.np-chip small {
    display: inline-block;
    padding: 1px 6px;
    background: #f0ebe7;
    border-radius: 8px;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
}
.np-chip:hover { background: var(--nezeni-cream-deep); border-color: rgba(204,9,70,0.32); }
.np-chip.active {
    background: var(--nezeni-granate);
    color: #fff;
    border-color: var(--nezeni-granate);
}
.np-chip.active small {
    background: rgba(255,255,255,0.2);
    color: #fff;
}
.np-pedidos-count {
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-gray-mid);
    margin: 0 0 1em 0;
}
.np-pedidos-count strong { color: var(--nezeni-carbon); }
.np-pedidos-empty {
    text-align: center;
    padding: 3em 1em;
    background: #faf7f5;
    border: 1px dashed var(--nezeni-line);
    border-radius: 12px;
}
.np-pedidos-empty p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.2em;
    color: var(--nezeni-gray-mid);
    margin-bottom: 1.2em;
}
.np-pedidos-pagination {
    display: flex;
    gap: 0.4em;
    margin: 1.8em 0 0;
    justify-content: center;
}
.np-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 0.6em;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-carbon);
    text-decoration: none;
    transition: all 0.18s ease;
}
.np-page-link:hover {
    background: var(--nezeni-cream-deep);
    border-color: rgba(204,9,70,0.4);
}
.np-page-link.active {
    background: var(--nezeni-granate);
    color: #fff;
    border-color: var(--nezeni-granate);
    font-weight: 600;
}

/* Grid responsive: 2 columnas en /pedidos/ también */
.nezeni-pharma-section[data-active="pedidos"] .np-orders-recent {
    grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 760px) {
    .nezeni-pharma-section[data-active="pedidos"] .np-orders-recent {
        grid-template-columns: 1fr;
    }
}

/* ─── Vista pedido individual /view-order/ · v0.9.25 ─── */
.np-vieworder-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2em;
    margin: 0 0 1.4em;
    padding: 1.4em 1.6em;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}
.np-vieworder-head-left { display: flex; flex-direction: column; gap: 4px; }
.np-vieworder-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.68em;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--nezeni-gray-mid);
    font-weight: 700;
}
.np-vieworder-number {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.6em;
    color: var(--nezeni-carbon);
    margin: 0;
    line-height: 1;
    font-weight: 600;
    letter-spacing: -0.02em;
}
.np-vieworder-meta-row {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 8px;
}
.np-vieworder-date {
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-gray-mid);
}
.np-vieworder-modalidad-pill {
    display: inline-block;
    padding: 3px 12px;
    background: #fdf6f8;
    color: var(--nezeni-granate);
    border-radius: 12px;
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.np-vieworder-head-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    text-align: right;
}
.np-vieworder-total {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8em;
    color: var(--nezeni-carbon);
    font-weight: 600;
    margin-top: 6px;
    line-height: 1;
}
.np-vieworder-total-units {
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
}

/* Timeline grande full-width */
.np-vieworder-timeline {
    margin: 0 0 1.6em 0 !important;
    padding: 1.4em 1.6em !important;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    grid-template-columns: 1fr 1fr 1fr 1fr !important;
    list-style: none;
}
.np-vieworder-timeline::before {
    top: 22px !important;
    left: 14% !important;
    right: 14% !important;
}
.np-vieworder-timeline .np-tl-dot {
    width: 34px !important;
    height: 34px !important;
}
.np-vieworder-timeline .np-tl-done .np-tl-dot::after {
    font-size: 16px !important;
    line-height: 30px !important;
}
.np-vieworder-timeline .np-tl-label {
    font-size: 0.85em;
    margin-top: 4px;
}
.np-vieworder-timeline .np-tl-sub {
    font-size: 0.76em;
    margin-top: 2px;
    max-width: 180px;
}

/* Banner pendiente transferencia con datos IBAN */
.np-vieworder-banner {
    margin: 0 0 1.4em;
    padding: 1.2em 1.4em;
    background: #fff5e0;
    border-left: 4px solid #d99300;
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    color: #4a3500;
}
.np-vieworder-banner strong { color: #4a3500; }
.np-vieworder-banner p { margin: 6px 0 0; font-size: 0.92em; line-height: 1.5; }
.np-vieworder-banner code {
    background: rgba(0,0,0,0.08);
    padding: 2px 8px;
    border-radius: 4px;
    font-family: 'SF Mono', 'Menlo', Consolas, monospace;
    font-size: 0.9em;
    letter-spacing: 1px;
}

/* Acciones del pedido */
.np-vieworder-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 1.6em;
}
.np-vieworder-actions .np-btn {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    padding: 0.85em 1.6em;
    border-radius: 7px;
    font-family: 'Inter', sans-serif;
    font-size: 0.9em;
    font-weight: 600;
    transition: all 0.18s ease;
}
.np-vieworder-actions .np-btn-primary {
    background: var(--nezeni-granate);
    color: #fff;
}
.np-vieworder-actions .np-btn-primary:hover {
    background: #b00839;
    transform: translateY(-1px);
}
.np-vieworder-actions .np-btn-ghost-light {
    background: transparent;
    color: var(--nezeni-carbon) !important;
    border: 1px solid var(--nezeni-line);
}
.np-vieworder-actions .np-btn-ghost-light:hover {
    background: var(--nezeni-cream-deep);
    border-color: rgba(204,9,70,0.32);
}

.np-vieworder-divider {
    margin: 0 0 1.8em;
    border: none;
    border-top: 1px solid var(--nezeni-line);
}

@media (max-width: 700px) {
    .np-vieworder-head { grid-template-columns: 1fr; }
    .np-vieworder-head-right { align-items: flex-start; text-align: left; }
    .np-vieworder-timeline { padding: 1em !important; }
    .np-vieworder-timeline .np-tl-dot { width: 26px !important; height: 26px !important; }
    .np-vieworder-timeline::before { top: 16px !important; }
}

/* ─── Filtros fecha en /pedidos/ · v0.9.26 ─── */
.np-pedidos-daterange { display: block; }
.np-pedidos-daterange-inputs {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}
.np-pedidos-daterange-inputs label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
}
.np-pedidos-daterange-inputs input[type="date"] {
    padding: 8px 10px;
    border: 1px solid var(--nezeni-line);
    border-radius: 6px;
    font-family: 'Inter', sans-serif;
    font-size: 0.9em;
    background: #fff;
    color: var(--nezeni-carbon);
    min-width: 150px;
}
.np-pedidos-daterange-inputs input[type="date"]:focus {
    outline: none;
    border-color: var(--nezeni-granate);
    box-shadow: 0 0 0 3px rgba(204,9,70,0.1);
}
.np-pedidos-daterange-btn {
    padding: 8px 16px;
    background: var(--nezeni-cream-deep);
    color: var(--nezeni-carbon);
    border: 1px solid var(--nezeni-line);
    border-radius: 6px;
    font-family: 'Inter', sans-serif;
    font-size: 0.82em;
    font-weight: 600;
    cursor: pointer;
    height: 38px;
    transition: all 0.18s ease;
}
.np-pedidos-daterange-btn:hover {
    background: var(--nezeni-granate);
    color: #fff;
    border-color: var(--nezeni-granate);
}
.np-pedidos-clear-wrap {
    text-align: right;
    margin-top: 4px;
}
.np-pedidos-clear-all {
    display: inline-block;
    padding: 6px 12px;
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 6px;
    transition: all 0.18s ease;
}
.np-pedidos-clear-all:hover {
    color: var(--nezeni-granate);
    border-color: rgba(204,9,70,0.32);
}

/* ─── Tabla productos en view-order con lote+caducidad · v0.9.26 ─── */
.np-vieworder-lineas {
    margin: 0 0 1.6em;
    padding: 1.4em 1.6em;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
}
.np-vieworder-lineas-head {
    margin-bottom: 1.2em;
    padding-bottom: 1em;
    border-bottom: 1px solid var(--nezeni-line);
}
.np-vieworder-lineas-head h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5em;
    color: var(--nezeni-carbon);
    margin: 4px 0 6px;
    font-weight: 600;
}
.np-vieworder-lineas-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-gray-mid);
    margin: 0;
    line-height: 1.5;
}
.np-vieworder-lineas-table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Inter', sans-serif;
}
.np-vieworder-lineas-table thead th {
    text-align: left;
    padding: 0.7em 0.6em;
    background: #faf7f5;
    font-size: 0.72em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    border-bottom: 1px solid var(--nezeni-line);
    white-space: nowrap;
}
.np-vieworder-lineas-table thead th small {
    text-transform: lowercase;
    letter-spacing: 0.05em;
    color: #aaa;
    font-size: 0.85em;
    font-weight: 400;
}
.np-vieworder-lineas-table thead th.col-num,
.np-vieworder-lineas-table tbody td.col-num,
.np-vieworder-lineas-table tfoot td.col-num { text-align: right; }
.np-vieworder-lineas-table tbody td {
    padding: 0.7em 0.6em;
    font-size: 0.88em;
    color: var(--nezeni-carbon);
    border-bottom: 1px solid #f0ebe7;
    vertical-align: middle;
}
.np-vieworder-lineas-table tbody tr:hover { background: #fcf9f8; }
.np-vieworder-lineas-table tbody td.col-ref {
    font-family: 'SF Mono', 'Menlo', Consolas, monospace;
    font-size: 0.85em;
    font-weight: 600;
    color: var(--nezeni-granate);
}
.np-vieworder-lineas-table tbody td.col-name a {
    color: var(--nezeni-carbon);
    text-decoration: none;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1em;
    font-weight: 500;
}
.np-vieworder-lineas-table tbody td.col-name a:hover { color: var(--nezeni-granate); }
.np-lote-code {
    display: inline-block;
    padding: 2px 8px;
    background: var(--nezeni-cream-deep);
    border: 1px solid var(--nezeni-line);
    border-radius: 5px;
    font-family: 'SF Mono', 'Menlo', Consolas, monospace;
    font-size: 0.85em;
    font-weight: 600;
    color: var(--nezeni-carbon);
    letter-spacing: 0.5px;
}
.np-no-data { color: #bbb; }
.np-vieworder-lineas-table tbody td.col-caducidad { color: var(--nezeni-granate); }
.np-vieworder-lineas-table tfoot td {
    padding: 0.55em 0.6em;
    font-size: 0.88em;
    border-top: 1px solid #f0ebe7;
    border-bottom: none;
}
.np-vieworder-lineas-table tfoot td.np-vieworder-lineas-foot-label {
    text-align: right;
    color: var(--nezeni-gray-mid);
}
.np-vieworder-lineas-table tfoot tr.np-vieworder-lineas-total td {
    border-top: 2px solid var(--nezeni-granate);
    padding-top: 0.75em;
    font-size: 1em;
    color: var(--nezeni-granate);
    font-weight: 700;
}

@media (max-width: 720px) {
    .np-vieworder-lineas { padding: 1em; }
    .np-vieworder-lineas-table { font-size: 0.85em; }
    .np-vieworder-lineas-table thead th,
    .np-vieworder-lineas-table tbody td { padding: 0.5em 0.4em; }
}

/* ─── /mi-cuenta/material-pos/ · v0.9.27 · refactor con acordeón ─── */
.np-matpos-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.55em;
    color: var(--nezeni-carbon);
    margin: 0 0 0.3em;
    font-weight: 600;
}
.np-matpos-section-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.92em;
    color: var(--nezeni-gray-mid);
    margin: 0 0 1.4em;
    line-height: 1.55;
    max-width: 720px;
}
.np-matpos-prio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
    margin-bottom: 1.4em;
}
@media (max-width: 900px) {
    .np-matpos-prio-grid { grid-template-columns: 1fr; }
}
.np-matpos-prio-card {
    display: block;
    padding: 1.6em 1.4em 1.4em;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    text-decoration: none;
    color: var(--nezeni-carbon);
    transition: all 0.2s ease;
    position: relative;
    overflow: hidden;
}
.np-matpos-prio-card:hover {
    border-color: rgba(204,9,70,0.32);
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(0,0,0,0.06);
}
.np-matpos-prio-featured {
    background: linear-gradient(180deg, #fdf6f8 0%, #fff 100%);
    border-color: rgba(204,9,70,0.32);
}
.np-matpos-prio-featured::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--nezeni-granate);
}
.np-matpos-prio-icon {
    font-size: 2em;
    margin-bottom: 0.5em;
    line-height: 1;
}
.np-matpos-prio-badge {
    position: absolute;
    top: 12px; right: 12px;
    padding: 3px 8px;
    background: var(--nezeni-granate);
    color: #fff;
    border-radius: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 0.65em;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.np-matpos-prio-card h4 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3em;
    margin: 0 0 0.5em;
    color: var(--nezeni-carbon);
    font-weight: 600;
    line-height: 1.2;
}
.np-matpos-prio-card p {
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-gray-mid);
    line-height: 1.5;
    margin: 0 0 1em;
}
.np-matpos-prio-card p strong { color: var(--nezeni-carbon); font-weight: 600; }
.np-matpos-prio-cta {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.82em;
    font-weight: 600;
    color: var(--nezeni-granate);
    margin-top: 0.4em;
}
.np-matpos-prio-cta-soon {
    color: var(--nezeni-gray-mid);
    font-style: italic;
}

/* Acordeón fichas por categoría */
.np-matpos-accordion {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.np-matpos-detail {
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.np-matpos-detail[open] {
    border-color: rgba(204,9,70,0.32);
    box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}
.np-matpos-summary {
    display: flex;
    align-items: center;
    gap: 1em;
    padding: 1em 1.4em;
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background 0.18s ease;
}
.np-matpos-summary::-webkit-details-marker { display: none; }
.np-matpos-summary:hover { background: #fcf9f8; }
.np-matpos-summary-icon {
    font-size: 1.6em;
    line-height: 1;
    flex-shrink: 0;
}
.np-matpos-summary-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.np-matpos-summary-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.25em;
    color: var(--nezeni-carbon);
    font-weight: 600;
    line-height: 1.1;
}
.np-matpos-summary-meta {
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
}
.np-matpos-summary-toggle {
    font-size: 1.5em;
    color: var(--nezeni-granate);
    line-height: 1;
    transition: transform 0.25s ease;
    flex-shrink: 0;
}
.np-matpos-detail[open] .np-matpos-summary-toggle {
    transform: rotate(180deg);
}
.np-matpos-detail-body {
    padding: 0.4em 1.4em 1.4em;
    border-top: 1px solid #f0ebe7;
}
.np-matpos-cat-pdf {
    display: inline-block;
    margin: 0.8em 0 1em;
    padding: 0.7em 1.2em;
    background: var(--nezeni-cream-deep);
    color: var(--nezeni-carbon);
    border-radius: 7px;
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.18s ease;
}
.np-matpos-cat-pdf:hover {
    background: var(--nezeni-granate);
    color: #fff;
}
.np-matpos-product-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
}
@media (max-width: 700px) { .np-matpos-product-list { grid-template-columns: 1fr; } }
.np-matpos-product-list li a {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 0.7em 1em;
    background: #faf7f5;
    border: 1px solid transparent;
    border-radius: 7px;
    text-decoration: none;
    color: var(--nezeni-carbon);
    transition: all 0.18s ease;
}
.np-matpos-product-list li a:hover {
    background: #fdf6f8;
    border-color: rgba(204,9,70,0.32);
    transform: translateX(2px);
}
.np-matpos-product-ref {
    font-family: 'SF Mono', 'Menlo', Consolas, monospace;
    font-size: 0.78em;
    font-weight: 600;
    color: var(--nezeni-granate);
    background: #fff;
    padding: 2px 8px;
    border-radius: 5px;
    border: 1px solid var(--nezeni-line);
}
.np-matpos-product-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1em;
    color: var(--nezeni-carbon);
    line-height: 1.2;
    font-weight: 500;
}
.np-matpos-product-fmt {
    font-family: 'Inter', sans-serif;
    font-size: 0.75em;
    color: var(--nezeni-gray-mid);
    white-space: nowrap;
}
.np-matpos-product-arrow {
    color: var(--nezeni-granate);
    font-size: 0.9em;
    font-weight: 600;
    transition: transform 0.18s ease;
}
.np-matpos-product-list li a:hover .np-matpos-product-arrow {
    transform: translateX(3px);
}

/* ─── Mejora visual /mi-cuenta/tarifa/ · v0.9.28 · secciones + zebra + cards modalidad ─── */
.np-tarifa-section {
    margin: 2em 0;
    padding: 1.6em 1.8em;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}
.np-tarifa-section-head {
    display: flex;
    gap: 1em;
    align-items: flex-start;
    margin-bottom: 1.2em;
    padding-bottom: 0.9em;
    border-bottom: 1px solid #f0ebe7;
}
.np-tarifa-section-icon {
    font-size: 1.8em;
    line-height: 1;
    flex-shrink: 0;
    padding-top: 4px;
}
.np-tarifa-section-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5em;
    color: var(--nezeni-carbon);
    margin: 0 0 4px;
    font-weight: 600;
    line-height: 1.2;
}
.np-tarifa-section-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.88em;
    color: var(--nezeni-gray-mid);
    margin: 0;
    line-height: 1.5;
    max-width: 720px;
}

/* Tabla zebra striping */
.np-tabla-zebra { width: 100%; border-collapse: collapse; font-family: 'Inter', sans-serif; }
.np-tabla-zebra thead th {
    text-align: left;
    padding: 0.85em 0.9em;
    background: #faf7f5;
    font-size: 0.72em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    border-bottom: 2px solid var(--nezeni-granate);
}
.np-tabla-zebra thead th small {
    text-transform: lowercase;
    letter-spacing: 0.04em;
    color: #aaa;
    font-size: 0.88em;
    font-weight: 400;
}
.np-tabla-zebra thead th.col-right,
.np-tabla-zebra tbody td.col-right { text-align: right; }
.np-tabla-zebra tbody td {
    padding: 0.85em 0.9em;
    font-size: 0.92em;
    color: var(--nezeni-carbon);
    border-bottom: 1px solid #f0ebe7;
}
.np-tabla-zebra tbody tr:nth-child(odd) td { background: #fff; }
.np-tabla-zebra tbody tr:nth-child(even) td { background: #fdf6f8; }
.np-tabla-zebra tbody tr:hover td { background: #fbe9ef; }
.np-tabla-zebra tbody td strong { color: var(--nezeni-carbon); font-weight: 600; }
.np-tabla-zebra tbody td .pr-muestras-yes { color: var(--nezeni-granate); font-weight: 700; }
.np-tabla-zebra tbody td .pr-muestras-no { color: #bbb; }
.np-tabla-zebra tbody tr:last-child td { border-bottom: none; }
.np-tarifa-note {
    margin-top: 0.85em;
    font-family: 'Inter', sans-serif;
    color: var(--nezeni-gray-mid);
    font-size: 0.82em;
    line-height: 1.5;
}

/* Cards de modalidades en /tarifa/ */
.np-modalidades-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
}
@media (max-width: 820px) { .np-modalidades-cards { grid-template-columns: 1fr; } }
.np-modalidad-card {
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    padding: 1.3em 1.4em;
    transition: all 0.2s ease;
    position: relative;
}
.np-modalidad-card:hover { border-color: rgba(204,9,70,0.32); }
.np-modalidad-card-featured {
    background: linear-gradient(180deg, #fdf6f8 0%, #fff 100%);
    border-color: rgba(204,9,70,0.32);
}
.np-modalidad-card-featured::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--nezeni-granate);
    border-radius: 12px 12px 0 0;
}
.np-modalidad-card-eyebrow {
    display: inline-block;
    margin-bottom: 0.4em;
    padding: 3px 10px;
    background: var(--nezeni-cream-deep);
    color: var(--nezeni-granate);
    border-radius: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}
.np-modalidad-card-featured .np-modalidad-card-eyebrow {
    background: var(--nezeni-granate);
    color: #fff;
}
.np-modalidad-card h4 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.2em;
    color: var(--nezeni-carbon);
    margin: 0 0 0.7em;
    font-weight: 600;
    line-height: 1.2;
}
.np-modalidad-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.np-modalidad-card ul li {
    font-family: 'Inter', sans-serif;
    font-size: 0.86em;
    color: var(--nezeni-carbon);
    line-height: 1.45;
    padding: 6px 0 6px 16px;
    position: relative;
}
.np-modalidad-card ul li::before {
    content: '·';
    position: absolute;
    left: 4px;
    color: var(--nezeni-granate);
    font-weight: 700;
}
.np-modalidad-card ul li strong { color: var(--nezeni-carbon); font-weight: 600; }

/* Aplica zebra a TODAS las tablas nezeni-tarifa-tabla (no solo np-tabla-zebra) */
.nezeni-tarifa-tabla tbody tr:nth-child(even) td { background: #fdf6f8; }
.nezeni-tarifa-tabla tbody tr:nth-child(odd) td { background: #fff; }
.nezeni-tarifa-tabla tbody tr:hover td { background: #fbe9ef; }

/* Aplica zebra también a tablas pr-muestras-table (en /pedido-rapido/) */
.pr-muestras-table tbody tr:nth-child(even) td { background: #fdf6f8; }
.pr-muestras-table tbody tr:nth-child(odd) td { background: #fff; }
.pr-muestras-table tbody tr:hover td { background: #fbe9ef; }

/* ─── Bloques info extra (Sachets + Betatesters) DEBAJO del pedido · v0.9.30 ─── */
.pr-info-extra {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4em;
    margin-top: 2.4em;
}
@media (max-width: 820px) {
    .pr-info-extra { grid-template-columns: 1fr; }
}
.pr-info-card {
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 14px;
    padding: 1.6em 1.8em;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
}
.pr-info-card-head {
    display: flex;
    gap: 1em;
    align-items: flex-start;
    margin-bottom: 1.2em;
    padding-bottom: 1em;
    border-bottom: 1px solid #f0ebe7;
}
.pr-info-card-icon {
    font-size: 2.4em;
    line-height: 1;
    flex-shrink: 0;
    padding-top: 4px;
}
.pr-info-card-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2em;
    color: var(--nezeni-carbon);
    margin: 0 0 4px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.pr-info-card-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.88em;
    color: var(--nezeni-gray-mid);
    margin: 0;
    line-height: 1.5;
}
.pr-info-card-rule {
    font-family: 'Inter', sans-serif;
    font-size: 0.95em;
    color: var(--nezeni-carbon);
    margin: 0 0 1em;
    line-height: 1.5;
}
.pr-info-card-rule strong { color: var(--nezeni-granate); font-weight: 600; }

/* Regla destacada para betatesters (sin tabla) */
.pr-info-card-rule-big {
    margin: 0.5em 0 1.2em;
    padding: 1.4em 1.5em;
    background: linear-gradient(180deg, #fdf6f8 0%, #fff 100%);
    border-left: 4px solid var(--nezeni-granate);
    border-radius: 8px;
}
.pr-info-card-rule-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-granate);
    font-weight: 700;
    margin-bottom: 0.4em;
}
.pr-info-card-rule-big p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3em;
    color: var(--nezeni-carbon);
    margin: 0;
    line-height: 1.4;
    font-weight: 500;
}
.pr-info-card-rule-big p strong {
    color: var(--nezeni-granate);
    font-weight: 700;
}
.pr-info-card-foot {
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-gray-mid);
    line-height: 1.55;
    margin: 0;
}
.pr-info-card-foot strong { color: var(--nezeni-carbon); font-weight: 600; }

/* ─── Regla betatester en /mi-cuenta/tarifa/ · v0.9.30 ─── */
.np-betatesters-rule {
    margin: 0.4em 0;
    padding: 1.6em 1.8em;
    background: linear-gradient(180deg, #fdf6f8 0%, #fff 100%);
    border-left: 4px solid var(--nezeni-granate);
    border-radius: 10px;
}
.np-betatesters-rule-main {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5em;
    color: var(--nezeni-carbon);
    margin: 0 0 0.7em;
    line-height: 1.4;
    font-weight: 500;
}
.np-betatesters-rule-main strong { color: var(--nezeni-granate); font-weight: 700; }
.np-betatesters-rule-foot {
    font-family: 'Inter', sans-serif;
    font-size: 0.88em;
    color: var(--nezeni-gray-mid);
    margin: 0;
    line-height: 1.55;
}
.np-betatesters-rule-foot strong { color: var(--nezeni-carbon); font-weight: 600; }

/* ─── Banner transferencia · datos IBAN reales · v0.9.32 ─── */
.np-banner-head { margin-bottom: 1em; }
.np-banner-head strong {
    font-family: 'Inter', sans-serif;
    font-size: 1.05em;
    color: #4a3500;
    display: block;
    margin-bottom: 4px;
}
.np-banner-head p {
    margin: 0;
    font-size: 0.92em;
    color: #5a4500;
    line-height: 1.5;
}
.np-banner-head p strong {
    display: inline;
    font-size: inherit;
    margin: 0;
}
.np-banner-iban-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 0.8em;
    padding-top: 0.8em;
    border-top: 1px dashed rgba(217, 147, 0, 0.4);
}
@media (max-width: 720px) {
    .np-banner-iban-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .np-banner-iban-grid { grid-template-columns: 1fr; }
}
.np-banner-iban-field {
    background: rgba(255, 255, 255, 0.65);
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.np-banner-iban-field-wide {
    grid-column: 1 / -1;
}
.np-banner-iban-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.68em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: #8b7000;
    font-weight: 700;
}
.np-banner-iban-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1em;
    color: #2a1f00;
    font-weight: 600;
    line-height: 1.2;
}
.np-banner-iban-value.np-banner-iban-mono {
    font-family: 'SF Mono', 'Menlo', Consolas, monospace;
    font-size: 0.95em;
    letter-spacing: 1px;
    color: #4a3500;
}
.np-banner-iban-value.np-banner-iban-strong {
    color: #cc0946;
    font-size: 1.25em;
    font-weight: 700;
}
.np-banner-iban-note {
    display: block;
    margin-top: 4px;
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    color: #6a5500;
    line-height: 1.4;
    font-style: italic;
}

/* ─── Filtrado categorías rediseñado · tabs underline · v0.9.33 ─── */
/* Ocultar el viejo wrapper de chips si quedó algo de cache */
.pr-filters-wrap, .filter-chip { display: none !important; }

/* Tabs categoría · estilo underline minimal */
.pr-cat-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    align-items: flex-end;
    border-bottom: 1px solid var(--nezeni-line);
    margin: 0;
    padding: 0;
}
.pr-cat-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.85em 1.2em;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    font-family: 'Inter', sans-serif;
    font-size: 0.88em;
    font-weight: 500;
    color: var(--nezeni-gray-mid);
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    white-space: nowrap;
}
.pr-cat-tab:hover {
    color: var(--nezeni-carbon);
}
.pr-cat-tab.active {
    color: var(--nezeni-granate);
    font-weight: 600;
    border-bottom-color: var(--nezeni-granate);
}
.pr-cat-tab-label {
    transition: color 0.18s ease;
}
.pr-cat-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    background: #f0ebe7;
    border-radius: 10px;
    font-size: 0.78em;
    font-weight: 600;
    color: var(--nezeni-gray-mid);
    transition: all 0.2s ease;
}
.pr-cat-tab:hover .pr-cat-tab-count {
    background: #e8ddd4;
    color: var(--nezeni-carbon);
}
.pr-cat-tab.active .pr-cat-tab-count {
    background: rgba(204, 9, 70, 0.12);
    color: var(--nezeni-granate);
}

/* Select dropdown mobile · oculto en desktop, visible en mobile */
.pr-cat-select-wrap { display: none; }
.pr-cat-select-label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
    margin-bottom: 0.5em;
}
.pr-cat-select {
    width: 100%;
    padding: 0.75em 2.5em 0.75em 1em;
    border: 1px solid var(--nezeni-line);
    border-radius: 8px;
    background: #fff url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23cc0946' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 1em center;
    appearance: none;
    -webkit-appearance: none;
    font-family: 'Inter', sans-serif;
    font-size: 0.95em;
    color: var(--nezeni-carbon);
    cursor: pointer;
}
.pr-cat-select:focus {
    outline: none;
    border-color: var(--nezeni-granate);
    box-shadow: 0 0 0 3px rgba(204, 9, 70, 0.1);
}

/* Indicador resultados live · debajo del toolbar */
.pr-results-meta {
    margin: 0.9em 0 0;
    padding: 0.65em 1em;
    background: #fdf6f8;
    border-left: 3px solid var(--nezeni-granate);
    border-radius: 0 6px 6px 0;
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    color: var(--nezeni-carbon);
}
.pr-results-meta strong { color: var(--nezeni-granate); font-weight: 700; }

/* Responsive · tabs scroll horizontal en tablet, select en mobile */
@media (max-width: 980px) {
    .pr-cat-tabs {
        overflow-x: auto;
        scrollbar-width: thin;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        margin: 0 -1.4em;          /* sangrado al borde para sensación full-width */
        padding: 0 1.4em;
    }
    .pr-cat-tab { padding: 0.75em 0.9em; font-size: 0.82em; }
}
@media (max-width: 640px) {
    .pr-cat-tabs { display: none; }
    .pr-cat-select-wrap { display: block; }
}

/* También quita búsqueda label antigua (limpieza) */
.pr-search-label { display: none; }

/* ─── Página /preguntas-frecuentes/ · diseño cubista · v0.9.34 ─── */
.np-faq-page {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 1em;
}
.np-faq-hero {
    margin: 2.4em 0 2em;
    padding: 2.4em 2em 2.2em;
    background: linear-gradient(180deg, #fdf6f8 0%, #fff 100%);
    border: 1px solid var(--nezeni-line);
    border-radius: 14px;
    text-align: center;
}
.np-faq-eyebrow {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.72em;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--nezeni-granate);
    font-weight: 700;
    margin-bottom: 0.6em;
}
.np-faq-title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 2.6em !important;
    color: var(--nezeni-carbon) !important;
    margin: 0 0 0.5em !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em;
}
.np-faq-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.98em;
    color: var(--nezeni-gray-mid);
    margin: 0;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

/* Índice de secciones */
.np-faq-toc {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.8em;
    margin: 0 0 2.5em;
}
@media (max-width: 760px) { .np-faq-toc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .np-faq-toc { grid-template-columns: 1fr; } }
.np-faq-toc-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0.95em 1.1em;
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 10px;
    text-decoration: none;
    color: var(--nezeni-carbon);
    font-family: 'Inter', sans-serif;
    font-size: 0.88em;
    font-weight: 500;
    transition: all 0.2s ease;
}
.np-faq-toc-link:hover {
    background: #fdf6f8;
    border-color: rgba(204,9,70,0.32);
    transform: translateY(-2px);
    color: var(--nezeni-granate);
}
.np-faq-toc-icon {
    font-size: 1.3em;
    flex-shrink: 0;
}

/* Secciones */
.np-faq-section {
    margin: 0 0 2.6em;
    scroll-margin-top: 2em;          /* anchor scroll offset */
}
.np-faq-section-head {
    display: flex;
    gap: 1em;
    align-items: flex-start;
    margin-bottom: 1.4em;
    padding-bottom: 1em;
    border-bottom: 2px solid var(--nezeni-granate);
}
.np-faq-section-icon {
    font-size: 2em;
    line-height: 1;
    flex-shrink: 0;
}
.np-faq-section-title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.85em !important;
    color: var(--nezeni-carbon) !important;
    margin: 0 0 4px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.01em;
}
.np-faq-section-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.9em;
    color: var(--nezeni-gray-mid);
    margin: 0;
    line-height: 1.5;
}

/* Items acordeón */
.np-faq-item {
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 10px;
    margin-bottom: 8px;
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.np-faq-item[open] {
    border-color: rgba(204,9,70,0.32);
    box-shadow: 0 3px 12px rgba(0,0,0,0.04);
}
.np-faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.05em 1.4em;
    cursor: pointer;
    list-style: none;
    user-select: none;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.18em;
    color: var(--nezeni-carbon);
    font-weight: 500;
    line-height: 1.3;
    transition: background 0.18s ease;
}
.np-faq-item summary::-webkit-details-marker { display: none; }
.np-faq-item summary::after {
    content: '+';
    font-family: 'Inter', sans-serif;
    font-size: 1.4em;
    color: var(--nezeni-granate);
    font-weight: 300;
    transition: transform 0.25s ease;
    flex-shrink: 0;
    margin-left: 1em;
}
.np-faq-item[open] summary::after { transform: rotate(45deg); }
.np-faq-item summary:hover { background: #fcf9f8; color: var(--nezeni-granate); }
.np-faq-item-body {
    padding: 0 1.4em 1.3em;
    border-top: 1px solid #f0ebe7;
    margin-top: 0;
}
.np-faq-item-body p {
    font-family: 'Inter', sans-serif;
    font-size: 0.95em;
    color: var(--nezeni-carbon);
    line-height: 1.65;
    margin: 1em 0;
}
.np-faq-item-body p:first-child { margin-top: 1em; }
.np-faq-item-body p:last-child { margin-bottom: 0; }
.np-faq-item-body strong { color: var(--nezeni-carbon); font-weight: 600; }
.np-faq-item-body ul {
    margin: 0.7em 0;
    padding-left: 1.4em;
}
.np-faq-item-body ul li {
    font-family: 'Inter', sans-serif;
    font-size: 0.93em;
    color: var(--nezeni-carbon);
    line-height: 1.65;
    margin-bottom: 6px;
}
.np-faq-item-body code {
    font-family: 'SF Mono', Consolas, monospace;
    background: var(--nezeni-cream-deep);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.88em;
    color: var(--nezeni-granate);
}
.np-faq-link-inline {
    color: var(--nezeni-granate);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 500;
}
.np-faq-link-inline:hover { color: var(--nezeni-carbon); }

/* CTA final */
.np-faq-cta-block {
    margin: 3em 0 2em;
    padding: 2em 2em 2em;
    background: linear-gradient(135deg, #cc0946 0%, #9c0635 100%);
    border-radius: 14px;
    color: #fff;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2em;
    align-items: center;
}
@media (max-width: 760px) {
    .np-faq-cta-block { grid-template-columns: 1fr; }
}
.np-faq-cta-title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.7em !important;
    color: #fff !important;
    margin: 0 0 0.3em !important;
    font-weight: 600 !important;
}
.np-faq-cta-lead {
    font-family: 'Inter', sans-serif;
    font-size: 0.92em;
    color: rgba(255,255,255,0.85);
    margin: 0;
    line-height: 1.55;
}
.np-faq-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
.np-faq-cta-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.85em 1.5em;
    border-radius: 7px;
    font-family: 'Inter', sans-serif;
    font-size: 0.88em;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.18s ease;
}
.np-faq-cta-btn-primary {
    background: #fff;
    color: var(--nezeni-granate);
}
.np-faq-cta-btn-primary:hover { background: #fdf6f8; transform: translateY(-1px); }
.np-faq-cta-btn-ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.4);
}
.np-faq-cta-btn-ghost:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.7); }

/* ─── Leyenda PM/PS footer · v0.9.35 ─── */
.np-footer-legend {
    margin: 1.2em 0 0;
    padding: 0.8em 0;
    border-top: 1px solid rgba(255,255,255,0.1);
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: rgba(255,255,255,0.7);
    letter-spacing: 0.02em;
}
.np-footer-legend strong {
    color: var(--nezeni-granate);
    font-weight: 700;
}

/* ─── Iconos SVG en cards info · v0.9.35 ─── */
.pr-info-card-icon,
.np-tarifa-section-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.pr-info-card-icon svg,
.np-tarifa-section-icon svg {
    display: block;
}

/* ─── Páginas legales · meta versión · v0.9.36 ─── */
.np-faq-meta {
    margin-top: 1em;
    padding-top: 0.85em;
    border-top: 1px solid rgba(204,9,70,0.18);
    font-family: 'Inter', sans-serif;
    font-size: 0.78em;
    color: var(--nezeni-gray-mid);
    letter-spacing: 0.04em;
}
.np-legal-page .np-faq-item-body code {
    font-family: 'SF Mono', Consolas, monospace;
    background: var(--nezeni-cream-deep);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.88em;
    color: var(--nezeni-granate);
    letter-spacing: 0.5px;
}
.np-legal-page .np-faq-item-body ul {
    margin: 0.7em 0 0.7em 0;
}
.np-legal-page .np-faq-item-body p:first-child { margin-top: 0.8em; }

/* ─── AUDITORÍA VISUAL · FIXES v0.9.40 ─── */

/* FIX 1-3: Ocultar título Astra duplicado en páginas legales/FAQ
   Cuando hay el contenedor .np-faq-page, el theme renderiza también el title arriba */
body.page .entry-content > .entry-header,
body.page-id-90 .ast-archive-title,
body.page-id-90 .entry-title:not(.np-faq-title),
body.page-id-89 .ast-archive-title,
body.page-id-89 .entry-title:not(.np-faq-title),
body.page-id-3 .ast-archive-title,
body.page-id-3 .entry-title:not(.np-faq-title) {
    display: none !important;
}
/* Más genérico: cualquier página con .np-faq-page o .np-legal-page oculta el title de Astra */
body:has(.np-faq-page) .ast-archive-title,
body:has(.np-faq-page) > main .entry-header .entry-title,
body:has(.np-legal-page) .ast-archive-title,
body:has(.np-legal-page) > main .entry-header .entry-title {
    display: none !important;
}

/* FIX 4: Columna SUBTOTAL cortada en pedido rápido · ensanchar */
.pr-table .col-subtotal,
.pr-table thead th.col-subtotal {
    width: 100px !important;
    min-width: 100px !important;
    padding-right: 12px !important;
}
.pr-table .col-pvpr,
.pr-table thead th.col-pvpr {
    width: 70px !important;
    min-width: 70px !important;
}
.pr-table thead th .pr-th-label {
    white-space: nowrap !important;
}

/* FIX 5: Iconos emoji en cards prioritarias /material-pos/ · tamaño moderado */
.np-matpos-prio-icon {
    font-size: 1.8em !important;       /* antes era 2em pero salía gigante */
    line-height: 1 !important;
    width: 48px !important;
    height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fdf6f8;
    border-radius: 10px;
    border: 1px solid rgba(204,9,70,0.18);
    margin-bottom: 0.7em !important;
}

/* FIX 6: Galería producto vacía · mostrar placeholder si no hay imagen */
body.np-single-product .woocommerce-product-gallery {
    background: #faf7f5;
    border-radius: 12px;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
}
body.np-single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper:empty::before {
    content: '🧴 Sin imagen';
    font-family: 'Inter', sans-serif;
    font-size: 0.9em;
    color: var(--nezeni-gray-mid);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
body.np-single-product .woocommerce-product-gallery__image img {
    border-radius: 12px;
}

/* FIX 7: Header · evitar duplicación del enlace "Mi cuenta" del theme Astra */
.ast-header-account-wrap,
.ast-header-woo-account,
.header-search-icon,
.menu-item-account { display: none !important; }

/* FIX 8: Slides de activos · scroll horizontal con scrollbar visible */
.np-cards-slide {
    scrollbar-width: thin;
    scrollbar-color: var(--nezeni-granate) #f0ebe7;
}
.np-cards-slide::-webkit-scrollbar {
    height: 6px;
}
.np-cards-slide::-webkit-scrollbar-track {
    background: #f0ebe7;
    border-radius: 3px;
}
.np-cards-slide::-webkit-scrollbar-thumb {
    background: var(--nezeni-granate);
    border-radius: 3px;
}

/* Hint visual: mostrar gradient en el borde derecho del slide cuando hay más contenido */
.np-prod-section-content {
    position: relative;
}

/* ─── Página /mi-cuenta/rappel/ · v0.9.42 ─── */
.np-rappel-status {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1em;
    margin: 1.6em 0 2em;
}
@media (max-width: 820px) { .np-rappel-status { grid-template-columns: 1fr; } }
.np-rappel-status-card {
    background: #fff;
    border: 1px solid var(--nezeni-line);
    border-radius: 12px;
    padding: 1.4em 1.6em;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.np-rappel-status-card.np-rappel-status-tier {
    background: linear-gradient(180deg, #fdf6f8 0%, #fff 100%);
    border-color: rgba(204,9,70,0.32);
}
.np-rappel-status-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.68em;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--nezeni-granate);
    font-weight: 700;
}
.np-rappel-status-value {
    font-family: 'Cormorant Garamond', serif;
    font-size: 2em;
    color: var(--nezeni-carbon);
    line-height: 1.1;
    font-weight: 600;
}
.np-rappel-status-foot {
    font-family: 'Inter', sans-serif;
    font-size: 0.82em;
    color: var(--nezeni-gray-mid);
    line-height: 1.45;
}
.np-rappel-status-foot strong { color: var(--nezeni-carbon); }
.np-rappel-status-card .np-progress {
    background: #f0ebe7;
    height: 6px;
    border-radius: 3px;
    overflow: hidden;
}
.np-rappel-status-card .np-progress-bar {
    background: var(--nezeni-granate);
    height: 100%;
}

/* Reglas anti-picardía */
.np-rappel-rules {
    list-style: none;
    margin: 0;
    padding: 0;
}
.np-rappel-rules li {
    font-family: 'Inter', sans-serif;
    font-size: 0.92em;
    color: var(--nezeni-carbon);
    line-height: 1.55;
    padding: 0.6em 0 0.6em 1.6em;
    position: relative;
    border-bottom: 1px solid #f0ebe7;
}
.np-rappel-rules li:last-child { border-bottom: none; }
.np-rappel-rules li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0.55em;
    color: var(--nezeni-granate);
    font-weight: 700;
    font-size: 1.1em;
}
.np-rappel-rules li strong { color: var(--nezeni-carbon); font-weight: 600; }
.np-rappel-rules li em { color: var(--nezeni-granate); font-style: normal; font-weight: 500; }

/* Liquidación 3 cards */
.np-rappel-liq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1em;
}
@media (max-width: 820px) { .np-rappel-liq-grid { grid-template-columns: 1fr; } }
.np-rappel-liq-card {
    background: #faf7f5;
    border: 1px solid var(--nezeni-line);
    border-radius: 10px;
    padding: 1.2em 1.4em;
}
.np-rappel-liq-card .np-rappel-liq-eyebrow {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.68em;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-granate);
    font-weight: 700;
    margin-bottom: 4px;
}
.np-rappel-liq-card h4 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3em;
    color: var(--nezeni-carbon);
    margin: 0 0 0.5em;
    font-weight: 600;
    line-height: 1.2;
}
.np-rappel-liq-card p, .np-rappel-liq-card ul {
    font-family: 'Inter', sans-serif;
    font-size: 0.87em;
    color: var(--nezeni-carbon);
    line-height: 1.55;
    margin: 0;
}
.np-rappel-liq-card ul { padding-left: 1.2em; }
.np-rappel-liq-card ul li { margin-bottom: 4px; }
.np-rappel-liq-card strong { color: var(--nezeni-carbon); font-weight: 600; }

/* ─── Precio dual en cards categoría/tienda · v0.9.43 ─── */
.np-price-pair {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-start;
    line-height: 1.2;
}
.np-price-line {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-family: 'Cormorant Garamond', serif;
    color: var(--nezeni-carbon);
}
.np-price-line small {
    font-family: 'Inter', sans-serif;
    font-size: 0.6em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--nezeni-gray-mid);
    font-weight: 600;
}
.np-price-line.np-price-sin {
    font-size: 1.4em;
    color: var(--nezeni-granate);
    font-weight: 600;
}
.np-price-line.np-price-sin strong { font-weight: 600; }
.np-price-line.np-price-con {
    font-size: 1em;
    color: var(--nezeni-gray-mid);
    font-weight: 500;
}

/* En la tabla de precio default WC oculta */
.woocommerce ul.products li.product .price .np-price-pair { display: flex !important; }
.woocommerce ul.products li.product .price {
    margin: 0.5em 0 1em !important;
}

/* ─── AUDITORÍA UX · cards categoría/tienda · tipografía profesional · v0.9.44 ─── */

/* Título de la categoría · más line-height para acentos */
.woocommerce-products-header .woocommerce-products-header__title,
.term-description + h1, h1.woocommerce-products-header__title,
.ast-archive-page-title, .ast-archive-title,
body.tax-product_cat h1, body.archive.woocommerce h1.entry-title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 2.8rem !important;
    line-height: 1.25 !important;
    color: var(--nezeni-carbon) !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
    margin: 0.4em 0 0.3em !important;
    padding: 0 !important;
}

/* Lead/descripción de categoría */
.term-description, .woocommerce .term-description,
.taxonomy-description, .archive-description {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.05rem !important;
    line-height: 1.6 !important;
    color: var(--nezeni-gray-mid) !important;
    margin: 0.5em 0 1.5em !important;
    max-width: 720px;
}

/* "Mostrando X resultados" + select orden */
.woocommerce-result-count {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.95rem !important;
    color: var(--nezeni-carbon) !important;
    font-weight: 500;
}
.woocommerce-ordering select, .woocommerce-ordering .orderby {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.92rem !important;
    padding: 0.5em 1em !important;
}

/* Cards producto en loop · texto del título · MÁS GRANDE */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h3.woocommerce-loop-product__title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.55rem !important;
    line-height: 1.2 !important;
    color: var(--nezeni-carbon) !important;
    font-weight: 600 !important;
    margin: 0.3em 0 0.5em !important;
    padding: 0 !important;
    letter-spacing: -0.01em;
}

/* Categoría eyebrow encima del título */
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .cat-link {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.72rem !important;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--nezeni-granate) !important;
    font-weight: 600;
}

/* Precio dual en cards · ahora más grande y legible */
.np-price-pair {
    margin: 0.4em 0;
}
.np-price-line.np-price-sin {
    font-size: 1.85rem !important;
    font-weight: 600 !important;
    color: var(--nezeni-granate) !important;
    line-height: 1.1;
}
.np-price-line.np-price-sin strong { font-size: inherit; }
.np-price-line.np-price-con {
    font-size: 1.15rem !important;
    color: var(--nezeni-carbon) !important;
    line-height: 1.1;
    margin-top: 2px;
}
.np-price-line small {
    font-size: 0.65rem !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--nezeni-gray-mid) !important;
    font-weight: 600 !important;
    margin-left: 6px;
}

/* Botón "Añadir al carrito" en cards · grande y profesional */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    padding: 0.85em 1.4em !important;
    background: var(--nezeni-granate) !important;
    color: #fff !important;
    border-radius: 7px !important;
    border: none !important;
    transition: background 0.2s ease, transform 0.15s ease;
    margin-top: 0.7em !important;
}
.woocommerce ul.products li.product .button:hover {
    background: #b00839 !important;
    transform: translateY(-1px);
}

/* Reducir hueco entre rows de productos */
.woocommerce ul.products {
    gap: 1.5em 1em !important;
}
.woocommerce ul.products li.product {
    margin-bottom: 0 !important;
}

/* Padding de cards uniforme */
.woocommerce ul.products li.product {
    padding: 0 !important;
}
.woocommerce ul.products li.product > a:first-child {
    margin-bottom: 0;
}

/* Espaciado lead + filtros + grid */
.woocommerce-notices-wrapper + .woocommerce-products-header,
.woocommerce-products-header {
    padding: 1.5em 0 1em !important;
}

/* ─── Escenarios modalidad · precio dual sin IVA + con IVA · v0.9.45 ─── */
.np-mod-scenario-iva {
    display: block;
    margin-top: 4px;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.7em !important;
    color: var(--nezeni-gray-mid) !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.3 !important;
}
.np-mod-scenario-price > small:first-of-type {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.55em !important;
    color: var(--nezeni-gray-mid) !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 600;
    margin-left: 4px;
    vertical-align: baseline;
}

/* ─── view-order: ocultar tabla "Detalles del pedido" WC default · v0.9.48 ─── */
/* Nuestra tabla cubista "Productos del pedido · con lote y caducidad" ya tiene toda la info.
   Mantenemos solo las direcciones (facturación + envío) que WC sigue mostrando. */
body.woocommerce-view-order .woocommerce-order-details,
body.woocommerce-view-order section.woocommerce-order-details,
body.woocommerce-view-order h2.woocommerce-order-details__title,
body.woocommerce-view-order h2:not(.woocommerce-column__title):not(.np-vieworder-lineas-head h2),
body.woocommerce-account .woocommerce-order-details {
    display: none !important;
}
/* Asegurar que las direcciones sí se muestran (titulo "Dirección de facturación" + "Dirección de envío") */
body.woocommerce-view-order .woocommerce-customer-details,
body.woocommerce-view-order .woocommerce-customer-details *,
body.woocommerce-view-order .woocommerce-columns--addresses,
body.woocommerce-view-order .woocommerce-column__title {
    display: revert !important;
}
body.woocommerce-view-order .woocommerce-customer-details { display: block !important; }
body.woocommerce-view-order .woocommerce-columns--addresses { display: flex !important; gap: 1.5em; flex-wrap: wrap; }
body.woocommerce-view-order .woocommerce-column { flex: 1 1 280px; }


/* ==========================================================================
   v0.9.49 · Cards de activos en ficha producto · feedback visual clickable
   ========================================================================== */
.np-cards-slide a.np-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: transform .15s ease, box-shadow .15s ease;
    position: relative;
    cursor: pointer;
}
.np-cards-slide a.np-card-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px rgba(204, 9, 70, 0.18);
}
.np-cards-slide a.np-card-link::after {
    content: 'Ver →';
    position: absolute;
    top: 12px;
    right: 12px;
    background: #cc0946;
    color: white;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    padding: 4px 9px;
    border-radius: 4px;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .15s ease, transform .15s ease;
    pointer-events: none;
}
.np-cards-slide a.np-card-link:hover::after {
    opacity: 1;
    transform: translateY(0);
}

/* ═════════════════════════════════════════════════════════════════════
 * CARRITO · v0.9.54 · rediseño editorial Nezeni Pharma
 * Aplica al cart block de Gutenberg (wp-block-woocommerce-cart)
 * ═════════════════════════════════════════════════════════════════════ */

/* ─── Wrapper general carrito ─── */
body.woocommerce-cart .entry-content,
body.woocommerce-cart .wp-block-woocommerce-cart {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}
body.woocommerce-cart .entry-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    color: #1a1a1a;
    font-weight: 500;
    margin: 28px 0 8px;
    letter-spacing: -0.015em;
    line-height: 1.05;
}
body.woocommerce-cart .entry-title::before {
    content: 'TU PEDIDO · NEZENI PHARMA';
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    color: #cc0946;
    letter-spacing: 3px;
    margin-bottom: 14px;
    text-transform: uppercase;
}

/* ─── Banner modalidad detectada (inyectado via JS) ─── */
.np-cart-modalidad-banner {
    background: linear-gradient(135deg, #fbf6f8 0%, #faf7f5 100%);
    border: 1px solid #f0e0e7;
    border-radius: 16px;
    padding: 22px 28px;
    margin: 18px 0 30px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    box-shadow: 0 2px 18px rgba(204, 9, 70, 0.04);
}
.np-cart-modalidad-banner-left {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.np-cart-modalidad-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    color: #cc0946;
    letter-spacing: 2.5px;
    text-transform: uppercase;
}
.np-cart-modalidad-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.6rem;
    color: #1a1a1a;
    font-weight: 500;
    margin: 0;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.np-cart-modalidad-desc {
    font-size: 0.92rem;
    color: #5a5a5a;
    line-height: 1.5;
    margin: 0;
}
.np-cart-modalidad-desc strong { color: #1a1a1a; }
.np-cart-modalidad-progress {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 280px;
}
.np-cart-modalidad-progress-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #6a6a6a;
    line-height: 1.4;
    text-align: right;
}
.np-cart-modalidad-progress-label strong { color: #cc0946; font-weight: 700; }
.np-cart-modalidad-progress-bar {
    height: 8px;
    background: rgba(204, 9, 70, 0.10);
    border-radius: 100px;
    overflow: hidden;
    position: relative;
}
.np-cart-modalidad-progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #cc0946 0%, #e63b6e 100%);
    border-radius: 100px;
    transition: width 600ms cubic-bezier(.2, .6, .2, 1);
    box-shadow: 0 0 12px rgba(204, 9, 70, 0.35);
}
.np-cart-modalidad-progress-marks {
    display: flex;
    justify-content: space-between;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    color: #8a8a8a;
    margin-top: 2px;
}
/* Variantes según modalidad */
.np-cart-modalidad-banner[data-modalidad="express"] {
    background: linear-gradient(135deg, #fff4e8 0%, #fef9f3 100%);
    border-color: #f0d8b5;
}
.np-cart-modalidad-banner[data-modalidad="express"] .np-cart-modalidad-eyebrow { color: #c87830; }
.np-cart-modalidad-banner[data-modalidad="medio"] {
    background: linear-gradient(135deg, #fbf6f8 0%, #faf7f5 100%);
    border-color: #f0e0e7;
}
.np-cart-modalidad-banner[data-modalidad="lote"] {
    background: linear-gradient(135deg, #f5f8f3 0%, #faf7f5 100%);
    border-color: #d8e3d0;
}
.np-cart-modalidad-banner[data-modalidad="lote"] .np-cart-modalidad-eyebrow { color: #5a8a3a; }

/* ─── Grid layout principal (main + sidebar) ─── */
.wc-block-components-sidebar-layout {
    gap: 40px !important;
}
.wc-block-cart__main {
    background: transparent;
}
.wc-block-cart__sidebar {
    position: sticky;
    top: 20px;
    align-self: start;
}

/* ─── Tabla productos ─── */
.wc-block-cart-items {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #efeae6;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
    margin-bottom: 24px;
}
.wc-block-cart-items thead {
    background: #faf7f5;
    border-bottom: 1px solid #efeae6;
}
.wc-block-cart-items th {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.72rem !important;
    color: #6a6a6a !important;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 700;
    padding: 18px 22px !important;
    text-align: left;
    border-bottom: 0 !important;
}
.wc-block-cart-items th:last-child { text-align: right; }

.wc-block-cart-items__row,
tr.wc-block-cart-items__row {
    border-bottom: 1px solid #f4ece2 !important;
    transition: background 200ms ease;
}
.wc-block-cart-items__row:hover {
    background: #fdfaf7;
}
.wc-block-cart-items__row:last-child { border-bottom: 0 !important; }

.wc-block-cart-items__row td {
    padding: 22px 22px !important;
    vertical-align: top !important;
    border: 0 !important;
}

/* Imagen producto */
.wc-block-cart-item__image,
td.wc-block-cart-item__image {
    width: 110px !important;
    padding-right: 0 !important;
}
.wc-block-cart-item__image img {
    width: 90px !important;
    height: 90px !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    border: 1px solid #efeae6;
    background: #faf7f5;
    transition: transform 240ms cubic-bezier(.2, .6, .2, 1);
}
.wc-block-cart-item__image a:hover img {
    transform: scale(1.04);
}

/* Info producto */
.wc-block-cart-item__product,
td.wc-block-cart-item__product {
    padding-left: 8px !important;
}
.wc-block-cart-item__product a,
.wc-block-cart-item__product .wc-block-components-product-name {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.25rem !important;
    color: #1a1a1a !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    letter-spacing: -0.005em;
    display: block;
    margin-bottom: 6px;
}
.wc-block-cart-item__product a:hover {
    color: #cc0946 !important;
}
.wc-block-cart-item__prices,
.wc-block-components-product-price {
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem !important;
    color: #6a6a6a !important;
    margin: 4px 0 8px !important;
}
.wc-block-components-formatted-money-amount {
    font-weight: 600;
    color: #2c2c2c;
}

/* Metadata producto · lote, caducidad, formato */
.wc-block-cart-item__product .wc-block-components-product-metadata,
.wc-block-cart-item__product .wc-block-cart-item__product-metadata {
    margin-top: 4px;
}
.wc-block-components-product-metadata__description {
    font-size: 0.78rem !important;
    color: #8a8a8a;
    line-height: 1.5;
}

/* ─── Selector cantidad +/- ─── */
.wc-block-cart-item__quantity {
    margin-top: 10px;
}
.wc-block-components-quantity-selector {
    border: 1px solid #e0d8d3 !important;
    border-radius: 10px !important;
    overflow: hidden;
    display: inline-flex !important;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
    width: auto !important;
    min-width: 0 !important;
}
.wc-block-components-quantity-selector__button {
    background: #faf7f5 !important;
    border: 0 !important;
    color: #cc0946 !important;
    font-weight: 700 !important;
    font-size: 1.2rem !important;
    width: 36px !important;
    height: 36px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 180ms ease, color 180ms ease;
}
.wc-block-components-quantity-selector__button:hover {
    background: #cc0946 !important;
    color: #fff !important;
}
.wc-block-components-quantity-selector__input {
    border: 0 !important;
    background: #fff !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    color: #1a1a1a !important;
    text-align: center !important;
    width: 50px !important;
    min-width: 50px !important;
    padding: 0 !important;
}

/* Botón eliminar */
.wc-block-cart-item__remove-link {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.75rem !important;
    color: #a0a0a0 !important;
    text-decoration: none !important;
    margin-top: 10px !important;
    transition: color 180ms ease;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.wc-block-cart-item__remove-link:hover {
    color: #cc0946 !important;
}

/* Total fila */
.wc-block-cart-item__total,
td.wc-block-cart-item__total {
    text-align: right !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    color: #1a1a1a !important;
    padding-right: 24px !important;
}

/* ─── Sidebar TOTALES ─── */
.wp-block-woocommerce-cart-totals-block,
.wc-block-cart__sidebar {
    background: #fff;
    border: 1px solid #efeae6;
    border-radius: 16px;
    padding: 28px 30px !important;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}
.wp-block-woocommerce-cart-order-summary-block {
    padding: 0 !important;
}
.wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-totals-wrapper > h2,
.wp-block-woocommerce-cart-order-summary-heading-block h2 {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.6rem !important;
    color: #1a1a1a !important;
    font-weight: 500 !important;
    margin: 0 0 6px !important;
    letter-spacing: -0.01em;
}
.wp-block-woocommerce-cart-order-summary-heading-block::before {
    content: 'RESUMEN';
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    color: #cc0946;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

/* Línea de cada total */
.wc-block-components-totals-item {
    padding: 12px 0 !important;
    border-bottom: 1px solid #f4ece2;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.92rem !important;
    color: #3a3a3a !important;
}
.wc-block-components-totals-item:last-of-type { border-bottom: 0; }
.wc-block-components-totals-item__label {
    color: #5a5a5a !important;
    font-weight: 500 !important;
}
.wc-block-components-totals-item__value {
    color: #1a1a1a !important;
    font-weight: 600 !important;
}
.wc-block-components-totals-item__description {
    font-size: 0.75rem !important;
    color: #8a8a8a !important;
    margin-top: 2px !important;
}

/* Línea TOTAL grande */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item-tax,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 1.7rem !important;
    color: #1a1a1a !important;
    font-weight: 500 !important;
    letter-spacing: -0.01em;
}
.wc-block-components-totals-footer-item {
    padding-top: 16px !important;
    border-top: 2px solid #1a1a1a !important;
    margin-top: 8px;
}

/* Cupones · acordeón */
.wc-block-components-totals-coupon,
.wc-block-cart__totals-title + div .wc-block-components-totals-coupon {
    background: #faf7f5;
    border-radius: 10px;
    margin-bottom: 14px;
    border: 1px solid #efeae6;
}
.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button {
    color: #cc0946 !important;
    font-weight: 600 !important;
    padding: 14px 18px !important;
}

/* Envío gratis · etiqueta vistosa */
.wc-block-components-shipping-rates-control,
.wc-block-components-totals-shipping {
    padding: 14px 0;
}
.wc-block-components-totals-shipping__label {
    font-weight: 600 !important;
}
.wc-block-components-totals-shipping__value {
    color: #5a8a3a !important;
    font-weight: 700 !important;
}

/* Botón Finalizar compra */
.wc-block-cart__submit-container .wc-block-cart__submit-button,
.wc-block-components-button.wc-block-cart__submit-button,
a.wc-block-cart__submit-button {
    background: #cc0946 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 12px !important;
    padding: 18px 24px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    width: 100%;
    margin-top: 18px;
    box-shadow: 0 6px 20px rgba(204, 9, 70, 0.25);
    transition: transform 200ms cubic-bezier(.2, .6, .2, 1), box-shadow 200ms ease, background 200ms ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.wc-block-cart__submit-container .wc-block-cart__submit-button:hover,
a.wc-block-cart__submit-button:hover {
    background: #e63b6e !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(204, 9, 70, 0.35) !important;
}
.wc-block-cart__submit-container .wc-block-cart__submit-button::after {
    content: ' →';
    transition: transform 200ms ease;
}
.wc-block-cart__submit-container .wc-block-cart__submit-button:hover::after {
    transform: translateX(4px);
}

/* ─── Reassurance row debajo del botón (inyectado via JS) ─── */
.np-cart-reassurance {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #f4ece2;
}
.np-cart-reassurance-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 0.82rem;
    color: #5a5a5a;
    line-height: 1.5;
}
.np-cart-reassurance-icon {
    color: #cc0946;
    font-size: 1.05rem;
    flex-shrink: 0;
}
.np-cart-reassurance-item strong { color: #1a1a1a; font-weight: 600; }

/* ─── Sugerencia de cross-sell (inyectada via JS si aplica) ─── */
.np-cart-suggestions {
    background: #fff;
    border: 1px solid #efeae6;
    border-radius: 16px;
    padding: 24px 28px;
    margin-top: 28px;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}
.np-cart-suggestions-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    color: #cc0946;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    margin: 0 0 6px;
}
.np-cart-suggestions-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.35rem;
    color: #1a1a1a;
    font-weight: 500;
    margin: 0 0 16px;
}

/* ─── Estado carrito VACÍO ─── */
.wc-block-cart-empty,
.is-empty .wc-block-cart {
    background: #fff;
    border: 1px solid #efeae6;
    border-radius: 16px;
    padding: 60px 30px;
    text-align: center;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}

/* ─── Responsive mobile ≤ 760px ─── */
@media (max-width: 760px) {
    body.woocommerce-cart .entry-content,
    body.woocommerce-cart .wp-block-woocommerce-cart {
        padding: 0 16px;
    }
    body.woocommerce-cart .entry-title {
        font-size: 2rem;
    }
    .np-cart-modalidad-banner {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 18px 20px;
    }
    .np-cart-modalidad-progress { min-width: 0; }
    .wc-block-components-sidebar-layout {
        gap: 20px !important;
    }
    .wc-block-cart__sidebar {
        position: static;
    }
    .wp-block-woocommerce-cart-totals-block,
    .wc-block-cart__sidebar {
        padding: 20px !important;
    }
    .wc-block-cart-items__row td {
        padding: 16px !important;
    }
    .wc-block-cart-item__image {
        width: 80px !important;
    }
    .wc-block-cart-item__image img {
        width: 64px !important;
        height: 64px !important;
        border-radius: 8px !important;
    }
    .wc-block-cart-item__product a,
    .wc-block-cart-item__product .wc-block-components-product-name {
        font-size: 1.05rem !important;
    }
}

/* ═════════════════════════════════════════════════════════════════════
 * BUZÓN DE SUGERENCIAS · v0.9.55 · módulo 20
 * ═════════════════════════════════════════════════════════════════════ */

/* CTA en ficha producto · sección al final */
.np-tone-feedback {
    --np-tone-from: #cc0946; --np-tone-to: #5a5a5a;
    background: linear-gradient(135deg, #fbf6f8 0%, #faf7f5 100%);
    border-color: #f0e0e7;
}
.np-feedback-cta-row {
    display: flex;
    align-items: center;
    gap: 1.4em;
    flex-wrap: wrap;
    margin-top: 1em;
}
.np-feedback-cta-row .np-btn-primary {
    background: #cc0946;
    color: #fff !important;
    padding: 0.95em 1.8em;
    border-radius: 8px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    border: 0;
    cursor: pointer;
    transition: background 200ms ease, transform 200ms ease, box-shadow 200ms ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    box-shadow: 0 4px 14px rgba(204, 9, 70, 0.20);
}
.np-feedback-cta-row .np-btn-primary:hover {
    background: #e63b6e;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(204, 9, 70, 0.30);
}
.np-feedback-cta-note {
    font-size: 0.88rem;
    color: #6a7a8a;
    flex: 1;
    min-width: 220px;
    line-height: 1.5;
}

/* ─── Apartado /mi-cuenta/sugerencias/ ─── */
.np-sugerencias-wrapper {
    max-width: 920px;
    margin: 0 auto;
}
.np-sug-header { margin-bottom: 2em; }
.np-sug-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    color: #1a1a1a;
    font-weight: 500;
    margin: 0.3em 0 0.4em;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.np-sug-lead {
    font-size: 1rem;
    color: #5a5a5a;
    line-height: 1.6;
    max-width: 60em;
}

/* ─── Formulario ─── */
.np-sug-form {
    background: #fff;
    border: 1px solid #efeae6;
    border-radius: 16px;
    padding: 2em 2em 1.6em;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}
.np-sug-form fieldset.np-sug-tipos {
    border: 0;
    padding: 0;
    margin: 0 0 1.6em;
}
.np-sug-form legend {
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    color: #cc0946;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    margin-bottom: 0.8em;
    padding: 0;
}

/* Grid de tipos · 2 col en desktop (4 tipos), 1 col en mobile */
.np-sug-tipos-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.8em;
}
.np-sug-tipo { cursor: pointer; }
.np-sug-tipo input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.np-sug-tipo-card {
    display: flex;
    flex-direction: column;
    background: #faf7f5;
    border: 1.5px solid #efeae6;
    border-radius: 12px;
    padding: 1.1em 1em;
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
    height: 100%;
}
.np-sug-tipo:hover .np-sug-tipo-card {
    border-color: rgba(204, 9, 70, 0.35);
    background: #fff;
    transform: translateY(-1px);
}
.np-sug-tipo input[type="radio"]:checked + .np-sug-tipo-card {
    border-color: #cc0946;
    background: #fff;
    box-shadow: 0 6px 18px rgba(204, 9, 70, 0.12);
}
.np-sug-tipo-icon {
    font-size: 1.5rem;
    line-height: 1;
    margin-bottom: 0.4em;
}
.np-sug-tipo-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.3em;
}
.np-sug-tipo-desc {
    font-size: 0.78rem;
    color: #6a6a6a;
    line-height: 1.45;
}

/* ─── Rows del form ─── */
.np-sug-row {
    margin-bottom: 1.3em;
    position: relative;
}
.np-sug-field-label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    color: #2c2c2c;
    margin-bottom: 0.4em;
}
.np-sug-field-label small {
    color: #888;
    font-weight: 400;
}
.np-sug-opt {
    font-weight: 400;
    color: #888;
    font-size: 0.85em;
}
.np-sug-select,
.np-sug-form textarea,
.np-sug-form input[type="file"] {
    width: 100%;
    padding: 0.7em 0.9em;
    border: 1px solid #e0d8d3;
    border-radius: 8px;
    background: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 0.92rem;
    color: #1a1a1a;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}
.np-sug-form textarea {
    line-height: 1.55;
    resize: vertical;
    min-height: 140px;
}
.np-sug-select:focus,
.np-sug-form textarea:focus,
.np-sug-form input:focus {
    outline: none;
    border-color: #cc0946;
    box-shadow: 0 0 0 3px rgba(204, 9, 70, 0.10);
}
.np-sug-counter {
    position: absolute;
    bottom: 8px;
    right: 12px;
    font-size: 0.72rem;
    color: #aaa;
    background: rgba(255,255,255,0.85);
    padding: 0 6px;
    border-radius: 4px;
    pointer-events: none;
}
.np-sug-help {
    display: block;
    font-size: 0.78rem;
    color: #888;
    margin-top: 0.4em;
    line-height: 1.45;
}

/* ─── Actions ─── */
.np-sug-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.4em;
    flex-wrap: wrap;
    padding-top: 1em;
    border-top: 1px solid #f4ece2;
    margin-top: 1.6em;
}
.np-sug-submit {
    background: #cc0946;
    color: #fff !important;
    padding: 0.85em 1.8em;
    border-radius: 8px;
    border: 0;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
    box-shadow: 0 4px 14px rgba(204, 9, 70, 0.25);
}
.np-sug-submit:hover:not(:disabled) {
    background: #e63b6e;
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(204, 9, 70, 0.35);
}
.np-sug-submit:disabled {
    opacity: 0.5;
    cursor: wait;
}
.np-sug-by {
    font-size: 0.82rem;
    color: #6a6a6a;
    line-height: 1.5;
}
.np-sug-by strong { color: #1a1a1a; }

/* ─── Resultados ─── */
.np-sug-result {
    margin-top: 1em;
}
.np-sug-success {
    background: #f5f8f3;
    border: 1px solid #d8e3d0;
    border-left: 4px solid #5a8a3a;
    border-radius: 10px;
    padding: 1.6em 1.8em;
    text-align: center;
}
.np-sug-success-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 0.8em;
    background: #5a8a3a;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
}
.np-sug-success h3 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.4rem;
    color: #1a1a1a;
    margin: 0 0 0.5em;
}
.np-sug-success p {
    color: #3a3a3a;
    line-height: 1.55;
    max-width: 36em;
    margin: 0 auto 1em;
}
.np-sug-error {
    background: #fff4e8;
    border: 1px solid #f0d8b5;
    border-left: 4px solid #c87830;
    border-radius: 10px;
    padding: 1em 1.4em;
    color: #1a1a1a;
    font-size: 0.92rem;
}

/* ─── Modal (lanzado desde ficha producto) ─── */
/* CRÍTICO · sin esto el attr HTML `hidden` queda anulado por display:flex */
.np-sug-modal-backdrop[hidden] { display: none !important; }
.np-sug-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(26, 26, 26, 0.55);
    backdrop-filter: blur(4px);
    z-index: 99999;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 4vh 20px;
    overflow-y: auto;
    animation: np-sug-fadein 200ms ease;
}
@keyframes np-sug-fadein { from { opacity: 0; } to { opacity: 1; } }
.np-sug-modal {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 860px;
    padding: 2em 2em 1.6em;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    position: relative;
    animation: np-sug-slideup 300ms cubic-bezier(.2,.6,.2,1);
}
@keyframes np-sug-slideup { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.np-sug-modal-close {
    position: absolute;
    top: 14px;
    right: 18px;
    background: transparent;
    border: 0;
    font-size: 26px;
    line-height: 1;
    color: #888;
    cursor: pointer;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 180ms ease, color 180ms ease;
}
.np-sug-modal-close:hover {
    background: #faf7f5;
    color: #cc0946;
}
.np-sug-modal .np-sugerencias-wrapper { max-width: 100%; }
.np-sug-modal .np-sug-form {
    border: 0;
    box-shadow: none;
    padding: 0;
}

/* ─── Responsive ─── */
@media (max-width: 760px) {
    .np-sug-tipos-grid { grid-template-columns: 1fr; gap: 0.6em; }
    .np-sug-form { padding: 1.4em; }
    .np-sug-modal { padding: 1.5em 1.4em; }
    .np-sug-actions { flex-direction: column; align-items: stretch; }
    .np-sug-submit { width: 100%; }
    .np-sug-by { text-align: center; }
}

/* ═════════════════════════════════════════════════════════════════════
 * COSMETOVIGILANCIA · v0.9.59 · módulo 21
 * Reglamento (UE) 1223/2009 Art.23 · RD 85/2018 Art.9-10
 * ═════════════════════════════════════════════════════════════════════ */

/* ─── Eyebrow de alerta ─── */
.np-eyebrow-alert {
    color: #cc0946 !important;
    position: relative;
}

/* ─── CTA en ficha producto ─── */
.np-tone-cosmeto {
    --np-tone-from: #cc0946; --np-tone-to: #1a1a1a;
    background: linear-gradient(135deg, #fdf1f4 0%, #faf7f5 100%);
    border-color: #f0d4dd;
}
.np-cosmeto-cta-row {
    display: flex;
    align-items: center;
    gap: 1.4em;
    flex-wrap: wrap;
    margin-top: 1em;
}
.np-btn-cosmeto {
    background: #cc0946;
    color: #fff !important;
    padding: 0.95em 1.8em;
    border-radius: 8px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    border: 0;
    cursor: pointer;
    transition: background 200ms ease, transform 200ms ease, box-shadow 200ms ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    box-shadow: 0 4px 14px rgba(204, 9, 70, 0.22);
}
.np-btn-cosmeto:hover {
    background: #a8073a;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(204, 9, 70, 0.32);
}
.np-cosmeto-cta-note {
    font-size: 0.88rem;
    color: #6a7a8a;
    flex: 1;
    min-width: 220px;
    line-height: 1.5;
}

/* ─── Apartado /mi-cuenta/cosmetovigilancia/ + modal ─── */
.np-cosmeto-wrapper { max-width: 920px; margin: 0 auto; }
.np-cosmeto-header { margin-bottom: 1.4em; }
.np-cosmeto-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    color: #1a1a1a;
    font-weight: 500;
    margin: 0.3em 0 0.4em;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.np-cosmeto-lead {
    font-size: 1rem;
    color: #5a5a5a;
    line-height: 1.6;
    max-width: 62em;
}

/* Banda legal */
.np-cosmeto-legal {
    background: #eef5fb;
    border: 1px solid #d3e3f1;
    border-left: 4px solid #1976d2;
    border-radius: 0 8px 8px 0;
    padding: 0.85em 1.2em;
    font-size: 0.85rem;
    color: #1a1a1a;
    line-height: 1.55;
    margin-bottom: 1.6em;
}
.np-cosmeto-legal strong { color: #1976d2; }

/* ─── Formulario ─── */
.np-cosmeto-form {
    background: #fff;
    border: 1px solid #efeae6;
    border-radius: 16px;
    padding: 2em 2em 1.6em;
    box-shadow: 0 2px 18px rgba(20, 20, 20, 0.03);
}
.np-cv-fieldset {
    border: 0;
    padding: 0;
    margin: 0 0 1.8em;
}
.np-cv-fieldset legend {
    font-family: 'Inter', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.9em;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.6em;
    width: 100%;
    border-bottom: 1px solid #efeae6;
    padding-bottom: 0.5em;
}
.np-cv-step {
    background: #cc0946;
    color: #fff;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 800;
    flex-shrink: 0;
}

/* Filas y grid */
.np-cv-row { margin-bottom: 1em; }
.np-cv-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1em;
}
.np-cv-label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: 0.4em;
}
.np-cv-label small { font-weight: 400; color: #888; }
.np-cv-req { color: #cc0946; font-weight: 700; }
.np-cv-opt { color: #999; font-weight: 400; font-size: 0.85em; }

/* Inputs */
.np-cv-input,
.np-cv-select,
.np-cv-textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d8d2cc;
    border-radius: 8px;
    padding: 0.7em 0.9em;
    font-size: 0.95rem;
    font-family: 'Inter', sans-serif;
    color: #1a1a1a;
    background: #fff;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}
.np-cv-input:focus,
.np-cv-select:focus,
.np-cv-textarea:focus {
    outline: 0;
    border-color: #cc0946;
    box-shadow: 0 0 0 3px rgba(204, 9, 70, 0.10);
}
.np-cv-textarea { resize: vertical; min-height: 110px; line-height: 1.55; }
.np-cv-counter {
    display: block;
    text-align: right;
    font-size: 0.78rem;
    color: #999;
    margin-top: 0.3em;
}
.np-cv-help {
    display: block;
    font-size: 0.82rem;
    color: #888;
    line-height: 1.5;
    margin-top: 0.4em;
}

/* Checkboxes de síntomas */
.np-cv-checks {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5em;
}
.np-cv-check {
    display: flex;
    align-items: center;
    gap: 0.5em;
    background: #faf7f5;
    border: 1px solid #efeae6;
    border-radius: 8px;
    padding: 0.6em 0.8em;
    cursor: pointer;
    font-size: 0.9rem;
    color: #1a1a1a;
    transition: border-color 140ms ease, background 140ms ease;
}
.np-cv-check:hover { border-color: #d8b5c2; }
.np-cv-check input { accent-color: #cc0946; width: 16px; height: 16px; flex-shrink: 0; }
.np-cv-check:has(input:checked) {
    border-color: #cc0946;
    background: #fdf1f4;
}

/* Radios */
.np-cv-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6em;
}
.np-cv-radio {
    display: flex;
    align-items: center;
    gap: 0.45em;
    background: #faf7f5;
    border: 1px solid #efeae6;
    border-radius: 30px;
    padding: 0.55em 1em;
    cursor: pointer;
    font-size: 0.9rem;
    color: #1a1a1a;
    transition: border-color 140ms ease, background 140ms ease;
}
.np-cv-radio:hover { border-color: #d8b5c2; }
.np-cv-radio input { accent-color: #cc0946; }
.np-cv-radio:has(input:checked) {
    border-color: #cc0946;
    background: #fdf1f4;
    font-weight: 600;
}

/* Warning "no tires el producto" */
.np-cv-warning {
    background: #fff4e8;
    border: 1px solid #f0d8b5;
    border-left: 4px solid #c87830;
    border-radius: 0 8px 8px 0;
    padding: 0.85em 1.2em;
    color: #1a1a1a;
    font-size: 0.9rem;
    line-height: 1.55;
    margin-bottom: 1em;
}
.np-cv-warning strong { color: #c87830; }

/* Botón / acciones */
/* CRÍTICO · sin esto el attr HTML `hidden` (al enviar OK) queda anulado por display:flex */
.np-cv-actions[hidden] { display: none !important; }
.np-cv-actions {
    display: flex;
    align-items: center;
    gap: 1.2em;
    flex-wrap: wrap;
    margin-top: 1.6em;
    padding-top: 1.2em;
    border-top: 1px solid #efeae6;
}
.np-cv-submit {
    border: 0;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
}
.np-cv-submit:disabled { opacity: 0.6; cursor: wait; }
.np-cv-by { font-size: 0.86rem; color: #888; }
.np-cv-by strong { color: #1a1a1a; }

/* Resultado · éxito / error */
.np-cv-result { margin-top: 1.4em; }
.np-cv-success {
    text-align: center;
    padding: 2em 1.4em;
    background: #f1f8ec;
    border: 1px solid #cfe4bf;
    border-radius: 14px;
}
.np-cv-success-icon {
    width: 54px;
    height: 54px;
    margin: 0 auto 0.6em;
    background: #5a8a3a;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
}
.np-cv-success h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.6rem;
    color: #1a1a1a;
    margin: 0 0 0.4em;
}
.np-cv-success p {
    color: #4a5a3a;
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 44em;
    margin: 0 auto 1.2em;
}
.np-cv-error {
    background: #fdecef;
    border: 1px solid #f0c5d2;
    border-left: 4px solid #cc0946;
    border-radius: 0 8px 8px 0;
    padding: 0.9em 1.2em;
    color: #1a1a1a;
    font-size: 0.92rem;
}

/* ─── Modal (lanzado desde ficha producto) ─── */
/* CRÍTICO · sin esto el attr HTML `hidden` queda anulado por display:flex */
.np-cv-modal-backdrop[hidden] { display: none !important; }
.np-cv-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(26, 26, 26, 0.55);
    backdrop-filter: blur(4px);
    z-index: 99999;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 4vh 20px;
    overflow-y: auto;
    animation: np-sug-fadein 200ms ease;
}
.np-cv-modal {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 880px;
    padding: 2em 2em 1.6em;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    position: relative;
    animation: np-sug-slideup 300ms cubic-bezier(.2,.6,.2,1);
}
.np-cv-modal-close {
    position: absolute;
    top: 14px;
    right: 18px;
    background: transparent;
    border: 0;
    font-size: 26px;
    line-height: 1;
    color: #888;
    cursor: pointer;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 180ms ease, color 180ms ease;
}
.np-cv-modal-close:hover { background: #faf7f5; color: #cc0946; }
.np-cv-modal .np-cosmeto-wrapper { max-width: 100%; }
.np-cv-modal .np-cosmeto-form {
    border: 0;
    box-shadow: none;
    padding: 0;
}

/* ─── Responsive ─── */
@media (max-width: 760px) {
    .np-cv-grid-2 { grid-template-columns: 1fr; gap: 0.5em; }
    .np-cv-checks { grid-template-columns: 1fr; }
    .np-cosmeto-form { padding: 1.4em; }
    .np-cv-modal { padding: 1.5em 1.4em; }
    .np-cv-actions { flex-direction: column; align-items: stretch; }
    .np-cv-submit { width: 100%; }
    .np-cv-by { text-align: center; }
    .np-cv-radios { flex-direction: column; }
    .np-cv-radio { width: 100%; box-sizing: border-box; }
}

/* ═════════════════════════════════════════════════════════════════════
 * v0.9.70 · 2026-05-28 · FIX layout 2 columnas SOLO en /finalizar-pedido/
 *
 * El bloque wp-block-woocommerce-checkout usa container-type:inline-size +
 * @container(max-width:699px), que colapsa la sidebar bajo el form cuando
 * el inline-size del propio bloque cae por debajo de 700px (aunque el
 * viewport sea desktop). Forzamos 2-col por viewport SOLO en checkout.
 * El carrito (/carrito/) se deja con su comportamiento por defecto: sidebar
 * apilada bajo la tabla.
 * ═════════════════════════════════════════════════════════════════════ */

.woocommerce-checkout .wp-block-woocommerce-checkout {
    width: 100%;
    max-width: 100%;
}

@media (min-width: 992px) {
    .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 40px;
    }
    .wp-block-woocommerce-checkout .wc-block-checkout__main {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box;
    }
    .wp-block-woocommerce-checkout .wc-block-checkout__sidebar {
        flex: 0 0 360px !important;
        width: 360px !important;
        max-width: 360px;
        padding-left: 0 !important;
        box-sizing: border-box;
    }
}
