/* Pelvicly Core blocks — minimal, theme-independent. The Pelvicly theme refines these. */
.pv-product-card, .pv-verdict, .pv-cautions, .pv-results, .pv-people, .pv-references, .pv-related, .pv-newsletter, .pv-tool, .pv-db, .pv-compare { margin-block: 1.75rem; }
.pv-product-card { display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid var(--wp--preset--color--line, #d9d4dc); border-radius: 12px; background: var(--wp--preset--color--surface, #fff); }
@media (min-width: 640px) { .pv-product-card { grid-template-columns: 180px 1fr; } }
.pv-product-card__award { grid-column: 1 / -1; margin: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--wp--preset--color--plum, #4b2458); }
.pv-product-card__name { margin: 0 0 .5rem; font-size: 1.25rem; }
.pv-product-figure { margin: 0; }
.pv-product-image { width: 100%; height: auto; border-radius: 8px; }
.pv-image-credit { font-size: .75rem; opacity: .75; }

.pv-badge { display: inline-flex; align-items: center; gap: .35em; padding: .15em .6em; border-radius: 999px; font-size: .8125rem; font-weight: 600; line-height: 1.5; border: 1px solid currentColor; }
.pv-badge--tested { color: var(--wp--preset--color--success, #1f6b45); background: var(--wp--preset--color--success-soft, #e7f4ec); }
.pv-badge--researched { color: var(--wp--preset--color--ink-soft, #4a4550); background: var(--wp--preset--color--neutral-soft, #f3f1f4); }

.pv-fit { display: grid; grid-template-columns: max-content 1fr; gap: .25rem .75rem; margin: .75rem 0; }
.pv-fit dt { font-weight: 600; }
.pv-fit dd { margin: 0; }

.pv-buttons { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0 0; }
.pv-buttons--none { font-style: italic; }
.pv-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .6rem 1.1rem; border-radius: 8px; border: 2px solid transparent; font-weight: 600; text-decoration: none; cursor: pointer; font: inherit; font-weight: 600; }
.pv-btn--primary { background: var(--wp--preset--color--plum, #4b2458); color: #fff; }
.pv-btn--secondary { background: transparent; color: var(--wp--preset--color--plum, #4b2458); border-color: currentColor; }
.pv-btn--danger { background: transparent; color: #8a1f28; border-color: currentColor; }
.pv-btn:focus-visible, .pv-link-button:focus-visible, .pv-table-scroll:focus-visible { outline: 3px solid var(--wp--preset--color--coral, #d9644a); outline-offset: 2px; }
.pv-link-button { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; min-height: 24px; }
.pv-editor-only { display: block; margin-top: .25rem; font-size: .75rem; color: #8a1f28; }

.pv-price { margin: .5rem 0 0; }
.pv-price__amount { font-weight: 700; }
.pv-price__checked, .pv-note { font-size: .875rem; opacity: .8; }

.pv-table-scroll { overflow-x: auto; max-width: 100%; }
.pv-table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.pv-table caption { text-align: left; font-weight: 600; padding-bottom: .5rem; }
.pv-table th, .pv-table td { padding: .6rem .75rem; border-bottom: 1px solid var(--wp--preset--color--line, #d9d4dc); text-align: left; vertical-align: top; }
.pv-table thead th { background: var(--wp--preset--color--neutral-soft, #f3f1f4); }
.pv-compare .pv-table tbody th, .pv-compare .pv-table thead th:first-child { position: sticky; left: 0; background: var(--wp--preset--color--surface, #fff); z-index: 1; }
.pv-compare .pv-table thead th:first-child { background: var(--wp--preset--color--neutral-soft, #f3f1f4); }
.pv-compare__toggle { margin-bottom: .5rem; }
@media (min-width: 768px) { .pv-compare__toggle { display: none; } }
.pv-compare.is-cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pv-compare.is-cards table, .pv-compare.is-cards tbody, .pv-compare.is-cards tr, .pv-compare.is-cards th, .pv-compare.is-cards td { display: block; position: static; }
.pv-compare.is-cards tr { margin-bottom: 1rem; border: 1px solid var(--wp--preset--color--line, #d9d4dc); border-radius: 8px; }
.pv-compare.is-cards td::before { content: attr(data-label); display: block; font-size: .8125rem; font-weight: 600; opacity: .8; }

.pv-pros-cons { display: grid; gap: 1rem; }
@media (min-width: 640px) { .pv-pros-cons { grid-template-columns: 1fr 1fr; } }
.pv-pros h3::before { content: "+ "; }
.pv-cons h3::before { content: "– "; }

.pv-verdict, .pv-cautions { padding: 1.25rem; border-radius: 12px; border: 1px solid var(--wp--preset--color--line, #d9d4dc); }
.pv-verdict__title, .pv-cautions__title { margin-top: 0; font-size: 1.25rem; }
.pv-cautions { background: #fff8e6; border-color: #e7c66a; }

.pv-results__photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .75rem; }
.pv-results__photos figure { margin: 0; }
.pv-results__photos img { width: 100%; height: auto; border-radius: 8px; }

.pv-status-banner, .pv-status-summary, .pv-disclosure, .pv-disclaimer { padding: .75rem 1rem; border-radius: 8px; background: var(--wp--preset--color--neutral-soft, #f3f1f4); font-size: .9375rem; }
.pv-status-banner--tested { background: var(--wp--preset--color--success-soft, #e7f4ec); }
.pv-byline { font-size: .9375rem; }

.pv-people { display: grid; gap: 1rem; }
.pv-person { display: flex; gap: 1rem; padding: 1rem; border: 1px solid var(--wp--preset--color--line, #d9d4dc); border-radius: 12px; }
.pv-person__photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; }
.pv-person__role { margin: 0; font-size: .8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.pv-person__name { margin: .15rem 0; font-weight: 600; }
.pv-person__body p { margin-block: .25rem; }

.pv-references ol { padding-left: 1.5rem; font-size: .9375rem; }
.pv-references li { margin-bottom: .4rem; overflow-wrap: anywhere; }
.pv-compact-list { columns: 1; padding-left: 1.2rem; }
@media (min-width: 768px) { .pv-compact-list { columns: 2; column-gap: 2rem; } }
.pv-compact-list li { break-inside: avoid; margin-bottom: .35rem; }

.pv-newsletter { padding: 1.25rem; border-radius: 12px; background: var(--wp--preset--color--neutral-soft, #f3f1f4); }
.pv-newsletter__title { margin-top: 0; font-weight: 700; }
.pv-newsletter__row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .35rem; }
.pv-newsletter input[type=email] { flex: 1 1 14rem; min-height: 44px; padding: .5rem .75rem; border: 1px solid #8c8594; border-radius: 8px; font: inherit; }
.pv-newsletter__note { font-size: .8125rem; margin-bottom: 0; }

.pv-field { margin-bottom: 1rem; }
.pv-field label { display: block; font-weight: 600; margin-bottom: .25rem; }
.pv-field input, .pv-field select, .pv-field textarea { box-sizing: border-box; }
.pv-field input, .pv-field select { min-height: 44px; width: 100%; max-width: 24rem; padding: .4rem .6rem; border: 1px solid #8c8594; border-radius: 8px; font: inherit; }
.pv-field__help { font-size: .8125rem; margin: .25rem 0 0; opacity: .85; }
.pv-diary__day { margin-block: 1.5rem; padding: 1rem; border: 1px solid var(--wp--preset--color--line, #d9d4dc); border-radius: 12px; }
.pv-diary__form { display: grid; gap: 0 1rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); align-items: end; }
.pv-diary__form .pv-btn { margin-bottom: 1rem; }
.pv-diary__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.pv-db__filters { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; margin-bottom: 1rem; }
.pv-db__filters select { min-height: 44px; }

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

@media print {
	.pv-diary__form, .pv-diary__actions, .pv-diary__resume, .pv-link-button, .pv-newsletter, .pv-tool__privacy { display: none !important; }
	.pv-diary__day { break-inside: avoid; border-color: #000; }
}
@media (prefers-reduced-motion: reduce) { .pv-btn { transition: none; } }

/* Placeholder markers left by the importer: impossible to miss, never publishable (the pre-publish check blocks them). */
.pv-marker { padding: .75rem 1rem; border: 2px dashed #b24a30; border-radius: 8px; background: #fff4ef; color: #5a1e10; font-family: system-ui, sans-serif; font-size: .875rem; }

/* Contact form */
.pv-contact__form { max-width: 36rem; }
.pv-field textarea { width: 100%; max-width: 36rem; padding: .5rem .65rem; border: 1px solid #8c8594; border-radius: 8px; font: inherit; min-height: 9rem; }
.pv-field input:focus-visible, .pv-field select:focus-visible, .pv-field textarea:focus-visible, .pv-newsletter input:focus-visible { outline: 3px solid var(--wp--preset--color--coral, #d9644a); outline-offset: 1px; }
.pv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pv-notice { padding: .85rem 1rem; border-radius: 8px; border: 1px solid; font-weight: 600; }
.pv-notice--ok { background: #e7f4ec; border-color: #1f6b45; color: #154a30; }
.pv-notice--error { background: #fdeceb; border-color: #a3271f; color: #7a1d17; }

/* Virtual presenter disclosure */
.pv-virtual-tag { font-size: .875em; font-weight: 400; opacity: .85; white-space: nowrap; }
.pv-person__disclosure { font-size: .875rem; padding: .5rem .75rem; border-left: 3px solid var(--wp--preset--color--teal, #1f6a66); background: var(--wp--preset--color--neutral-soft, #f3f1f4); border-radius: 0 6px 6px 0; }

/* Empty states */
.pv-empty { padding: 1.25rem; border: 1px dashed var(--wp--preset--color--line, #d9d4dc); border-radius: 12px; }

/* Share links */
.pv-share { margin-block: 2rem 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.pv-share__label { margin: 0; font-weight: 600; font-size: .9375rem; }
.pv-share__list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.pv-share__link { display: inline-flex; align-items: center; min-height: 44px; padding: .4rem .9rem; border: 1px solid var(--wp--preset--color--line, #d9d4dc); border-radius: 999px; background: var(--wp--preset--color--surface, #fff); color: inherit; font: inherit; font-size: .875rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.pv-share__link:hover { border-color: currentColor; }
.pv-share__link:focus-visible { outline: 3px solid var(--wp--preset--color--coral, #d9644a); outline-offset: 2px; }

/* Breadcrumbs (fallback when Yoast is not active) */
.pv-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .25rem; margin: 0 0 1rem; padding: 0; list-style: none; font-size: .875rem; }
.pv-breadcrumbs li + li::before { content: "›"; margin-right: .25rem; opacity: .6; }
.pv-breadcrumbs a { display: inline-block; padding-block: .6rem; }
.pv-breadcrumbs [aria-current] { opacity: .8; padding-block: .6rem; display: inline-block; }
