/* ==========================================================================
   NPA - pagina unei analize
   ========================================================================== */

/*
 * Trei zone: antetul (titlu), continutul si caseta de comanda. Pe ecran mare
 * antetul si continutul stau in coloana din stanga, caseta in dreapta. Pe
 * telefon ordinea e titlu -> caseta de comanda -> restul continutului.
 */
.npa-analiza__grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 360px;
  grid-template-areas: "head buy" "content buy";
  column-gap: 48px; row-gap: 0;
  padding-top: 32px; padding-bottom: 64px;
  align-items: start;
}
.npa-analiza__head { grid-area: head; }
.npa-analiza__content { grid-area: content; min-width: 0; }
.npa-analiza__buy { grid-area: buy; }

.npa-analiza__title { margin-bottom: 14px; font-size: 34px; line-height: 1.18; }
.npa-analiza__intro { font-size: var(--npa-fs-md); color: var(--npa-text-2); }

/* Specificatiile analizei ------------------------------------------------- */
.npa-test-meta {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px; margin: 24px 0 28px;
  background: var(--npa-line); border: 1px solid var(--npa-line);
  border-radius: var(--npa-radius-md); overflow: hidden;
}
.npa-test-meta__item { padding: 14px 18px; background: #fff; }
/* Numar impar de casute: ultima ocupa randul intreg, ca sa nu ramana o zona goala. */
.npa-test-meta__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
.npa-test-meta__label {
  margin-bottom: 3px; font-size: 11.5px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--npa-muted-2);
}
.npa-test-meta__value { font-size: 14.5px; font-weight: 600; color: var(--npa-navy); }

.npa-test-note {
  padding: 14px 18px; margin-bottom: 28px;
  background: #FFF8EC; border-left: 3px solid var(--npa-amber);
  border-radius: 0 var(--npa-radius) var(--npa-radius) 0;
  font-size: 14px; color: var(--npa-text-2);
}
.npa-test-note strong { color: var(--npa-navy); }
/* Observatiile de recoltare se scriu cu formatare: paragrafe, liste, linkuri. */
.npa-test-note__label {
  display: block; margin-bottom: 6px; font-size: 11.5px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; color: var(--npa-navy);
}
.npa-test-note__text > *:first-child { margin-top: 0; }
.npa-test-note__text > *:last-child { margin-bottom: 0; }
.npa-test-note__text p { margin: 0 0 8px; line-height: 1.6; }
.npa-test-note__text ul, .npa-test-note__text ol { margin: 0 0 8px; padding-left: 20px; }
.npa-test-note__text li { margin-bottom: 4px; line-height: 1.55; }
.npa-test-note__text h2, .npa-test-note__text h3, .npa-test-note__text h4 {
  margin: 12px 0 6px; font-size: 15px; color: var(--npa-navy);
}
.npa-test-note__text a { color: var(--npa-blue); text-decoration: underline; }

/* Taburi ------------------------------------------------------------------ */
.woocommerce-tabs { margin-top: 8px; }
.woocommerce-tabs ul.tabs {
  display: flex; flex-wrap: wrap; gap: 4px;
  margin: 0 0 20px; padding: 0 0 2px;
  list-style: none; border-bottom: 1px solid var(--npa-line);
}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce-tabs ul.tabs li {
  margin: 0; padding: 0; background: none; border: 0; border-radius: 0;
}
.woocommerce-tabs ul.tabs li a {
  display: block; padding: 11px 18px;
  border-bottom: 2px solid transparent;
  font-size: 14.5px; font-weight: 600; color: var(--npa-muted);
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--npa-blue); }
.woocommerce-tabs ul.tabs li.active a { color: var(--npa-navy); border-bottom-color: var(--npa-teal-bright); }
.woocommerce-tabs .panel { font-size: var(--npa-fs-md); color: var(--npa-text-2); }
.woocommerce-tabs .panel h2 { display: none; }

.npa-analiza__h2 { margin: 0 0 14px; font-size: 22px; line-height: 1.25; color: var(--npa-navy); }
.npa-analiza__desc { margin-top: 8px; }
.npa-analiza__desc .npa-prose { max-width: none; color: var(--npa-text-2); }

/* Cum decurge: trei pasi pe un rand */
.npa-analiza__steps { margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--npa-line); }
.npa-steps3 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.npa-steps3 li {
  position: relative; display: flex; flex-direction: column; gap: 4px;
  padding: 18px 18px 18px 60px; background: var(--npa-bg-alt); border-radius: 12px;
  font-size: 13.5px; color: var(--npa-muted); line-height: 1.5;
}
.npa-steps3 li strong { font-size: 14.5px; color: var(--npa-navy); }
.npa-steps3__n {
  position: absolute; left: 16px; top: 18px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--npa-teal); color: #fff; font-family: var(--npa-font-head); font-weight: 800; font-size: 14px;
}

/* Pachetele din care face parte analiza */
.npa-analiza__packs { margin-top: 34px; padding: 24px; background: var(--npa-cyan-bg); border: 1px solid var(--npa-cyan); border-radius: 16px; }
.npa-analiza__packs .npa-analiza__related-head { margin-bottom: 16px; }
.npa-packs-mini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.npa-pack-mini { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px; background: #fff; border: 1px solid var(--npa-line); border-radius: 14px; }
.npa-pack-mini__badge { align-self: flex-start; padding: 3px 9px; border-radius: 999px; background: var(--npa-teal); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.npa-pack-mini__name { font-weight: 700; font-size: 16px; line-height: 1.3; color: var(--npa-navy); }
.npa-pack-mini__name:hover { color: var(--npa-blue); }
.npa-pack-mini__text { margin: 0; font-size: 13.5px; color: var(--npa-muted); line-height: 1.5; }
@media (max-width: 720px) { .npa-packs-mini { grid-template-columns: minmax(0, 1fr); } }

/* Analize asociate: carduri */
.npa-analiza__related { margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--npa-line); }
.npa-analiza__related-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.npa-analiza__related-head .npa-analiza__h2 { margin-bottom: 0; }
.npa-related__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.npa-related__card {
  display: flex; flex-direction: column; gap: 8px;
  padding: 18px 20px; background: #fff; border: 1px solid var(--npa-line); border-radius: 14px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.npa-related__card:hover { border-color: var(--npa-teal); box-shadow: var(--npa-shadow); }
.npa-related__name { font-weight: 700; font-size: 15.5px; line-height: 1.3; color: var(--npa-navy); }
.npa-related__name:hover { color: var(--npa-blue); }
.npa-related__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; color: var(--npa-muted); }
.npa-related__meta span { display: inline-flex; align-items: center; gap: 4px; }
.npa-related__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 8px; }
.npa-related__price { font-weight: 700; color: var(--npa-blue); font-size: 16px; }
.npa-related__price .amount { color: inherit; }

/* Caseta de comanda ------------------------------------------------------- */
.npa-analiza__buy { position: sticky; top: 132px; }

.npa-buybox {
  padding: 24px 26px 22px;
  background: #fff; border: 1px solid var(--npa-line-strong);
  border-radius: var(--npa-radius-lg); box-shadow: var(--npa-shadow);
}
.npa-buybox__label {
  margin-bottom: 4px; font-size: 11.5px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--npa-muted-2);
}
.npa-buybox__price {
  margin-bottom: 6px; font-size: 34px; font-weight: 800;
  font-family: var(--npa-font-head);
  line-height: 1.1; color: var(--npa-blue);
}
.npa-buybox__price .amount { color: inherit; }
.npa-buybox__price .npa-price-request { font-size: 22px; }
.npa-buybox__note { margin-bottom: 16px; font-size: 13.5px; color: var(--npa-muted); }

.npa-buybox form.cart { margin: 0 0 16px; }
.npa-buybox form.cart .quantity { display: none; }
.npa-buybox .single_add_to_cart_button {
  width: 100%; padding: 15px 20px; font-size: 16px; font-weight: 700;
  border-radius: var(--npa-radius);
}

.npa-buybox__facts { list-style: none; margin: 0 0 16px; padding: 16px 0 0; border-top: 1px solid var(--npa-line); }
.npa-buybox__facts li {
  display: flex; align-items: flex-start; gap: 9px;
  margin-bottom: 9px; font-size: 13.5px; color: var(--npa-text-2);
}
.npa-buybox__facts .npa-icon { flex: 0 0 auto; margin-top: 2px; color: var(--npa-teal-mid); }

.npa-buybox__centers {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 14px; font-weight: 600; color: var(--npa-blue);
}

/* Responsive -------------------------------------------------------------- */
@media (max-width: 1024px) {
  .npa-analiza__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "head" "buy" "content";
    row-gap: 28px;
  }
  .npa-analiza__buy { position: static; }
}

@media (max-width: 900px) {
  .npa-analiza__title { font-size: 25px; }
  .npa-test-meta { grid-template-columns: minmax(0, 1fr); }
  .npa-buybox__price { font-size: 30px; }
  .woocommerce-tabs ul.tabs { overflow-x: auto; flex-wrap: nowrap; }
  .woocommerce-tabs ul.tabs li a { white-space: nowrap; }
}

/* --------------------------------------------------------------------------
   Suprascrieri WooCommerce
   Selectorii WooCommerce pentru butonul principal au specificitate mare
   (.woocommerce a.button.alt, .woocommerce button.button.alt). Le raspundem
   cu aceeasi specificitate, nu cu !important.
   -------------------------------------------------------------------------- */
.woocommerce div.product form.cart .button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
  background-color: var(--npa-blue);
  color: #fff;
  border: 1px solid transparent;
  border-radius: var(--npa-radius);
  font-weight: 700;
  text-shadow: none;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover {
  background-color: var(--npa-navy);
  color: #fff;
}

.woocommerce a.button.alt.disabled,
.woocommerce button.button.alt.disabled {
  background-color: var(--npa-line-strong);
  color: var(--npa-muted);
}

/* Titlul din descrierea importata de pe site-ul vechi are dimensiuni inline
   de 27px. Il aliniem la tipografia temei fara sa modificam continutul. */
.woocommerce-Tabs-panel--description div[style*="font-size: 27px"],
.woocommerce-Tabs-panel--description div[style*="font-size:27px"] {
  font-size: 20px !important;
  font-weight: 700;
  color: var(--npa-navy);
  margin-bottom: 14px;
}

/* Produs indisponibil: WooCommerce afiseaza "Stoc epuizat", ceea ce e derutant
   pentru o analiza. */
.woocommerce div.product .stock.out-of-stock {
  display: inline-block;
  padding: 8px 14px;
  background: #FFF8EC;
  border-left: 3px solid var(--npa-amber);
  border-radius: 0 var(--npa-radius-sm) var(--npa-radius-sm) 0;
  color: var(--npa-text-2);
  font-size: 14px;
  font-weight: 600;
}

@media (max-width: 720px) {
  .npa-steps3, .npa-related__grid { grid-template-columns: minmax(0, 1fr); }
}

/* "Adauga si": bife cu analize asociate si pachete, sub pret */
.npa-addons { margin: 0 0 16px; padding: 14px; border: 1px solid var(--npa-line); border-radius: 12px; background: var(--npa-bg-alt, #F4F8FB); }
.npa-addons__head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.npa-addons__title { font-size: 14px; font-weight: 700; color: var(--npa-navy); }
.npa-addons__sub { font-size: 12.5px; color: var(--npa-muted); }
.npa-addons__group + .npa-addons__group { margin-top: 10px; }
.npa-addons__glabel { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--npa-teal); margin: 0 0 6px; }
.npa-addons__item { display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; margin: 0 0 6px; background: #fff; border: 1px solid var(--npa-line); border-radius: 10px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.npa-addons__item:hover { border-color: var(--npa-blue); }
.npa-addons__item input { position: absolute; opacity: 0; width: 0; height: 0; }
.npa-addons__check { flex: 0 0 18px; margin-top: 1px; width: 18px; height: 18px; border: 2px solid var(--npa-line-strong); border-radius: 5px; background: #fff; position: relative; transition: all .15s; }
.npa-addons__check::after { content: ""; position: absolute; left: 4px; top: 1px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); opacity: 0; }
.npa-addons__item input:checked + .npa-addons__check { background: var(--npa-blue); border-color: var(--npa-blue); }
.npa-addons__item input:checked + .npa-addons__check::after { opacity: 1; }
.npa-addons__item input:focus-visible + .npa-addons__check { box-shadow: 0 0 0 3px rgba(0, 91, 150, .2); }
.npa-addons__item.is-checked { border-color: var(--npa-blue); box-shadow: 0 0 0 1px var(--npa-blue) inset; }
/*
 * Numele importate sunt uneori foarte lungi, cu liste intre paranteze si fara
 * spatii dupa virgula ("(MYCOPLASMA,TRICHOMONAS,...)"). Fara min-width:0 si
 * fara taiere in interiorul cuvantului, randul iesea din caseta de comanda.
 */
.npa-addons__name { flex: 1 1 auto; min-width: 0; font-size: 13.5px; line-height: 1.3; color: var(--npa-text); overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }
.npa-addons__badge { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--npa-teal); background: var(--npa-cyan-bg); border-radius: 4px; padding: 2px 6px; margin-right: 6px; vertical-align: 1px; }
/* Analize fara pret afisat: rand-link, fara bifa. */
.npa-addons__item--cerere { text-decoration: none; color: inherit; }
.npa-addons__item--cerere .npa-addons__name { color: var(--npa-navy); }
.npa-addons__item--cerere:hover { border-color: var(--npa-teal); }
.npa-addons__price--cerere { font-size: 12.5px; font-weight: 700; color: var(--npa-muted-2); white-space: nowrap; }
.npa-addons__price { flex: 0 0 auto; font-size: 13.5px; font-weight: 700; color: var(--npa-navy); white-space: nowrap; }
.npa-addons__price .amount { color: inherit; }
.npa-addons__total { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--npa-line-strong); font-size: 13.5px; color: var(--npa-text-2); }
.npa-addons__total strong { font-size: 18px; color: var(--npa-navy); }
.npa-addons__total[hidden] { display: none; }

/* Analiza decontata CNAS: nota in caseta de cumparare */
.npa-buybox__cnas { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 12px 14px; background: var(--npa-cyan-bg); border-radius: 10px; font-size: 13.5px; line-height: 1.5; color: var(--npa-text-2); }
.npa-buybox__cnas .npa-icon { color: var(--npa-teal); flex: 0 0 auto; margin-top: 2px; }
.npa-buybox__cnas strong { color: var(--npa-navy); }

/* Buton descarcare PDF (fisa analizei) */
.npa-buybox__pdf { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--npa-line-strong); border-radius: 12px; background: #fff; color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.npa-buybox__pdf:hover { border-color: var(--npa-blue); box-shadow: 0 6px 18px rgba(11, 42, 74, .08); color: inherit; }
.npa-buybox__pdf-ico { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 10px; background: #FDECEC; color: #C62828; display: inline-flex; align-items: center; justify-content: center; }
.npa-buybox__pdf-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.npa-buybox__pdf-text strong { font-size: 14px; color: var(--npa-navy); line-height: 1.3; }
.npa-buybox__pdf-text small { font-size: 12px; color: var(--npa-muted); }
.npa-buybox__pdf-arrow { margin-left: auto; color: var(--npa-blue); font-weight: 700; }

/* Caruselul de pachete de pe pagina analizei */
.npa-packs-nav { display: flex; align-items: center; gap: 8px; }
.npa-packs-nav__btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--npa-line-strong); background: #fff; color: var(--npa-navy); font-size: 16px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: all .15s; }
.npa-packs-nav__btn:hover { background: var(--npa-blue); border-color: var(--npa-blue); color: #fff; }
.npa-packs-nav__btn[disabled] { opacity: .35; cursor: default; }
.npa-packs-nav__btn[disabled]:hover { background: #fff; color: var(--npa-navy); border-color: var(--npa-line-strong); }
.npa-packs-slider { overflow: hidden; margin: 0 -4px; padding: 4px; }
.npa-packs-mini--slider { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; padding-bottom: 4px; }
.npa-packs-mini--slider::-webkit-scrollbar { display: none; }
.npa-packs-mini--slider .npa-pack-mini { flex: 0 0 calc(50% - 7px); scroll-snap-align: start; }
.npa-pack-mini--include { border-color: var(--npa-teal); box-shadow: 0 0 0 1px var(--npa-teal) inset; }
.npa-pack-mini__badge--alt { background: var(--npa-bg-alt); color: var(--npa-muted); }
@media (max-width: 720px) { .npa-packs-mini--slider .npa-pack-mini { flex-basis: 88%; } .npa-analiza__packs .npa-analiza__related-head { flex-wrap: wrap; gap: 10px; } }
