/* Bulk Extracts — estilos añadidos a la versión gestionada por archivos */
.cat-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); list-style: none; padding: 0; margin: 0; }
.cat-card { display: flex; height: 100%; flex-direction: column; align-items: flex-start; gap: .55rem; padding: 1.6rem 1.5rem 1.4rem;
  border: 1px solid var(--color-rule, #daddd8); border-radius: 1.25rem; background: #fff; color: inherit; text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.cat-card:hover { border-color: var(--color-ink, #000); box-shadow: 0 10px 30px rgba(0,0,0,.08); transform: translateY(-2px); }
.cat-card:focus-visible { outline: 2px solid var(--color-ink, #000); outline-offset: 3px; }
.cat-icon { display: inline-flex; width: 5.5rem; height: 5.5rem; flex-shrink: 0; align-items: center; justify-content: center;
  border-radius: 9999px; background: var(--color-stone, #f2f3f1); color: var(--color-ink, #000); transition: background-color .2s ease, color .2s ease; }
.cat-icon .cat-svg { width: 2.9rem; height: 2.9rem; }
.cat-card:hover .cat-icon { background: var(--color-ink, #000); color: #fff; }
.cat-name { margin-top: .5rem; font-family: var(--font-display, 'Outfit', sans-serif); font-size: 1.3rem; font-weight: 600; line-height: 1.2; }
.cat-meta { font-size: .875rem; color: var(--color-muted, #575c56); }
.cat-intro { font-size: .95rem; line-height: 1.5; color: var(--color-muted, #575c56); }
.cat-more { margin-top: auto; padding-top: .5rem; font-weight: 600; font-size: .95rem; }
.cat-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 1rem; }
.cat-icon-lg { width: 6.5rem; height: 6.5rem; }
.cat-icon-lg .cat-svg { width: 3.4rem; height: 3.4rem; }
@media (prefers-reduced-motion: reduce) { .cat-card, .cat-icon { transition: none; } .cat-card:hover { transform: none; } }

/* ---- Respuesta rápida (ficha) ---- */
.quick-answer { margin-top: 1.5rem; max-width: 36rem; padding: 1rem 1.15rem; border-left: 3px solid var(--color-petal, #fe1817); background: var(--color-stone, #f2f3f1); border-radius: 0 .75rem .75rem 0; font-size: .95rem; line-height: 1.55; }
.quick-answer .qa-label { font-family: var(--font-display, 'Outfit', sans-serif); font-weight: 600; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-muted, #575c56); margin-bottom: .3rem; }

/* ---- Etiqueta de categoría en la ficha ---- */
.cat-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .75rem .3rem .45rem; border-radius: 9999px; background: var(--color-stone, #f2f3f1); font-size: .85rem; font-weight: 500; color: inherit; text-decoration: none; }
.cat-pill:hover { background: var(--color-ink, #000); color: #fff; }
.pill-svg { width: 1.15rem; height: 1.15rem; }

/* ---- Iconos en las filas del catálogo ---- */
.row-icon { display: inline-flex; width: 1.9rem; height: 1.9rem; margin-right: .6rem; vertical-align: middle; align-items: center; justify-content: center; border-radius: 9999px; background: var(--color-stone, #f2f3f1); flex-shrink: 0; }
.row-svg { width: 1.05rem; height: 1.05rem; }
.ptable tbody tr { transition: background-color .15s ease; }
.ptable tbody tr:hover { background: #fafaf9; }

/* ---- Franja de confianza (home) ---- */
.trust { border-bottom: 1px solid var(--color-rule, #daddd8); background: #fff; }
.trust-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; padding-top: 1.25rem; padding-bottom: 1.25rem; list-style: none; margin: 0 auto; }
.trust-list li { display: flex; align-items: flex-start; gap: .6rem; font-size: .9rem; line-height: 1.35; color: var(--color-muted, #575c56); }
.trust-list strong { display: block; font-family: var(--font-display, 'Outfit', sans-serif); font-size: 1rem; color: var(--color-ink, #000); }
.trust-svg { width: 1.35rem; height: 1.35rem; flex-shrink: 0; margin-top: .1rem; color: var(--color-petal, #fe1817); }
@media (max-width: 900px) { .trust-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- Catálogo en tarjetas en móvil ---- */
@media (max-width: 640px) {
  .ptable { min-width: 0 !important; }
  .ptable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ptable, .ptable tbody { display: block; }
  .ptable tr { display: grid; grid-template-columns: 1fr auto; gap: .35rem .75rem; padding: .9rem .9rem .8rem; margin-bottom: .75rem; border: 1px solid var(--color-rule, #daddd8) !important; border-radius: 1rem; }
  .ptable td { display: block; padding: 0 !important; }
  .ptable td:first-child { grid-column: 1 / -1; }
  .ptable td:nth-child(2) { grid-column: 1 / -1; color: var(--color-muted, #575c56); }
  .ptable td:last-child { grid-column: 2; grid-row: 3; align-self: center; }
  .ptable td:nth-last-child(2) { grid-row: 3; align-self: center; }
}

/* ---- Alineación de bloques de texto ---- */
.article > h2:first-child, .article > h3:first-child { margin-top: 0; }
.cat-content { margin-top: 4.5rem; }

/* ---- Private label ---- */
.pl-band { background: var(--color-stone, #f2f3f1); padding: 3.5rem 0; }
.fmt-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.fmt-card { display: flex; height: 100%; flex-direction: column; align-items: flex-start; gap: .5rem; padding: 1.5rem; border-radius: 1.25rem; background: #fff; border: 1px solid var(--color-rule, #daddd8); color: inherit; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.fmt-card:hover { border-color: var(--color-ink, #000); box-shadow: 0 10px 30px rgba(0,0,0,.08); transform: translateY(-2px); }
.fmt-card:hover .cat-icon { background: var(--color-ink, #000); color: #fff; }
.fmt-card .cat-icon { background: var(--color-stone, #f2f3f1); }
.perk-grid { display: grid; gap: 1.25rem 2rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); list-style: none; margin: 2rem 0 0; padding: 0; }
.perk-grid li { border-top: 2px solid var(--color-ink, #000); padding-top: .8rem; }
.perk-grid strong { display: block; font-family: var(--font-display, 'Outfit', sans-serif); font-size: 1.1rem; }
.perk-grid span { display: block; margin-top: .3rem; color: var(--color-muted, #575c56); font-size: .95rem; line-height: 1.5; }

.pack-groups { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.pack-group { background: #fff; border-radius: 1.25rem; padding: 1.25rem 1.25rem 1.1rem; border: 1px solid var(--color-rule, #daddd8); }
.pack-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .25rem; min-height: 7rem; padding-bottom: .5rem; border-bottom: 1px solid var(--color-rule, #daddd8); }
.pack-item { margin: 0; display: flex; flex-direction: column; align-items: center; width: 4.4rem; }
.pack-svg { width: 4.4rem; height: 4.4rem; }
.pack-item figcaption { font-size: .72rem; color: var(--color-muted, #575c56); text-align: center; line-height: 1.2; }
.pack-name { margin-top: .9rem; font-family: var(--font-display, 'Outfit', sans-serif); font-size: 1.1rem; font-weight: 600; }
.pack-text { margin-top: .25rem; font-size: .9rem; color: var(--color-muted, #575c56); line-height: 1.5; }
.pack-perks { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.pack-perks li::before, .check-list li::before { content: "✓"; color: var(--color-petal, #fe1817); font-weight: 700; margin-right: .5rem; }
.pack-perks li { font-weight: 500; }

.size-grid { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); margin: 1.75rem 0 0; padding: 0; list-style: none; }
.size-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1rem .75rem .9rem; border-radius: 1rem; background: var(--color-stone, #f2f3f1); }
.shape-svg { width: 5.5rem; height: 5.5rem; }
.size-name { margin-top: .4rem; font-weight: 600; font-size: .92rem; line-height: 1.25; }
.size-weight { margin-top: .15rem; font-size: .85rem; color: var(--color-muted, #575c56); }
.opt-grid { display: grid; gap: .25rem 2rem; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); margin: 1.5rem 0 0; padding: 0; list-style: none; }
.opt-grid li { display: flex; flex-direction: column; border-top: 1px solid var(--color-rule, #daddd8); padding: .75rem 0; }
.opt-grid strong { font-weight: 600; }
.opt-grid span { color: var(--color-muted, #575c56); font-size: .95rem; }
.check-list { margin: 1.25rem 0 0; padding: 0; list-style: none; display: grid; gap: .6rem; }
.step-list { margin: 1.25rem 0 0; padding: 0; list-style: none; display: grid; gap: .9rem; }
.step-list li { display: flex; gap: .9rem; align-items: flex-start; line-height: 1.5; }
.step-n { flex-shrink: 0; display: inline-flex; width: 2rem; height: 2rem; border-radius: 9999px; align-items: center; justify-content: center; background: var(--color-ink, #000); color: #fff; font-family: var(--font-display, 'Outfit', sans-serif); font-weight: 600; }
.fmt-chips { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); margin: 0; padding: 0; list-style: none; }
.fmt-chip { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-radius: 1rem; background: #fff; border: 1px solid var(--color-rule, #daddd8); font-weight: 600; color: inherit; text-decoration: none; transition: border-color .2s; }
.fmt-chip:hover { border-color: var(--color-ink, #000); }
.chip-svg { width: 1.6rem; height: 1.6rem; flex-shrink: 0; }

.more-lines { margin-top: 4rem; }
.pack-svg { width: 4.8rem; height: 4.8rem; }
.pack-item { width: 4.8rem; }

/* ---- Galerías de fotos ---- */
.photo-grid { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); margin: 1.75rem 0 0; padding: 0; list-style: none; }
.photo-grid figure { margin: 0; }
.photo-grid img { display: block; width: 100%; height: 11rem; object-fit: cover; border-radius: 1rem; background: var(--color-stone, #f2f3f1); }
.photo-grid figcaption { margin-top: .45rem; font-size: .88rem; color: var(--color-muted, #575c56); line-height: 1.35; }

/* ---- Infografías ---- */
.info-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); margin: 1.75rem 0 0; padding: 0; list-style: none; }
.info-grid img, .info-single img { display: block; width: 100%; height: auto; border-radius: 1rem; background: #fff; border: 1px solid var(--color-rule, #daddd8); }
.info-grid a, .info-single a { display: block; transition: transform .2s, box-shadow .2s; border-radius: 1rem; }
.info-grid a:hover, .info-single a:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,.1); }
.info-single { margin: 1.5rem 0 0; padding: 0; list-style: none; max-width: 48rem; }

/* Cabecera en móvil: el botón RFQ no cabe junto al logo y el selector de idioma; la portada ya lleva CTA. */
@media (max-width: 639px) { header a[href$="/rfq"] { display: none; } }
@media (max-width: 639px) { header a[aria-label="Bulk Extracts, home"] img { width: 160px; height: auto; } }
/* Portada: botones del hero y tabla de disponibilidad */
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero-actions .hero-secondary { display: inline-flex; align-items: center; min-height: 3rem; padding: 0 1.5rem; border: 2px solid #fff; border-radius: 999px; color: #fff; font-family: var(--font-display, inherit); font-weight: 600; text-decoration: none; transition: background-color .2s; }
.hero-actions .hero-secondary:hover { background: rgba(255,255,255,.14); }
.stock-table tbody tr { transition: background-color .15s; }
.stock-table tbody tr:hover { background: rgba(0,0,0,.03); }

/* ---- Rediseño: texto más grande y paleta botánica ----
   Paleta: verde bosque #123d2c · verde salvia #e4eee2 · arena #f7ead6 · rojo de marca #d3110f (solo acciones) */
:root { --bulk-forest: #123d2c; --bulk-sage: #e4eee2; --bulk-sand: #f7ead6; }
body { font-size: 1.125rem; line-height: 1.6; }
h1 { font-size: clamp(2.6rem, 5.4vw, 4.6rem); line-height: 1.04; letter-spacing: -.02em; }
h2 { font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.1; letter-spacing: -.01em; }
h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); line-height: 1.2; }
p, li, td { font-size: 1.0625rem; }
.text-lg { font-size: 1.3rem; line-height: 1.55; }
.text-muted { color: #3f453f; }

/* Hero: titular más grande y botón secundario en blanco */
section[aria-roledescription="carousel"] h1 { font-size: clamp(2.9rem, 6.2vw, 5.4rem); }
section[aria-roledescription="carousel"] p { font-size: 1.3rem; }
.hero-actions .hero-secondary { font-size: 1.05rem; min-height: 3.4rem; }

/* Bandas de color */
.trust { background: var(--bulk-forest); border-bottom: 0; color: #fff; }
.trust-list li { color: #fff; font-size: 1rem; }
.trust-list strong { color: #fff; }
.trust-svg { color: #f3c8c4; }
section.bg-stone { background: var(--bulk-sage); }
section.border-t { background: #fff; }

/* Tabla de disponibilidad */
.stock-table thead th { color: var(--bulk-forest); font-size: 1rem; }
.stock-table tbody td { padding-top: 1.1rem; padding-bottom: 1.1rem; }
.stock-table tbody tr:hover { background: var(--bulk-sage); }

/* Catálogo: una identidad de color por categoría */
.cat-grid { gap: 1.5rem; }
.cat-card { padding: 2.1rem 1.9rem 1.8rem; border: 0; border-radius: 1.75rem; background: var(--tint, #fff); }
.cat-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(18,61,44,.16); border-color: transparent; }
.cat-card .cat-name { font-size: 1.6rem; font-weight: 700; line-height: 1.15; color: var(--ink-tint, #000); }
.cat-card .cat-meta { font-size: 1rem; color: var(--ink-tint, #000); opacity: .8; }
.cat-card .cat-intro { font-size: 1.05rem; color: #2a2f2a; }
.cat-card .cat-more { font-size: 1.05rem; font-weight: 600; color: var(--ink-tint, #000); }
.cat-icon { width: 6.25rem; height: 6.25rem; border-radius: 1.5rem; background: rgba(255,255,255,.75); color: var(--ink-tint, #000); }
.cat-card:hover .cat-icon { background: var(--ink-tint, #000); color: #fff; }
.cat-grid li:nth-child(1) .cat-card { --tint: #dcebd9; --ink-tint: #123d2c; }  /* extractos vegetales */
.cat-grid li:nth-child(2) .cat-card { --tint: #f3e3cf; --ink-tint: #6b3a12; }  /* hongos */
.cat-grid li:nth-child(3) .cat-card { --tint: #fde0c7; --ink-tint: #8a3500; }  /* vitaminas */
.cat-grid li:nth-child(4) .cat-card { --tint: #d9e8f8; --ink-tint: #15365e; }  /* aminoácidos */
.cat-grid li:nth-child(5) .cat-card { --tint: #e6e0f5; --ink-tint: #3b2a6b; }  /* otros ingredientes */
.cat-grid li:nth-child(6) .cat-card { --tint: #fdf0b8; --ink-tint: #5c4a00; }  /* softgels */
.cat-grid li:nth-child(7) .cat-card { --tint: #fbdde6; --ink-tint: #7a1a33; }  /* edulcorantes */

/* Botón principal más visible */
a.bg-cta, .bg-cta { box-shadow: 0 8px 22px rgba(211,17,15,.28); }
/* Títulos de las tarjetas de guías y de bloques pequeños: no heredan el tamaño de sección */
h2.font-display.leading-tight { font-size: clamp(1.3rem, 1.9vw, 1.6rem); line-height: 1.2; }

/* ---- Portada: slider compacto con categorías ---- */
section[aria-roledescription="carousel"] [role="group"] { min-height: 21rem; align-items: center; }
section[aria-roledescription="carousel"] [role="group"] > div { padding-top: 2.5rem; padding-bottom: 3.25rem; }
section[aria-roledescription="carousel"] h1, section[aria-roledescription="carousel"] p.font-display { font-size: clamp(1.9rem, 3.6vw, 3.1rem); line-height: 1.08; }
section[aria-roledescription="carousel"] p.text-lg { font-size: 1.05rem; margin-top: .75rem; }
section[aria-roledescription="carousel"] .hero-actions { margin-top: 1.1rem; }
section[aria-roledescription="carousel"] .hero-actions a { min-height: 2.9rem; }
@media (min-width: 640px) { section[aria-roledescription="carousel"] [role="group"] { min-height: 24rem; } }
@media (min-width: 1024px) { section[aria-roledescription="carousel"] [role="group"] { min-height: 26rem; } }
.hero-cats { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1rem 0 0; padding: 0; max-width: 46rem; }
.hero-cat { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.4rem; padding: 0 .85rem 0 .55rem; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); color: #fff; text-decoration: none; font-size: .95rem; font-weight: 600; backdrop-filter: blur(4px); transition: background-color .2s; }
.hero-cat b { display: inline-grid; place-items: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .35rem; border-radius: 999px; background: var(--color-cta, #d3110f); color: #fff; font-size: .8rem; }
.hero-cat-svg { width: 1.15rem; height: 1.15rem; }
.hero-cat:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Categorías justo debajo del slider */
.home-cats { background: var(--bulk-sand); }
.home-cats h2 { color: var(--bulk-forest); }

/* Private label y servicios */
.home-services h2 { color: var(--bulk-forest); }
.svc-heading { margin: 3rem 0 1.25rem; font-size: 1.1rem; font-weight: 700; text-transform: none; color: var(--bulk-forest); }
.svc-grid { display: grid; gap: 1.25rem; list-style: none; padding: 0; margin: 0; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.svc-grid-4 { grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.svc-card { display: flex; height: 100%; flex-direction: column; gap: .6rem; padding: 1.6rem 1.5rem 1.4rem; border-radius: 1.5rem; background: var(--tint, #fff); color: #111; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.svc-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(18,61,44,.16); }
.svc-card:focus-visible { outline: 2px solid #000; outline-offset: 3px; }
.svc-icon { display: inline-flex; width: 3.75rem; height: 3.75rem; align-items: center; justify-content: center; border-radius: 1.1rem; background: rgba(255,255,255,.8); color: var(--bulk-forest); }
.svc-svg { width: 1.9rem; height: 1.9rem; }
.svc-name { font-size: 1.3rem; font-weight: 700; line-height: 1.2; margin-top: .4rem; }
.svc-text { font-size: 1rem; line-height: 1.5; color: #2a2f2a; }
.svc-more { margin-top: auto; padding-top: .4rem; font-weight: 600; color: var(--bulk-forest); }
@media (max-width: 639px) { .svc-name { font-size: 1.15rem; } }

/* ---- Portada: productos destacados ---- */
.home-featured h2 { color: var(--bulk-forest); }
.feat-grid { display: grid; gap: 1.5rem; list-style: none; padding: 0; margin: 2.5rem 0 0; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.feat-card { position: relative; display: flex; min-height: 22rem; height: 100%; flex-direction: column; justify-content: flex-end; overflow: hidden; border-radius: 1.75rem; background: var(--bulk-forest); color: #fff; text-decoration: none; isolation: isolate; transition: transform .2s, box-shadow .2s; }
.feat-card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(18,61,44,.28); }
.feat-card:focus-visible { outline: 3px solid var(--color-cta, #d3110f); outline-offset: 4px; }
.feat-img { position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; transition: transform .5s; }
.feat-card:hover .feat-img { transform: scale(1.04); }
.feat-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(18,61,44,.05) 20%, rgba(18,61,44,.92) 100%); }
.feat-body { display: flex; flex-direction: column; gap: .35rem; padding: 1.6rem 1.6rem 1.5rem; }
.feat-badge { align-self: flex-start; padding: .3rem .75rem; border-radius: 999px; background: #fff; color: var(--bulk-forest); font-size: .85rem; font-weight: 700; }
.feat-name { margin-top: .5rem; font-size: 1.6rem; font-weight: 700; line-height: 1.15; }
.feat-botanical { font-style: italic; font-size: 1rem; color: #e4eee2; }
.feat-comp { margin-top: .4rem; font-size: 1.15rem; font-weight: 600; color: #fff; }
.feat-cat { font-size: .95rem; color: #f7ead6; }
@media (min-width: 1024px) { .feat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 640px) and (max-width: 1023px) { .feat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .feat-grid { grid-template-columns: minmax(0, 1fr); } }

/* Destacados con la línea de las fichas: negro, blanco y rojo de marca */
.feat-card { background: #000; min-height: 24rem; border-radius: 1.25rem; }
.feat-card:hover { box-shadow: 0 22px 44px rgba(0,0,0,.35); }
.feat-img { opacity: .55; }
.feat-card::after { background: linear-gradient(180deg, rgba(0,0,0,.15) 15%, rgba(0,0,0,.94) 100%); }
.feat-body { padding: 1.75rem 1.75rem 1.7rem; }
.feat-badge { background: var(--color-cta, #d3110f); color: #fff; border-radius: .35rem; font-size: .8rem; letter-spacing: 0; text-transform: none; padding: .3rem .65rem; }
.feat-name { font-size: clamp(1.9rem, 2.6vw, 2.35rem); font-weight: 700; line-height: 1.08; letter-spacing: -.01em; color: #fff; margin-top: .65rem; }
.feat-botanical { color: rgba(255,255,255,.72); font-size: 1rem; }
.feat-comp { display: inline-block; align-self: flex-start; margin-top: .8rem; padding: .35rem .7rem; border-left: 4px solid var(--color-cta, #d3110f); background: rgba(255,255,255,.08); font-size: 1.15rem; font-weight: 700; color: #fff; }
.feat-cat { color: rgba(255,255,255,.8); font-size: .95rem; margin-top: .3rem; }
.feat-card:focus-visible { outline-color: #fff; }

/* Destacados: nombre arriba, detalles abajo */
.feat-body { height: 100%; justify-content: space-between; gap: 1.25rem; }
.feat-top { display: flex; flex-direction: column; gap: .35rem; }
.feat-foot { display: flex; flex-direction: column; gap: .45rem; }
.feat-comp { margin-top: 0; }
.feat-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.feat-tag { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .6rem; border-radius: .35rem; background: rgba(255,255,255,.12); color: #fff; font-size: .85rem; font-weight: 600; }
.feat-flag { width: 1.3rem; height: .87rem; border-radius: 2px; flex-shrink: 0; }
.feat-tag-svg { width: 1.05rem; height: 1.05rem; flex-shrink: 0; }

/* Destacados por categoría: color propio, encabezado y datos técnicos */
.feat-group { margin-top: 3.5rem; }
.feat-group:first-of-type { margin-top: 2.5rem; }
.feat-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 3px solid var(--card, #000); }
.feat-title { font-size: clamp(1.6rem, 2.4vw, 2.1rem); font-weight: 700; line-height: 1.1; color: var(--card, #000); }
.feat-intro { margin-top: .35rem; max-width: 42rem; font-size: 1rem; color: #3f453f; }
.feat-all { font-weight: 600; color: var(--card, #000); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.feat-group .feat-grid { margin-top: 1.5rem; }
.feat-card { background: var(--card, #000); }
.feat-card::after { background: linear-gradient(180deg, rgba(0,0,0,.1) 15%, var(--card, #000) 100%); }
.feat-card:hover { box-shadow: 0 22px 44px rgba(0,0,0,.3); }
.feat-img { opacity: .4; }
.feat-body { gap: 1rem; }
.feat-badge { background: #fff; color: var(--card, #000); border-radius: .35rem; }
.feat-name { font-size: clamp(1.6rem, 2.1vw, 2rem); }
.feat-botanical { font-size: .95rem; }
.feat-comp { font-size: 1.1rem; }
.feat-tech { font-size: .9rem; font-weight: 600; color: rgba(255,255,255,.85); letter-spacing: .01em; }
.feat-card:focus-visible { outline-color: #fff; }

/* ---- Ficha de producto: banda de color, datos con icono y secciones ---- */
.pd-band { background: var(--card, #123d2c); color: #fff; }
.pd-band .text-muted, .pd-band .text-muted a { color: rgba(255,255,255,.8); }
.pd-band h1 { color: #fff; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.02; letter-spacing: -.02em; }
.pd-band h1 span { color: rgba(255,255,255,.78) !important; }
.pd-band nav a, .pd-band nav span, .pd-band ol a, .pd-band ol li { color: rgba(255,255,255,.85); }
.pd-band .cat-pill { background: rgba(255,255,255,.16); color: #fff; border-color: rgba(255,255,255,.35); }
.pd-band .quick-answer { background: rgba(255,255,255,.1); border-color: #d3110f; color: #fff; }
.pd-band .quick-answer strong { color: #fff; }
.pd-band .qa-label { color: #ffb4b0; }
.pd-band aside > div { background: #fff; color: #111; border-color: transparent; box-shadow: 0 22px 50px rgba(0,0,0,.25); }
.pd-band aside .text-muted { color: #4a4f4a; }
.pd-facts { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); margin: 2.25rem 0 0; padding: 0; list-style: none; }
.pd-fact { display: flex; gap: .85rem; align-items: flex-start; padding: .9rem 1rem; border-radius: 1rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); }
.pd-fact dt { font-size: .8rem; text-transform: none; letter-spacing: .01em; color: rgba(255,255,255,.75); }
.pd-fact dd { margin-top: .15rem; font-weight: 600; font-size: 1rem; color: #fff; line-height: 1.35; }
.pd-fact-ic { display: inline-flex; flex-shrink: 0; width: 2.6rem; height: 2.6rem; align-items: center; justify-content: center; border-radius: .8rem; background: #fff; color: var(--card, #123d2c); }
.pd-svg { width: 1.3rem; height: 1.3rem; }
.pd-h { display: flex; align-items: center; gap: .75rem; margin: 0 0 1rem; font-size: clamp(1.6rem, 2.4vw, 2.1rem); font-weight: 700; line-height: 1.15; color: var(--card, #111); }
.pd-h-sm { font-size: 1.25rem; margin-bottom: .75rem; }
.pd-hic { display: inline-flex; flex-shrink: 0; width: 2.4rem; height: 2.4rem; align-items: center; justify-content: center; border-radius: .75rem; background: var(--card, #111); color: #fff; padding: .45rem; }
.pd-hic svg { width: 100%; height: 100%; }
section > .pd-h + *, section > .pd-h ~ ul { margin-top: .25rem; }
.pd-page section { scroll-margin-top: 6rem; }

/* ---- Páginas de categoría y de formato: cabecera en banda de color ---- */
.pg-hero { display: flex; align-items: center; gap: 1.25rem; }
.pg-hero h1 { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.02; letter-spacing: -.02em; color: #fff; }
.pg-ic { width: 4.5rem; height: 4.5rem; border-radius: 1.4rem; }
.pg-ic .pd-svg { width: 2.2rem; height: 2.2rem; }
.pg-band p { color: rgba(255,255,255,.9); }
.pg-band .cat-hero .cat-icon { display: none; }
.pd-band .border-ink { border-color: rgba(255,255,255,.9); color: #fff; }
.pd-band .border-ink:hover { background: #fff; color: var(--card, #000); }

/* ---- Tabla de productos: más grande y visual ---- */
.ptable thead th { font-size: .95rem; color: #111; }
.ptable tbody tr { transition: background-color .15s; }
.ptable tbody tr:hover { background: color-mix(in srgb, var(--card, #123d2c) 7%, #fff); }
.ptable tbody td { padding-top: 1.05rem; padding-bottom: 1.05rem; }
.ptable tbody td:first-child a { font-size: 1.2rem; font-weight: 700; line-height: 1.2; color: #111; }
.ptable tbody td:first-child .italic { font-size: .95rem; margin-top: .15rem; }
.ptable .row-icon { display: inline-flex; width: 2.9rem; height: 2.9rem; align-items: center; justify-content: center; margin-right: .85rem; vertical-align: middle; border-radius: .9rem; background: var(--card, #123d2c); color: #fff; }
.ptable .row-svg { width: 1.45rem; height: 1.45rem; }
.ptable tbody td:nth-child(2) li { font-weight: 600; font-size: .98rem; color: #111; }
.ptable tbody td:nth-child(2) li:first-child::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .45rem; border-radius: 50%; background: var(--card, #123d2c); vertical-align: middle; }
.ptable tbody td:nth-child(2) li:not(:first-child) { font-weight: 500; color: #3f453f; }
.ptable tbody td:nth-child(2) li + li { margin-top: .15rem; }
.ptable tbody td button { background: #d3110f !important; color: #fff !important; box-shadow: 0 6px 16px rgba(211,17,15,.22); }
.ptable tbody td button:hover { background: #a90d0b !important; }

/* ---- Menú principal con desplegables ---- */
nav[aria-label="Main"] > ul > li.dd { position: relative; padding: .9rem 0; }
nav[aria-label="Main"] > ul > li.dd > a { font-weight: 600; }
.dd-menu { display: none; position: absolute; top: 100%; left: -1.25rem; z-index: 60; width: 34rem; padding: 1rem; border-radius: 1.25rem; background: #fff; box-shadow: 0 24px 60px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.06); }
.dd-menu::before { content: ""; position: absolute; top: -.9rem; left: 0; right: 0; height: .9rem; }
li.dd:hover > .dd-menu, li.dd:focus-within > .dd-menu { display: block; }
.dd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; list-style: none; margin: 0; padding: 0; }
.dd-grid li:only-child, li.dd li:last-child:nth-child(odd) { grid-column: span 2; }
.dd-link { display: flex; align-items: center; gap: .85rem; padding: .6rem .7rem; border-radius: 1rem; color: #111; text-decoration: none; transition: background-color .15s; }
.dd-link:hover, .dd-link:focus-visible { background: #f4f6f2; outline: none; }
.dd-link:focus-visible { box-shadow: inset 0 0 0 2px #111; }
.dd-link b { display: block; font-size: 1rem; font-weight: 700; line-height: 1.2; }
.dd-link small { display: block; margin-top: .15rem; font-size: .85rem; color: #4a4f4a; }
.dd-ic { display: inline-flex; flex-shrink: 0; width: 2.6rem; height: 2.6rem; align-items: center; justify-content: center; border-radius: .85rem; background: var(--tint, #e4eee2); color: #111; }
.dd-svg { width: 1.3rem; height: 1.3rem; }
nav[aria-label="Main"] > ul { gap: 1.2rem; }
nav[aria-label="Main"] a, header a[href="/rfq"] { white-space: nowrap; }

/* ---- Hero: panel de datos a la derecha (solo escritorio) ---- */
section[aria-roledescription="carousel"] [role="group"] { position: relative; }
.hero-panel { display: none; }
@media (min-width: 1024px) {
  .hero-panel { display: grid; gap: .75rem; position: absolute; right: 4vw; top: 47%; transform: translateY(-50%); width: 19rem; z-index: 2; }
}
.hero-stat { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-radius: 1.25rem; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(8px); color: #fff; }
.hero-stat:first-child { background: rgba(211,17,15,.9); border-color: transparent; }
.hero-stat-ic { display: inline-flex; flex-shrink: 0; width: 2.7rem; height: 2.7rem; align-items: center; justify-content: center; border-radius: .9rem; background: #fff; color: #111; }
.hero-stat-svg { width: 1.35rem; height: 1.35rem; }
.hero-stat b { display: block; font-family: var(--font-display, inherit); font-size: 1.9rem; line-height: 1; font-weight: 700; }
.hero-stat > div > span { display: block; margin-top: .25rem; font-size: .9rem; color: rgba(255,255,255,.88); }
.hero-stat .hero-stat-ic { color: #111; margin-top: 0; }

/* ---- Barra superior: contacto, B2B e idiomas con banderas ---- */
.util-bar { background: #111; color: #fff; font-size: .9rem; }
.util-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; max-width: 72rem; margin: 0 auto; padding: .45rem 1.25rem; }
@media (min-width: 640px) { .util-inner { padding: .45rem 2rem; } }
.util-contact, .util-right { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.1rem; }
.util-link { display: inline-flex; align-items: center; gap: .4rem; color: #fff; text-decoration: none; font-weight: 600; white-space: nowrap; opacity: .92; }
.util-link:hover { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.util-svg { width: 1rem; height: 1rem; color: #ffb4b0; }
.util-b2b { padding: .3rem .75rem; border-radius: 999px; background: rgba(255,255,255,.12); }
.util-b2b-access { background: #d3110f; }
.util-langs { display: flex; gap: .35rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.util-lang { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .45rem; border-radius: .4rem; color: #fff; text-decoration: none; opacity: .7; }
.util-lang:hover { opacity: 1; background: rgba(255,255,255,.12); }
.util-lang.is-current { opacity: 1; background: rgba(255,255,255,.2); }
.util-lang b { font-size: .8rem; letter-spacing: .04em; }
.util-flag { width: 1.4rem; height: .93rem; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.25); flex-shrink: 0; }
@media (max-width: 1023px) { .util-contact .util-link span { display: none; } .util-b2b-access { display: none; } }
@media (max-width: 639px) { .util-right .util-b2b span { font-size: .85rem; } }

/* ---- Menú principal: textos más visibles ---- */
nav[aria-label="Main"] > ul > li > a { position: relative; display: inline-block; padding: .35rem 0; font-size: 1.08rem; font-weight: 700; color: #111; text-decoration: none; }
nav[aria-label="Main"] > ul > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.1rem; height: 3px; border-radius: 2px; background: #d3110f; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
nav[aria-label="Main"] > ul > li:hover > a::after, nav[aria-label="Main"] > ul > li:focus-within > a::after, nav[aria-label="Main"] > ul > li > a[aria-current="page"]::after { transform: scaleX(1); }
nav[aria-label="Main"] > ul > li > a:hover { text-decoration: none; }
nav[aria-label="Main"] > ul > li > a:focus-visible { outline: 2px solid #111; outline-offset: 4px; border-radius: 4px; }

/* Panel de compra sobre la banda de color: texto siempre oscuro */
.pd-band aside label, .pd-band aside label * { color: #111 !important; }
.pd-band aside label .text-muted { color: #4a4f4a !important; }

/* Panel del hero: cada dato con su color de marca */
.hero-stat:nth-child(1) { background: #d3110f; border-color: transparent; }
.hero-stat:nth-child(2) { background: #111; border-color: transparent; }
.hero-stat:nth-child(3) { background: #fff; border-color: transparent; color: #111; }
.hero-stat:nth-child(3) b { color: #111; }
.hero-stat:nth-child(3) > div > span { color: #3a3a3a; }
.hero-stat:nth-child(3) .hero-stat-ic { background: #d3110f; color: #fff; }
.hero-stat:nth-child(2) .hero-stat-ic { background: #fff; color: #111; }

/* ---- Páginas fijas: títulos con acento, secciones y enlaces de marca ---- */
main.pg-static h1 { font-size: clamp(2.6rem, 5vw, 4.2rem); line-height: 1.02; letter-spacing: -.02em; color: #111; }
main.pg-static h2 { color: #123d2c; font-size: clamp(1.7rem, 2.8vw, 2.4rem); line-height: 1.12; padding-left: .85rem; border-left: 6px solid #e0a526; }
main.pg-static p, main.pg-static li { font-size: 1.08rem; line-height: 1.65; }
main.pg-static a:not(.util-link):not(.dd-link) { color: #123d2c; text-decoration-color: #d3110f; text-underline-offset: 3px; }
main.pg-static li::marker { color: #d3110f; }
main.pg-static table th { background: #123d2c; color: #fff; padding: .75rem 1rem; }
main.pg-static table td { padding: .7rem 1rem; border-top: 1px solid #daddd8; }
main.pg-static section + section { margin-top: 3.25rem; }

/* ---- Páginas fijas: título en bloque de color ---- */
main.pg-static h1 { display: inline-block; max-width: 100%; margin-top: .5rem; padding: .35rem 1.1rem .45rem; border-radius: 1.1rem; background: var(--band, #123d2c); color: #fff; font-size: clamp(2.2rem, 4.6vw, 3.8rem); line-height: 1.05; letter-spacing: -.02em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
main.pg-static h1 + p { margin-top: 1.25rem; font-size: 1.2rem; color: #2a2f2a; }
main.pg-static > div:first-child > div:first-child > nav { color: #3f453f; }
main.pg-static h2 { color: #123d2c; }
main.pg-quality { --band: #0d3b4c; }
main.pg-contact { --band: #5a2e12; }
main.pg-rfq { --band: #7a1a33; }
main.pg-legal-notice, main.pg-privacy-policy, main.pg-cookie-policy, main.pg-blog, main.pg-404 { --band: #3b2a6b; }

/* ---- Catálogo y cabeceras de color: textos legibles sobre la banda ---- */
.pd-band p, .pd-band .text-lg { color: rgba(255,255,255,.92); }
.pd-band a { color: #fff; }
.cat-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .6rem; }
.cat-row { display: flex; align-items: center; gap: 1rem; padding: .9rem 1rem; border-radius: 1.1rem; background: var(--row, #f4f6f2); }
.cat-row .cat-icon { display: inline-flex; width: 3rem; height: 3rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: .9rem; background: #fff; color: #111; }
.cat-row .cat-svg { width: 1.5rem; height: 1.5rem; }
.cat-row > div { flex: 1; min-width: 0; }
.cat-row b { display: block; font-size: 1.1rem; font-weight: 700; color: #111; }
.cat-row span { display: block; font-size: .95rem; color: #3f453f; margin-top: .15rem; }
.cat-row em { font-style: normal; font-weight: 700; min-width: 2.6rem; text-align: center; padding: .3rem .6rem; border-radius: 999px; background: #d3110f; color: #fff; }
.pd-band a, .pd-band a:hover { color: #fff !important; }

/* Botón de descarga del catálogo: píldora blanca con icono rojo, legible sobre cualquier banda */
.pd-band a.cta-pdf { display: inline-flex; align-items: center; gap: .9rem; padding: .45rem 1.6rem .45rem .45rem; border-radius: 999px; background: #fff; color: #123d2c !important; text-decoration: none; box-shadow: 0 14px 30px rgba(0,0,0,.22); transition: background-color .2s, transform .2s; }
.pd-band a.cta-pdf:hover { background: #e0a526; color: #111 !important; transform: translateY(-2px); }
.cta-pdf-ic { display: inline-flex; width: 3.1rem; height: 3.1rem; align-items: center; justify-content: center; border-radius: 999px; background: #d3110f; color: #fff; flex-shrink: 0; }
.cta-pdf-svg { width: 1.4rem; height: 1.4rem; }
.cta-pdf-txt { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.cta-pdf-txt b { font-family: var(--font-display, inherit); font-size: 1.15rem; font-weight: 700; color: inherit; }
.cta-pdf-txt small { font-size: .85rem; font-weight: 500; color: #4a4f4a; margin-top: .15rem; }

/* Rollovers controlados: el texto del hero no cambia de color en ningún estado */
section[aria-roledescription="carousel"] a,
section[aria-roledescription="carousel"] a:hover,
section[aria-roledescription="carousel"] a:focus,
section[aria-roledescription="carousel"] a:active { color: #fff !important; }
section[aria-roledescription="carousel"] a.bg-cta:hover { background: #a90d0b !important; }
.hero-cat, .hero-cat:focus, .hero-cat:active { color: #fff !important; }
@media (hover: hover) {
  section[aria-roledescription="carousel"] a.hero-cat:hover, section[aria-roledescription="carousel"] a.hero-cat:hover * { background-color: transparent; color: #111 !important; }
  section[aria-roledescription="carousel"] a.hero-cat:hover { background: #fff !important; }
  .hero-cat:hover b { background: #111; }
  .hero-actions .hero-secondary:hover { background: #fff !important; color: #111 !important; }
}

/* Catálogos: tarjetas de descarga */
.cat-dl-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.cat-dl { display: flex; align-items: center; gap: 1rem; height: 100%; padding: 1.25rem; border-radius: 1.5rem; background: #fff; border: 2px solid #111; color: #111; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.cat-dl:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0,0,0,.14); }
.cat-dl:focus-visible { outline: 3px solid #d3110f; outline-offset: 3px; }
.cat-dl-ic { display: inline-flex; flex-shrink: 0; width: 3.4rem; height: 3.4rem; align-items: center; justify-content: center; border-radius: 1rem; color: #fff; }
.cat-dl-svg { width: 1.6rem; height: 1.6rem; }
.cat-dl-txt { flex: 1; min-width: 0; }
.cat-dl-txt b { display: block; font-family: var(--font-display, inherit); font-size: 1.15rem; font-weight: 700; }
.cat-dl-txt > span { display: block; margin-top: .2rem; font-size: .95rem; color: #3a3a3a; }
.cat-dl-txt small { display: block; margin-top: .4rem; font-weight: 700; color: #d3110f; font-size: .85rem; }
.cat-dl-arrow { font-size: 1.5rem; font-weight: 700; color: #111; }

/* ---- Private label y servicios: tarjetas blancas con borde negro y chip rojo ---- */
.pl-band { background: #111; color: #fff; }
.pl-band h2, .pl-band h2.pd-h { color: #fff; }
.pl-band h2.pd-h .pd-hic { background: #d3110f; color: #fff; }
.pl-band p, .pl-band li { color: #e6e6e6; }
.pl-band a { color: #fff; }
.fmt-card, .svc-card { background: #fff; color: #111; border: 2px solid #111; border-radius: 1.5rem; transition: transform .2s, box-shadow .2s, border-color .2s; }
.fmt-card:hover, .svc-card:hover { border-color: #d3110f; transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0,0,0,.14); }
.fmt-card .cat-icon, .svc-icon { background: #d3110f; color: #fff; }
.fmt-card .cat-svg, .svc-svg { color: #fff; }
.svc-name, .fmt-card .cat-name { color: #111; font-weight: 700; }
.svc-text { color: #3a3a3a; }
.svc-more { color: #d3110f; }
.svc-heading { color: #111; border-left: 6px solid #d3110f; padding-left: .75rem; }
.step-n { background: #d3110f; color: #fff; }

/* Private label: cada formato con su color, como las categorías de producto */
.fmt-card { background: var(--tint, #111); color: var(--ink, #fff); border: 0; }
.fmt-card:hover { border-color: transparent; box-shadow: 0 18px 40px rgba(0,0,0,.22); }
.fmt-card .cat-name { color: var(--ink, #fff); }
.fmt-card .cat-icon { background: #fff; color: var(--tint, #111); }
.fmt-card .cat-svg { color: var(--tint, #111); }
.pl-band .fmt-card .cat-name, .pl-band .fmt-card .cat-intro, .pl-band .fmt-card .cat-more, .pl-band .fmt-card span:not(.cat-icon) { color: var(--ink, #fff) !important; }
.pl-band .fmt-card .cat-icon { color: var(--tint, #111) !important; }

/* Logo de la marca: más grande en la cabecera, en blanco en el pie y en las cabeceras de página */
header a[aria-label="Bulk Extracts, home"] img { width: 300px; height: auto; max-width: none; }
@media (max-width: 639px) { header a[aria-label="Bulk Extracts, home"] img { width: 210px; } }
.footer-logo { margin: 0; }
.footer-logo img { width: 240px; height: auto; filter: brightness(0) invert(1); display: block; }
.page-logo { display: block; width: 260px; height: auto; margin: 0 0 1.5rem; }
@media (max-width: 639px) { .page-logo { width: 200px; } }

/* Logo en blanco sobre las bandas de color (categorías, formatos, fichas, blog, catálogo, B2B) */
.pd-band > div:first-child::before { content: ""; display: block; width: 210px; height: 32px; margin-bottom: 1.5rem; background: url('/brand/logo-trim.png') no-repeat left center / contain; filter: brightness(0) invert(1); }
.pd-band .page-logo { display: none; }
@media (max-width: 639px) { .pd-band > div:first-child::before { width: 170px; height: 26px; } }

