/* ==========================================================================
   NPA - baza: reset, tipografie, elemente comune
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--npa-bg);
  color: var(--npa-text);
  font-family: var(--npa-font);
  font-size: var(--npa-fs-base);
  line-height: var(--npa-lh);
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--npa-blue); text-decoration: none; }
a:hover { color: var(--npa-navy); }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--npa-teal-bright);
  outline-offset: 2px;
  border-radius: 4px;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 .5em;
  font-family: var(--npa-font-head);
  line-height: 1.2;
  color: var(--npa-blue);
  font-weight: 700;
  letter-spacing: -.01em;
}
h1 { font-size: var(--npa-fs-3xl); letter-spacing: -.015em; }
h2 { font-size: var(--npa-fs-xl); }
h3 { font-size: var(--npa-fs-lg); }
p  { margin: 0 0 1em; }

::placeholder { color: var(--npa-placeholder); }

input, select, textarea, button { font-family: inherit; font-size: inherit; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

.npa-skip {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--npa-navy); color: #fff; padding: 12px 20px;
  border-radius: 0 0 var(--npa-radius) 0;
}
.npa-skip:focus { left: 0; color: #fff; }

.npa-no-scroll { overflow: hidden; }

/* Butoane ----------------------------------------------------------------- */
.npa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--npa-font-head);
  /* Butoane cu contur, ca pe synevo.ro: fundal transparent, chenar de 1px
     in culoarea textului, colturi usor rotunjite. Umplerea vine la hover. */
  background: transparent; color: var(--npa-blue);
  border: 1px solid var(--npa-blue); border-radius: var(--npa-radius-btn);
  padding: 13px 26px;
  font-size: 14.5px; font-weight: 600; line-height: 1.2;
  cursor: pointer; text-align: center;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.npa-btn--primary { color: var(--npa-blue); border-color: var(--npa-blue); }
.npa-btn--primary:hover { background: var(--npa-blue); color: #fff; }

.npa-btn--teal { color: var(--npa-teal); border-color: var(--npa-teal); }
.npa-btn--teal:hover { background: var(--npa-teal); color: #fff; }

.npa-btn--ghost { color: var(--npa-blue); border-color: var(--npa-line-strong); }
.npa-btn--ghost:hover { background: var(--npa-blue); color: #fff; border-color: var(--npa-blue); }

/* Umplut - doar pentru actiunea de plata, unde nu vrem nicio ezitare. */
.npa-btn--solid { background: var(--npa-blue); color: #fff; border-color: var(--npa-blue); }
.npa-btn--solid:hover { background: var(--npa-blue-dark); color: #fff; border-color: var(--npa-blue-dark); }
.npa-btn--sm { padding: 9px 18px; font-size: 13.5px; }
.npa-btn--block { width: 100%; }

/* WooCommerce foloseste .button peste tot; il aliniem la butonul nostru. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.alt {
  background: transparent; color: var(--npa-blue);
  border: 1px solid var(--npa-blue); border-radius: var(--npa-radius-btn);
  padding: 13px 26px; font-weight: 600; font-size: 14.5px;
  font-family: var(--npa-font-head);
  line-height: 1.2; text-transform: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .button.alt:hover { background: var(--npa-blue); color: #fff; }

/* Exceptie: butoanele care duc comanda mai departe raman umplute. */
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce button[name="woocommerce_checkout_place_order"] {
  background: var(--npa-blue); color: #fff; border-color: var(--npa-blue);
}
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover { background: var(--npa-blue-dark); color: #fff; }

/* Etichete si insigne ----------------------------------------------------- */
.npa-eyebrow {
  display: inline-block; margin-bottom: 10px;
  font-size: var(--npa-fs-sm); font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--npa-teal);
  font-family: var(--npa-font-head);
}
.npa-badge {
  display: inline-flex; align-items: center;
  padding: 3px 9px; border-radius: var(--npa-radius-pill);
  font-size: var(--npa-fs-xs); font-weight: 700; letter-spacing: .02em;
}
.npa-badge--cas { background: var(--npa-cyan-bg); color: var(--npa-teal); }

/* Formular de cautare ----------------------------------------------------- */
.npa-search {
  position: relative; display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1px solid var(--npa-line-strong);
  border-radius: var(--npa-radius-md); padding: 6px 6px 6px 16px;
  max-width: 640px;
}
.npa-search .npa-icon { color: var(--npa-muted); flex: 0 0 auto; }
.npa-search__input {
  flex: 1 1 auto; min-width: 0; border: 0; background: transparent;
  padding: 12px 0; font-size: var(--npa-fs-md); color: var(--npa-text);
}
.npa-search__input:focus { outline: none; }
.npa-search__submit {
  flex: 0 0 auto; border: 1px solid var(--npa-blue); border-radius: var(--npa-radius-btn);
  background: var(--npa-blue); color: #fff;
  padding: 12px 26px; font-weight: 600; cursor: pointer;
}
.npa-search__submit:hover { background: var(--npa-navy); }

/* Fir Ariadna ------------------------------------------------------------- */
.npa-breadcrumb {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin-bottom: 14px; font-size: 13.5px; color: var(--npa-muted);
}
.npa-breadcrumb a { color: var(--npa-muted); }
.npa-breadcrumb a:hover { color: var(--npa-blue); }
.npa-breadcrumb__sep { color: var(--npa-line-strong); }
.npa-breadcrumb__current { color: var(--npa-text-2); }

/* Paginare ---------------------------------------------------------------- */
.npa-pagination { margin: 40px 0 0; }
.npa-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.npa-pagination a, .npa-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 12px;
  border: 1px solid var(--npa-line); border-radius: var(--npa-radius);
  font-size: 14px; font-weight: 600; color: var(--npa-text-2);
}
.npa-pagination a:hover { border-color: var(--npa-blue); color: var(--npa-blue); }
.npa-pagination .current { background: var(--npa-navy); border-color: var(--npa-navy); color: #fff; }

/* Text lung (articole, pagini) -------------------------------------------- */
.npa-prose { font-size: var(--npa-fs-md); color: var(--npa-text-2); }
.npa-prose h2 { margin-top: 1.8em; font-size: 26px; }
.npa-prose h3 { margin-top: 1.5em; font-size: 20px; }
.npa-prose ul, .npa-prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.npa-prose li { margin-bottom: .45em; }
.npa-prose blockquote {
  margin: 1.6em 0; padding: 18px 24px;
  background: var(--npa-cyan-bg); border-left: 3px solid var(--npa-teal-bright);
  border-radius: 0 var(--npa-radius) var(--npa-radius) 0;
  font-family: var(--npa-font-serif); font-size: 18px; color: var(--npa-teal);
}
.npa-prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 14.5px; }
.npa-prose th, .npa-prose td { padding: 11px 14px; border-bottom: 1px solid var(--npa-line); text-align: left; }
.npa-prose th { background: var(--npa-bg-alt); color: var(--npa-navy); font-weight: 700; }

.npa-disclaimer {
  margin: 28px 0 0; padding: 16px 20px;
  background: var(--npa-bg-alt); border-radius: var(--npa-radius);
  font-size: 13.5px; color: var(--npa-muted);
}

.npa-empty {
  padding: 48px 24px; text-align: center;
  color: var(--npa-muted); background: var(--npa-bg-alt);
  border-radius: var(--npa-radius-md);
}

/* Sugestii de cautare (live) ---------------------------------------------- */
.npa-search--live { position: relative; }
.npa-search--live.is-loading .npa-icon--search { animation: npa-puls 1s ease-in-out infinite; }
@keyframes npa-puls { 50% { opacity: .35; } }
.npa-suggest {
  position: absolute; left: -1px; right: -1px; top: calc(100% + 8px); z-index: 80;
  background: #fff; border: 1px solid var(--npa-line); border-radius: 14px;
  box-shadow: 0 18px 48px rgba(11, 42, 74, .18);
  padding: 8px; max-height: min(520px, 70vh); overflow-y: auto; text-align: left;
}
.npa-suggest__grp {
  padding: 10px 12px 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--npa-muted);
}
.npa-suggest__item {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 10px 12px; border-radius: 10px; color: var(--npa-navy); text-decoration: none;
}
.npa-suggest__item:hover, .npa-suggest__item.is-active { background: var(--npa-bg-alt); }
.npa-suggest__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.npa-suggest__name { font-weight: 600; font-size: 15px; line-height: 1.3; }
.npa-suggest__sub, .npa-suggest__meta { font-size: 12.5px; color: var(--npa-muted); }
.npa-suggest__price { flex: 0 0 auto; font-weight: 700; color: var(--npa-blue); font-size: 14.5px; white-space: nowrap; }
.npa-suggest__item--dep .npa-suggest__name { color: var(--npa-teal); }
.npa-suggest__empty { padding: 14px 12px; font-size: 14px; color: var(--npa-muted); }
.npa-suggest__all {
  display: block; margin: 6px 4px 2px; padding: 11px 12px; border-top: 1px solid var(--npa-line-soft);
  font-size: 14px; font-weight: 600; color: var(--npa-blue); text-decoration: none;
}
.npa-suggest__all:hover, .npa-suggest__all.is-active { color: var(--npa-teal); }

/*
 * Plasa de siguranta pentru numele de analize importate: unele au liste lungi
 * intre paranteze, fara spatii dupa virgula, si ies din carduri.
 */
.npa-test__name, .npa-testcard__name, .npa-pack__name, .npa-pack-mini__name,
.npa-related__name, .npa-suggest__name, .npa-cart__name, .npa-analiza__title {
  overflow-wrap: anywhere; word-break: break-word;
}

/* Aviz despre preturi, deasupra pretului --------------------------------- */
.npa-aviz-pret {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 0 0 16px; padding: 12px 14px;
  background: #FFF7E3; border: 1px solid #F0D9A0; border-radius: 10px;
  font-size: 13.5px; line-height: 1.5; color: #6B4E00;
}
.npa-aviz-pret__ico { flex: 0 0 auto; margin-top: 1px; color: #B07C00; }
.npa-aviz-pret__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.npa-aviz-pret__text strong { color: #5A4100; }
.npa-aviz-pret a { color: #6B4E00; text-decoration: underline; font-weight: 700; }
.npa-aviz-pret a:hover { color: var(--npa-navy); }
.npa-aviz-pret--lat { margin: 0 0 22px; }
@media (max-width: 700px) { .npa-aviz-pret--lat { margin-bottom: 16px; } }

/* Oferta "fara plafon CAS" ------------------------------------------------ */
.npa-oferta { padding: 34px 0; background: linear-gradient(135deg, var(--npa-navy) 0%, var(--npa-blue) 100%); color: #fff; }
.npa-oferta--alb { background: var(--npa-cyan-bg); color: var(--npa-text); }
.npa-oferta__grid { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; align-items: center; }
.npa-oferta__badge {
  display: flex; align-items: center; justify-content: center;
  width: 92px; height: 92px; flex: 0 0 auto;
  background: var(--npa-teal); color: #fff; border-radius: 50%;
  font-family: var(--npa-font-head); font-size: 26px; font-weight: 800; letter-spacing: -.02em;
}
.npa-oferta__titlu { margin: 0 0 8px; font-size: 24px; line-height: 1.25; color: inherit; }
.npa-oferta__text p { margin: 0; max-width: 70ch; opacity: .92; }
.npa-oferta__nota { margin-top: 8px !important; font-size: 14px; opacity: .8 !important; }
.npa-oferta__actiuni { display: flex; flex-direction: column; gap: 10px; flex: 0 0 auto; }
.npa-oferta .npa-btn--ghost { border-color: rgba(255,255,255,.55); color: #fff; }
.npa-oferta--alb .npa-btn--ghost { border-color: var(--npa-line-strong); color: var(--npa-blue); }
.npa-oferta-tag {
  display: inline-block; padding: 3px 9px; border-radius: 999px;
  background: var(--npa-teal); color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: .01em;
}
@media (max-width: 860px) {
  .npa-oferta__grid { grid-template-columns: auto minmax(0, 1fr); }
  .npa-oferta__actiuni { grid-column: 1 / -1; flex-direction: row; }
  .npa-oferta__badge { width: 72px; height: 72px; font-size: 21px; }
  .npa-oferta__titlu { font-size: 20px; }
}
