/*
 * W318 | PrevDireitos Design System 1.0 for every non-home surface.
 * Uses the approved home design tokens, shell and typography.
 * Scoped to the WordPress body class so the existing home is untouched.
 * Publication/archive/article/legal/calculator content retains its own markup.
 */
.pd-visual-v1-public {
    margin: 0;
    --pd-bg: var(--pd-color-page);
    --pd-text: var(--pd-color-text);
    --pd-muted: var(--pd-color-text-muted);
    --pd-border: var(--pd-color-border);
    --pd-green-900: var(--pd-color-navy-950);
    --pd-green-700: var(--pd-color-blue-700);
    --pd-green-100: var(--pd-color-blue-100);
    --pd-gold: var(--pd-color-yellow-500);
    color: var(--pd-color-text);
    background: var(--pd-color-page);
    font-family: var(--pd-font-sans);
    line-height: 1.65;
}
.pd-visual-v1-public *,
.pd-visual-v1-public *::before,
.pd-visual-v1-public *::after { box-sizing: border-box; }
.pd-visual-v1-public img { max-width: 100%; height: auto; }
.pd-visual-v1-public .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.pd-visual-v1-public .screen-reader-text:focus {
    position: fixed !important;
    z-index: 100000;
    top: 8px;
    left: 8px;
    width: auto !important;
    height: auto !important;
    padding: 12px 16px !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    background: #fff;
    color: var(--pd-color-navy-950);
    border: 2px solid var(--pd-color-blue-700);
    border-radius: 8px;
}
.pd-visual-v1-public .portal-container {
    width: min(calc(100% - 48px), var(--pd-width-container));
    margin-inline: auto;
}
.pd-visual-v1-public main { min-height: 38vh; }
.pd-visual-v1-public main a { color: var(--pd-color-brand-action); }
.pd-visual-v1-public main a:hover { color: var(--pd-color-brand-action-hover); }
.pd-visual-v1-public :where(button, input, select, textarea) { font: inherit; }
.pd-visual-v1-public :where(button, .portal-button, input[type="submit"]) {
    accent-color: var(--pd-color-brand-action);
}
.pd-visual-v1-public :where(.portal-button, button[type="submit"], input[type="submit"]) {
    border-radius: var(--pd-radius-sm);
}
.pd-visual-v1-public :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    max-width: 100%;
    border-color: var(--pd-color-border-strong);
    border-radius: var(--pd-radius-sm);
}
.pd-visual-v1-public :where(.portal-card, .portal-tool-card, .portal-news-card, .article-main) {
    border-color: var(--pd-color-border);
    border-radius: var(--pd-radius-lg);
    box-shadow: var(--pd-shadow-sm);
    background: var(--pd-color-surface);
}
.pd-visual-v1-public .portal-section { padding-block: clamp(34px, 5vw, 72px); }
.pd-visual-v1-public .portal-section--tint { background: var(--pd-color-surface-soft); }
.pd-visual-v1-public .portal-section__kicker,
.pd-visual-v1-public .portal-kicker { color: var(--pd-color-blue-700); }
.pd-visual-v1-public .portal-section h2 { color: var(--pd-color-text-strong); }
.pd-visual-v1-public .portal-hero {
    color: #fff;
    background: linear-gradient(112deg, var(--pd-color-navy-950), var(--pd-color-navy-900) 62%, #0b3f78);
}
.pd-visual-v1-public .portal-hero :where(h1, p, strong) { color: #fff; }
.pd-visual-v1-public .portal-hero__status {
    border: 1px solid rgba(191,219,254,.26);
    background: rgba(3,21,47,.64);
    color: #fff;
}
.pd-visual-v1-public .portal-button { background: var(--pd-color-brand-action); color: #fff; }
.pd-visual-v1-public .portal-button:hover { background: var(--pd-color-brand-action-hover); color: #fff; }
.pd-visual-v1-public .portal-button--secondary { color: var(--pd-color-brand-strong); background: #fff; }

/* Article surface: single.php stays responsible for factual and legal content. */
.pd-visual-v1-public .article-header {
    padding-block: clamp(36px,5vw,66px);
    background: linear-gradient(115deg, var(--pd-color-navy-950), var(--pd-color-navy-900));
    color: #fff;
}
.pd-visual-v1-public .article-header :where(h1, .article-deck, .article-meta, .article-breadcrumbs, .article-breadcrumbs span) { color: #fff; }
.pd-visual-v1-public .article-header h1 {
    max-width: 1040px;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 3.8rem);
    letter-spacing: -.045em;
    line-height: 1.12;
}
.pd-visual-v1-public .article-header .article-deck,
.pd-visual-v1-public .article-header .article-meta { color: #d6e3f3; }
.pd-visual-v1-public .article-breadcrumbs a { color: #d9e9ff; }
.pd-visual-v1-public .article-category {
    display: inline-flex;
    padding: 5px 12px;
    border-radius: var(--pd-radius-pill);
    background: var(--pd-color-blue-100);
    color: var(--pd-color-blue-700);
    font-weight: 750;
}
.pd-visual-v1-public .article-category:hover { color: var(--pd-color-navy-950); }
.pd-visual-v1-public .article-featured { margin-block: 28px 0; }
.pd-visual-v1-public .article-featured img { border-radius: var(--pd-radius-lg); }
.pd-visual-v1-public .article-layout { padding-block: 42px 68px; }
.pd-visual-v1-public .article-main { padding: clamp(22px, 4vw, 44px); }
.pd-visual-v1-public .article-main :where(h2, h3, h4) { color: var(--pd-color-text-strong); }
.pd-visual-v1-public .article-main :where(a, a:visited) { color: var(--pd-color-blue-700); }
.pd-visual-v1-public .article-toc {
    background: var(--pd-color-blue-100);
    border-color: var(--pd-color-border-strong);
}
.pd-visual-v1-public .article-toc > strong { color: var(--pd-color-navy-900); }

/* Archives, search and generic page content share the exact same cards. */
.pd-visual-v1-public .pd-inner-hero {
    padding-block: clamp(38px,5vw,68px);
    background: linear-gradient(113deg, var(--pd-color-navy-950),var(--pd-color-navy-900));
    color: #fff;
}
.pd-visual-v1-public .pd-inner-hero__eyebrow {
    display: block;
    margin-bottom: 12px;
    color: #a7ceff;
    font-size: .83rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
}
.pd-visual-v1-public .pd-inner-hero h1 {
    max-width: 950px;
    margin: 0;
    color: #fff;
    font-size: clamp(2.1rem, 4.8vw, 3.8rem);
    letter-spacing: -.045em;
    line-height: 1.13;
}
.pd-visual-v1-public .pd-inner-hero p {
    max-width: 770px;
    margin: 14px 0 0;
    color: #d6e3f3;
    font-size: clamp(.98rem, 1.4vw, 1.15rem);
}
.pd-visual-v1-public .pd-editorial-section {
    padding-block: clamp(30px, 5vw, 60px);
}
.pd-visual-v1-public .pd-editorial-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: clamp(16px,2.5vw,28px);
}
.pd-visual-v1-public .pd-editorial-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    border: 1px solid var(--pd-color-border);
    border-radius: var(--pd-radius-lg);
    background: var(--pd-color-surface);
    box-shadow: var(--pd-shadow-sm);
    transition: box-shadow .18s ease,transform .18s ease;
}
.pd-visual-v1-public .pd-editorial-card:hover {
    box-shadow: var(--pd-shadow-md);
    transform: translateY(-2px);
}
.pd-visual-v1-public .pd-editorial-card__image {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--pd-color-blue-100);
}
.pd-visual-v1-public .pd-editorial-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pd-visual-v1-public .pd-editorial-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 24px;
}
.pd-visual-v1-public .pd-editorial-card__meta {
    margin-bottom: 12px;
    font-size: .83rem;
    font-weight: 750;
    color: var(--pd-color-text-muted);
}
.pd-visual-v1-public .pd-editorial-card h2 {
    margin: 0 0 12px;
    color: var(--pd-color-text-strong);
    font-size: clamp(1.13rem, 1.5vw, 1.4rem);
    line-height: 1.3;
    letter-spacing: -.02em;
}
.pd-visual-v1-public .pd-editorial-card h2 a {
    color: inherit;
    text-decoration: none;
}
.pd-visual-v1-public .pd-editorial-card h2 a:hover { color: var(--pd-color-blue-700); }
.pd-visual-v1-public .pd-editorial-card__excerpt {
    margin: 0 0 24px;
    color: var(--pd-color-text-muted);
    line-height: 1.6;
}
.pd-visual-v1-public .pd-editorial-card__more {
    margin-top: auto;
    color: var(--pd-color-blue-700);
    font-weight: 800;
    text-decoration: none;
}
.pd-visual-v1-public .pd-editorial-pagination {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}
.pd-visual-v1-public .pd-editorial-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.pd-visual-v1-public .pd-editorial-pagination :where(.page-numbers) {
    display: inline-grid;
    place-items: center;
    min-width: 40px;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid var(--pd-color-border);
    border-radius: var(--pd-radius-sm);
    background: #fff;
    text-decoration: none;
}
.pd-visual-v1-public .pd-editorial-pagination .current {
    color: #fff;
    background: var(--pd-color-blue-700);
}
.pd-visual-v1-public .pd-empty-state,
.pd-visual-v1-public .portal-content > article {
    max-width: 1080px;
    padding: clamp(22px, 4vw, 44px);
    border: 1px solid var(--pd-color-border);
    border-radius: var(--pd-radius-lg);
    background: #fff;
    box-shadow: var(--pd-shadow-sm);
}
.pd-visual-v1-public .portal-content > article h1 {
    font-size: clamp(2rem,4vw,3.2rem);
    line-height: 1.15;
    color: var(--pd-color-text-strong);
}
.pd-visual-v1-public .portal-content > article :where(h2,h3) { color: var(--pd-color-text-strong); }

/* Legal repositories / plugins inherit consistent shared visual primitives. */
.pd-visual-v1-public :where(.portal-tool-card,.portal-news-card) { border-color:var(--pd-color-border); }
.pd-visual-v1-public :where(.portal-content,.article-main,.pd-editorial-section) :where(table) {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}
@media(max-width:1000px) {
    .pd-visual-v1-public .pd-editorial-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:720px) {
    .pd-visual-v1-public .portal-container { width: min(calc(100% - 28px), var(--pd-width-container)); }
    .pd-visual-v1-public .pd-editorial-grid { grid-template-columns: minmax(0,1fr); }
    .pd-visual-v1-public .article-main { padding: 20px; }
    .pd-visual-v1-public .article-layout { padding-block: 28px 45px; }
    .pd-visual-v1-public .pd-editorial-card__body { padding: 21px; }
}
@media(prefers-reduced-motion:reduce) {
    .pd-visual-v1-public .pd-editorial-card { transition: none; }
    .pd-visual-v1-public .pd-editorial-card:hover { transform: none; }
}

/* W322: legal repository uses the same navy/blue system as the homepage. */
.pd-visual-v1-public .pd-repository-hero {
    background: linear-gradient(113deg,var(--pd-color-navy-950,#03152f),var(--pd-color-navy-900,#06234a));
    border-bottom: 0;
    color: #fff;
    padding-block: clamp(44px,5.5vw,78px);
}
.pd-visual-v1-public .pd-repository-hero h1 {
    color: #fff;
    font: 800 clamp(2.1rem,4.5vw,3.8rem)/1.12 var(--pd-font-sans,Inter,system-ui,sans-serif);
    letter-spacing: -.045em;
}
.pd-visual-v1-public .pd-repository-hero > .portal-container > p {
    color: #d9e7fb;
    line-height: 1.65;
}
.pd-visual-v1-public .pd-repository-kicker {
    color: #b7d6ff;
    font-size: .83rem;
}
.pd-visual-v1-public .pd-repository-corpora {
    background: rgba(255,255,255,.12);
    border-color: rgba(191,219,254,.25);
}
.pd-visual-v1-public .pd-repository-hero .pd-repository-corpus {
    color: #edf5ff;
    font-weight: 800;
}
.pd-visual-v1-public .pd-repository-hero .pd-repository-corpus:hover,
.pd-visual-v1-public .pd-repository-hero .pd-repository-corpus:focus-visible {
    color: #03152f;
    background: #eaf3ff;
}
.pd-visual-v1-public .pd-repository-hero .pd-repository-corpus.is-active {
    color: #03152f;
    background: #fff;
}
.pd-visual-v1-public .pd-repository-search {
    border-color: rgba(191,219,254,.35);
    box-shadow: 0 10px 26px rgba(0,0,0,.13);
}
.pd-visual-v1-public .pd-repository-search input[type="search"] {
    color: var(--pd-color-text,#10233f);
    background: #fff;
}
.pd-visual-v1-public .pd-repository-search button,
.pd-visual-v1-public .pd-filter-apply {
    color: #fff;
    background: var(--pd-color-blue-700,#075fd8);
    border: 1px solid var(--pd-color-blue-700,#075fd8);
}
.pd-visual-v1-public .pd-repository-search button:hover,
.pd-visual-v1-public .pd-filter-apply:hover {
    color: #fff;
    background: var(--pd-color-brand-action-hover,#054fb6);
}
.pd-visual-v1-public .pd-repository-search :where(button,input):focus-visible,
.pd-visual-v1-public .pd-repository-corpus:focus-visible,
.pd-visual-v1-public .pd-repository-body :where(input,select,button,a):focus-visible {
    outline: 3px solid var(--pd-color-yellow-500,#ffc83d);
    outline-offset: 3px;
}
.pd-visual-v1-public .pd-repository-body {
    background: var(--pd-color-page,#f8fafc);
}
.pd-visual-v1-public .pd-repository-filterbar {
    border-color: var(--pd-color-border,#dbe4ef);
    background: #fff;
}
.pd-visual-v1-public .pd-repository-summary h2,
.pd-visual-v1-public .pd-legal-result h3 {
    color: var(--pd-color-text-strong,#061a36);
}
@media(max-width:720px) {
    .pd-visual-v1-public .pd-repository-corpora { display: flex; max-width: 100%; }
    .pd-visual-v1-public .pd-repository-search { grid-template-columns: minmax(0,1fr); }
    .pd-visual-v1-public .pd-repository-search button { min-height: 44px; }
}

/* W324: the public legal browse directory is a compact, usable catalog.
   Keep every published link available in the HTML and within <details>.
   This is strictly the repository surface, never the homepage or legal content. */
.pd-visual-v1-public .pd-repository-browse {
    display: grid;
    gap: 28px;
    margin-top: clamp(38px, 5vw, 68px);
    padding-bottom: clamp(28px, 4vw, 60px);
}
.pd-visual-v1-public .pd-repository-browse__intro {
    max-width: 930px;
}
.pd-visual-v1-public .pd-repository-browse__eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--pd-color-blue-700,#075fd8);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .095em;
    text-transform: uppercase;
}
.pd-visual-v1-public .pd-repository-browse__intro h2 {
    margin: 0 0 13px;
    color: var(--pd-color-text-strong,#061a36);
    font: 800 clamp(1.7rem, 3.1vw, 2.65rem)/1.19 var(--pd-font-sans,Inter,system-ui,sans-serif);
    letter-spacing: -.035em;
}
.pd-visual-v1-public .pd-repository-browse__intro p {
    margin: 0;
    color: var(--pd-color-text-muted,#5d6d82);
    line-height: 1.65;
}
.pd-visual-v1-public .pd-repository-browse__group {
    padding: clamp(18px, 2.5vw, 30px);
    border: 1px solid var(--pd-color-border,#dbe4ef);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(3,21,47,.055);
}
.pd-visual-v1-public .pd-repository-browse__group-header {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 16px;
    padding-bottom: 22px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--pd-color-border,#dbe4ef);
}
.pd-visual-v1-public .pd-repository-browse__group h3 {
    margin: 0;
    font: 800 clamp(1.22rem, 2vw, 1.65rem)/1.3 var(--pd-font-sans,Inter,system-ui,sans-serif);
    color: var(--pd-color-text-strong,#061a36);
}
.pd-visual-v1-public .pd-repository-browse__count {
    flex: 0 0 auto;
    padding: 6px 11px;
    background: var(--pd-color-blue-100,#eaf3ff);
    border-radius: 30px;
    color: var(--pd-color-navy-900,#06234a);
    font-size: .78rem;
    font-weight: 800;
}
.pd-visual-v1-public .pd-repository-browse__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pd-visual-v1-public .pd-repository-browse__links li {
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pd-visual-v1-public .pd-repository-browse__links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 100%;
    padding: 17px 18px;
    border: 1px solid var(--pd-color-border,#dbe4ef);
    border-radius: 12px;
    background: var(--pd-color-surface-soft,#f5f8fc);
    color: var(--pd-color-text-strong,#061a36);
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: border-color .18s ease, background-color .18s ease;
}
.pd-visual-v1-public .pd-repository-browse__links a:hover {
    color: var(--pd-color-blue-700,#075fd8);
    background: var(--pd-color-blue-100,#eaf3ff);
    border-color: #b9d4fb;
}
.pd-visual-v1-public .pd-repository-browse__links a span {
    flex: 0 0 auto;
    color: var(--pd-color-blue-700,#075fd8);
}
.pd-visual-v1-public .pd-repository-browse :where(a,summary):focus-visible {
    outline: 3px solid var(--pd-color-yellow-500,#ffc83d);
    outline-offset: 3px;
}
.pd-visual-v1-public .pd-repository-browse__more {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--pd-color-border,#dbe4ef);
}
.pd-visual-v1-public .pd-repository-browse__more summary {
    width: fit-content;
    cursor: pointer;
    color: var(--pd-color-blue-700,#075fd8);
    font-weight: 800;
    padding: 8px 4px;
}
.pd-visual-v1-public .pd-repository-browse__more[open] summary {
    margin-bottom: 18px;
}
.pd-visual-v1-public .pd-repository-browse__all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 23px;
    padding: 11px 16px;
    border-radius: 9px;
    border: 1px solid var(--pd-color-blue-700,#075fd8);
    background: var(--pd-color-blue-700,#075fd8);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}
.pd-visual-v1-public .pd-repository-browse__all:hover {
    color: #fff;
    background: var(--pd-color-brand-action-hover,#054fb6);
}
@media (max-width: 780px) {
    .pd-visual-v1-public .pd-repository-browse__links {
        grid-template-columns: minmax(0,1fr);
    }
}
@media (max-width: 480px) {
    .pd-visual-v1-public .pd-repository-browse__group-header {
        flex-wrap: wrap;
    }
    .pd-visual-v1-public .pd-repository-browse__count { flex: 0 0 auto; }
    .pd-visual-v1-public .pd-repository-browse__links a { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .pd-visual-v1-public .pd-repository-browse__links a { transition: none; }
}

/* W326: accessible legal search-result contrast.
   The hero's light kicker must never leak onto the light results surface.
   Only article title links inside the legal results are restyled. */
.pd-visual-v1-public .pd-repository-body .pd-repository-kicker {
    color: var(--pd-color-blue-700, #075fd8);
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.pd-visual-v1-public .pd-repository-body .pd-legal-result h3 a,
.pd-visual-v1-public .pd-repository-body .pd-legal-result h3 a:visited {
    color: var(--pd-color-text-strong, #061a36);
    text-decoration: none;
    text-underline-offset: .18em;
}
.pd-visual-v1-public .pd-repository-body .pd-legal-result h3 a:hover,
.pd-visual-v1-public .pd-repository-body .pd-legal-result h3 a:focus-visible {
    color: var(--pd-color-blue-700, #075fd8);
    text-decoration: underline;
}
.pd-visual-v1-public .pd-repository-body .pd-legal-result__ementa {
    background: var(--pd-color-blue-100, #eaf3ff);
    border-left-color: var(--pd-color-blue-700, #075fd8);
}
.pd-visual-v1-public .pd-repository-body .pd-legal-result__ementa strong {
    color: var(--pd-color-blue-700, #075fd8);
}
.pd-visual-v1-public .pd-repository-body .pd-legal-result__ementa p {
    color: var(--pd-color-text, #10233f);
}
