/*!
 * Sanivio — Módulo público de avaliações
 * Arquivo: /assets/css/reviews.css
 * Versão: 2026.08.05.1
 *
 * Abrange:
 * - /public/review-submit.php
 * - /templates/professional/reviews-summary.php
 * - /templates/professional/review-card.php
 * - /templates/professional/external-review-card.php
 * - /templates/professional/reviews-section.php
 *
 * Regras funcionais refletidas na interface:
 * - avaliações nativas confirmadas podem compor a média oficial;
 * - avaliações externas são exibidas separadamente;
 * - o CSS não cria nem interfere em schema.org;
 * - seletores são escopados ao módulo público;
 * - compatível com as variáveis globais de /assets/css/site.css.
 */

/* ==========================================================================
   1. Base compartilhada e acessibilidade
   ========================================================================== */

.public-review-submit-page *,
.public-review-submit-page *::before,
.public-review-submit-page *::after,
.snv-reviews-summary,
.snv-reviews-summary *,
.snv-reviews-summary *::before,
.snv-reviews-summary *::after,
.snv-native-review-card,
.snv-native-review-card *,
.snv-native-review-card *::before,
.snv-native-review-card *::after,
.snv-external-review-card,
.snv-external-review-card *,
.snv-external-review-card *::before,
.snv-external-review-card *::after,
.snv-reviews-section,
.snv-reviews-section *,
.snv-reviews-section *::before,
.snv-reviews-section *::after {
    box-sizing: border-box;
}

.public-review-submit-page [hidden],
.snv-reviews-summary [hidden],
.snv-native-review-card [hidden],
.snv-external-review-card [hidden],
.snv-reviews-section [hidden] {
    display: none !important;
}

.public-review-submit-page button,
.public-review-submit-page input,
.public-review-submit-page select,
.public-review-submit-page textarea,
.snv-reviews-section button {
    font: inherit;
}

.public-review-submit-page img,
.snv-native-review-card img,
.snv-external-review-card img {
    max-width: 100%;
}

.public-review-submit-page :focus-visible,
.snv-reviews-summary :focus-visible,
.snv-native-review-card :focus-visible,
.snv-external-review-card :focus-visible,
.snv-reviews-section :focus-visible {
    outline: 3px solid rgba(7, 89, 133, .2);
    outline-offset: 3px;
}

.public-review-submit-page a,
.snv-reviews-summary a,
.snv-native-review-card a,
.snv-external-review-card a,
.snv-reviews-section a {
    text-decoration-thickness: .08em;
    text-underline-offset: .16em;
}

/* ==========================================================================
   2. Formulário público
   ========================================================================== */

.public-review-submit-page{
    background:#f4fafc;
}
.review-submit-main{
    min-height:70vh;
    padding:42px 0 70px;
}
.review-submit-shell{
    display:grid;
    grid-template-columns:minmax(0,1.18fr) minmax(310px,.72fr);
    gap:22px;
    align-items:start;
}
.review-submit-card,
.review-profile-card,
.review-security-card{
    border:1px solid var(--line);
    border-radius:24px;
    background:#fff;
    box-shadow:0 18px 50px rgba(7,89,133,.08);
}
.review-submit-card{
    overflow:hidden;
}
.review-submit-hero{
    position:relative;
    overflow:hidden;
    padding:30px;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            var(--blue),
            var(--blue-dark)
        );
}
.review-submit-hero::after{
    position:absolute;
    right:-72px;
    bottom:-118px;
    width:250px;
    height:250px;
    border-radius:50%;
    background:rgba(255,255,255,.07);
    content:"";
}
.review-submit-hero > *{
    position:relative;
    z-index:1;
}
.review-submit-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#c8edbc;
    font-size:.73rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.review-submit-hero h1{
    max-width:720px;
    margin:10px 0 0;
    color:#fff;
    font-size:clamp(1.8rem,4vw,2.7rem);
    line-height:1.08;
    letter-spacing:-.045em;
}
.review-submit-hero p{
    max-width:680px;
    margin:13px 0 0;
    color:rgba(255,255,255,.78);
    font-size:.9rem;
    line-height:1.7;
}
.review-submit-body{
    padding:28px 30px 32px;
}
.review-stepper{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
    margin-bottom:24px;
}
.review-step{
    display:flex;
    align-items:center;
    gap:9px;
    padding:10px 11px;
    border:1px solid #e2edf1;
    border-radius:13px;
    background:#f8fbfc;
    color:var(--muted);
    font-size:.68rem;
    font-weight:800;
}
.review-step-number{
    width:25px;
    height:25px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border-radius:9px;
    background:#e7f0f4;
    color:var(--blue);
    font-size:.67rem;
}
.review-step.active{
    border-color:rgba(7,89,133,.25);
    background:var(--blue-soft);
    color:var(--blue-dark);
}
.review-step.active .review-step-number{
    color:#fff;
    background:var(--blue);
}
.review-step.complete{
    border-color:rgba(79,141,61,.2);
    background:var(--green-soft);
    color:var(--green-dark);
}
.review-step.complete .review-step-number{
    color:#fff;
    background:var(--green-dark);
}
.review-panel[hidden]{
    display:none!important;
}
.review-panel-title{
    margin:0;
    color:var(--blue-dark);
    font-size:1.2rem;
    letter-spacing:-.02em;
}
.review-panel-description{
    margin:7px 0 0;
    color:var(--muted);
    font-size:.79rem;
    line-height:1.6;
}
.review-form{
    margin-top:22px;
}
.review-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.review-field{
    min-width:0;
}
.review-field.full{
    grid-column:1/-1;
}
.review-field label,
.review-form-legend{
    display:block;
    margin-bottom:7px;
    color:var(--blue-dark);
    font-size:.75rem;
    font-weight:850;
}
.review-required{
    color:#b43a43;
}
.review-input,
.review-select,
.review-textarea{
    width:100%;
    min-height:47px;
    padding:11px 13px;
    border:1px solid var(--line);
    border-radius:13px;
    outline:0;
    background:#fff;
    color:var(--ink);
    font:inherit;
    font-size:.82rem;
    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}
.review-input:focus,
.review-select:focus,
.review-textarea:focus{
    border-color:#73afc5;
    box-shadow:0 0 0 4px rgba(7,89,133,.08);
}
.review-input.invalid,
.review-select.invalid,
.review-textarea.invalid{
    border-color:#d96a72;
    box-shadow:0 0 0 3px rgba(180,58,67,.08);
}
.review-textarea{
    min-height:150px;
    resize:vertical;
    line-height:1.65;
}
.review-field-help{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-top:6px;
    color:var(--muted);
    font-size:.65rem;
    line-height:1.45;
}
.review-error-text{
    display:none;
    margin-top:6px;
    color:#b43a43;
    font-size:.65rem;
    font-weight:700;
}
.review-error-text.visible{
    display:block;
}
.review-stars-field{
    display:flex;
    flex-direction:row-reverse;
    justify-content:flex-end;
    gap:5px;
}
.review-stars-field input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.review-stars-field label{
    margin:0;
    color:#ced9de;
    cursor:pointer;
    font-size:2rem;
    line-height:1;
    transition:
        color .15s ease,
        transform .15s ease;
}
.review-stars-field label:hover,
.review-stars-field label:hover ~ label,
.review-stars-field input:checked ~ label{
    color:#d78d11;
}
.review-stars-field label:hover{
    transform:translateY(-2px);
}
.review-choice-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}
.review-choice{
    position:relative;
}
.review-choice input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.review-choice label{
    min-height:64px;
    display:flex;
    align-items:center;
    gap:10px;
    margin:0;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fbfdfe;
    color:var(--ink);
    cursor:pointer;
    font-size:.7rem;
    font-weight:800;
    line-height:1.35;
}
.review-choice-dot{
    width:19px;
    height:19px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border:2px solid #aac1cb;
    border-radius:50%;
}
.review-choice input:checked + label{
    border-color:var(--blue);
    background:var(--blue-soft);
    color:var(--blue-dark);
}
.review-choice input:checked + label .review-choice-dot{
    border-color:var(--blue);
}
.review-choice input:checked + label .review-choice-dot::after{
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--blue);
    content:"";
}
.review-consents{
    display:grid;
    gap:10px;
}
.review-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 13px;
    border:1px solid var(--line);
    border-radius:13px;
    background:#fbfdfe;
    color:var(--ink);
    font-size:.7rem;
    line-height:1.55;
    cursor:pointer;
}
.review-check input{
    width:18px;
    height:18px;
    margin-top:1px;
    flex:0 0 auto;
    accent-color:var(--blue);
}
.review-check a{
    color:var(--blue);
    font-weight:800;
}
.review-form-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:13px;
    margin-top:22px;
}
.review-submit-button,
.review-secondary-button{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 18px;
    border:1px solid transparent;
    border-radius:999px;
    cursor:pointer;
    font:inherit;
    font-size:.76rem;
    font-weight:900;
    text-decoration:none;
}
.review-submit-button{
    color:#fff;
    background:var(--blue);
}
.review-submit-button:hover{
    background:var(--blue-dark);
}
.review-secondary-button{
    border-color:var(--line);
    background:#fff;
    color:var(--blue);
}
.review-submit-button[disabled],
.review-secondary-button[disabled]{
    cursor:not-allowed;
    opacity:.55;
}
.review-loading{
    display:none;
    align-items:center;
    gap:8px;
    color:var(--muted);
    font-size:.68rem;
}
.review-loading.visible{
    display:inline-flex;
}
.review-spinner{
    width:17px;
    height:17px;
    border:2px solid #c7d8df;
    border-top-color:var(--blue);
    border-radius:50%;
    animation:review-spin .75s linear infinite;
}
@keyframes review-spin{
    to{transform:rotate(360deg)}
}
.review-alert{
    display:none;
    align-items:flex-start;
    gap:10px;
    margin-bottom:16px;
    padding:13px 14px;
    border-radius:14px;
    font-size:.72rem;
    line-height:1.55;
}
.review-alert.visible{
    display:flex;
}
.review-alert.info{
    color:#075985;
    background:#eaf6fb;
}
.review-alert.success{
    color:#3f7d2d;
    background:#eef8ea;
}
.review-alert.warning{
    color:#9c6218;
    background:#fff7e8;
}
.review-alert.danger{
    color:#a52f38;
    background:#fff0f1;
}
.review-alert-icon{
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border-radius:8px;
    background:rgba(255,255,255,.6);
    font-weight:950;
}
.review-code-wrap{
    max-width:430px;
    margin:24px auto 0;
    text-align:center;
}
.review-code-input{
    width:min(100%,320px);
    min-height:62px;
    padding:10px 16px;
    border:1px solid var(--line);
    border-radius:16px;
    outline:0;
    background:#fff;
    color:var(--blue-dark);
    font:inherit;
    font-size:1.55rem;
    font-weight:900;
    letter-spacing:.28em;
    text-align:center;
}
.review-code-input:focus{
    border-color:#73afc5;
    box-shadow:0 0 0 4px rgba(7,89,133,.08);
}
.review-destination{
    margin-top:10px;
    color:var(--muted);
    font-size:.72rem;
    line-height:1.55;
}
.review-resend-row{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:14px;
    flex-wrap:wrap;
}
.review-success-icon{
    width:68px;
    height:68px;
    display:grid;
    place-items:center;
    margin:0 auto 18px;
    border-radius:22px;
    background:var(--green-soft);
    color:var(--green-dark);
    font-size:2rem;
    font-weight:950;
}
.review-success-panel{
    max-width:600px;
    margin:0 auto;
    text-align:center;
}
.review-success-panel p{
    margin:10px auto 0;
    color:var(--muted);
    font-size:.8rem;
    line-height:1.65;
}
.review-success-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:20px;
    flex-wrap:wrap;
}
.review-profile-card,
.review-security-card{
    padding:22px;
}
.review-side{
    display:grid;
    gap:16px;
    position:sticky;
    top:92px;
}
.review-profile-head{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:14px;
    align-items:center;
}
.review-profile-photo,
.review-profile-fallback{
    width:70px;
    height:70px;
    border-radius:20px;
}
.review-profile-photo{
    object-fit:cover;
    background:#e8f1f5;
}
.review-profile-fallback{
    display:grid;
    place-items:center;
    color:#fff;
    background:
        linear-gradient(
            135deg,
            var(--blue),
            #0a7ba8
        );
    font-size:1rem;
    font-weight:950;
}
.review-profile-copy{
    min-width:0;
}
.review-profile-copy h2{
    margin:0;
    overflow:hidden;
    color:var(--blue-dark);
    font-size:1.05rem;
    letter-spacing:-.025em;
    text-overflow:ellipsis;
}
.review-profile-copy p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:.7rem;
    line-height:1.45;
}
.review-profile-headline{
    margin:17px 0 0;
    color:var(--ink);
    font-size:.75rem;
    line-height:1.65;
}
.review-profile-link{
    width:100%;
    margin-top:17px;
}
.review-security-card h2{
    margin:0;
    color:var(--blue-dark);
    font-size:.92rem;
}
.review-security-list{
    display:grid;
    gap:13px;
    margin-top:16px;
}
.review-security-item{
    display:grid;
    grid-template-columns:31px minmax(0,1fr);
    gap:10px;
    align-items:start;
}
.review-security-icon{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:var(--blue-soft);
    color:var(--blue);
    font-size:.78rem;
    font-weight:950;
}
.review-security-item strong,
.review-security-item span{
    display:block;
}
.review-security-item strong{
    color:var(--blue-dark);
    font-size:.7rem;
}
.review-security-item span{
    margin-top:3px;
    color:var(--muted);
    font-size:.63rem;
    line-height:1.5;
}
.review-unavailable{
    max-width:780px;
    margin:0 auto;
    padding:38px;
    border:1px solid var(--line);
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow);
    text-align:center;
}
.review-unavailable-icon{
    width:70px;
    height:70px;
    display:grid;
    place-items:center;
    margin:0 auto 17px;
    border-radius:22px;
    background:var(--blue-soft);
    color:var(--blue);
    font-size:1.8rem;
}
.review-unavailable h1{
    margin:0;
    color:var(--blue-dark);
    font-size:clamp(1.55rem,3vw,2.1rem);
}
.review-unavailable p{
    max-width:600px;
    margin:12px auto 0;
    color:var(--muted);
    font-size:.8rem;
    line-height:1.65;
}
.review-unavailable-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:20px;
    flex-wrap:wrap;
}
.review-honeypot{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}
@media(max-width:980px){
    .review-submit-shell{
        grid-template-columns:1fr;
    }
    .review-side{
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:720px){
    .review-submit-main{
        padding-top:24px;
    }
    .review-submit-hero,
    .review-submit-body{
        padding:23px 20px;
    }
    .review-stepper{
        grid-template-columns:1fr;
    }
    .review-form-grid,
    .review-choice-grid,
    .review-side{
        grid-template-columns:1fr;
    }
    .review-field.full{
        grid-column:auto;
    }
    .review-form-actions{
        align-items:stretch;
        flex-direction:column;
    }
    .review-form-actions .review-submit-button,
    .review-form-actions .review-secondary-button{
        width:100%;
    }
}
@media(max-width:440px){
    .review-submit-card,
    .review-profile-card,
    .review-security-card{
        border-radius:18px;
    }
    .review-submit-hero h1{
        font-size:1.7rem;
    }
}

/* ==========================================================================
   3. Resumo das avaliações
   ========================================================================== */

.snv-reviews-summary {
        --snv-rs-primary:
            var(--primary, var(--blue, #075985));
        --snv-rs-primary-dark:
            var(--primary-dark, var(--blue-dark, #063f5f));
        --snv-rs-primary-soft:
            var(--primary-soft, var(--blue-soft, #eaf6fb));
        --snv-rs-secondary:
            var(--secondary, var(--green, #78b85f));
        --snv-rs-secondary-dark:
            var(--secondary-dark, var(--green-dark, #3f7d2d));
        --snv-rs-secondary-soft:
            var(--secondary-soft, var(--green-soft, #eef8ea));
        --snv-rs-text:
            var(--text, var(--ink, #102a43));
        --snv-rs-muted:
            var(--text-soft, var(--muted, #65778c));
        --snv-rs-line:
            var(--border, var(--line, #dce8ef));
        position: relative;
        min-width: 0;
        color: var(--snv-rs-text);
    }

    .snv-reviews-summary__main {
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 0;
    }

    .snv-reviews-summary__score {
        display: flex;
        align-items: center;
        gap: 9px;
        min-width: 0;
    }

    .snv-reviews-summary__value {
        color:
            var(--snv-rs-primary-dark);
        font-size: 1.16rem;
        font-weight: 950;
        line-height: 1;
        letter-spacing: -.04em;
    }

    .snv-reviews-summary__stars {
        position: relative;
        display: inline-block;
        overflow: hidden;
        color: #d6e0e4;
        font-size: .82rem;
        line-height: 1;
        letter-spacing: .07em;
        vertical-align: middle;
        white-space: nowrap;
    }

    .snv-reviews-summary__stars-fill {
        position: absolute;
        inset: 0 auto 0 0;
        width:
            var(--snv-summary-rating, 0%);
        overflow: hidden;
        color: #d78d11;
        white-space: nowrap;
    }

    .snv-reviews-summary__copy {
        min-width: 0;
    }

    .snv-reviews-summary__official {
        display: flex;
        align-items: center;
        gap: 5px;
        color:
            var(--snv-rs-secondary-dark);
        font-size: .61rem;
        font-weight: 900;
        line-height: 1.35;
    }

    .snv-reviews-summary__official-mark {
        width: 16px;
        height: 16px;
        display: grid;
        place-items: center;
        flex: 0 0 auto;
        border-radius: 50%;
        background:
            var(--snv-rs-secondary);
        color: #fff;
        font-size: .47rem;
        font-weight: 950;
    }

    .snv-reviews-summary__counts {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-top: 3px;
        color:
            var(--snv-rs-muted);
        font-size: .61rem;
        line-height: 1.4;
        flex-wrap: wrap;
    }

    .snv-reviews-summary__separator {
        width: 3px;
        height: 3px;
        border-radius: 50%;
        background: #9bb0b9;
    }

    .snv-reviews-summary__link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        flex: 0 0 auto;
        min-height: 34px;
        padding: 6px 11px;
        border: 1px solid
            var(--snv-rs-line);
        border-radius: 999px;
        background: #fff;
        color:
            var(--snv-rs-primary);
        font-size: .62rem;
        font-weight: 900;
        line-height: 1.2;
        text-decoration: none;
        transition:
            border-color .16s ease,
            background .16s ease,
            color .16s ease,
            transform .16s ease;
    }

    .snv-reviews-summary__link:hover {
        border-color:
            rgba(7, 89, 133, .35);
        background:
            var(--snv-rs-primary-soft);
        color:
            var(--snv-rs-primary-dark);
        transform: translateY(-1px);
    }

    .snv-reviews-summary__link:focus-visible {
        outline: 3px solid
            rgba(7, 89, 133, .18);
        outline-offset: 2px;
    }

    .snv-reviews-summary__link svg {
        width: 13px;
        height: 13px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 2;
    }

    .snv-reviews-summary__empty {
        color:
            var(--snv-rs-muted);
        font-size: .67rem;
        font-weight: 800;
        line-height: 1.4;
    }

    .snv-reviews-summary__distribution {
        display: grid;
        gap: 7px;
        margin-top: 13px;
        padding-top: 12px;
        border-top: 1px solid
            var(--snv-rs-line);
    }

    .snv-reviews-summary__distribution-row {
        display: grid;
        grid-template-columns:
            48px minmax(0, 1fr) 30px;
        gap: 7px;
        align-items: center;
    }

    .snv-reviews-summary__distribution-label,
    .snv-reviews-summary__distribution-count {
        color:
            var(--snv-rs-muted);
        font-size: .55rem;
        font-weight: 800;
    }

    .snv-reviews-summary__distribution-count {
        text-align: right;
    }

    .snv-reviews-summary__distribution-track {
        height: 6px;
        overflow: hidden;
        border-radius: 999px;
        background: #e8f0f3;
    }

    .snv-reviews-summary__distribution-fill {
        display: block;
        width:
            var(--snv-summary-distribution, 0%);
        height: 100%;
        border-radius: inherit;
        background:
            linear-gradient(
                90deg,
                #d78d11,
                #f0b64a
            );
    }

    .snv-reviews-summary__details {
        margin-top: 10px;
        color:
            var(--snv-rs-muted);
        font-size: .57rem;
        line-height: 1.5;
    }

    .snv-reviews-summary--horizontal {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
    }

    .snv-reviews-summary--card {
        padding: 16px;
        border: 1px solid
            var(--snv-rs-line);
        border-radius: 17px;
        background:
            linear-gradient(
                135deg,
                #fff,
                #f9fcfd
            );
        box-shadow:
            0 9px 26px rgba(7, 89, 133, .06);
    }

    .snv-reviews-summary--card
    .snv-reviews-summary__top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    .snv-reviews-summary--compact {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        max-width: 100%;
        padding: 7px 10px;
        border: 1px solid
            var(--snv-rs-line);
        border-radius: 999px;
        background: #fff;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__main {
        gap: 8px;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__score {
        gap: 6px;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__value {
        font-size: .88rem;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__stars {
        font-size: .67rem;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__official {
        display: none;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__counts {
        margin: 0;
        font-size: .57rem;
    }

    .snv-reviews-summary--compact
    .snv-reviews-summary__link {
        min-height: 28px;
        padding: 5px 8px;
        border: 0;
        background:
            var(--snv-rs-primary-soft);
        font-size: .56rem;
    }

    .snv-reviews-summary--minimal {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        max-width: 100%;
    }

    .snv-reviews-summary--minimal
    .snv-reviews-summary__official,
    .snv-reviews-summary--minimal
    .snv-reviews-summary__details,
    .snv-reviews-summary--minimal
    .snv-reviews-summary__distribution {
        display: none;
    }

    .snv-reviews-summary--minimal
    .snv-reviews-summary__counts {
        margin: 0;
    }

    .snv-reviews-summary--minimal
    .snv-reviews-summary__link {
        min-height: auto;
        padding: 0;
        border: 0;
        background: transparent;
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    @media (max-width: 620px) {
        .snv-reviews-summary--horizontal,
        .snv-reviews-summary--card
        .snv-reviews-summary__top {
            align-items: flex-start;
            flex-direction: column;
        }

        .snv-reviews-summary--horizontal
        .snv-reviews-summary__link,
        .snv-reviews-summary--card
        .snv-reviews-summary__link {
            width: 100%;
        }

        .snv-reviews-summary--compact {
            align-items: flex-start;
            flex-direction: column;
            border-radius: 15px;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .snv-reviews-summary__link {
            transition: none;
        }

        .snv-reviews-summary__link:hover {
            transform: none;
        }
    }

/* ==========================================================================
   4. Card de avaliação nativa
   ========================================================================== */

.snv-native-review-card {
        --snv-review-primary: var(--primary, var(--blue, #075985));
        --snv-review-primary-dark: var(--primary-dark, var(--blue-dark, #063f5f));
        --snv-review-primary-soft: var(--primary-soft, var(--blue-soft, #eaf6fb));
        --snv-review-secondary: var(--secondary, var(--green, #78b85f));
        --snv-review-secondary-dark: var(--secondary-dark, var(--green-dark, #3f7d2d));
        --snv-review-secondary-soft: var(--secondary-soft, var(--green-soft, #eef8ea));
        --snv-review-text: var(--text, var(--ink, #102a43));
        --snv-review-text-soft: var(--text-soft, var(--muted, #65778c));
        --snv-review-text-light: var(--text-light, #81919b);
        --snv-review-border: var(--border, var(--line, #dce8ef));
        --snv-review-surface: #fff;
        position: relative;
        min-width: 0;
        padding: 22px;
        overflow: hidden;
        border: 1px solid var(--snv-review-border);
        border-radius: 22px;
        background:
            linear-gradient(
                180deg,
                #fff,
                #fdfefe
            );
        color: var(--snv-review-text);
        box-shadow:
            0 12px 32px rgba(7, 89, 133, .075);
    }

    .snv-native-review-card::before {
        position: absolute;
        inset: 0 auto 0 0;
        width: 4px;
        background:
            linear-gradient(
                180deg,
                var(--snv-review-secondary),
                var(--snv-review-primary)
            );
        content: "";
    }

    .snv-native-review-card::after {
        position: absolute;
        right: -52px;
        bottom: -72px;
        width: 150px;
        height: 150px;
        border-radius: 50%;
        background:
            rgba(7, 89, 133, .025);
        pointer-events: none;
        content: "";
    }

    .snv-native-review-card--featured {
        border-color:
            rgba(120, 184, 95, .5);
        box-shadow:
            0 17px 42px rgba(7, 89, 133, .105);
    }

    .snv-native-review-card__header,
    .snv-native-review-card__body,
    .snv-native-review-card__footer {
        position: relative;
        z-index: 1;
    }

    .snv-native-review-card__header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
    }

    .snv-native-review-card__identity {
        width: 100%;
        display: grid;
        grid-template-columns:
            48px minmax(0, 1fr);
        gap: 12px;
        min-width: 0;
        flex: 1 1 auto;
        align-items: center;
    }

    .snv-native-review-card__avatar,
    .snv-native-review-card__avatar-fallback {
        width: 48px;
        height: 48px;
        border-radius: 15px;
    }

    .snv-native-review-card__avatar {
        display: block;
        object-fit: cover;
        background: #edf4f6;
    }

    .snv-native-review-card__avatar-fallback {
        display: grid;
        place-items: center;
        background:
            linear-gradient(
                145deg,
                var(--snv-review-primary),
                #0a7ba8
            );
        color: #fff;
        font-size: .72rem;
        font-weight: 950;
        letter-spacing: .02em;
    }

    .snv-native-review-card__identity-copy {
        min-width: 0;
    }

    .snv-native-review-card__name {
        display: block;
        overflow: hidden;
        color: var(--snv-review-text);
        font-size: .94rem;
        font-weight: 880;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .snv-native-review-card__origin {
        display: flex;
        align-items: center;
        gap: 7px;
        min-width: 0;
        margin-top: 5px;
        color: var(--snv-review-text-soft);
        font-size: .68rem;
        line-height: 1.35;
    }

    .snv-native-review-card__brand-mark {
        width: 22px;
        height: 22px;
        display: grid;
        place-items: center;
        flex: 0 0 auto;
        border-radius: 8px;
        background:
            linear-gradient(
                145deg,
                var(--snv-review-primary),
                var(--snv-review-primary-dark)
            );
        color: #fff;
        font-size: .61rem;
        font-weight: 950;
        letter-spacing: -.03em;
    }

    .snv-native-review-card__origin-label {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .snv-native-review-card__badges {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        flex-wrap: wrap;
    }

    .snv-native-review-card__badge {
        min-height: 27px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 5px;
        padding: 5px 9px;
        border-radius: 999px;
        background: #edf3f5;
        color: var(--snv-review-text-soft);
        font-size: .58rem;
        font-weight: 900;
        line-height: 1;
        white-space: nowrap;
    }

    .snv-native-review-card__badge--verified {
        background:
            var(--snv-review-secondary-soft);
        color:
            var(--snv-review-secondary-dark);
    }

    .snv-native-review-card__badge--official {
        background:
            var(--snv-review-primary-soft);
        color:
            var(--snv-review-primary);
    }

    .snv-native-review-card__badge--featured {
        background: #fff7e7;
        color: #9b6417;
    }

    .snv-native-review-card__badge-icon {
        width: 14px;
        height: 14px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: currentColor;
        color: #fff;
        font-size: .48rem;
        font-weight: 950;
    }

    .snv-native-review-card__body {
        margin-top: 17px;
    }

    .snv-native-review-card__rating-row {
        display: flex;
        align-items: center;
        gap: 9px;
        flex-wrap: wrap;
    }

    .snv-native-review-card__stars {
        position: relative;
        display: inline-block;
        overflow: hidden;
        color: #d7e0e4;
        font-size: .94rem;
        line-height: 1;
        letter-spacing: .08em;
        vertical-align: middle;
        white-space: nowrap;
    }

    .snv-native-review-card__stars-fill {
        position: absolute;
        inset: 0 auto 0 0;
        width:
            var(--snv-native-rating, 0%);
        overflow: hidden;
        color: #d78d11;
        white-space: nowrap;
    }

    .snv-native-review-card__rating-value {
        color:
            var(--snv-review-text-soft);
        font-size: .67rem;
        font-weight: 850;
    }

    .snv-native-review-card__title {
        margin: 16px 0 0;
        color: var(--snv-review-text);
        font-size: 1rem;
        line-height: 1.4;
        letter-spacing: -.015em;
    }

    .snv-native-review-card__quote {
        position: relative;
        margin: 11px 0 0;
        padding: 0 0 0 19px;
        border: 0;
        color:
            var(--snv-review-text-soft);
        font-size: .84rem;
        line-height: 1.72;
        overflow-wrap: anywhere;
        white-space: pre-line;
    }

    .snv-native-review-card__quote::before {
        position: absolute;
        left: 0;
        top: -.09em;
        color:
            rgba(7, 89, 133, .25);
        font-family:
            Georgia,
            "Times New Roman",
            serif;
        font-size: 1.85rem;
        line-height: 1;
        content: "“";
    }

    .snv-native-review-card__footer {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 14px;
        margin-top: 19px;
        padding-top: 15px;
        border-top:
            1px solid var(--snv-review-border);
    }

    .snv-native-review-card__meta {
        min-width: 0;
    }

    .snv-native-review-card__date {
        display: block;
        color:
            var(--snv-review-text-light);
        font-size: .63rem;
        line-height: 1.4;
    }

    .snv-native-review-card__note {
        display: block;
        max-width: 600px;
        margin-top: 5px;
        color:
            var(--snv-review-text-light);
        font-size: .59rem;
        line-height: 1.5;
    }

    .snv-native-review-card__official-seal {
        display: inline-flex;
        margin-left: auto;
        align-items: center;
        gap: 7px;
        flex: 0 0 auto;
        min-height: 34px;
        padding: 7px 10px;
        border:
            1px solid rgba(7, 89, 133, .13);
        border-radius: 999px;
        background:
            var(--snv-review-primary-soft);
        color:
            var(--snv-review-primary);
        font-size: .59rem;
        font-weight: 900;
        line-height: 1.25;
        white-space: nowrap;
    }

    .snv-native-review-card__official-seal-mark {
        width: 18px;
        height: 18px;
        display: grid;
        place-items: center;
        border-radius: 6px;
        background:
            var(--snv-review-primary);
        color: #fff;
        font-size: .52rem;
        letter-spacing: -.04em;
    }

    .snv-native-review-card--compact {
        padding: 18px;
        border-radius: 18px;
    }

    .snv-native-review-card--compact
    .snv-native-review-card__avatar,
    .snv-native-review-card--compact
    .snv-native-review-card__avatar-fallback {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .snv-native-review-card--compact
    .snv-native-review-card__identity {
        grid-template-columns:
            42px minmax(0, 1fr);
        gap: 10px;
    }

    .snv-native-review-card--compact
    .snv-native-review-card__body {
        margin-top: 14px;
    }

    .snv-native-review-card--compact
    .snv-native-review-card__title {
        margin-top: 13px;
        font-size: .91rem;
    }

    .snv-native-review-card--compact
    .snv-native-review-card__quote {
        margin-top: 8px;
        font-size: .78rem;
        line-height: 1.65;
    }

    .snv-native-review-card--compact
    .snv-native-review-card__footer {
        margin-top: 15px;
        padding-top: 12px;
    }

    @media (max-width: 620px) {
        .snv-native-review-card {
            padding: 18px;
            border-radius: 18px;
        }

        .snv-native-review-card__header,
        .snv-native-review-card__footer {
            align-items: flex-start;
            flex-direction: column;
        }

        .snv-native-review-card__badges {
            justify-content: flex-start;
            padding-left: 60px;
        }

        .snv-native-review-card__official-seal {
            width: auto;
            max-width: 100%;
            align-self: flex-end;
            justify-content: center;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .snv-native-review-card * {
            scroll-behavior: auto !important;
        }
    }

/* --------------------------------------------------------------------------
   Compatibilidade visual do card nativo simplificado

   O componente atual não renderiza a origem nem os badges superiores por
   padrão. Estes seletores também protegem páginas estáticas que ainda tenham
   sido geradas com uma versão anterior do template, mantendo apenas o selo
   inferior "Avaliação Sanivio".
   -------------------------------------------------------------------------- */

.snv-reviews-section .snv-native-review-card__origin,
.snv-reviews-section .snv-native-review-card__badges {
    display: none !important;
}

.snv-reviews-section .snv-native-review-card__header {
    align-items: center;
}

.snv-reviews-section .snv-native-review-card__identity {
    width: 100%;
}

.snv-reviews-section .snv-native-review-card__official-seal {
    margin-left: auto;
}

/* ==========================================================================
   5. Card de avaliação externa
   ========================================================================== */

.snv-external-review-card {
        --snv-review-primary: var(--primary, var(--blue, #075985));
        --snv-review-primary-dark: var(--primary-dark, var(--blue-dark, #064663));
        --snv-review-primary-soft: var(--primary-soft, var(--blue-soft, #e7f4f8));
        --snv-review-secondary: var(--secondary, var(--green, #78b85f));
        --snv-review-secondary-dark: var(--secondary-dark, var(--green-dark, #5e9b48));
        --snv-review-secondary-soft: var(--secondary-soft, var(--green-soft, #eff8eb));
        --snv-review-text: var(--text, var(--ink, #17313b));
        --snv-review-text-soft: var(--text-soft, var(--muted, #5d7078));
        --snv-review-text-light: var(--text-light, #809098);
        --snv-review-border: var(--border, var(--line, #dce8eb));
        --snv-review-surface: #fff;
        position: relative;
        min-width: 0;
        padding: 22px;
        overflow: hidden;
        border: 1px solid var(--snv-review-border);
        border-radius: 22px;
        background: var(--snv-review-surface);
        color: var(--snv-review-text);
        box-shadow: 0 12px 32px rgba(7, 89, 133, .075);
    }

    .snv-external-review-card::before {
        position: absolute;
        inset: 0 auto 0 0;
        width: 4px;
        background: linear-gradient(
            180deg,
            var(--snv-review-primary),
            var(--snv-review-secondary)
        );
        content: "";
    }

    .snv-external-review-card--featured {
        border-color: rgba(120, 184, 95, .46);
        box-shadow: 0 16px 38px rgba(7, 89, 133, .1);
    }

    .snv-external-review-card__header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
    }

    .snv-external-review-card__identity {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 12px;
        min-width: 0;
        align-items: center;
    }

    .snv-external-review-card__avatar,
    .snv-external-review-card__avatar-fallback {
        width: 48px;
        height: 48px;
        border-radius: 15px;
    }

    .snv-external-review-card__avatar {
        display: block;
        object-fit: cover;
        background: #edf4f6;
    }

    .snv-external-review-card__avatar-fallback {
        display: grid;
        place-items: center;
        background: linear-gradient(
            145deg,
            var(--snv-review-primary),
            var(--snv-review-secondary)
        );
        color: #fff;
        font-size: .72rem;
        font-weight: 900;
        letter-spacing: .02em;
    }

    .snv-external-review-card__identity-copy {
        min-width: 0;
    }

    .snv-external-review-card__name {
        display: block;
        overflow: hidden;
        color: var(--snv-review-text);
        font-size: .94rem;
        font-weight: 850;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .snv-external-review-card__source {
        display: flex;
        align-items: center;
        gap: 7px;
        min-width: 0;
        margin-top: 5px;
        color: var(--snv-review-text-soft);
        font-size: .68rem;
        line-height: 1.35;
    }

    .snv-external-review-card__platform-mark {
        width: 21px;
        height: 21px;
        display: grid;
        place-items: center;
        flex: 0 0 auto;
        border: 1px solid rgba(7, 89, 133, .13);
        border-radius: 7px;
        background: var(--snv-review-primary-soft);
        color: var(--snv-review-primary);
        font-size: .62rem;
        font-weight: 950;
        text-transform: uppercase;
    }

    .snv-external-review-card__platform-name {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .snv-external-review-card__badges {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        flex-wrap: wrap;
    }

    .snv-external-review-card__badge {
        min-height: 27px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 5px;
        padding: 5px 9px;
        border-radius: 999px;
        background: #edf3f5;
        color: var(--snv-review-text-soft);
        font-size: .58rem;
        font-weight: 900;
        line-height: 1;
        white-space: nowrap;
    }

    .snv-external-review-card__badge--verified {
        background: var(--snv-review-secondary-soft);
        color: var(--snv-review-secondary-dark);
    }

    .snv-external-review-card__badge--featured {
        background: #fff7e7;
        color: #9b6417;
    }

    .snv-external-review-card__badge-icon {
        width: 13px;
        height: 13px;
        display: grid;
        place-items: center;
        border-radius: 50%;
        background: currentColor;
        color: #fff;
        font-size: .48rem;
        font-weight: 950;
    }

    .snv-external-review-card__rating-row {
        display: flex;
        align-items: center;
        gap: 9px;
        margin-top: 18px;
        flex-wrap: wrap;
    }

    .snv-external-review-card__stars {
        position: relative;
        display: inline-block;
        overflow: hidden;
        color: #d7e0e4;
        font-size: .92rem;
        line-height: 1;
        letter-spacing: .08em;
        vertical-align: middle;
        white-space: nowrap;
    }

    .snv-external-review-card__stars-fill {
        position: absolute;
        inset: 0 auto 0 0;
        width: var(--snv-external-rating, 0%);
        overflow: hidden;
        color: #d78d11;
        white-space: nowrap;
    }

    .snv-external-review-card__rating-value {
        color: var(--snv-review-text-soft);
        font-size: .67rem;
        font-weight: 850;
    }

    .snv-external-review-card__title {
        margin: 17px 0 0;
        color: var(--snv-review-text);
        font-size: 1rem;
        line-height: 1.4;
        letter-spacing: -.015em;
    }

    .snv-external-review-card__text {
        margin: 11px 0 0;
        color: var(--snv-review-text-soft);
        font-size: .84rem;
        line-height: 1.72;
        overflow-wrap: anywhere;
        white-space: pre-line;
    }

    .snv-external-review-card__footer {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 14px;
        margin-top: 19px;
        padding-top: 15px;
        border-top: 1px solid var(--snv-review-border);
    }

    .snv-external-review-card__meta {
        min-width: 0;
    }

    .snv-external-review-card__date {
        display: block;
        color: var(--snv-review-text-light);
        font-size: .63rem;
        line-height: 1.4;
    }

    .snv-external-review-card__disclaimer {
        display: block;
        max-width: 560px;
        margin-top: 5px;
        color: var(--snv-review-text-light);
        font-size: .59rem;
        line-height: 1.5;
    }

    .snv-external-review-card__source-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        flex: 0 0 auto;
        min-height: 34px;
        padding: 7px 11px;
        border: 1px solid var(--snv-review-border);
        border-radius: 999px;
        background: #fff;
        color: var(--snv-review-primary);
        font-size: .62rem;
        font-weight: 850;
        line-height: 1.2;
        text-decoration: none;
        transition:
            border-color .16s ease,
            background .16s ease,
            color .16s ease,
            transform .16s ease;
    }

    .snv-external-review-card__source-link:hover {
        border-color: rgba(7, 89, 133, .4);
        background: var(--snv-review-primary-soft);
        color: var(--snv-review-primary-dark);
        transform: translateY(-1px);
    }

    .snv-external-review-card__source-link:focus-visible {
        outline: 3px solid rgba(7, 89, 133, .2);
        outline-offset: 2px;
    }

    .snv-external-review-card__source-link svg {
        width: 14px;
        height: 14px;
        flex: 0 0 auto;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }

    .snv-external-review-card--compact {
        padding: 18px;
        border-radius: 18px;
    }

    .snv-external-review-card--compact
    .snv-external-review-card__avatar,
    .snv-external-review-card--compact
    .snv-external-review-card__avatar-fallback {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .snv-external-review-card--compact
    .snv-external-review-card__identity {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 10px;
    }

    .snv-external-review-card--compact
    .snv-external-review-card__rating-row {
        margin-top: 14px;
    }

    .snv-external-review-card--compact
    .snv-external-review-card__title {
        margin-top: 13px;
        font-size: .91rem;
    }

    .snv-external-review-card--compact
    .snv-external-review-card__text {
        margin-top: 8px;
        font-size: .78rem;
        line-height: 1.65;
    }

    .snv-external-review-card--compact
    .snv-external-review-card__footer {
        margin-top: 15px;
        padding-top: 12px;
    }

    @media (max-width: 620px) {
        .snv-external-review-card {
            padding: 18px;
            border-radius: 18px;
        }

        .snv-external-review-card__header,
        .snv-external-review-card__footer {
            align-items: flex-start;
            flex-direction: column;
        }

        .snv-external-review-card__badges {
            justify-content: flex-start;
            padding-left: 60px;
        }

        .snv-external-review-card__source-link {
            width: 100%;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .snv-external-review-card__source-link {
            transition: none;
        }

        .snv-external-review-card__source-link:hover {
            transform: none;
        }
    }

/* ==========================================================================
   6. Seção completa
   ========================================================================== */

.snv-reviews-section {
        --snv-reviews-primary:
            var(--primary, var(--blue, #075985));
        --snv-reviews-primary-dark:
            var(--primary-dark, var(--blue-dark, #063f5f));
        --snv-reviews-primary-soft:
            var(--primary-soft, var(--blue-soft, #eaf6fb));
        --snv-reviews-secondary:
            var(--secondary, var(--green, #78b85f));
        --snv-reviews-secondary-dark:
            var(--secondary-dark, var(--green-dark, #3f7d2d));
        --snv-reviews-secondary-soft:
            var(--secondary-soft, var(--green-soft, #eef8ea));
        --snv-reviews-text:
            var(--text, var(--ink, #102a43));
        --snv-reviews-muted:
            var(--text-soft, var(--muted, #65778c));
        --snv-reviews-line:
            var(--border, var(--line, #dce8ef));
        --snv-reviews-background:
            var(--background-soft, #f5fafc);
        position: relative;
        padding: 34px 0;
        scroll-margin-top: 90px;
    }

    .snv-reviews-section__header {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 24px;
        margin-bottom: 22px;
    }

    .snv-reviews-section__heading {
        min-width: 0;
        max-width: 760px;
    }

    .snv-reviews-section__eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        color:
            var(--snv-reviews-secondary-dark);
        font-size: .68rem;
        font-weight: 950;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    .snv-reviews-section__eyebrow-mark {
        width: 22px;
        height: 22px;
        display: grid;
        place-items: center;
        border-radius: 8px;
        background:
            var(--snv-reviews-secondary-soft);
        color:
            var(--snv-reviews-secondary-dark);
        font-size: .66rem;
    }

    .snv-reviews-section__title {
        margin: 8px 0 0;
        color: var(--snv-reviews-text);
        font-size:
            clamp(1.45rem, 3vw, 2.05rem);
        line-height: 1.16;
        letter-spacing: -.04em;
    }

    .snv-reviews-section__subtitle {
        max-width: 720px;
        margin: 10px 0 0;
        color: var(--snv-reviews-muted);
        font-size: .84rem;
        line-height: 1.7;
        white-space: pre-line;
    }

    .snv-reviews-section__cta {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        flex: 0 0 auto;
        padding: 9px 17px;
        border: 1px solid
            var(--snv-reviews-primary);
        border-radius: 999px;
        background:
            var(--snv-reviews-primary);
        color: #fff;
        font-size: .72rem;
        font-weight: 900;
        text-decoration: none;
        transition:
            background .16s ease,
            border-color .16s ease,
            transform .16s ease;
    }

    .snv-reviews-section__cta:hover {
        border-color:
            var(--snv-reviews-primary-dark);
        background:
            var(--snv-reviews-primary-dark);
        color: #fff;
        transform: translateY(-1px);
    }

    .snv-reviews-section__cta:focus-visible {
        outline: 3px solid
            rgba(7, 89, 133, .2);
        outline-offset: 3px;
    }

    .snv-reviews-section__cta svg {
        width: 15px;
        height: 15px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.9;
    }

    .snv-reviews-section__summary {
        display: grid;
        grid-template-columns:
            minmax(210px, .72fr)
            minmax(300px, 1.28fr)
            minmax(210px, .72fr);
        gap: 13px;
        margin-bottom: 19px;
    }

    .snv-reviews-section__score,
    .snv-reviews-section__distribution,
    .snv-reviews-section__source-summary {
        min-width: 0;
        border: 1px solid
            var(--snv-reviews-line);
        border-radius: 20px;
        background: #fff;
        box-shadow:
            0 12px 34px rgba(7, 89, 133, .06);
    }

    .snv-reviews-section__score {
        display: grid;
        place-items: center;
        padding: 20px;
        text-align: center;
    }

    .snv-reviews-section__score-value {
        display: block;
        color:
            var(--snv-reviews-primary-dark);
        font-size: 2.35rem;
        font-weight: 950;
        line-height: 1;
        letter-spacing: -.055em;
    }

    .snv-reviews-section__score-stars {
        position: relative;
        display: inline-block;
        overflow: hidden;
        margin-top: 8px;
        color: #d7e0e4;
        font-size: .9rem;
        line-height: 1;
        letter-spacing: .08em;
        white-space: nowrap;
    }

    .snv-reviews-section__score-stars-fill {
        position: absolute;
        inset: 0 auto 0 0;
        width:
            var(--snv-reviews-rating, 0%);
        overflow: hidden;
        color: #d78d11;
        white-space: nowrap;
    }

    .snv-reviews-section__score-label {
        display: block;
        margin-top: 8px;
        color:
            var(--snv-reviews-muted);
        font-size: .63rem;
        line-height: 1.5;
    }

    .snv-reviews-section__official-label {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 5px;
        margin-top: 9px;
        padding: 5px 8px;
        border-radius: 999px;
        background:
            var(--snv-reviews-secondary-soft);
        color:
            var(--snv-reviews-secondary-dark);
        font-size: .55rem;
        font-weight: 900;
    }

    .snv-reviews-section__distribution {
        display: grid;
        gap: 8px;
        padding: 17px 19px;
    }

    .snv-reviews-section__distribution-row {
        display: grid;
        grid-template-columns:
            62px minmax(0, 1fr) 40px;
        gap: 9px;
        align-items: center;
    }

    .snv-reviews-section__distribution-label,
    .snv-reviews-section__distribution-count {
        color:
            var(--snv-reviews-muted);
        font-size: .61rem;
        font-weight: 800;
    }

    .snv-reviews-section__distribution-label {
        white-space: nowrap;
    }

    .snv-reviews-section__distribution-count {
        text-align: right;
    }

    .snv-reviews-section__distribution-track {
        height: 7px;
        overflow: hidden;
        border-radius: 999px;
        background: #e8f0f3;
    }

    .snv-reviews-section__distribution-fill {
        display: block;
        width:
            clamp(0%, var(--snv-distribution, 0%), 100%);
        max-width: 100%;
        height: 100%;
        border-radius: inherit;
        background:
            linear-gradient(
                90deg,
                #d78d11,
                #efb647
            );
    }

    .snv-reviews-section[data-distribution-consistent="false"]
    .snv-reviews-section__distribution {
        border-color: rgba(154, 103, 0, .34);
    }

    .snv-reviews-section[data-distribution-consistent="false"]
    .snv-reviews-section__distribution::after {
        display: block;
        margin-top: 3px;
        color: #8a6200;
        font-size: .56rem;
        line-height: 1.45;
        content: "Distribuição em atualização.";
    }

    .snv-reviews-section__source-summary {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 19px;
    }

    .snv-reviews-section__source-summary strong {
        display: block;
        color:
            var(--snv-reviews-primary-dark);
        font-size: .82rem;
        line-height: 1.4;
    }

    .snv-reviews-section__source-summary p {
        margin: 7px 0 0;
        color:
            var(--snv-reviews-muted);
        font-size: .64rem;
        line-height: 1.55;
    }

    .snv-reviews-section__source-counts {
        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-top: 13px;
    }

    .snv-reviews-section__source-count {
        padding: 10px;
        border-radius: 12px;
        background:
            var(--snv-reviews-background);
    }

    .snv-reviews-section__source-count span,
    .snv-reviews-section__source-count strong {
        display: block;
    }

    .snv-reviews-section__source-count strong {
        color:
            var(--snv-reviews-primary-dark);
        font-size: .88rem;
    }

    .snv-reviews-section__source-count span {
        margin-top: 3px;
        color:
            var(--snv-reviews-muted);
        font-size: .55rem;
        line-height: 1.35;
    }

    .snv-reviews-section__toolbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 15px;
        padding: 8px;
        border: 1px solid
            var(--snv-reviews-line);
        border-radius: 16px;
        background: #fff;
    }

    .snv-reviews-section__tabs {
        display: flex;
        align-items: center;
        gap: 5px;
        min-width: 0;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .snv-reviews-section__tab {
        min-height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 7px 12px;
        border: 0;
        border-radius: 11px;
        background: transparent;
        color:
            var(--snv-reviews-muted);
        cursor: pointer;
        font: inherit;
        font-size: .66rem;
        font-weight: 850;
        white-space: nowrap;
    }

    .snv-reviews-section__tab:hover {
        color:
            var(--snv-reviews-primary);
        background:
            var(--snv-reviews-primary-soft);
    }

    .snv-reviews-section__tab[aria-selected="true"] {
        background:
            var(--snv-reviews-primary);
        color: #fff;
    }

    .snv-reviews-section__tab-count {
        min-width: 20px;
        height: 20px;
        display: inline-grid;
        place-items: center;
        padding: 0 5px;
        border-radius: 999px;
        background:
            rgba(255, 255, 255, .18);
        font-size: .55rem;
    }

    .snv-reviews-section__tab:not(
        [aria-selected="true"]
    )
    .snv-reviews-section__tab-count {
        background: #edf3f5;
        color:
            var(--snv-reviews-muted);
    }

    .snv-reviews-section__toolbar-note {
        flex: 0 0 auto;
        padding: 0 8px;
        color:
            var(--snv-reviews-muted);
        font-size: .59rem;
        line-height: 1.4;
        text-align: right;
    }

    .snv-reviews-section__panels {
        min-width: 0;
    }

    .snv-reviews-section__panel[hidden] {
        display: none !important;
    }

    .snv-reviews-section__group + 
    .snv-reviews-section__group {
        margin-top: 28px;
    }

    .snv-reviews-section__group-header {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 13px;
    }

    .snv-reviews-section__group-header h3 {
        margin: 0;
        color:
            var(--snv-reviews-primary-dark);
        font-size: .96rem;
        letter-spacing: -.02em;
    }

    .snv-reviews-section__group-header p {
        max-width: 670px;
        margin: 5px 0 0;
        color:
            var(--snv-reviews-muted);
        font-size: .65rem;
        line-height: 1.55;
    }

    .snv-reviews-section__group-badge {
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        padding: 5px 9px;
        border-radius: 999px;
        background: #edf3f5;
        color:
            var(--snv-reviews-muted);
        font-size: .58rem;
        font-weight: 900;
        white-space: nowrap;
    }

    .snv-reviews-section__grid {
        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .snv-reviews-section--list
    .snv-reviews-section__grid {
        grid-template-columns: 1fr;
    }

    .snv-reviews-section--compact
    .snv-reviews-section__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .snv-reviews-section__item[hidden] {
        display: none !important;
    }

    .snv-reviews-section__more-row {
        display: flex;
        justify-content: center;
        margin-top: 16px;
    }

    .snv-reviews-section__more {
        min-height: 40px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 8px 15px;
        border: 1px solid
            var(--snv-reviews-line);
        border-radius: 999px;
        background: #fff;
        color:
            var(--snv-reviews-primary);
        cursor: pointer;
        font: inherit;
        font-size: .68rem;
        font-weight: 900;
    }

    .snv-reviews-section__more:hover {
        border-color:
            rgba(7, 89, 133, .35);
        background:
            var(--snv-reviews-primary-soft);
    }

    .snv-reviews-section__more[hidden] {
        display: none !important;
    }

    .snv-reviews-section__explanation {
        display: grid;
        grid-template-columns:
            31px minmax(0, 1fr);
        gap: 10px;
        align-items: start;
        margin-top: 20px;
        padding: 13px 14px;
        border: 1px solid
            var(--snv-reviews-line);
        border-radius: 15px;
        background:
            var(--snv-reviews-background);
    }

    .snv-reviews-section__explanation-icon {
        width: 31px;
        height: 31px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background:
            var(--snv-reviews-primary-soft);
        color:
            var(--snv-reviews-primary);
        font-size: .72rem;
        font-weight: 950;
    }

    .snv-reviews-section__explanation strong,
    .snv-reviews-section__explanation span {
        display: block;
    }

    .snv-reviews-section__explanation strong {
        color:
            var(--snv-reviews-primary-dark);
        font-size: .69rem;
    }

    .snv-reviews-section__explanation span {
        margin-top: 4px;
        color:
            var(--snv-reviews-muted);
        font-size: .62rem;
        line-height: 1.55;
    }

    .snv-reviews-section__empty {
        position: relative;
        overflow: hidden;
        padding: 38px 24px;
        border: 1px solid
            var(--snv-reviews-line);
        border-radius: 22px;
        background:
            linear-gradient(
                135deg,
                #fff,
                var(--snv-reviews-background)
            );
        text-align: center;
        box-shadow:
            0 12px 34px rgba(7, 89, 133, .055);
    }

    .snv-reviews-section__empty::after {
        position: absolute;
        right: -65px;
        bottom: -90px;
        width: 180px;
        height: 180px;
        border-radius: 50%;
        background:
            rgba(7, 89, 133, .035);
        content: "";
    }

    .snv-reviews-section__empty-icon,
    .snv-reviews-section__empty h3,
    .snv-reviews-section__empty p,
    .snv-reviews-section__empty a {
        position: relative;
        z-index: 1;
    }

    .snv-reviews-section__empty-icon {
        width: 62px;
        height: 62px;
        display: grid;
        place-items: center;
        margin: 0 auto 16px;
        border-radius: 20px;
        background:
            var(--snv-reviews-primary-soft);
        color:
            var(--snv-reviews-primary);
        font-size: 1.45rem;
    }

    .snv-reviews-section__empty h3 {
        margin: 0;
        color:
            var(--snv-reviews-primary-dark);
        font-size: 1.12rem;
        letter-spacing: -.025em;
    }

    .snv-reviews-section__empty p {
        max-width: 670px;
        margin: 10px auto 0;
        color:
            var(--snv-reviews-muted);
        font-size: .75rem;
        line-height: 1.65;
        white-space: pre-line;
    }

    .snv-reviews-section__empty .snv-reviews-section__cta {
        margin-top: 18px;
    }

    @media (max-width: 1050px) {
        .snv-reviews-section__summary {
            grid-template-columns:
                minmax(210px, .72fr)
                minmax(320px, 1.28fr);
        }

        .snv-reviews-section__source-summary {
            grid-column: 1 / -1;
        }

        .snv-reviews-section--compact
        .snv-reviews-section__grid {
            grid-template-columns:
                repeat(2, minmax(0, 1fr));
        }
    }

    @media (max-width: 760px) {
        .snv-reviews-section {
            padding: 26px 0;
        }

        .snv-reviews-section__header {
            align-items: flex-start;
            flex-direction: column;
        }

        .snv-reviews-section__header
        .snv-reviews-section__cta {
            width: 100%;
        }

        .snv-reviews-section__summary,
        .snv-reviews-section__grid,
        .snv-reviews-section--compact
        .snv-reviews-section__grid {
            grid-template-columns: 1fr;
        }

        .snv-reviews-section__source-summary {
            grid-column: auto;
        }

        .snv-reviews-section__toolbar {
            align-items: stretch;
            flex-direction: column;
        }

        .snv-reviews-section__toolbar-note {
            padding: 0 4px 4px;
            text-align: left;
        }

        .snv-reviews-section__group-header {
            align-items: flex-start;
            flex-direction: column;
        }
    }

    @media (max-width: 480px) {
        .snv-reviews-section__distribution-row {
            grid-template-columns:
                55px minmax(0, 1fr) 34px;
        }

        .snv-reviews-section__source-counts {
            grid-template-columns: 1fr;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .snv-reviews-section__cta {
            transition: none;
        }

        .snv-reviews-section__cta:hover {
            transform: none;
        }
    }

/* ==========================================================================
   7. Integração, impressão e preferências do usuário
   ========================================================================== */

.snv-reviews-section[data-loading="true"],
.snv-reviews-summary[data-loading="true"] {
    cursor: progress;
    opacity: .72;
}

.snv-reviews-section[data-loading="true"] *,
.snv-reviews-summary[data-loading="true"] * {
    pointer-events: none;
}

@media print {
    .public-review-submit-page .review-form-actions,
    .public-review-submit-page .review-resend-row,
    .public-review-submit-page .review-submit-button,
    .public-review-submit-page .review-secondary-button,
    .snv-reviews-section__cta,
    .snv-reviews-section__toolbar,
    .snv-reviews-section__more-row,
    .snv-reviews-section .snv-native-review-card__origin,
    .snv-reviews-section .snv-native-review-card__badges,
    .snv-reviews-summary__link,
    .snv-external-review-card__source-link {
        display: none !important;
    }

    .public-review-submit-page,
    .review-submit-main,
    .snv-reviews-section {
        background: #fff !important;
    }

    .review-submit-card,
    .review-profile-card,
    .review-security-card,
    .snv-reviews-section__score,
    .snv-reviews-section__distribution,
    .snv-reviews-section__source-summary,
    .snv-native-review-card,
    .snv-external-review-card,
    .snv-reviews-summary--card {
        box-shadow: none !important;
        break-inside: avoid;
    }

    .snv-reviews-section__item[hidden] {
        display: block !important;
    }
}

@media (prefers-contrast: more) {
    .review-input,
    .review-select,
    .review-textarea,
    .review-code-input,
    .snv-native-review-card,
    .snv-external-review-card,
    .snv-reviews-section__score,
    .snv-reviews-section__distribution,
    .snv-reviews-section__source-summary,
    .snv-reviews-summary--card,
    .snv-reviews-summary--compact {
        border-width: 2px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-review-submit-page *,
    .public-review-submit-page *::before,
    .public-review-submit-page *::after,
    .snv-reviews-summary *,
    .snv-reviews-summary *::before,
    .snv-reviews-summary *::after,
    .snv-native-review-card *,
    .snv-native-review-card *::before,
    .snv-native-review-card *::after,
    .snv-external-review-card *,
    .snv-external-review-card *::before,
    .snv-external-review-card *::after,
    .snv-reviews-section *,
    .snv-reviews-section *::before,
    .snv-reviews-section *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
