/*
Theme Name: Recenzii Pro
Theme URI: https://example.com/recenzii-pro
Author: Recenzii Pro
Author URI: https://example.com
Description: Temă WordPress de afiliere, optimizată pentru recenzii, topuri, ghiduri și teste de produse (eMAG și alți retaileri). Buton "Vezi oferta" configurabil pe fiecare articol, poziționabil înainte/după/permanent, casetă de verdict cu rating, pro & contra, preț, și pagină principală cu secțiuni configurabile.
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: recenzii-pro
Tags: blog, news, custom-colors, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready, affiliate
*/

/* =================================================================
   DESIGN TOKENS
   - Culoare de STRUCTURĂ (--rp-accent) e separată de
     culoarea de CONVERSIE a butonului (--rp-cta), ca să poți
     pune accentul vizual pe "Vezi oferta".
   - Variabilele suprascrise dinamic din Setări Afiliere se
     injectează în <head> (vezi inc/customizer-output.php).
================================================================= */
:root {
  --rp-ink: #14151a;          /* text principal */
  --rp-ink-soft: #5b606b;     /* text secundar */
  --rp-line: #e6e8ee;         /* linii / borduri */
  --rp-bg: #ffffff;           /* fundal */
  --rp-bg-soft: #f6f7f9;      /* fundal secțiuni */
  --rp-accent: #4338ca;       /* structură: linkuri, etichete */
  --rp-accent-ink: #ffffff;
  --rp-cta: #ea580c;          /* CONVERSIE: butonul Vezi oferta */
  --rp-cta-hover: #c2410c;
  --rp-cta-ink: #ffffff;
  --rp-star: #f59e0b;         /* stele rating */
  --rp-good: #16a34a;         /* pro */
  --rp-bad: #dc2626;          /* contra */
  --rp-radius: 14px;
  --rp-radius-sm: 9px;
  --rp-shadow: 0 1px 2px rgba(20,21,26,.04), 0 8px 24px rgba(20,21,26,.06);
  --rp-shadow-lg: 0 12px 40px rgba(20,21,26,.12);
  --rp-maxw: 1180px;
  --rp-content: 720px;
  --rp-font-display: "Sora", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rp-font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ---------- Reset light ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--rp-font-body);
  color: var(--rp-ink);
  background: var(--rp-bg);
  line-height: 1.65;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--rp-accent); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--rp-font-display); line-height: 1.18; color: var(--rp-ink); font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: clamp(1.9rem, 4vw, 2.7rem); margin: .2em 0 .4em; }
h2 { font-size: clamp(1.45rem, 3vw, 2rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1.1em; }

/* ---------- Layout ---------- */
.rp-container { max-width: var(--rp-maxw); margin: 0 auto; padding: 0 20px; }
.rp-narrow { max-width: var(--rp-content); margin: 0 auto; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 16px; top: 16px; background: var(--rp-ink); color:#fff; padding: 10px 14px; z-index: 999; border-radius: 8px; }

/* ---------- Header ---------- */
.rp-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(160%) blur(8px);
  border-bottom: 1px solid var(--rp-line);
}
.rp-header__inner { display: flex; align-items: center; gap: 28px; min-height: 70px; }
.rp-logo { font-family: var(--rp-font-display); font-weight: 800; font-size: 1.3rem; color: var(--rp-ink); letter-spacing: -.02em; }
.rp-logo:hover { text-decoration: none; }
.rp-logo span { color: var(--rp-accent); }
.rp-nav { margin-left: auto; }
.rp-nav ul { list-style: none; display: flex; gap: 6px; margin: 0; padding: 0; flex-wrap: wrap; }
.rp-nav a { display: inline-block; padding: 8px 14px; border-radius: 999px; color: var(--rp-ink); font-weight: 500; font-size: .95rem; }
.rp-nav a:hover { background: var(--rp-bg-soft); text-decoration: none; }
.rp-nav .current-menu-item > a { background: var(--rp-accent); color: var(--rp-accent-ink); }
.rp-menu-toggle { display: none; background: none; border: 1px solid var(--rp-line); border-radius: 10px; padding: 9px 12px; cursor: pointer; font-size: 1rem; }

/* ---------- Buton CTA "Vezi oferta" (semnătura) ---------- */
.rp-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--rp-cta); color: var(--rp-cta-ink) !important;
  font-family: var(--rp-font-display); font-weight: 700; font-size: 1.05rem;
  padding: 14px 26px; border-radius: 999px; border: 0; cursor: pointer;
  box-shadow: 0 6px 18px color-mix(in srgb, var(--rp-cta) 35%, transparent);
  transition: transform .12s ease, background .15s ease, box-shadow .15s ease;
  text-decoration: none !important; line-height: 1;
}
.rp-cta:hover { background: var(--rp-cta-hover); transform: translateY(-1px); text-decoration: none !important; }
.rp-cta:active { transform: translateY(0); }
.rp-cta .rp-cta__arrow { font-size: 1.1em; transition: transform .15s ease; }
.rp-cta:hover .rp-cta__arrow { transform: translateX(3px); }
.rp-cta--block { display: flex; width: 100%; }
.rp-cta--sm { padding: 10px 18px; font-size: .95rem; }

/* ---------- Caseta de afiliere inline (înainte/după articol) ---------- */
.rp-offerbox {
  border: 1px solid var(--rp-line); border-radius: var(--rp-radius);
  background: var(--rp-bg-soft); padding: 20px 22px; margin: 26px 0;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.rp-offerbox__main { flex: 1 1 280px; min-width: 0; }
.rp-offerbox__label { font-family: var(--rp-font-display); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--rp-accent); margin: 0 0 4px; }
.rp-offerbox__title { font-family: var(--rp-font-display); font-weight: 700; font-size: 1.15rem; margin: 0 0 4px; }
.rp-offerbox__price { font-weight: 600; color: var(--rp-ink); }
.rp-offerbox__price del { color: var(--rp-ink-soft); font-weight: 400; margin-left: 8px; font-size: .9em; }
.rp-offerbox__cta { flex: 0 0 auto; }

/* ---------- Caseta de verdict (single review) ---------- */
.rp-verdict {
  border: 1px solid var(--rp-line); border-radius: var(--rp-radius);
  box-shadow: var(--rp-shadow); background: var(--rp-bg); overflow: hidden;
  margin: 30px 0;
}
.rp-verdict__head { background: var(--rp-ink); color: #fff; padding: 18px 24px; display: flex; align-items: baseline; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.rp-verdict__head h3 { color: #fff; margin: 0; font-size: 1.15rem; }
.rp-verdict__score { font-family: var(--rp-font-display); font-weight: 800; font-size: 1.6rem; line-height: 1; }
.rp-verdict__score small { font-size: .85rem; font-weight: 500; opacity: .7; }
.rp-verdict__body { padding: 22px 24px; }
.rp-verdict__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-bottom: 20px; }
.rp-verdict__col h4 { margin: 0 0 10px; font-size: .95rem; display: flex; align-items: center; gap: 8px; }
.rp-verdict__col ul { list-style: none; margin: 0; padding: 0; }
.rp-verdict__col li { position: relative; padding-left: 26px; margin-bottom: 8px; font-size: .97rem; }
.rp-verdict__col li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.rp-pros li::before { content: "✓"; color: var(--rp-good); }
.rp-cons li::before { content: "✕"; color: var(--rp-bad); }
.rp-verdict__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 18px; border-top: 1px solid var(--rp-line); }

/* ---------- Stele rating ---------- */
.rp-stars { display: inline-flex; align-items: center; gap: 8px; }
.rp-stars__icons { position: relative; display: inline-block; font-size: 1.1rem; line-height: 1; letter-spacing: 2px; }
.rp-stars__icons::before { content: "★★★★★"; color: var(--rp-line); }
.rp-stars__fill { position: absolute; top: 0; left: 0; overflow: hidden; white-space: nowrap; }
.rp-stars__fill::before { content: "★★★★★"; color: var(--rp-star); }
.rp-stars__num { font-weight: 600; font-size: .95rem; color: var(--rp-ink-soft); }

/* ---------- Carduri / grilă ---------- */
.rp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 24px; }
.rp-card {
  display: flex; flex-direction: column; background: var(--rp-bg);
  border: 1px solid var(--rp-line); border-radius: var(--rp-radius); overflow: hidden;
  transition: transform .15s ease, box-shadow .15s ease; height: 100%;
}
.rp-card:hover { transform: translateY(-3px); box-shadow: var(--rp-shadow-lg); }
.rp-card__media { aspect-ratio: 16/10; background: var(--rp-bg-soft); overflow: hidden; }
.rp-card__media img { width: 100%; height: 100%; object-fit: cover; }
.rp-card__body { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.rp-card__tag { align-self: flex-start; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--rp-accent); background: color-mix(in srgb, var(--rp-accent) 10%, transparent); padding: 4px 10px; border-radius: 999px; }
.rp-card__title { font-family: var(--rp-font-display); font-weight: 700; font-size: 1.12rem; margin: 0; line-height: 1.3; }
.rp-card__title a { color: var(--rp-ink); }
.rp-card__title a:hover { color: var(--rp-accent); text-decoration: none; }
.rp-card__excerpt { color: var(--rp-ink-soft); font-size: .95rem; margin: 0; }
.rp-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 6px; }
.rp-card__price { font-family: var(--rp-font-display); font-weight: 700; }

/* ---------- Secțiuni homepage ---------- */
.rp-section { padding: 56px 0; }
.rp-section--soft { background: var(--rp-bg-soft); }
.rp-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 30px; flex-wrap: wrap; }
.rp-section__eyebrow { font-family: var(--rp-font-display); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--rp-accent); margin: 0 0 6px; }
.rp-section__title { margin: 0; }
.rp-section__more { font-weight: 600; white-space: nowrap; }

/* ---------- Hero ---------- */
.rp-hero { padding: 64px 0 50px; background: linear-gradient(180deg, var(--rp-bg-soft), var(--rp-bg)); border-bottom: 1px solid var(--rp-line); }
.rp-hero__inner { max-width: 760px; }
.rp-hero h1 { margin-top: 0; }
.rp-hero p { font-size: 1.2rem; color: var(--rp-ink-soft); margin-bottom: 26px; }
.rp-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.rp-btn-ghost { display: inline-flex; align-items: center; gap: 8px; padding: 14px 24px; border-radius: 999px; border: 1px solid var(--rp-line); font-weight: 600; color: var(--rp-ink); background: var(--rp-bg); }
.rp-btn-ghost:hover { border-color: var(--rp-ink); text-decoration: none; }

/* ---------- Bara flotantă permanentă ---------- */
.rp-sticky-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  background: var(--rp-bg); border-top: 1px solid var(--rp-line);
  box-shadow: 0 -8px 30px rgba(20,21,26,.10);
  transform: translateY(110%); transition: transform .28s ease;
}
.rp-sticky-bar.is-visible { transform: translateY(0); }
.rp-sticky-bar__inner { display: flex; align-items: center; gap: 16px; padding: 12px 0; }
.rp-sticky-bar__info { flex: 1; min-width: 0; }
.rp-sticky-bar__title { font-family: var(--rp-font-display); font-weight: 700; font-size: 1rem; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rp-sticky-bar__price { color: var(--rp-ink-soft); font-size: .9rem; }
.rp-sticky-bar__close { background: none; border: 0; font-size: 1.3rem; cursor: pointer; color: var(--rp-ink-soft); padding: 4px 8px; line-height: 1; }

/* ---------- Articol (single) ---------- */
.rp-article { padding: 40px 0 60px; }
.rp-article__meta { display: flex; gap: 14px; flex-wrap: wrap; color: var(--rp-ink-soft); font-size: .9rem; margin-bottom: 18px; }
.rp-article__featured { border-radius: var(--rp-radius); overflow: hidden; margin: 8px 0 28px; }
.rp-content > * { max-width: var(--rp-content); margin-left: auto; margin-right: auto; }
.rp-content h2 { margin-top: 1.6em; }
.rp-content h3 { margin-top: 1.4em; }
.rp-content img, .rp-content figure, .rp-content .wp-block-image { border-radius: var(--rp-radius-sm); }
.rp-content blockquote { border-left: 4px solid var(--rp-accent); padding-left: 18px; margin-left: 0; color: var(--rp-ink-soft); font-size: 1.05rem; }
.rp-content table { width: 100%; border-collapse: collapse; margin: 1.5em auto; font-size: .96rem; }
.rp-content th, .rp-content td { border: 1px solid var(--rp-line); padding: 10px 12px; text-align: left; }
.rp-content th { background: var(--rp-bg-soft); font-family: var(--rp-font-display); }

/* ---------- Disclaimer afiliere ---------- */
.rp-disclaimer { max-width: var(--rp-content); margin: 24px auto; font-size: .85rem; color: var(--rp-ink-soft); background: var(--rp-bg-soft); border: 1px dashed var(--rp-line); border-radius: var(--rp-radius-sm); padding: 12px 16px; }

/* ---------- Footer ---------- */
.rp-footer { background: var(--rp-ink); color: #c7cad2; padding: 50px 0 30px; margin-top: 40px; }
.rp-footer a { color: #fff; }
.rp-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 36px; margin-bottom: 30px; }
.rp-footer__brand { font-family: var(--rp-font-display); font-weight: 800; font-size: 1.2rem; color: #fff; margin-bottom: 10px; }
.rp-footer h4 { color: #fff; font-size: .95rem; margin: 0 0 12px; }
.rp-footer ul { list-style: none; margin: 0; padding: 0; }
.rp-footer li { margin-bottom: 8px; }
.rp-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 20px; font-size: .85rem; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ---------- Paginare ---------- */
.rp-pagination { display: flex; gap: 8px; justify-content: center; margin: 40px 0; flex-wrap: wrap; }
.rp-pagination .page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid var(--rp-line); border-radius: 10px; color: var(--rp-ink); font-weight: 600; }
.rp-pagination .page-numbers.current { background: var(--rp-accent); color: #fff; border-color: var(--rp-accent); }
.rp-pagination a.page-numbers:hover { border-color: var(--rp-ink); text-decoration: none; }

/* ---------- Utilitare ---------- */
.rp-mt-0 { margin-top: 0; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  .rp-footer__grid { grid-template-columns: 1fr 1fr; }
  .rp-verdict__cols { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 720px) {
  body { font-size: 16px; }
  .rp-menu-toggle { display: inline-block; margin-left: auto; }
  .rp-nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--rp-bg); border-bottom: 1px solid var(--rp-line); padding: 10px 20px 16px; display: none; box-shadow: var(--rp-shadow); }
  .rp-nav.is-open { display: block; }
  .rp-nav ul { flex-direction: column; gap: 2px; }
  .rp-nav a { display: block; }
  .rp-offerbox { flex-direction: column; align-items: stretch; text-align: left; }
  .rp-offerbox__cta .rp-cta { width: 100%; }
  .rp-footer__grid { grid-template-columns: 1fr; }
  .rp-sticky-bar__price { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
