/* No Plastic Today core blocks */
.np-muted { color: #5B6B7A; }
.np-source { font-size: 0.875rem; color: #5B6B7A; margin: 0.25rem 0 0; }
.np-source::before { content: "Source: "; font-weight: 600; }
.np-verified { display: block; width: fit-content; margin: 0.4rem 0 0; font-size: 0.75rem; padding: 0.05rem 0.5rem; border-radius: 999px; background: #E4EDF2; color: #14263A; }
.np-badge { display: inline-block; padding: 0.15rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; background: #E4EDF2; color: #14263A; margin-top: 0.5rem; }
.np-badge--high { background: #DDF2E5; color: #17603F; }
.np-badge--medium { background: #FFF1CC; color: #6B4E00; }
.np-badge--low, .np-badge--contested { background: #FFE0E0; color: #8B1B1D; }

/* Stat */
.np-stat { padding: 1.25rem; }
.np-stat--center { text-align: center; }
.np-stat--center .np-verified { margin-inline: auto; }
.np-stat__value { font-family: var(--wp--preset--font-family--heading, "Quicksand", sans-serif); font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; margin: 0 0 0.25rem; color: #277DA1; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.np-stat__value.is-style-stat-alert { color: #F94144; }
.np-stat__unit { margin: 0; font-size: 0.875rem; color: #5B6B7A; }
.np-stat__label { font-size: 1.125rem; font-weight: 500; margin: 0.5rem 0 0.25rem; }
.np-stat__text { font-size: 0.9375rem; margin: 0.25rem 0; }
.np-stat__caveat { font-size: 0.8125rem; color: #5B6B7A; font-style: italic; margin: 0.25rem 0; }
.np-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2rem; }
.np-stats-grid .np-stat { background: #fff; border-radius: 16px; box-shadow: 0 8px 30px rgba(20,38,58,.10); padding: 2rem 1.5rem; display: flex; flex-direction: column; container-type: inline-size; }
/* Numbers scale with the card, not the viewport; beats the theme's !important stat size. */
.np-stats-grid .np-stat__value.is-style-stat, .np-stats-grid .np-stat__value.is-style-stat-alert { font-size: clamp(2.25rem, 20cqi, 3.5rem) !important; margin-bottom: 0.75rem; }
.np-stats-grid .np-stat__text { margin: 0.5rem 0 1.25rem; }
/* Badge + source sit together at the card's foot, so they line up across a row. */
.np-stats-grid .np-badge { margin: auto 0 0.75rem; align-self: center; }
.np-stats-grid .np-source { margin: 0; }
.np-stats-grid .np-verified { margin-top: 0.75rem; } /* same gap as badge → source */
.np-stats-grid--dark .np-stat { background: #1E3A52; color: #fff; }
.np-stats-grid--dark .np-stat__value { color: #8FD3F4; }
.np-stats-grid--dark .np-stat__value.is-style-stat-alert { color: #FF7B7D; }
.np-stats-grid--dark .np-stat__label { color: #fff; }
.np-stats-grid--dark .np-stat__text, .np-stats-grid--dark .np-stat__caveat, .np-stats-grid--dark .np-source { color: #B9C7D3; }
.np-stats-grid--dark .np-source a { color: #fff; }
.np-live__value { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; margin: 0; color: #F94144; font-variant-numeric: tabular-nums; }
.np-live__unit { margin: 0.25rem 0 0; color: #5B6B7A; font-size: 0.875rem; }
.np-verified-on { font-size: 0.875rem; color: #5B6B7A; border-top: 1px solid #E4EDF2; padding-top: 0.75rem; }

/* Evidence list */
.np-evidence-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.25rem; }
.np-evidence-card { background: #fff; border: 1px solid #E4EDF2; border-radius: 16px; padding: 1.25rem 1.5rem; display: flex; flex-direction: column; gap: 0.4rem; }
.np-evidence-card__head { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; font-size: 0.75rem; color: #5B6B7A; }
.np-evidence-card__head .np-badge { margin-top: 0; }
.np-evidence-card__title { font-size: 1.125rem; margin: 0; font-weight: 500; }
.np-evidence-card__title a { text-decoration: none; color: #14263A; }
.np-evidence-card__title a:hover { text-decoration: underline; }
.np-evidence-card__stat { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: 1.375rem; color: #277DA1; margin: 0; }
.np-evidence-card__finding { font-size: 0.9375rem; margin: 0; }

/* Search */
.np-search__bar { display: flex; gap: 0.5rem; }
.np-search__bar input[type=search] { flex: 1; min-height: 52px; padding: 0.6rem 1.25rem; border-radius: 999px; border: 1px solid #B9C7D3; font: inherit; font-size: 1.0625rem; }
.np-search__bar input[type=search]:focus-visible { outline: 3px solid #F9C74F; outline-offset: 2px; }
.np-search__filters { margin-top: 1rem; border: 1px solid #E4EDF2; border-radius: 16px; padding: 0.75rem 1.25rem; }
.np-search__filters summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; gap: 0.5rem; }
.np-search__count:not(:empty) { background: #277DA1; color: #fff; border-radius: 999px; padding: 0 0.6rem; font-size: 0.75rem; }
.np-search__facets { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem 1.5rem; padding-top: 0.75rem; }
.np-search__facet { border: 0; padding: 0; margin: 0; min-width: 0; }
.np-search__facet legend { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.35rem; }
.np-search__facet label { display: flex; gap: 0.5rem; align-items: center; font-size: 0.875rem; min-height: 32px; }
.np-search__clear { margin: 0.75rem 0 0; }
.np-search__clear-btn { min-height: 44px; padding: 0 1rem; border: 1px solid #277DA1; border-radius: 999px; background: transparent; color: #1B5E7A; font: inherit; font-weight: 600; cursor: pointer; }
.np-search__clear-btn:hover { background: #EEF5F9; }
.np-search__clear-btn:focus-visible { outline: 3px solid #277DA1; outline-offset: 2px; }
.np-search__status { margin: 1rem 0 0.5rem; color: #5B6B7A; font-size: 0.9375rem; }
.np-search__results { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.np-result { border: 1px solid #E4EDF2; border-radius: 16px; padding: 1rem 1.25rem; display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; }
.np-result__type { grid-column: 2; grid-row: 1; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: #277DA1; white-space: nowrap; }
.np-result__title { grid-column: 1; grid-row: 1; margin: 0; font-size: 1.125rem; font-weight: 500; }
.np-result__title a { text-decoration: none; color: #14263A; }
.np-result__title a:hover { text-decoration: underline; }
.np-result__excerpt { grid-column: 1 / -1; margin: 0; font-size: 0.9375rem; color: #3C4C5C; }
.np-result__meta { grid-column: 1 / -1; font-size: 0.8125rem; color: #5B6B7A; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.np-result__meta .np-badge { margin: 0; }
.np-search__pager { display: flex; gap: 0.5rem; justify-content: center; margin-top: 1.5rem; flex-wrap: wrap; }
.np-search__pager button { min-height: 44px; min-width: 44px; border-radius: 999px; border: 1px solid #277DA1; background: #fff; color: #277DA1; font: inherit; cursor: pointer; padding: 0 0.9rem; }
.np-search__pager button[aria-current="page"] { background: #277DA1; color: #fff; }
.np-skeleton { height: 5rem; border-radius: 16px; background: linear-gradient(90deg, #F4F7F9 25%, #E4EDF2 50%, #F4F7F9 75%); background-size: 200% 100%; animation: np-shimmer 1.2s infinite; }
@keyframes np-shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .np-skeleton { animation: none; } }

/* Finder / swaps */
.np-finder__controls, .np-swaps__controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem 1rem; margin-bottom: 1rem; }
.np-finder__controls label span, .np-swaps__controls label span { display: block; font-size: 0.875rem; font-weight: 600; margin-bottom: 0.25rem; }
.np-finder__controls select, .np-swaps__controls select { width: 100%; min-height: 48px; padding: 0.5rem 0.9rem; border-radius: 12px; border: 1px solid #B9C7D3; font: inherit; background: #fff; }
.np-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.25rem; }
.np-mcard { background: #fff; border: 1px solid #E4EDF2; border-radius: 16px; padding: 1.25rem 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
.np-mcard__title { margin: 0; font-size: 1.125rem; font-weight: 500; }
.np-finder .np-mcard__title { font-size: 1.25rem; }
.np-mcard__title a { color: var(--wp--preset--color--sea-green-deep, #1F5A49); text-decoration: none; }
.np-mcard__title a:hover { text-decoration: underline; }
.np-mcard__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.np-mcard__tags .np-badge { margin: 0; }
.np-finder .np-mcard__tags { margin-top: auto; padding-top: 0.5rem; }
.np-badge--commercial { background: #DDF2E5; color: #17603F; }
.np-badge--pilot { background: #FFF1CC; color: #6B4E00; }
.np-badge--lab { background: #E4EDF2; color: #14263A; }
.np-mcard__text { margin: 0; font-size: 0.9375rem; }
.np-mcard__row { font-size: 0.875rem; color: #5B6B7A; margin: 0; }
.np-rating { display: inline-flex; gap: 2px; vertical-align: middle; }
.np-rating i { width: 10px; height: 10px; border-radius: 50%; background: #E4EDF2; display: inline-block; }
.np-rating i.on { background: #43AA8B; }
.np-rating--cost i.on { background: #F8961E; }
.np-rating--effort i.on { background: #577590; }
.np-mcard__swap { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0.5rem; align-items: center; font-size: 0.9375rem; }
.np-mcard__swap .out { color: #C42B2E; text-decoration: line-through; }
.np-mcard__swap .in { color: #17603F; font-weight: 600; }

/* Footprint calculator */
.np-footprint__group { border: 1px solid #E4EDF2; border-radius: 16px; padding: 1rem 1.25rem; margin: 0 0 1rem; }
.np-footprint__group legend { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: 1.125rem; font-weight: 600; padding: 0 0.5rem; }
.np-footprint__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid #F4F7F9; }
.np-footprint__row:last-child { border-bottom: 0; }
.np-footprint__row label { flex: 1; font-size: 0.9375rem; }
.np-footprint__row small { display: block; font-size: 0.75rem; }
.np-stepper { display: inline-flex; align-items: center; border: 1px solid #B9C7D3; border-radius: 999px; overflow: hidden; }
.np-stepper__btn { width: 44px; height: 44px; border: 0; background: #F4F7F9; font-size: 1.25rem; cursor: pointer; color: #14263A; }
.np-stepper__btn:hover { background: #E4EDF2; }
.np-stepper input { width: 4rem; height: 44px; border: 0; text-align: center; font: inherit; font-size: 1rem; -moz-appearance: textfield; }
.np-stepper input::-webkit-outer-spin-button, .np-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.np-footprint__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin: 1rem 0; }
.np-footprint__actions .is-style-outline { background: transparent; color: #277DA1; border: 2px solid #277DA1; }
.np-footprint__result { background: #14263A; color: #fff; border-radius: 16px; padding: 1.5rem; margin-top: 1rem; }
.np-footprint__result h3 { color: #fff; margin: 0 0 0.25rem; }
.np-footprint__big { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1; margin: 0; color: #F9C74F; }
.np-footprint__result .np-muted { color: #B9C7D3; }
.np-bars { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: 0.5rem; }
.np-bars li { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; font-size: 0.875rem; }
.np-bars .bar { grid-column: 1 / -1; height: 8px; border-radius: 999px; background: #2B4560; overflow: hidden; }
.np-bars .bar i { display: block; height: 100%; background: #8FD3F4; }
.np-footprint__best { background: #1E3A52; border-radius: 12px; padding: 1rem 1.25rem; margin-top: 1rem; }
.np-footprint__best strong { color: #90BE6D; }
.np-footprint__result a { color: #8FD3F4; }

/* Policy tracker */
.np-table-wrap { overflow-x: auto; }
.np-policy { border-collapse: collapse; width: 100%; font-size: 0.875rem; }
.np-policy th, .np-policy td { text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid #E4EDF2; vertical-align: top; }
.np-policy thead th { background: #F4F7F9; position: sticky; top: 0; }
.np-status { display: inline-block; padding: 0.1rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; background: #E4EDF2; }
.np-status--in-force { background: #DDF2E5; color: #17603F; }
.np-status--adopted { background: #DDEBF7; color: #1C5F7A; }
.np-status--proposed { background: #FFF1CC; color: #6B4E00; }
.np-status--delayed, .np-status--repealed { background: #FFE0E0; color: #8B1B1D; }
.np-ext { text-decoration: none; font-size: 0.8rem; }
@media (max-width: 600px) { .np-result { grid-template-columns: 1fr; } .np-result__type { grid-column: 1; grid-row: auto; } .np-search__bar { flex-wrap: wrap; } }

/* Details list on single evidence/material/swap/policy pages */
.np-details { display: grid; gap: 0; margin: 1.5rem 0; border: 1px solid #E4EDF2; border-radius: 16px; overflow: hidden; }
.np-details__row { display: grid; grid-template-columns: minmax(140px, 30%) minmax(0, 1fr); gap: 1rem; padding: 0.7rem 1.25rem; border-bottom: 1px solid #E4EDF2; }
.np-details__row:last-child { border-bottom: 0; }
.np-details__row:nth-child(odd) { background: #F8FAFB; }
.np-details dt { font-weight: 600; font-size: 0.875rem; color: #14263A; }
.np-details dd { margin: 0; font-size: 0.9375rem; min-width: 0; overflow-wrap: anywhere; }
.np-details .np-badge { margin: 0; }
@media (max-width: 600px) { .np-details__row { grid-template-columns: minmax(0, 1fr); gap: 0.15rem; } }

/* Community story form */
.np-story-form { display: grid; gap: 1rem; background: #F4F7F9; border-radius: 16px; padding: clamp(1.25rem, 3vw, 2rem); }
.np-story-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.np-story-form label { display: grid; gap: 0.35rem; font-size: 0.9375rem; }
.np-story-form label > span { font-weight: 600; }
.np-story-form input[type=text], .np-story-form input[type=email], .np-story-form select, .np-story-form textarea { width: 100%; min-height: 48px; padding: 0.6rem 1rem; border-radius: 12px; border: 1px solid #B9C7D3; font: inherit; background: #fff; }
.np-story-form textarea { min-height: 10rem; resize: vertical; }
.np-story-form__consent { grid-template-columns: auto 1fr; align-items: start; }
.np-story-form__consent input { width: 22px; height: 22px; margin-top: 3px; }
.np-story-form .np-hp { position: absolute; left: -9999px; }
.np-story-form button { justify-self: start; }
.np-story-form__status:empty { display: none; }
.np-story-form__status[data-state=ok] { background: #DDF2E5; color: #17603F; padding: 0.75rem 1rem; border-radius: 12px; }
.np-story-form__status[data-state=error] { background: #FFE0E0; color: #8B1B1D; padding: 0.75rem 1rem; border-radius: 12px; }
.np-story-meta { font-size: 0.875rem; color: #5B6B7A; }
.np-editor-note { background: #FFF1CC; border-left: 4px solid #F8961E; padding: 0.75rem 1rem; border-radius: 0 12px 12px 0; font-size: 0.9375rem; }

/* Plastic cost calculator */
.np-cost__group { border: 1px solid #E4EDF2; border-radius: 16px; padding: 1rem 1.25rem; margin: 0 0 1rem; }
.np-cost__group legend { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: 1.125rem; font-weight: 600; padding: 0 0.5rem; }
.np-cost__hint { margin: 0 0 0.5rem; font-size: 0.875rem; }
.np-cost__place { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; padding: 0.35rem 0; border-bottom: 1px solid #F4F7F9; }
.np-cost__place:last-child { border-bottom: 0; }
.np-cost__check { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 44px; flex: 1 1 12rem; cursor: pointer; }
.np-cost__check input { width: 1.375rem; height: 1.375rem; accent-color: #277DA1; }
.np-cost__tonnes { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; }
.np-cost input[type=number], .np-cost select { min-height: 44px; border: 1px solid #5B6B7A; border-radius: 12px; padding: 0 0.75rem; font: inherit; font-size: 1rem; background: #fff; color: #14263A; }
.np-cost__tonnes input { width: 7.5rem; }
.np-cost__au .np-cost__group { border: 0; padding: 0; margin: 0 0 1rem; }
.np-cost__au .np-cost__group legend { font-size: 1rem; padding: 0; }
.np-cost__au .np-cost__tonnes { flex-wrap: wrap; }
.np-cost__au .np-cost__tonnes input { width: 9rem; }
.np-cost__au .np-cost__tonnes span:not(.screen-reader-text) { white-space: nowrap; }
.np-cost__au select { max-width: 100%; }
.np-cost__field { margin: 0 0 1rem; }
.np-cost__field label { display: block; font-weight: 600; margin-bottom: 0.35rem; }
.np-cost__field input { width: 8rem; }
.np-cost__field p { margin: 0.35rem 0 0; font-size: 0.875rem; }
.np-cost__more { border: 1px solid #E4EDF2; border-radius: 16px; padding: 0 1.25rem; margin: 0 0 1rem; }
.np-cost__more summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; gap: 0.5rem; color: #1D6385; }
.np-cost__au > summary { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: 1.125rem; }
.np-cost__more[open] { padding-bottom: 0.5rem; }
.np-cost :focus-visible { outline: 3px solid #277DA1; outline-offset: 2px; }
.np-cost__result { border: 1px solid #E4EDF2; border-radius: 16px; overflow: hidden; margin-top: 1rem; }
.np-cost__result:focus { outline: 3px solid #277DA1; outline-offset: 2px; }
.np-cost__summary { background: #14263A; color: #fff; padding: 1.5rem; }
.np-cost__summary h3 { color: #fff; margin: 0 0 0.5rem; }
.np-cost__summary .np-muted { color: #B9C7D3; margin-bottom: 0; }
.np-cost__big { font-family: var(--wp--preset--font-family--heading, sans-serif); font-size: clamp(2rem, 6vw, 3.25rem); line-height: 1.1; margin: 0 0 0.5rem; color: #F9C74F; overflow-wrap: anywhere; }
.np-cost__place-result { padding: 1.25rem 1.5rem; border-bottom: 1px solid #E4EDF2; }
.np-cost__place-result h4 { margin: 0 0 0.75rem; font-size: 1.125rem; }
.np-cost__lines { list-style: none; margin: 0; padding: 0; }
.np-cost__line { padding: 0.75rem 0; border-top: 1px solid #F4F7F9; }
.np-cost__line-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; font-weight: 600; }
.np-cost__amount { font-variant-numeric: tabular-nums; }
.np-cost__status { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.15rem 0.6rem; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; margin: 0.35rem 0; }
.np-cost__status--charged { background: #FFF1CC; color: #6B4E00; }
.np-cost__status--exempt { background: #DDF2E5; color: #17603F; }
.np-cost__status--later { background: #E4EDF2; color: #14263A; }
.np-cost__status--flat { background: #F1ECF7; color: #4A2F6B; }
.np-cost__note, .np-cost__source { margin: 0.25rem 0 0; font-size: 0.875rem; }
.np-cost__per-tonne { margin: 0.75rem 0 0; font-weight: 600; }
.np-cost__notes { margin: 0; padding: 1.25rem 1.5rem 1.25rem 2.75rem; font-size: 0.875rem; background: #F8FAFB; }
.np-cost__errors { padding: 1.25rem 1.5rem; background: #FFE0E0; color: #8B1B1D; }
.np-cost__errors h3 { color: #8B1B1D; margin: 0 0 0.5rem; }
.np-cost__errors h3::before { content: "⚠ "; }
.np-cost__errors a { color: #8B1B1D; }
.np-cost__method { font-size: 0.875rem; }
