/* Estilos do componente `clamp_reveal`.
   Antes eram montados por concatenação de string dentro de um IIFE inline
   repetido por card (2.348 cópias em /external-ads). Agora são CSS de verdade,
   carregado uma vez, e continuam funcionando sem JavaScript (o texto fica
   truncado; só a revelação por hover/clique depende do script). */
.clamp-reveal { position: relative; }

.clamp-reveal__text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--clamp-lines, 3);
    overflow: hidden;
}

.clamp-reveal__overlay {
    display: none;
    position: absolute;
    top: -8px;
    left: -8px;
    right: -8px;
    margin: 0;
    padding: 8px 10px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
    z-index: 40;
    max-height: 240px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.clamp-reveal.is-truncated .clamp-reveal__text { cursor: pointer; }

.clamp-reveal.is-truncated:hover .clamp-reveal__overlay,
.clamp-reveal.is-open .clamp-reveal__overlay { display: block; }
