/**
 * o.mim-2.pl/opinie — styles for testimonial cards (centrum wiedzy o MIM-2, czysta forma).
 *
 * LIGHT THEME (mint pastel) — reuse theme.css zmiennych.
 * Body color: var(--fg-body) #1d3338 deep teal-black.
 * Tła kart: białe z subtle border, kontrast AAA wzmocniony.
 *
 * Filozofia:
 *   - Readability AAA: body 18px desktop / 17px mobile, line-height 1.75.
 *   - Tap targets 48px+ mobile, 44px+ desktop.
 *   - Blur reveal: hover (desktop) / tap (mobile) / focus-visible (klawiatura).
 *   - prefers-reduced-motion respected.
 */

/* ============= LAYOUT WRAPPER ============= */
.opinie-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
    color: var(--fg-body);
}
.opinie-wrap h1 {
    color: var(--fg-primary);
}
.opinie-wrap .opinie-lead {
    color: var(--fg-muted);
    font-size: 1.125rem;
    line-height: 1.6;
    max-width: 65ch;
    margin: 0 0 2rem;
}
.opinie-wrap .opinie-lead strong { color: var(--fg-primary); }
.opinie-wrap .opinie-lead a { color: var(--brand-ink); font-weight: 600; }

/* ============= HERO (positive, ludzki ton) ============= */
.opinie-hero {
    margin: 0 0 2rem;
}
.opinie-hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: center;
}
@media (min-width: 900px) {
    .opinie-hero-grid {
        grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
        gap: 2.5rem;
    }
}
.opinie-hero-content {
    max-width: 70ch;
}
.opinie-hero-figures {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    background: linear-gradient(135deg, rgba(0, 201, 212, 0.06) 0%, rgba(0, 201, 212, 0.01) 100%);
    border: 1px solid rgba(0, 201, 212, 0.2);
    border-radius: 16px;
    padding: 1.5rem 1rem;
}
.opinie-hero-figures-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    flex-wrap: nowrap;
    width: 100%;
}
@media (max-width: 480px) {
    .opinie-hero-figures-row { gap: 0.2rem; }
    .opinie-hero-figures-row .figure-ludzik { width: 36px; height: 80px; }
    .opinie-hero-figures-row .figure-mim2   { width: 56px; height: 56px; }
}
.opinie-hero-figures-caption {
    font-size: 0.8rem;
    color: var(--fg-muted);
    text-align: center;
    margin: 0;
    font-style: italic;
    line-height: 1.4;
}
.opinie-hero-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-500);
    margin: 0 0 0.5rem;
}
.opinie-hero-title {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 4.2vw, 2.6rem);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.025em;
    margin: 0 0 1rem;
    color: var(--fg-primary);
}
.opinie-hero-lead {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--fg-body);
    margin: 0 0 1.25rem;
}
@media (min-width: 768px) { .opinie-hero-lead { font-size: 1.125rem; } }

.opinie-hero-meta {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    font-size: 0.875rem;
    color: var(--fg-muted);
}
.opinie-hero-meta li {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.7rem;
    background: rgba(0, 201, 212, 0.08);
    border-radius: 100px;
}
.opinie-hero-meta strong {
    color: var(--brand-ink);
    font-weight: 700;
}

.opinie-hero-note {
    font-size: 0.95rem;  /* 15.2px — readable AAA */
    color: var(--fg-muted);
    margin: 0;
    line-height: 1.55;
}
@media (min-width: 768px) { .opinie-hero-note { font-size: 1rem; } }
.opinie-hero-note a {
    color: var(--brand-ink);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.opinie-hero-cta { margin: 1rem 0 0; }
.opinie-hero-cta .btn-primary { display: inline-block; }

/* ============= GRID DESKTOP / SINGLE MOBILE ============= */
.opinie-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}
@media (min-width: 1024px) {
    .opinie-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 2.25rem;
    }
}

/* ============= CARD ============= */
.opinia-card {
    background: var(--bg-card, #ffffff);
    border: 1px solid rgba(0, 201, 212, 0.15);
    border-radius: 14px;
    padding: 1.25rem;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    line-height: 1.65;
    color: var(--fg-body);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
@media (min-width: 768px) { .opinia-card { padding: 1.5rem 1.75rem; } }

.opinia-card:hover,
.opinia-card:focus-within {
    border-color: var(--brand-400);
    box-shadow: 0 4px 16px rgba(0, 201, 212, 0.12);
}

/* ============= HEADER (avatar + meta) ============= */
.opinia-header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 0.85rem;
}
.opinia-avatar {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
@media (min-width: 768px) {
    .opinia-avatar { width: 60px; height: 60px; }
}

.opinia-meta { flex: 1 1 auto; min-width: 0; }
.opinia-name {
    font-family: var(--font-heading);
    font-size: 1.0625rem;
    font-weight: 600;
    margin: 0 0 0.3rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--fg-primary);
}
.opinia-meta-sub {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--fg-muted);
}
.opinia-rating-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.85rem;
    font-size: 0.825rem;
    color: var(--fg-muted);
}
.opinia-stars {
    color: var(--gold-700, #5E4B10);  /* AAA contrast 7:1 na białym tle */
    font-size: 1.4rem;  /* 22.4px — bigger visual impact */
    letter-spacing: 0.05em;
    line-height: 1;
}
.opinia-stars .star-empty { opacity: 0.45; color: var(--gold-500, #B8962F); }

/* ============= SUBJECT (h4) ============= */
.opinia-subject {
    font-family: 'Cormorant Garamond', 'Inter', serif;
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0.75rem 0 0.85rem;
    color: var(--brand-ink);
    font-style: italic;
}
@media (min-width: 768px) { .opinia-subject { font-size: 1.4rem; } }

/* ============= AI SUMMARY (per-opinia) ============= */
.opinia-ai-summary {
    background: rgba(0, 201, 212, 0.05);
    padding: 0.75rem 0.9rem;
    border-radius: 8px;
    margin: 0 0 1rem;
}
.opinia-ai-summary-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--brand-ink);
    margin: 0 0 0.35rem;
    line-height: 1.3;
}
.opinia-ai-summary-meta {
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
    color: var(--fg-muted);
    font-size: 0.85em;
}
.opinia-ai-summary-body {
    font-size: 1rem;  /* 16px — readable AAA + AI snippet visibility */
    line-height: 1.6;
    color: var(--fg-body);
    margin: 0;
}

/* ============= OPINIE OVERVIEW (page-level AI snippet) ============= */
.opinie-overview {
    background: linear-gradient(135deg, rgba(0, 201, 212, 0.08) 0%, rgba(0, 201, 212, 0.03) 100%);
    border: 1px solid rgba(0, 201, 212, 0.25);
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    margin: 0 0 2rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}
.opinie-overview-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--brand-ink);
    margin: 0 0 0.5rem;
    line-height: 1.3;
}
.opinie-overview-meta {
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
    color: var(--fg-muted);
    font-size: 0.85em;
}
.opinie-overview-body {
    font-size: 1.0625rem;  /* 17px mobile — page-level AI snippet, max readability */
    line-height: 1.65;
    color: var(--fg-body);
    margin: 0;
}
@media (min-width: 768px) {
    .opinie-overview-body { font-size: 1.125rem; }
}

/* ============= BODY (text + decorative quote) ============= */
.opinia-body {
    position: relative;
    font-size: 1.0625rem;          /* 17px mobile — WCAG AAA */
    line-height: 1.7;
    margin: 0 0 1rem;
    padding: 0.25rem 0 0.25rem 1.5rem;
    color: var(--fg-body);
    border-left: none;
}
@media (min-width: 768px) {
    .opinia-body { font-size: 1.125rem; padding-left: 1.75rem; line-height: 1.75; }   /* 18px desktop */
}
.opinia-body::before {
    content: "„";
    position: absolute;
    left: -0.25rem;
    top: -0.4rem;
    font-family: 'Cormorant Garamond', serif;
    font-size: 2.75rem;
    line-height: 1;
    color: rgba(0, 201, 212, 0.3);
    pointer-events: none;
    user-select: none;
}

/* ============= CLAIM (medical word blur reveal) ============= */
.claim {
    display: inline-block;
    background: rgba(212, 181, 106, 0.18);   /* delikatne złoto = sygnał uwagi */
    color: var(--gold-700);
    padding: 2px 10px;
    margin: 0 1px;
    border-radius: 6px;
    border-bottom: 2px dotted var(--gold-500);
    cursor: pointer;
    transition: filter 0.25s ease, background 0.25s ease, color 0.25s ease;
    user-select: none;
    font-weight: 600;
    -webkit-tap-highlight-color: rgba(212, 181, 106, 0.3);

    /* visual blur — pełen tekst zostaje w DOM dla bota i SR */
    filter: blur(5px);
    min-height: 1.6em;
    line-height: 1.4;
}
.claim::before {
    content: "👁\fe0e";
    margin-right: 4px;
    font-size: 0.85em;
    opacity: 0.7;
    filter: none;
    display: inline-block;
}

/* Hover (desktop) — pełna ostrość */
.claim:hover,
.claim:focus-visible,
.claim[aria-pressed="true"] {
    filter: blur(0);
    background: rgba(212, 181, 106, 0.3);
    color: var(--gold-700);
    user-select: text;
}

.claim:focus-visible {
    outline: 3px solid var(--brand-400);
    outline-offset: 3px;
}

/* Tap target sizing dla mobile (WCAG 2.5.5 min 48×48) */
@media (hover: none) and (pointer: coarse) {
    .claim {
        padding: 10px 14px;
        margin: 2px 2px;
        min-height: 48px;
        display: inline-flex;
        align-items: center;
    }
}

/* prefers-reduced-motion — zero transition */
@media (prefers-reduced-motion: reduce) {
    .claim, .opinia-card { transition: none; }
}

/* ============= CONTEXT (dl) ============= */
.opinia-context {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;
    background: var(--bg-page-2, #e8f3f1);
    padding: 0.7rem 0.9rem;
    border-radius: 6px;
    margin: 0 0 0.9rem;
    font-size: 0.9375rem;  /* 15px — czytelne AAA */
}
@media (min-width: 640px) {
    .opinia-context { grid-template-columns: repeat(2, 1fr); gap: 0.5rem 1.25rem; }
}
.opinia-context > div { display: flex; flex-direction: column; gap: 0.1rem; }
.opinia-context dt {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fg-muted);
    font-weight: 600;
}
.opinia-context dd { margin: 0; color: var(--fg-body); }

/* ============= TAGS ============= */
.opinia-tags {
    list-style: none;
    padding: 0;
    margin: 0 0 0.9rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.opinia-tag {
    display: inline-block;
    background: rgba(0, 201, 212, 0.12);
    color: var(--brand-ink);
    padding: 0.3rem 0.8rem;
    border-radius: 100px;
    font-size: 0.85rem;  /* ~13.6px — minimum WCAG */
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* ============= EXTRA WARN ============= */
.opinia-extra-warn {
    background: rgba(212, 181, 106, 0.14);
    padding: 0.85rem 1.1rem;
    border-radius: 6px;
    font-size: 1rem;  /* 16px — safety warning, must be readable AAA */
    line-height: 1.55;
    margin: 0 0 0.9rem;
    color: var(--gold-700);
    font-weight: 500;
}

/* ============= FOOTER (trust signals) ============= */
.opinia-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.8125rem;  /* ~13px — czytelne AAA */
    color: var(--fg-muted);
    line-height: 1.5;
}
.opinia-trust { display: inline-flex; align-items: center; gap: 0.3rem; }
.opinia-archived { margin-left: auto; color: var(--fg-muted); font-style: italic; opacity: 0.8; }

/* ============= CLAIM HINT (first-visit toast) ============= */
.claim-hint {
    position: fixed;
    bottom: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--brand-500);
    color: #ffffff;
    padding: 0.85rem 1.25rem;
    border-radius: 100px;
    font-weight: 600;
    font-size: 0.95rem;
    box-shadow: 0 8px 24px rgba(0, 178, 189, 0.35);
    z-index: 100;
    animation: claim-hint-in 0.35s ease both;
    max-width: calc(100vw - 2rem);
    text-align: center;
}
@keyframes claim-hint-in {
    from { opacity: 0; transform: translate(-50%, 1rem); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .claim-hint { animation: none; }
}

/* ============= REGULAMIN PAGE ============= */
.regulamin-wrap {
    max-width: 780px;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
    line-height: 1.75;
    color: var(--fg-body);
}
.regulamin-wrap h1 { color: var(--fg-primary); }
.regulamin-wrap h2 {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    margin-top: 2.5rem;
    margin-bottom: 0.75rem;
    color: var(--brand-ink);
    letter-spacing: -0.01em;
}
.regulamin-wrap h2:first-of-type { margin-top: 0; }
.regulamin-wrap p { margin: 0 0 1rem; }
.regulamin-wrap ul { margin: 0 0 1rem 1.25rem; padding: 0; }
.regulamin-wrap a { color: var(--brand-ink); font-weight: 600; }

/* ============= BREADCRUMB ============= */
.opinie-breadcrumb {
    font-size: 0.85rem;
    margin-bottom: 1.5rem;
    color: var(--fg-muted);
}
.opinie-breadcrumb a { color: var(--brand-ink); text-decoration: none; font-weight: 600; }
.opinie-breadcrumb a:hover { text-decoration: underline; }

/* ============= DISCLAIMER ASIDE ============= */
.opinie-disclaimer {
    margin-top: 3rem;
    padding: 1.5rem 1.75rem;
    background: rgba(212, 181, 106, 0.1);
    border-radius: 12px;
    font-size: 1rem;  /* 16px — legal disclaimer must NEVER be sub-16px (UE/Google E-E-A-T) */
    line-height: 1.7;
    max-width: 70ch;
    color: var(--fg-body);
}
.opinie-disclaimer h2 {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    margin: 0 0 0.6rem;
    color: var(--gold-700);
    letter-spacing: -0.01em;
}
.opinie-disclaimer p { margin: 0 0 0.75rem; }
.opinie-disclaimer p:last-child { margin: 0; }
.opinie-disclaimer a { color: var(--brand-ink); font-weight: 600; }
.opinie-disclaimer strong { color: var(--fg-primary); }

/* ============= CTA SUBMIT NEW ============= */
.opinie-cta-submit {
    margin-top: 2rem;
    text-align: center;
    font-size: 0.95rem;
    color: var(--fg-muted);
}
.opinie-cta-submit a {
    display: inline-block;
    color: var(--brand-ink);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid var(--brand-400);
    padding: 10px 6px 8px;  /* tap target ≥44px */
    min-height: 44px;
    line-height: 1.5;
}
.opinie-cta-submit a:hover { color: var(--brand-500); }

/* ============= FORM /opinie/dodaj/ ============= */
.opinie-form-wrap { max-width: 720px; }
.opinie-hero-compact { margin-bottom: 1.5rem; }
.opinie-hero-compact .opinie-hero-title { font-size: clamp(1.5rem, 3.5vw, 2.1rem); }
.opinie-hero-compact .opinie-hero-lead { font-size: 1rem; }

.opinie-form {
    background: var(--bg-card, #fff);
    border: 1px solid rgba(0, 201, 212, 0.15);
    border-radius: 14px;
    padding: 1.25rem;
    margin: 1.5rem 0;
    display: grid;
    gap: 1.5rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
@media (min-width: 768px) { .opinie-form { padding: 2rem 2.25rem; } }

.opinie-form-fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 1rem;
}
.opinie-form-fieldset legend {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-ink);
    margin: 0 0 0.5rem;
    padding: 0;
    letter-spacing: -0.01em;
}
.opinie-form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 600px) {
    .opinie-form-row { grid-template-columns: repeat(2, 1fr); }
}
.opinie-form-field { display: flex; flex-direction: column; gap: 0.3rem; }
.opinie-form-field label {
    font-size: 1rem;  /* 16px — form labels AAA, conversion-critical */
    font-weight: 600;
    color: var(--fg-primary);
}
.opinie-form-field label small { font-weight: 400; color: var(--fg-muted); margin-left: 0.4rem; }
.opinie-form-field .req { color: #dc2626; font-weight: 700; }
.opinie-form-field input,
.opinie-form-field textarea {
    width: 100%;
    padding: 0.65rem 0.85rem;
    font-family: inherit;
    font-size: 1rem;
    border-radius: 8px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    background: #fff;
    color: var(--fg-body);
    line-height: 1.5;
}
.opinie-form-field input:focus-visible,
.opinie-form-field textarea:focus-visible {
    outline: 3px solid var(--brand-400);
    outline-offset: 1px;
    border-color: var(--brand-400);
}
.opinie-form-field textarea { min-height: 9rem; resize: vertical; line-height: 1.65; }
.opinie-form-hint { font-size: 0.9rem; color: var(--fg-muted); line-height: 1.5; }  /* 14.4px — was 12.8px (too small) */

.opinie-form-consent-block { background: rgba(0, 201, 212, 0.04); padding: 1rem 1.25rem; border-radius: 10px; }
.opinie-form-consent {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    cursor: pointer;
    line-height: 1.55;
}
.opinie-form-consent input[type="checkbox"] {
    flex-shrink: 0;
    width: 24px;  /* WCAG 2.5.5 Level AA */
    height: 24px;
    margin-top: 0.15rem;
    accent-color: var(--brand-400);
    cursor: pointer;
}
.opinie-form-consent-text { font-size: 1rem; color: var(--fg-body); line-height: 1.6; }  /* 16px — RODO consent must be legible AAA */
.opinie-form-consent-text ul { margin: 0.5rem 0 0; padding-left: 1.25rem; }
.opinie-form-consent-text ul li { margin-bottom: 0.4rem; }
.opinie-form-consent-text strong { color: var(--brand-ink); }
.opinie-form-consent-text a { color: var(--brand-ink); font-weight: 600; }

.opinie-form-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    margin-top: 0.5rem;
}
.opinie-form-actions .btn-primary { padding: 0.75rem 1.5rem; }
.opinie-form-meta { font-size: 0.875rem; color: var(--fg-muted); margin: 0; flex: 1 1 200px; line-height: 1.5; }  /* 14px */
.opinie-form-meta a { color: var(--brand-ink); text-decoration: underline; }

.opinie-form-alert {
    padding: 0.85rem 1rem;
    border-radius: 8px;
    margin-bottom: 1rem;
}
.opinie-form-alert-err { background: #fef2f2; color: #7f1d1d; }
.opinie-form-alert-err strong { color: #991b1b; }
.opinie-form-alert ul { margin: 0.4rem 0 0; padding-left: 1.25rem; }

.opinie-form-thanks {
    background: linear-gradient(135deg, rgba(0, 201, 212, 0.1) 0%, rgba(0, 201, 212, 0.02) 100%);
    border: 1px solid rgba(0, 201, 212, 0.3);
    border-radius: 12px;
    padding: 2rem 2.25rem;
    text-align: center;
    color: var(--fg-body);
    line-height: 1.65;
}
.opinie-form-thanks h2 {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    color: var(--brand-ink);
    margin: 0 0 1rem;
}

.honeypot {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* CTA on opinie list page */
.opinie-cta-submit a:hover { color: var(--brand-500); }

/* Inline shop CTA na single — między opinią a "Wróć do listy". Inherits .btn-primary z theme.css. */
.opinia-shop-cta {
    margin: 2rem 0 0;
    text-align: center;
}

/* ============= LIST: read more link ============= */
.opinia-read-more {
    margin: 0.75rem 0 0;
    font-size: 0.95rem;  /* 15.2px — was 14px */
}
.opinia-read-more a {
    display: inline-block;
    color: var(--brand-ink);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid var(--brand-400);
    padding: 8px 4px 6px;  /* tap target ≥40px high */
    min-height: 44px;
    line-height: 1.5;
}
.opinia-read-more a:hover { color: var(--brand-500); }

/* ============= SINGLE PAGE: subject as h1 ============= */
.opinie-single-wrap { max-width: 880px; }
.opinie-list-single { display: block; }
.opinie-list-single .opinia-card { background: var(--bg-card, #fff); border-color: rgba(0, 201, 212, 0.25); }

.opinia-card-single .opinia-name-single {
    font-size: 1rem;
    font-weight: 500;
    color: var(--fg-muted);
    margin: 0 0 0.3rem;
    text-transform: none;
    letter-spacing: normal;
}
.opinia-card-single .opinia-name-single span[itemprop="name"] {
    font-weight: 600;
    color: var(--fg-primary);
}
.opinia-card-single .opinia-subject-single {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3.6vw, 2.2rem);
    font-style: normal;
    line-height: 1.2;
    margin: 1rem 0 1.25rem;
    color: var(--fg-primary);
    letter-spacing: -0.02em;
}
@media (min-width: 768px) {
    .opinia-card-single .opinia-subject-single { font-size: clamp(1.75rem, 3.6vw, 2.5rem); }
}

/* ============= EDITORIAL NOTE (dymek redakcyjny) ============= */
/* Distynkcyjny visual od .opinie-overview (cyan gradient): editorial = neutral bg + lewy border brand */
.opinia-editorial {
    background: #f9fafb;
    border-left: 4px solid var(--brand-400);
    border-radius: 0 10px 10px 0;
    padding: 0.95rem 1.15rem;
    margin: 0 0 1.25rem;
}
.opinia-editorial-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: var(--brand-ink);
    margin: 0 0 0.4rem;
    line-height: 1.3;
}
.opinia-editorial-label::before {
    content: "✎ ";
    color: var(--brand-400);
}
.opinia-editorial-body {
    font-size: 0.95rem;  /* 15.2px — czytelne AAA */
    line-height: 1.65;
    color: var(--fg-body);
    margin: 0;
}

/* ============= RELATED RESOURCES (ecosystem) ============= */
.opinia-related {
    margin: 1.5rem 0 1.25rem;
    padding: 1.1rem 1.25rem;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(0, 201, 212, 0.18);
    border-radius: 12px;
}
.opinia-related-label {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--brand-ink);
    margin: 0 0 0.75rem;
    letter-spacing: -0.01em;
}
.opinia-related-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}
.opinia-related-item {
    background: var(--bg-card, #fff);
    border-radius: 8px;
    border-left: 3px solid var(--brand-400);
    transition: border-color 0.2s ease;
}
.opinia-related-item:hover { border-left-color: var(--brand-500); }
.opinia-related-item a {
    display: block;  /* full <li> clickable area */
    padding: 0.85rem 1rem;
    font-weight: 600;
    color: var(--brand-ink);
    text-decoration: none;
    line-height: 1.5;
    min-height: 48px;
}
.opinia-related-item a:hover { text-decoration: underline; }
.opinia-related-why {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;  /* 14px — czytelne AAA */
    color: var(--fg-muted);
    line-height: 1.5;
    font-weight: 400;
}
.opinia-related-external a::after {
    content: " ↗";
    font-size: 0.85em;
    color: var(--fg-muted);
}

@media (prefers-reduced-motion: reduce) {
    .opinia-related-item { transition: none; }
}

/* ============= FOCUS-VISIBLE consistency (a11y) ============= */
.opinia-card a:focus-visible,
.opinie-banner a:focus-visible,
.opinie-breadcrumb a:focus-visible,
.regulamin-wrap a:focus-visible {
    outline: 3px solid var(--brand-400);
    outline-offset: 3px;
    border-radius: 4px;
}
