/* Tema compartido por todas las páginas de Luster Deals. */
:root {
  --font-serif: "Playfair Display", Georgia, serif;
  --color-light-bg: #0c0d0e;
  --color-light-subtle: #141518;
  --color-light-card: #1c1d22;
  --color-light-border: rgba(255,255,255,.14);
  --color-text-dark: #f5f3ed;
  --color-text-muted: #babcc3;
  --color-text-light-muted: #babcc3;
  --theme-gold: #dec990;
  --theme-border: rgba(255,255,255,.16);
  --theme-muted: #babcc3;
}
html { scroll-padding-top: 100px; }
body { background: var(--color-dark-base); color: var(--color-text-dark); }
body :focus-visible { outline: 3px solid var(--theme-gold); outline-offset: 4px; }
.theme-header { position: sticky; top: 0; z-index: 1000; background: #101114f5; backdrop-filter: blur(18px); border-bottom: 1px solid var(--theme-border); }
.theme-header-inner { max-width: 1360px; margin: auto; padding: 22px 32px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.theme-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--theme-gold); white-space: nowrap; }
.theme-brand svg { width: 24px; height: 24px; flex-shrink: 0; }
.theme-brand span { font-family: var(--font-display); font-size: 18px; font-weight: 500; letter-spacing: .12em; }
.theme-nav { display: flex; gap: 24px; align-items: center; }
.theme-nav a { color: var(--theme-muted); font-size: 13px; padding: 8px 0; }
.theme-nav a:hover, .theme-nav a[aria-current] { color: var(--theme-gold); }
.theme-nav a[aria-current] { border-bottom: 1px solid var(--theme-gold); }
.theme-menu { display: none; border: 1px solid var(--theme-border); color: var(--theme-gold); background: #1c1d22; width: 44px; height: 44px; border-radius: 50%; font-size: 22px; }
.theme-nav { order: 1; }
.theme-search { order: 2; display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-shrink: 0; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--theme-border); border-radius: 24px; color: var(--theme-gold); background: #1c1d22; font: inherit; font-size: 13px; text-decoration: none; }
.theme-search:hover { background: #2b2c32; border-color: var(--theme-gold); }
.theme-search svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.theme-menu { order: 3; flex-shrink: 0; }
@media (max-width: 1250px) and (min-width: 901px) { .theme-nav { gap: 8px; } .theme-header-inner { gap: 16px; } }
@media (max-width: 1100px) { .theme-search { width: 44px; padding: 0; } .theme-search span { display: none; } }
@media (max-width: 900px) { .theme-search { margin-left: auto; } .theme-header .theme-menu { margin-left: 0; } .theme-nav { order: 4; } }
@media (max-width: 380px) { .theme-brand { gap: 8px; } .theme-brand span { font-size: 14px; } .theme-brand svg { width: 20px; height: 20px; } }
.theme-footer { background: #101114; border-top: 1px solid var(--theme-border); padding: 55px 0 25px; }
.theme-footer-inner { max-width: 1360px; margin: auto; padding: 0 32px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 25px; }
.theme-footer-intro { color: var(--theme-muted); font-size: 13px; line-height: 1.9; }
.theme-footer nav { display: flex; gap: 20px; flex-wrap: wrap; }
.theme-footer nav a, .theme-contact { color: var(--theme-muted); font-size: 13px; }
.theme-footer a:hover { color: var(--theme-gold); }
.theme-contact { flex-basis: 100%; }
.theme-footer-bottom { border-top: 1px solid var(--theme-border); padding-top: 20px; flex-basis: 100%; font-size: 11px; color: var(--theme-muted); }
/* Portada y secciones editoriales. */
.hero-section { min-height: auto; padding-top: 100px; }
.white-section, .category-entry, .transparency-section { background: #141518; color: var(--color-text-dark); border-top: 1px solid var(--theme-border); }
.dark-silk-section { border-top: 1px solid var(--theme-border); }
.editorial-p, .transparency-copy, .eyebrow, .cat-label, .card-cat, .card-merchant { color: var(--theme-muted); }
.cat-title, .editorial-title, .transparency-title { color: var(--color-text-dark); }
.cat-card, .product-card, #audio-home-section .product-card { background: #1c1d22; border: 1px solid var(--theme-border); }
#audio-home-section .card-name, #audio-home-section .card-merchant, #audio-home-section .card-cat { color: var(--color-text-dark); }
.card-photo, .cat-img-box { background: #fff; border-radius: 14px; }
.card-footer { border-top-color: var(--theme-border); }
body .btn-dark-pill, body .btn-pill-solid, body .about-button, body .category-product button, body .cat-btn, body .card-details-btn, body .btn-amazon-direct { background: var(--theme-gold); color: #16171a; border: 1px solid var(--theme-gold); border-radius: 999px; box-shadow: none; }
body .btn-dark-pill:hover, body .btn-pill-solid:hover, body .about-button:hover, body .category-product button:hover, body .cat-btn:hover, body .card-details-btn:hover, body .btn-amazon-direct:hover { background: #efe0b8; color: #16171a; }
body .btn-pill-outline-dark { color: var(--color-text-dark); border-color: var(--theme-border); }
body .btn-pill-outline-dark:hover { background: #30323a; }
/* Catálogo: misma paleta, tarjetas y tipografías. */
.category-body, .about-body, .legal-body { background: #0c0d0e; color: var(--color-text-dark); }
body .category-shortcut, body .category-product { background: #1c1d22; color: var(--color-text-dark); border-color: var(--theme-border); border-radius: 22px; }
body .category-shortcut:hover { background: #282a30; border-color: var(--theme-gold); }
body .category-shortcut small, body .category-eyebrow, body .category-intro > p:not(.category-eyebrow), body .category-heading p:not(.category-eyebrow), body .category-product p { color: var(--theme-muted); }
body .category-product > img { background: #fff; }
body .category-heading > a { color: var(--theme-gold); }
body .category-group { border-top-color: var(--theme-border); }
body .category-notice { background: #1c1d22; border: 1px solid var(--theme-border); color: var(--theme-muted); }
/* Sobre nosotros: superficies oscuras y acento dorado del sitio. */
.about-body .about-hero { background: linear-gradient(90deg,#0c0d0ee8,#0c0d0eb8),url("assets/black_silk_bg-960.webp") center / cover; }
.about-body .about-criteria, .about-body .about-cta { background: #141518; border-block: 1px solid var(--theme-border); }
.about-body .about-cards article, .about-body .about-manifesto, .about-body .about-status { background: #1c1d22; border: 1px solid var(--theme-border); border-radius: 22px; }
.about-body .about-status { border-left: 3px solid var(--theme-gold); }
.about-body .about-eyebrow, .about-body .about-lead, .about-body .about-manifesto > p:last-of-type, .about-body .about-topics span, .about-body .about-intro p:not(.about-eyebrow), .about-body .about-transparency-copy > p, .about-body .about-section-heading > p, .about-body .about-cards p, .about-body .about-limits, .about-body .about-faq details p, .about-body .about-contact p:not(.about-eyebrow), .about-body .about-cta p:not(.about-eyebrow) { color: var(--theme-muted); }
.about-body h1 em, .about-body .about-mark, .about-body .about-number, .about-body .about-text-link, .about-body .about-faq a { color: var(--theme-gold); }
.about-body .about-topics, .about-body .about-topics span, .about-body .about-limits, .about-body .about-faq details, .about-body .about-contact { border-color: var(--theme-border); }
/* Documentos informativos y fichas de producto. */
.legal-page { max-width: 860px; padding-top: 65px; }
.legal-page h1 { font-size: clamp(36px,5vw,58px); color: var(--color-text-dark); }
.legal-page h2 { padding-top: 22px; border-top: 1px solid var(--theme-border); color: var(--color-text-dark); }
.legal-page p, .legal-page li { color: var(--theme-muted); line-height: 1.85; }
.legal-page strong { color: var(--color-text-dark); }
.legal-page a { color: var(--theme-gold); }
.modal-card { background: #1c1d22; border: 1px solid var(--theme-border); color: var(--color-text-dark); }
.modal-trust-box { background: #141518; border-color: var(--theme-border); }
.trust-item { color: var(--theme-muted); }
.modal-specs-wrap { border-top-color: var(--theme-border); }
.modal-close-btn { background: #30323a; color: var(--color-text-dark); }
.modal-close-btn:hover { background: var(--theme-gold); color: #16171a; }
@media (max-width: 900px) {
  .theme-header-inner { padding: 15px 20px; flex-wrap: wrap; gap: 12px; }
  .theme-menu { display: inline-flex; justify-content: center; align-items: center; margin-left: auto; }
  .theme-nav { flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 4px; }
  .theme-header[data-ready] .theme-nav { display: none; }
  .theme-header[data-ready] .theme-nav.is-open { display: flex; }
  .theme-nav a { padding: 10px 12px; border-radius: 10px; }
  .theme-nav a[aria-current] { background: #25262c; border-bottom: none; }
  .theme-footer-inner { padding: 0 20px; flex-direction: column; }
  .theme-contact { overflow-wrap: anywhere; }
  .hero-section { padding-top: 65px; }
}
body .newsletter-title { font-family: var(--font-display); font-weight: 400; }
body .floating-follow-pill { background: var(--theme-gold); color: #16171a; }

.purchase-context { color: var(--theme-muted); font-size: 13px; line-height: 1.75; }
.hero-text-col .purchase-context { margin: 18px 0 22px; max-width: 520px; }
.modal-actions .purchase-context { padding: 12px 16px; border: 1px solid var(--theme-border); border-radius: 12px; text-align: center; }

/* Contenido editorial visible, con el mismo tema del sitio. */
.editorial-guides { margin: 72px 0; max-width: 100%; }
.editorial-guides > h2, .editorial-home h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 4vw, 46px); line-height: 1.2; }
.editorial-guides > p, .editorial-home > p { max-width: 800px; color: var(--theme-muted); line-height: 1.8; }
.guide-index { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.guide-index a { border: 1px solid var(--theme-border); padding: 10px 16px; border-radius: 24px; color: var(--theme-gold); }
.editorial-guide { margin: 24px 0; padding: clamp(20px, 4vw, 38px); background: #141518; border: 1px solid var(--theme-border); border-radius: 20px; scroll-margin-top: 110px; }
.editorial-guide h3 { font-family: var(--font-display); font-size: clamp(24px, 3vw, 32px); font-weight: 400; line-height: 1.3; margin-bottom: 20px; }
.editorial-guide h4, .modal-editorial h4 { margin: 22px 0 8px; color: var(--theme-gold); font-size: 15px; }
.editorial-guide p, .modal-editorial p { color: var(--theme-muted); line-height: 1.85; margin-bottom: 14px; }
.editorial-guide .editorial-source { border-top: 1px solid var(--theme-border); padding-top: 18px; font-size: 13px; }
.editorial-source a, .modal-editorial a { color: var(--theme-gold); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.modal-editorial { margin: 24px 0; padding: 22px; border: 1px solid var(--theme-border); border-radius: 14px; }
.modal-editorial h3 { font-family: var(--font-display); font-weight: 400; font-size: 26px; }
.modal-editorial p { font-size: 14px; }
#guias { scroll-margin-top: 110px; }

.language-picker { display: flex; gap: 4px; padding-left: 14px; border-left: 1px solid var(--theme-border); }
.language-picker a { padding: 7px 9px; font-size: 12px; border-radius: 8px; }
.language-picker a[aria-current] { background: #303029; color: var(--theme-gold); border-bottom: 0; }
@media (max-width: 1100px) and (min-width: 901px) { .theme-nav { gap: 8px; } .theme-nav > a { font-size: 12px; } .theme-header-inner { gap: 18px; } }
@media (max-width: 900px) { .language-picker { border-left: 0; border-top: 1px solid var(--theme-border); padding: 12px 0 0; margin-top: 8px; } }
/* Allow translated headings to wrap inside narrow grid columns. */
.editorial-split-grid > *, .editorial-content, .editorial-duo-gallery { min-width: 0; }
.editorial-title { overflow-wrap: anywhere; }
.modal-body-grid > *, .modal-info-pane > *, .modal-gallery-pane { min-width: 0; }
.modal-title, .modal-specs-dl dd { overflow-wrap: anywhere; }

.language-picker a { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.language-flag { font-size: 18px; line-height: 1; }

/* Keep the purchase summary readable in the existing dark theme. */
.modal-actions { background:#141518; border-color:var(--theme-border); }
.modal-actions .modal-disclosure { color:var(--theme-muted); }
.card-summary { color:var(--theme-muted); }
.card-quick-view { color:var(--theme-gold); }
@media(max-width:640px) { .modal-body-grid { gap:12px; } .modal-thumbs-row { margin-bottom:0; } }

/* Photographs remain on their source when reproduction rights are not established. */
a.official-photo-link { display:flex; align-items:center; justify-content:center; min-height:180px; padding:24px; border:1px solid var(--theme-border); border-radius:20px; background:#1c1d22; color:var(--theme-gold); text-align:center; font-weight:600; line-height:1.6; }
a.official-photo-link[hidden] { display:none; }
a.official-photo-link:hover { background:#26272d; }
.product-image:has(.official-photo-link) { background:transparent; }

#modalHeroImg[hidden] { display:none; }
.product-photo-source { display:block; background:#fff; border-radius:20px; padding:18px; overflow:hidden; }
.product-photo-source img { display:block; width:100%; height:260px; object-fit:contain; }
.product-image .product-photo-source img { height:360px; }
.category-product > .product-photo-source { margin-bottom:18px; }
@media(max-width:700px) { .product-image .product-photo-source img { height:260px; } }

/* Category destinations from the product breadcrumb. */
.seo-category-guides { margin:24px 0; }
.seo-category-guides summary { cursor:pointer; font-weight:600; }
.seo-category-guides .guide-index { margin:16px 0; }

/* Measured navigation/contrast fixes; no-JavaScript navigation is restored by theme-nojs.css. */
@media(max-width:900px) { .theme-header .theme-nav { display:none; } .theme-header .theme-nav.is-open { display:flex; } }
body .category-product .remaining-photo-panel p { color:#30343b; }
body.category-body .editorial-guide .about-text-link { color:var(--theme-gold); text-decoration:underline; text-underline-offset:.15em; }
body .publisher-method a { text-decoration:underline; text-underline-offset:.15em; }
