.np-lp {
  --np-ink: #17352d;
  --np-leaf: #2f6f56;
  --np-moss: #8c9d57;
  --np-gold: #d8a849;
  --np-cream: #f7f4eb;
  --np-line: rgba(23, 53, 45, 0.14);
  color: var(--np-ink);
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
}

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

.np-lp__hero,
.np-lp__specs,
.np-lp__quality,
.np-lp__portfolio,
.np-lp__faq,
.np-lp__form-section {
  padding: clamp(4rem, 8vw, 8rem) max(5vw, calc((100vw - 1220px) / 2));
}

.np-lp__hero {
  background:
    radial-gradient(circle at 82% 24%, rgba(216, 168, 73, 0.28), transparent 25rem),
    linear-gradient(130deg, #eef3e7 0%, #f8f4e9 58%, #ece1c5 100%);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  min-height: 76vh;
  position: relative;
}

/* Keep the Herbal buyer's primary action in the initial desktop viewport. */
.np-lp[data-product="herbal-extracts"] .np-lp__hero { gap: clamp(2rem, 4vw, 4rem); min-height: auto; padding-block: clamp(2.5rem, 4vw, 4rem); }
.np-lp[data-product="herbal-extracts"] h1 { font-size: clamp(2.5rem, 4.2vw, 4rem); line-height: 1.04; max-width: 19ch; margin-bottom: 1rem; }
.np-lp[data-product="herbal-extracts"] .np-lp__lead { font-size: clamp(1.05rem, 1.25vw, 1.15rem) !important; }
.np-lp[data-product="herbal-extracts"] .np-lp__visual { width: 100%; max-width: 28rem; justify-self: end; }
.np-lp [id] { scroll-margin-top: 10rem; }
.np-lp a:focus-visible, .np-lp summary:focus-visible, .np-lp__table-wrap:focus-visible { outline: 3px solid var(--np-leaf); outline-offset: 5px; }

.np-lp__portfolio { background: #f7f9f4; }
.np-lp__portfolio .np-lp__section-intro { max-width: 48rem; }
.np-lp__table-wrap { overflow-x: auto; margin-block: 2rem 1rem; border: 1px solid var(--np-line); border-radius: 1rem; background: #fff; }
.np-lp__ingredient-table { border-collapse: collapse; margin: 0; width: 100%; min-width: 38rem; }
.np-lp__ingredient-table caption { color: var(--np-leaf); font-size: .85rem; font-weight: 700; text-align: left; padding: 1.2rem 1.5rem; }
.np-lp__ingredient-table th, .np-lp__ingredient-table td { border-bottom: 1px solid var(--np-line); color: var(--np-ink); font-size: .95rem; line-height: 1.5; padding: 1.1rem 1.5rem; text-align: left; }
.np-lp__ingredient-table thead { background: #eef3e7; }
.np-lp__ingredient-table tbody tr:last-child th, .np-lp__ingredient-table tbody tr:last-child td { border-bottom: 0; }
.np-lp__ingredient-table a, .np-lp__text-link { color: var(--np-leaf); font-weight: 750; text-decoration: underline; text-underline-offset: .2em; }
.np-lp__small-note { font-size: .9rem !important; max-width: 85ch; }
.np-lp__faq { background: #fff; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 6vw, 6rem); }
.np-lp__faq-list details { border-top: 1px solid var(--np-line); padding: 1.25rem 0; }
.np-lp__faq-list details:last-child { border-bottom: 1px solid var(--np-line); }
.np-lp__faq-list summary { color: var(--np-ink); cursor: pointer; font-size: 1.08rem; font-weight: 750; line-height: 1.5; padding-right: 1rem; }
.np-lp__faq-list p { margin: 1rem 0 0; }

.np-lp__hero::before {
  content: "BOTANICAL INTELLIGENCE";
  position: absolute;
  inset: auto auto 1.25rem 5vw;
  color: rgba(23, 53, 45, .09);
  font-size: clamp(2rem, 7vw, 7.5rem);
  font-weight: 800;
  letter-spacing: .06em;
  line-height: .8;
  white-space: nowrap;
  pointer-events: none;
}

.np-lp h1,
.np-lp h2,
.np-lp h3 { color: var(--np-ink); letter-spacing: -.035em; }
.np-lp h1 { font-size: clamp(2.8rem, 6vw, 6rem); line-height: .98; max-width: 13ch; margin: .7rem 0 1.5rem; }
.np-lp h2 { font-size: clamp(2rem, 4vw, 4rem); line-height: 1.05; margin: .6rem 0 1rem; }
.np-lp h3 { font-size: 1.25rem; margin: .5rem 0 .65rem; }
.np-lp p { font-size: 1.05rem; line-height: 1.7; }

.np-lp__eyebrow {
  color: var(--np-leaf);
  font-size: .78rem !important;
  font-weight: 800;
  letter-spacing: .15em;
  margin: 0;
  text-transform: uppercase;
}

.np-lp__lead { font-size: clamp(1.08rem, 1.5vw, 1.35rem) !important; max-width: 58ch; }
.np-lp__commercial-note { border-left: 3px solid var(--np-gold); font-size: .88rem !important; font-weight: 650; margin: 1.25rem 0 0; max-width: 62ch; padding-left: 1rem; }
.np-lp__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.np-lp__button { border: 1px solid var(--np-ink); border-radius: 999px; display: inline-flex; justify-content: center; padding: .95rem 1.35rem; font-weight: 750; transition: transform .2s ease, background .2s ease, color .2s ease; }
.np-lp__button:hover, .np-lp__button:focus-visible { transform: translateY(-2px); }
.np-lp__button--primary { background: var(--np-ink); color: #fff; }
.np-lp__button--primary:hover, .np-lp__button--primary:focus-visible { background: var(--np-leaf); color: #fff; }
.np-lp__button--secondary { color: var(--np-ink); }
.np-lp__button--secondary:hover, .np-lp__button--secondary:focus-visible { background: #fff; color: var(--np-ink); }

.np-lp__trust { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; list-style: none; margin: 2rem 0 0; padding: 0; }
.np-lp__trust li { font-size: .88rem; font-weight: 700; position: relative; padding-left: 1rem; }
.np-lp__trust li::before { background: var(--np-gold); border-radius: 50%; content: ""; height: .45rem; left: 0; position: absolute; top: .45rem; width: .45rem; }

.np-lp__visual { margin: 0; position: relative; z-index: 1; }
.np-lp__visual img { aspect-ratio: 1; height: auto; background: #fff; border-radius: 50% 50% 47% 53% / 48% 46% 54% 52%; box-shadow: 0 30px 70px rgba(23, 53, 45, .2); display: block; object-fit: cover; position: relative; width: 100%; }
.np-lp__visual-ring { border: 1px solid rgba(47, 111, 86, .3); border-radius: 50%; inset: -6%; position: absolute; transform: rotate(8deg); }
.np-lp__visual figcaption { background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.9); border-radius: 999px; bottom: 5%; box-shadow: 0 12px 30px rgba(23,53,45,.12); font-size: .85rem; font-weight: 700; left: 50%; padding: .75rem 1rem; position: absolute; text-align: center; transform: translateX(-50%); width: max-content; max-width: 90%; }

.np-lp__specs { background: #fff; display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 8vw, 8rem); }
.np-lp__section-intro { max-width: 34rem; }
.np-lp__spec-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; border-top: 1px solid var(--np-line); border-left: 1px solid var(--np-line); }
.np-lp__spec-grid div { border-right: 1px solid var(--np-line); border-bottom: 1px solid var(--np-line); min-height: 10rem; padding: clamp(1.5rem, 3vw, 2.5rem); }
.np-lp__spec-grid dt { color: var(--np-leaf); font-size: .74rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.np-lp__spec-grid dd { font-size: clamp(1.15rem, 1.8vw, 1.5rem); font-weight: 700; line-height: 1.35; margin: .8rem 0 0; }

.np-lp__quality { background: var(--np-ink); color: #eef4ee; }
.np-lp__quality h2, .np-lp__quality h3 { color: #fff; }
.np-lp__quality .np-lp__eyebrow { color: #c9dc9c; }
.np-lp__quality-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.18); margin-top: 3rem; }
.np-lp__quality-grid article { background: var(--np-ink); min-height: 17rem; padding: clamp(1.5rem, 3vw, 2.5rem); }
.np-lp__quality-grid span { color: var(--np-gold); font-size: .8rem; font-weight: 800; }
.np-lp__quality-grid p { color: rgba(255,255,255,.72); }
.np-lp__cert-note { border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.7); font-size: .9rem !important; margin: 2.5rem 0 0; padding-top: 1.5rem; }

.np-lp__form-section { background: var(--np-cream); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.np-lp__contact a { color: var(--np-leaf); font-weight: 750; }
.np-lp__form-card { background: #fff; border: 1px solid var(--np-line); border-radius: 1.25rem; box-shadow: 0 24px 70px rgba(23,53,45,.1); padding: clamp(1.5rem, 4vw, 3.2rem); }
.np-lp__form-card input:not([type="submit"]), .np-lp__form-card textarea, .np-lp__form-card select { background: #fbfaf6; border: 1px solid var(--np-line); border-radius: .55rem; min-height: 3rem; width: 100%; }
.np-lp__form-card input[type="submit"] { background: var(--np-ink); border-radius: 999px; color: #fff; min-height: 3.25rem; padding: .8rem 1.5rem; width: 100%; }
.np-lp__form-card input[type="submit"], .np-lp__form-card input[type="submit"]:hover, .np-lp__form-card input[type="submit"]:focus-visible { background: var(--np-ink) !important; color: #fff !important; opacity: 1; }
.np-lp__b2b-form { display: grid; gap: 1.1rem; }
.np-lp__b2b-form p { margin: 0; }
.np-lp__form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.np-lp__form-field label { color: var(--np-ink); display: block; font-size: .88rem; font-weight: 750; line-height: 1.5; margin-bottom: .4rem; }
.np-lp__form-field .wpcf7-form-control-wrap { display: block; }
.np-lp__form-hint { color: #4d625a; font-size: .83rem !important; line-height: 1.55 !important; }
.np-lp__b2b-form textarea { min-height: 7rem; resize: vertical; }
.np-lp__b2b-form input:focus, .np-lp__b2b-form select:focus, .np-lp__b2b-form textarea:focus { border-color: var(--np-leaf); outline: 2px solid var(--np-leaf); outline-offset: 2px; }

/* This sheet loads only on ingredient landings; preserve the existing footer art direction. */
body .elementor-613 .elementor-element.elementor-element-2fb3053 { background-color: #317334 !important; }

@media (max-width: 900px) {
  .np-lp__hero, .np-lp__specs, .np-lp__faq, .np-lp__form-section { grid-template-columns: 1fr; }
  .np-lp__hero { min-height: auto; padding-top: 4rem; }
  .np-lp__visual { margin-inline: auto; max-width: 34rem; }
  .np-lp[data-product="herbal-extracts"] .np-lp__visual { justify-self: center; width: 100%; }
  .np-lp__quality-grid { grid-template-columns: 1fr; }
  .np-lp__quality-grid article { min-height: auto; }
}

@media (max-width: 560px) {
  .np-lp__hero, .np-lp__specs, .np-lp__quality, .np-lp__portfolio, .np-lp__faq, .np-lp__form-section { padding-inline: 1.25rem; }
  .np-lp__form-grid { grid-template-columns: 1fr; }
  .np-lp__spec-grid { grid-template-columns: 1fr; }
  .np-lp__spec-grid div { min-height: auto; }
  .np-lp__actions { display: grid; }
  .np-lp__trust { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .np-lp *, .np-lp *::before, .np-lp *::after { scroll-behavior: auto !important; transition: none !important; }
}
