/*
Theme Name: Leadlovers Blog
Theme URI: https://blog.leadlovers.com
Author: leadlovers · Wise Start
Author URI: https://leadlovers.com
Description: Tema block (FSE) do Blog da leadlovers — direção "Casa da Marca": Montserrat, magenta #DD235B, pill buttons, textura de bolinhas e capas automáticas por trilha. SEO/GEO embutidos: schema JSON-LD condicional, breadcrumbs, tempo de leitura, llms.txt, author box E-E-A-T.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 0.3.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: leadlovers-blog
Tags: blog, news, one-column, custom-colors, custom-logo, editor-style, block-patterns, full-site-editing, threaded-comments, translation-ready
*/

/* ==========================================================================
   Tokens complementares (o grosso vem do theme.json)
   ========================================================================== */
body {
	--ll-magenta: var(--wp--preset--color--magenta, #DD235B);
	--ll-magenta-dark: var(--wp--preset--color--magenta-dark, #AC1C47);
	--ll-wine: var(--wp--preset--color--wine, #801435);
	--ll-tint: var(--wp--preset--color--tint, #FBE5EB);
	--ll-ink: var(--wp--preset--color--contrast, #1F1F1F);
	--ll-gray: var(--wp--preset--color--gray, #676767);
	--ll-line: var(--wp--preset--color--line, #EBEBEB);
	--ll-surface: var(--wp--preset--color--surface, #F7F7F7);
	--ll-dots: #E5E5E5;
	--ll-r: 8px;
	--ll-r-lg: 16px;
	--ll-shadow: 0 0 15px rgba(0, 0, 0, .1);
	--ll-shadow-hover: 2px 2px 25px rgba(0, 0, 0, .18);
	--ll-ease: all .3s ease;
	-webkit-font-smoothing: antialiased;
}

/* Fallback com métricas alinhadas à Montserrat: reduz o reflow (CLS)
   enquanto a fonte variável carrega com font-display: swap */
@font-face {
	font-family: "Montserrat Fallback";
	src: local("Arial");
	ascent-override: 92%;
	descent-override: 24%;
	line-gap-override: 0%;
	size-adjust: 112%;
}

h1, h2, h3, h4, h5, h6, blockquote, figcaption { text-wrap: balance; }
p { text-wrap: pretty; }
img { height: auto; }
html, body { overflow-x: clip; }

:where(a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible) {
	outline: 2px solid var(--ll-magenta);
	outline-offset: 2px;
	border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Botões (base pill vem do theme.json; aqui: levitação + variantes)
   ========================================================================== */
.wp-element-button, .wp-block-button__link {
	box-sizing: border-box; /* content-box + width:100% fazia o pill vazar o card */
	transition: var(--ll-ease);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.wp-element-button:hover, .wp-block-button__link:hover {
	transform: translateY(-4px);
	box-shadow: var(--ll-shadow-hover);
}

/* Verde de conversão em tom AA (branco sobre #30C742 reprova WCAG: 2,24:1).
   O verde vivo da marca segue disponível para usos decorativos. */
.is-style-ll-green .wp-block-button__link {
	background-color: #1B7A38;
}
.is-style-ll-green .wp-block-button__link:hover {
	background-color: #14602D;
	box-shadow: 0 4px 12px rgba(27, 122, 56, .35);
}
.is-style-ll-ghost .wp-block-button__link {
	background-color: var(--wp--preset--color--base, #fff);
	color: var(--ll-ink);
	border: 1px solid var(--ll-line);
	font-weight: 600;
}
.is-style-ll-ghost .wp-block-button__link:hover {
	background-color: var(--ll-surface);
}

/* Read More do Query Loop vira o CTA pill do hero */
.wp-block-read-more {
	background: var(--ll-magenta);
	color: #fff;
	font-weight: 600;
	font-size: .92rem;
	padding: 13px 28px;
	border-radius: 100px;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: var(--ll-ease);
	width: fit-content;
}
.wp-block-read-more:hover {
	background: var(--ll-magenta-dark);
	color: #fff;
	transform: translateY(-4px);
	box-shadow: var(--ll-shadow-hover);
}

/* Link sublinhado magenta (padrão .btn-demo-scroll do institucional) */
.ll-link-scroll a, a.ll-link-scroll {
	color: var(--ll-magenta);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-size: .92rem;
}
.ll-link-scroll a:hover, a.ll-link-scroll:hover {
	color: var(--ll-wine);
	text-decoration-thickness: 2px;
}

/* ==========================================================================
   Textura de bolinhas (assinatura do hero institucional)
   ========================================================================== */
.ll-dots-bg { position: relative; }
.ll-dots-bg > * { position: relative; z-index: 1; }
.ll-dots-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: radial-gradient(var(--ll-dots) 2.5px, transparent 2.5px);
	background-size: 50px 50px;
	-webkit-mask-image: linear-gradient(105deg, transparent 42%, #000 60%);
	mask-image: linear-gradient(105deg, transparent 42%, #000 60%);
}
@media (max-width: 900px) { .ll-dots-bg::before { display: none; } }

/* ==========================================================================
   Header — barra principal fixa; a faixa de trilhas rola com a página
   ========================================================================== */
:root { --ll-header-h: 64px; }

/* position:fixed (não sticky): sticky ficaria preso à caixa do próprio
   <header>, que mede só as 2 linhas. O padding-top reserva o espaço. */
header.wp-block-template-part {
	position: relative;
	z-index: 50;
	background: var(--wp--preset--color--base, #fff);
	border-bottom: 1px solid var(--ll-line);
	padding-top: var(--ll-header-h);
}
.ll-nav-bar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 51;
	background: rgba(255, 255, 255, .94);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--ll-line);
	transition: transform .25s ease;
}
.ll-nav-row1 { min-height: var(--ll-header-h); }
.ll-nav-row2 { padding: 10px 0; }

/* Barra do WP logado desloca a barra fixa */
body.admin-bar .ll-nav-bar { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .ll-nav-bar { top: 46px; }
}

/* Mobile: hide-on-scroll devolve os 64px durante a leitura; as trilhas
   saem da faixa horizontal e viram o drawer (inc/nav.php + nav.js) */
@media (max-width: 781px) {
	.ll-nav-bar.is-hidden { transform: translateY(-100%); }
	body.admin-bar .ll-nav-bar.is-hidden { transform: translateY(calc(-100% - 46px)); }
	.ll-nav-row2 { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ll-nav-bar { transition: none; }
}

/* Hambúrguer — aparece só no mobile, abre o drawer */
.ll-burger { display: none; }
@media (max-width: 781px) {
	.ll-burger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		flex: none;
		background: transparent;
		border: 0;
		cursor: pointer;
		padding: 0;
		color: var(--ll-ink);
	}
	.ll-burger-box { position: relative; width: 22px; height: 2px; }
	.ll-burger-line, .ll-burger-line::before, .ll-burger-line::after {
		content: "";
		position: absolute;
		left: 0;
		width: 22px;
		height: 2px;
		background: currentColor;
		border-radius: 2px;
		transition: transform .25s ease, background .2s;
	}
	.ll-burger-line { top: 0; }
	.ll-burger-line::before { top: -7px; }
	.ll-burger-line::after { top: 7px; }
	.ll-burger[aria-expanded="true"] .ll-burger-line { background: transparent; }
	.ll-burger[aria-expanded="true"] .ll-burger-line::before { transform: translateY(7px) rotate(45deg); }
	.ll-burger[aria-expanded="true"] .ll-burger-line::after { transform: translateY(-7px) rotate(-45deg); }
}

/* Skip-link: invisível até receber foco por teclado */
.ll-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: var(--ll-ink);
	color: #fff;
	padding: 10px 16px;
	border-radius: 0 0 8px 0;
	text-decoration: none;
	font-size: .85rem;
	font-weight: 600;
}
.ll-skip:focus { left: 0; }

.ll-brand, .ll-brand a {
	font-weight: 800;
	font-size: 1.35rem;
	letter-spacing: -.02em;
	color: var(--ll-ink);
	text-decoration: none;
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	white-space: nowrap;
}
.ll-brand .heart { color: var(--ll-magenta); font-size: 1rem; }
.ll-brand .blog-tag {
	font-weight: 600;
	font-size: .8rem;
	color: var(--ll-wine); /* AA sobre o tint (magenta puro dá 3,9:1) */
	background: var(--ll-tint);
	padding: 2px 10px;
	border-radius: 100px;
}

/* CTA e busca do topo nunca colapsam */
.ll-nav .wp-block-buttons, .ll-nav .wp-block-button { flex-shrink: 0; }
.ll-nav .wp-block-button__link { white-space: nowrap; padding: 10px 20px; font-size: .84rem; }

/* Trilhas no topo: faixa própria, uma linha, com scroll horizontal
   quando não couber (menu nunca some, nem no mobile) */
.ll-nav-trilhas { overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ll-nav-trilhas::-webkit-scrollbar { display: none; }
.ll-nav-links ul, ul.ll-nav-links {
	list-style: none;
	display: flex;
	gap: 4px;
	margin: 0;
	padding: 0;
	flex-wrap: nowrap;
	justify-content: safe center;
	white-space: nowrap;
}
.ll-nav-links li { margin: 0; flex: none; }
.ll-nav-links a {
	display: inline-block;
	font-size: .82rem;
	font-weight: 600;
	color: var(--ll-gray);
	text-decoration: none;
	transition: color .2s, background .2s;
	padding: 6px 12px;
	border-radius: 100px;
}
.ll-nav-links a:hover { color: var(--ll-magenta); background: var(--ll-tint); }

/* Indicação de que a faixa rola (fade na borda) + alvo de toque ≥44px */
.ll-nav-row2 { position: relative; }
.ll-nav-row2::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 44px;
	background: linear-gradient(to left, rgba(255, 255, 255, .95), transparent);
	pointer-events: none;
}
@media (min-width: 900px) { .ll-nav-row2::after { display: none; } }
@media (max-width: 781px) { .ll-nav-links a { padding: 12px 14px; } }

/* Telas estreitas: marca e CTA compactos (senão estouram em 360px) */
@media (max-width: 420px) {
	.ll-brand, .ll-brand a { font-size: 1.1rem; }
	.ll-brand .blog-tag { font-size: .72rem; padding: 2px 8px; }
	.ll-nav .wp-block-button__link { padding: 10px 14px; font-size: .78rem; }
}

/* Busca do topo em pill */
.ll-nav .wp-block-search__inside-wrapper {
	border: 1px solid var(--ll-line);
	border-radius: 100px;
	padding: 2px 4px 2px 16px;
	transition: border-color .2s;
}
.ll-nav .wp-block-search__inside-wrapper:focus-within { border-color: var(--ll-magenta); }
.ll-nav .wp-block-search__input {
	border: 0;
	font-size: .82rem;
	font-family: inherit;
	min-width: 130px;
	background: transparent;
}
.ll-nav .wp-block-search__input:focus { outline: none; }
.ll-nav .wp-block-search__button {
	border: 0;
	border-radius: 100px;
	padding: 7px 14px;
	font-size: .78rem;
	margin: 0;
}
/* Busca sempre à mão, compacta no mobile */
@media (max-width: 640px) {
	.ll-nav .wp-block-search__input { min-width: 0; width: 84px; font-size: 1rem; }
	.ll-nav .wp-block-search__button { padding: 7px 10px; }
}
/* <480px: brand + busca + CTA não cabem juntos — a busca sai da row1
   (vira item na faixa de trilhas) e a tag "blog" some; o CTA é inegociável */
.ll-nav-busca { display: none; }
@media (max-width: 480px) {
	.ll-nav-row1 .wp-block-search { display: none; }
	.ll-brand .blog-tag { display: none; }
	.ll-nav-busca { display: list-item; }
	.ll-nav-busca a { color: var(--ll-magenta); font-weight: 700; }
}
@media (max-width: 781px) {
	.ll-nav .wp-block-search__input { font-size: 1rem; }
}

/* ==========================================================================
   Hero (home)
   ========================================================================== */
.ll-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ll-wine); /* AA sobre o tint (magenta puro dá 3,9:1) */
	background: var(--ll-tint);
	border-radius: 100px;
	padding: 6px 14px;
	width: fit-content;
}
.ll-eyebrow a { color: inherit; }
.ll-hero-grid { align-items: center; }
h1.ll-hero-title a, .ll-hero-title a { color: var(--ll-ink); text-decoration: none; }
h1.ll-hero-title a:hover, .ll-hero-title a:hover { color: var(--ll-magenta); }
.ll-hero-excerpt p { color: var(--ll-gray); font-size: 1.05rem; max-width: 34rem; }

/* Meta (autor · leitura · atualização) — usada no hero, cards e single */
.ll-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: .8rem;
	color: var(--ll-gray);
	flex-wrap: wrap;
}
.ll-meta .wp-block-post-author { display: flex; align-items: center; gap: 10px; }
.ll-meta .wp-block-post-author__avatar img { border-radius: 50%; display: block; }
.ll-meta .wp-block-post-author__name { font-weight: 700; color: var(--ll-ink); font-size: .8rem; }
.ll-meta .wp-block-post-date { font-size: .8rem; }
.ll-meta > *:not(:first-child)::before {
	content: "";
	display: inline-block;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #ccc;
	margin-right: 12px;
	vertical-align: middle;
}
.ll-meta .wp-block-post-author::before { display: none; }
.ll-updated { font-size: .8rem; }

/* Capa do hero (featured image do post em destaque) */
.ll-hero-cover img, .ll-hero-cover .ll-autocover {
	border-radius: var(--ll-r-lg);
	box-shadow: var(--ll-shadow);
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

/* ==========================================================================
   Capas automáticas (fallback de featured image por trilha)
   ========================================================================== */
.ll-autocover {
	position: relative;
	display: flex;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, #DD235B 0%, #801435 100%);
}
.ll-autocover::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, .22) 1.5px, transparent 1.5px);
	background-size: 26px 26px;
}
.ll-autocover__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: clamp(16px, 6%, 32px);
	color: #fff;
}
.ll-autocover__kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-shadow: 0 1px 4px rgba(0, 0, 0, .35);
}
.ll-autocover__glyph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: rgba(255, 255, 255, .18);
	border: 1px solid rgba(255, 255, 255, .35);
	font-size: .8rem;
	font-weight: 800;
}
.ll-autocover__title {
	font-weight: 800;
	font-size: clamp(.95rem, 1.9cqw + .6rem, 1.5rem);
	line-height: 1.25;
	letter-spacing: -.01em;
	text-wrap: balance;
	text-shadow: 0 1px 6px rgba(0, 0, 0, .18);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ll-autocover__brand {
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: -.01em;
	opacity: .9;
}
.ll-autocover__heart { color: #FF9DBC; }
.ll-autocover a { position: absolute; inset: 0; }
.ll-hero-cover .ll-autocover { container-type: inline-size; }
.ll-card .ll-autocover { container-type: inline-size; }

/* ==========================================================================
   Faixa de trilhas (chips) + tiles
   ========================================================================== */
.ll-chips-band {
	border-top: 1px solid var(--ll-line);
	border-bottom: 1px solid var(--ll-line);
	background: var(--ll-surface);
}
/* No mobile o header e os tiles já cobrem as trilhas: a banda vira redundância */
@media (max-width: 640px) { .ll-chips-band { display: none; } }
.ll-chips ul, ul.ll-chips { list-style: none; display: flex; gap: 10px; flex-wrap: wrap; margin: 0; padding: 0; }
.ll-chips li { margin: 0; }
.ll-chips a {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	font-size: .8rem;
	font-weight: 600;
	padding: 11px 18px;
	border-radius: 100px;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid var(--ll-line);
	color: var(--ll-ink);
	text-decoration: none;
	transition: all .25s ease;
}
.ll-chips a:hover { border-color: var(--ll-magenta); color: var(--ll-magenta); transform: translateY(-2px); }
.ll-chips .ll-count { font-size: .72rem; color: var(--ll-gray); font-weight: 600; }
.ll-chips-label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ll-gray);
}

.ll-tiles {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
@media (max-width: 1024px) { .ll-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .ll-tiles { grid-template-columns: 1fr; } }
.ll-tile, .ll-tile:hover { text-decoration: none; color: inherit; }
a.ll-tile { display: flex; flex-direction: column; gap: 8px; }
.ll-tile-search { background: var(--ll-surface); }
.ll-tile-search .ll-tile-ico { background: var(--wp--preset--color--base, #fff); }

.ll-tile {
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-r);
	padding: 24px;
	background: var(--wp--preset--color--base, #fff);
	transition: all .25s ease;
	height: 100%;
}
.ll-tile:hover { border-color: var(--ll-magenta); transform: translateY(-4px); box-shadow: var(--ll-shadow); }
.ll-tile .ll-tile-ico {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--ll-tint);
	color: var(--ll-magenta);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 1.05rem;
}
.ll-tile h3 { font-size: .98rem; margin: 0; }
.ll-tile h3 a { color: inherit; text-decoration: none; }
.ll-tile p { font-size: .78rem; color: var(--ll-gray); margin: 0; }
.ll-tile .ll-tile-go { font-size: .8rem; font-weight: 700; color: var(--ll-magenta); }

/* ==========================================================================
   Cards de post (home, related, arquivo)
   ========================================================================== */
.ll-card {
	background: var(--wp--preset--color--base, #fff);
	border-radius: var(--ll-r);
	box-shadow: var(--ll-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: var(--ll-ease);
	height: 100%;
}
.ll-card:hover { transform: translateY(-4px); box-shadow: var(--ll-shadow-hover); }
.ll-card .wp-block-post-featured-image { margin: 0; }
.ll-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	width: 100%;
	display: block;
}
.ll-card-body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 12px; flex-grow: 1; }
.ll-card .wp-block-post-terms {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ll-card .wp-block-post-terms a { color: var(--ll-magenta); text-decoration: none; }
.ll-card .wp-block-post-title { font-size: 1.06rem; font-weight: 700; line-height: 1.35; margin: 0; }
.ll-card .wp-block-post-title a { color: inherit; text-decoration: none; }
.ll-card .wp-block-post-title a:hover { color: var(--ll-magenta); }
.ll-card .wp-block-post-excerpt { flex-grow: 1; }
.ll-card .wp-block-post-excerpt__excerpt { font-size: .86rem; color: var(--ll-gray); margin: 0; }
.ll-card .wp-block-post-excerpt__more-text { display: none; }
.ll-card .ll-meta { font-size: .75rem; }
.ll-card .ll-autocover__initial { font-size: 2.4rem; }

/* Cabeçalho de seção ("Em destaque esta semana") */
.ll-sec-head { align-items: baseline; }
.ll-sec-head h2 em, .ll-sec-head h2 span { color: var(--ll-magenta); font-style: normal; }

/* ==========================================================================
   Newsletter (caixa tracejada, referência do cupom institucional)
   ========================================================================== */
.ll-news {
	background: var(--wp--preset--color--cream, #FFF8F0);
	border: 1.5px dashed var(--ll-magenta);
	border-radius: var(--ll-r);
}
.ll-news h2 span, .ll-news h2 em { color: var(--ll-magenta); font-style: normal; }
.ll-news p { color: var(--ll-gray); font-size: .92rem; }
.ll-news-form { display: flex; gap: 12px; flex-wrap: wrap; }
.ll-news-form input[type="email"] {
	flex: 1;
	min-width: 200px;
	border: 1px solid var(--ll-line);
	border-radius: 100px;
	padding: 13px 20px;
	font-size: 1rem; /* <16px dispara zoom no iOS */
	font-family: inherit;
	background: var(--wp--preset--color--base, #fff);
}
.ll-news-form input[type="email"]:focus { outline: 2px solid var(--ll-magenta); outline-offset: 1px; border-color: transparent; }

/* Bloco de assinatura do Jetpack no estilo da marca */
.ll-news .wp-block-jetpack-subscriptions input[type="email"] {
	border: 1px solid var(--ll-line) !important;
	border-radius: 100px !important;
	padding: 13px 20px !important;
	font-size: 1rem !important;
	font-family: inherit !important;
	background: var(--wp--preset--color--base, #fff) !important;
}
.ll-news .wp-block-jetpack-subscriptions button {
	border-radius: 100px !important;
	background: var(--ll-magenta) !important;
	color: #fff !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	padding: 13px 28px !important;
	border: 0 !important;
	transition: var(--ll-ease);
}
.ll-news .wp-block-jetpack-subscriptions button:hover {
	background: var(--ll-magenta-dark) !important;
	transform: translateY(-4px);
	box-shadow: var(--ll-shadow-hover);
}
.ll-news--compact { padding: 28px 24px !important; }
.ll-news--compact h2 { font-size: 1.2rem; }

/* Faixa de produto (fundo cinza, CTA verde) */
.ll-product-band { border-top: 1px solid var(--ll-line); border-bottom: 1px solid var(--ll-line); }
.ll-product-band h2 span, .ll-product-band h2 em { color: var(--ll-magenta); font-style: normal; }
.ll-product-band p { color: var(--ll-gray); font-size: .9rem; }

/* ==========================================================================
   Single post
   ========================================================================== */
.ll-breadcrumbs { font-size: .78rem; color: var(--ll-gray); }
.ll-breadcrumbs ol { list-style: none; display: flex; gap: 6px; flex-wrap: wrap; margin: 0; padding: 0; }
.ll-breadcrumbs li { display: flex; align-items: center; gap: 6px; }
.ll-breadcrumbs li + li::before { content: "›"; color: #bbb; }
.ll-breadcrumbs a { color: var(--ll-gray); text-decoration: none; display: inline-block; padding: 10px 2px; margin: -8px 0; }
.ll-breadcrumbs a:hover { color: var(--ll-magenta); }
.ll-breadcrumbs [aria-current] { color: var(--ll-ink); font-weight: 600; }

.ll-single-cover img { border-radius: var(--ll-r-lg); box-shadow: var(--ll-shadow); width: 100%; aspect-ratio: 21 / 9; max-height: 420px; object-fit: cover; }
.ll-single-cover .ll-autocover { border-radius: var(--ll-r-lg); aspect-ratio: 21 / 9; }

/* Layout artigo: TOC à ESQUERDA, conteúdo no centro, lateral à direita.
   Mobile: TOC colapsado antes do texto, lateral depois.
   max-width+auto: o display:grid anula o constrained do WP (senão vira full-bleed). */
.ll-single-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	max-width: 1280px;
	margin-inline: auto;
	box-sizing: border-box;
}
.ll-toc-wrap { order: 1; min-width: 0; }
.ll-article-main { order: 2; min-width: 0; }
.ll-sidebar { order: 3; min-width: 0; }
@media (min-width: 1080px) and (max-width: 1279px) {
	.ll-single-layout {
		grid-template-columns: minmax(0, 1fr) 300px;
		grid-template-areas: "toc side" "main side";
		gap: 24px 48px;
	}
	.ll-toc-wrap { grid-area: toc; order: 0; }
	.ll-article-main { grid-area: main; order: 0; }
	.ll-sidebar { grid-area: side; order: 0; align-self: start; }
}
@media (min-width: 1280px) {
	.ll-single-layout {
		grid-template-columns: 220px minmax(0, 1fr) 300px;
		grid-template-areas: "toc main side";
		gap: 32px 44px;
	}
	.ll-toc-wrap {
		grid-area: toc;
		order: 0;
		position: sticky;
		top: calc(var(--ll-header-h) + 20px);
		align-self: start;
		max-height: calc(100vh - var(--ll-header-h) - 44px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.ll-article-main { grid-area: main; order: 0; }
	.ll-sidebar {
		grid-area: side;
		order: 0;
		align-self: start;
		position: sticky;
		top: calc(var(--ll-header-h) + 20px);
		max-height: calc(100vh - var(--ll-header-h) - 44px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
}

/* Telas grandes: a grade cresce com o monitor; a prosa acompanha via
   clamp() no template (720px até ~1800px de viewport, teto 800px ≈ 75ch) */
@media (min-width: 1440px) {
	.ll-single-layout {
		max-width: 1440px;
		grid-template-columns: 240px minmax(0, 1fr) 320px;
		gap: 32px 56px;
	}
}
@media (min-width: 1920px) {
	.ll-single-layout {
		max-width: 1600px;
		grid-template-columns: 260px minmax(0, 1fr) 340px;
		gap: 32px 72px;
	}
	/* Especificidade acima da base .ll-article-content (1.08rem), que vem depois no arquivo */
	.ll-single-layout .ll-article-content { font-size: 1.14rem; }
}

/* Tablet: 3 colunas viram 2 (as capas-título quebravam em cards de 230px) */
@media (min-width: 600px) and (max-width: 1023px) {
	.wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* Guarda-corpo das capas-título em containers estreitos */
@container (max-width: 340px) {
	.ll-autocover__brand { display: none; }
	.ll-autocover__title { -webkit-line-clamp: 2; }
}
.ll-sidebar { display: flex; flex-direction: column; gap: 24px; }
.ll-sidebar .ll-side-title {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ll-gray);
	margin: 0;
}

/* Lista "Posts recomendados" da lateral */
.ll-recommended .wp-block-post-template { display: flex; flex-direction: column; gap: 0; }
.ll-recommended .ll-mini {
	padding: 14px 0;
	border-bottom: 1px solid var(--ll-line);
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ll-recommended .ll-mini .wp-block-post-title { font-size: .9rem; font-weight: 700; line-height: 1.35; margin: 0; }
.ll-recommended .ll-mini .wp-block-post-title a { color: inherit; text-decoration: none; }
.ll-recommended .ll-mini .wp-block-post-title a:hover { color: var(--ll-magenta); }
.ll-recommended .ll-mini .wp-block-post-date { font-size: .72rem; color: var(--ll-gray); }

/* Banner de produto vertical na lateral */
.ll-cta--side {
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	padding: 24px;
	background:
		radial-gradient(rgba(221, 35, 91, .12) 1.5px, transparent 1.5px) 0 0 / 22px 22px,
		var(--ll-tint);
}
.ll-cta--side h3 { font-size: 1.05rem; }
.ll-cta--side .wp-element-button { width: 100%; }
/* Anula o margin:auto!important do layout constrained em item de grid
   (sem isso o TOC vira uma caixinha centralizada de 144px no mobile) */
.ll-single-layout > .ll-toc-wrap, .ll-single-layout > .ll-article-main, .ll-single-layout > .ll-sidebar { width: 100%; }

.ll-toc {
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-r);
	padding: 0;
	font-size: .82rem;
	background: var(--wp--preset--color--base, #fff);
}
.ll-toc[hidden] { display: none; }
.ll-toc summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 48px;
	padding: 14px 20px;
	box-sizing: border-box;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ll-gray);
	cursor: pointer;
	list-style: none;
}
.ll-toc summary::-webkit-details-marker { display: none; }
.ll-toc summary::after { content: "+"; color: var(--ll-magenta); font-weight: 800; font-size: 1.1rem; line-height: 1; }
.ll-toc[open] summary::after { content: "–"; }
.ll-toc ol { list-style: none; margin: 0; padding: 0 20px 16px; display: flex; flex-direction: column; gap: 0; }
.ll-toc li.ll-toc-h3 { padding-left: 14px; }
.ll-toc a { color: var(--ll-gray); text-decoration: none; display: block; line-height: 1.4; padding: 10px 0; }
.ll-toc a:hover { color: var(--ll-magenta); }
.ll-toc a.is-active { color: var(--ll-magenta); font-weight: 700; }

/* Corpo do artigo */
.ll-article-content { font-size: 1.08rem; }
#trilhas { scroll-margin-top: calc(var(--ll-header-h) + 16px); }
.ll-article-content > h2 { margin-top: 2.2em; scroll-margin-top: calc(var(--ll-header-h) + 16px); }
.ll-article-content > h3 { margin-top: 1.6em; scroll-margin-top: calc(var(--ll-header-h) + 16px); }
.ll-article-content a { color: var(--ll-magenta); text-decoration: underline; text-underline-offset: 2px; }
.ll-article-content a:hover { color: var(--ll-wine); }
.ll-article-content img { border-radius: var(--ll-r); }
.ll-article-content figure { margin-left: 0; margin-right: 0; }
.ll-article-content table { border-collapse: collapse; width: 100%; }
.ll-article-content td, .ll-article-content th { border: 1px solid var(--ll-line); padding: 10px 14px; }
.ll-article-content th { background: var(--ll-surface); }
.ll-article-content .wp-block-table { overflow-x: auto; }

/* Caixa "resposta direta" (GEO — trecho citável por IA) */
.ll-answer-box {
	background: var(--ll-surface);
	border-left: 3px solid var(--ll-magenta);
	border-radius: 0 var(--ll-r) var(--ll-r) 0;
	padding: 20px 24px;
}
.ll-answer-box p { margin: 0; font-size: .98rem; }

/* FAQ (details/summary — visível e citável) */
.ll-faq-item {
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-r);
	padding: 0;
	overflow: hidden;
	background: var(--wp--preset--color--base, #fff);
}
.ll-faq-item + .ll-faq-item { margin-top: 12px; }
.ll-faq-item summary {
	padding: 16px 20px;
	font-weight: 700;
	font-size: .95rem;
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 44px;
}
.ll-faq-item summary::-webkit-details-marker { display: none; }
.ll-faq-item summary::after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ll-magenta);
	font-weight: 800;
	font-size: 1.1rem;
}
.ll-faq-item[open] summary::after { content: "–"; }
.ll-faq-item > :not(summary) { padding: 0 20px 16px; margin: 0; font-size: .92rem; color: var(--ll-gray); }

/* CTA contextual por trilha */
.ll-cta {
	background: var(--ll-tint);
	border-radius: var(--ll-r);
	padding: 28px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.ll-cta-inner { max-width: 30rem; min-width: 0; }
.ll-cta h3 { margin: 0 0 6px; font-size: 1.15rem; }
.ll-cta p { margin: 0; font-size: .88rem; color: var(--ll-gray); }
.ll-cta .wp-element-button { flex-shrink: 1; white-space: normal; max-width: 100%; min-width: 0; text-align: center; }
@media (max-width: 640px) {
	.ll-cta { flex-direction: column; align-items: stretch; padding: 24px 20px; }
	.ll-cta-inner { max-width: none; }
	.ll-cta .wp-element-button { width: 100%; }
}
/* No mobile a lateral empilha após o artigo: o banner viraria CTA duplicado */
@media (max-width: 1079px) {
	.ll-sidebar .ll-cta--side { display: none; }
}

/* CTA compacto de meio de artigo */
.ll-cta-mini {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	background: var(--ll-surface);
	border-left: 3px solid var(--ll-magenta);
	border-radius: 0 var(--ll-r) var(--ll-r) 0;
	padding: 14px 20px;
	margin: 2em 0;
	font-size: .9rem;
}
.ll-cta-mini span { font-weight: 700; }
.ll-cta-mini a {
	color: var(--ll-magenta) !important;
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	padding: 8px 0;
}
.ll-cta-mini a:hover { color: var(--ll-wine) !important; }

/* Barra de compartilhamento */
.ll-share {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 18px 0;
	border-bottom: 1px solid var(--ll-line);
	margin-top: 24px;
	margin-bottom: 32px;
}
.ll-share-label { font-size: .8rem; font-weight: 700; color: var(--ll-gray); margin-right: 4px; }
@media (max-width: 480px) {
	.ll-share { gap: 6px; }
	.ll-share-label { flex-basis: 100%; margin: 0 0 4px; }
}
.ll-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	box-sizing: border-box;
	border-radius: 50%;
	border: 1px solid var(--ll-line);
	background: var(--wp--preset--color--base, #fff);
	color: var(--ll-ink);
	cursor: pointer;
	transition: all .25s ease;
	padding: 0;
	position: relative;
}
.ll-share-btn:hover {
	border-color: var(--ll-magenta);
	color: var(--ll-magenta);
	transform: translateY(-3px);
	box-shadow: var(--ll-shadow);
}
.ll-share-copy.is-copied { border-color: #1B7A38; color: #1B7A38; }
.ll-share-copy.is-copied::after {
	content: "Link copiado!";
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	background: var(--ll-ink);
	color: #fff;
	font-size: .7rem;
	font-weight: 600;
	padding: 5px 10px;
	border-radius: 6px;
	white-space: nowrap;
}

/* Navegação anterior / próximo */
.ll-prevnext {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 40px;
}
@media (max-width: 640px) { .ll-prevnext { grid-template-columns: 1fr; } }
.ll-pn-card {
	display: flex;
	gap: 14px;
	align-items: center;
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-r);
	background: var(--wp--preset--color--base, #fff);
	padding: 16px;
	text-decoration: none;
	color: inherit;
	transition: all .25s ease;
	box-shadow: var(--ll-shadow);
}
.ll-pn-card:hover { border-color: var(--ll-magenta); transform: translateY(-3px); box-shadow: var(--ll-shadow-hover); }
.ll-pn-next { flex-direction: row-reverse; text-align: right; }
.ll-pn-next .ll-pn-body { align-items: flex-end; }
.ll-pn-empty { border: 0; box-shadow: none; background: transparent; }
.ll-pn-img {
	width: 64px;
	height: 64px;
	border-radius: 10px;
	object-fit: cover;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ll-pn-autocover { color: #fff; font-weight: 800; font-size: 1.2rem; background: linear-gradient(135deg, #DD235B, #801435); }
.ll-pn-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ll-pn-kicker { font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ll-magenta); }
.ll-pn-title { font-size: .9rem; font-weight: 700; line-height: 1.3; }
.ll-pn-card:hover .ll-pn-title { color: var(--ll-magenta); }
.ll-pn-cat { font-size: .7rem; color: var(--ll-gray); }

/* Author box (E-E-A-T) */
.ll-author-box {
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-r);
	padding: 24px 28px;
	background: var(--wp--preset--color--base, #fff);
}
.ll-author-box .wp-block-post-author { display: flex; gap: 18px; align-items: flex-start; }
.ll-author-box .wp-block-post-author__avatar img { border-radius: 50%; display: block; }
.ll-author-box .wp-block-post-author__byline {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ll-magenta);
}
.ll-author-box .wp-block-post-author__name { font-weight: 800; font-size: 1rem; }
.ll-author-box .wp-block-post-author__bio { font-size: .86rem; color: var(--ll-gray); margin-top: 6px; }

/* Tags do post */
.ll-post-tags .wp-block-post-terms { font-size: .78rem; }
.ll-post-tags .wp-block-post-terms a {
	display: inline-block;
	background: var(--ll-surface);
	border: 1px solid var(--ll-line);
	border-radius: 100px;
	padding: 10px 16px;
	color: var(--ll-gray);
	text-decoration: none;
	margin: 0 6px 6px 0;
	transition: all .2s;
}
.ll-post-tags .wp-block-post-terms a:hover { border-color: var(--ll-magenta); color: var(--ll-magenta); }
.ll-post-tags .wp-block-post-terms__separator { display: none; }

/* ==========================================================================
   Arquivo / categoria (hub) / busca
   ========================================================================== */
.ll-hub-header { border-bottom: 1px solid var(--ll-line); }
.ll-hub-header .wp-block-query-title { margin: 0; }
.ll-hub-header .wp-block-term-description { color: var(--ll-gray); max-width: 46rem; }
.ll-hub-header .wp-block-term-description p { margin: .5em 0 0; }

.wp-block-query-pagination { font-size: .85rem; }
.wp-block-query-pagination a, .wp-block-query-pagination .current,
.wp-block-query-pagination-next, .wp-block-query-pagination-previous {
	text-decoration: none;
	font-weight: 600;
	color: var(--ll-gray);
}
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 10px;
	border: 1px solid var(--ll-line);
	border-radius: 100px;
	background: var(--wp--preset--color--base, #fff);
	transition: all .2s;
}
.wp-block-query-pagination .page-numbers:hover { border-color: var(--ll-magenta); color: var(--ll-magenta); }
.wp-block-query-pagination .page-numbers.current { background: var(--ll-magenta); border-color: var(--ll-magenta); color: #fff; }

/* Busca grande (search template e 404) */
.ll-search-big .wp-block-search__inside-wrapper {
	border: 1px solid var(--ll-line);
	border-radius: 100px;
	padding: 6px 6px 6px 24px;
	box-shadow: var(--ll-shadow);
	background: var(--wp--preset--color--base, #fff);
}
.ll-search-big .wp-block-search__input { border: 0; font-size: 1rem; font-family: inherit; background: transparent; }
.ll-search-big .wp-block-search__input:focus { outline: none; }
.ll-search-big .wp-block-search__button { margin: 0; }

.ll-404-code {
	font-size: clamp(5rem, 14vw, 9rem);
	font-weight: 800;
	line-height: 1;
	color: var(--ll-tint);
	letter-spacing: -.04em;
}

/* ==========================================================================
   Comentários
   ========================================================================== */
.wp-block-comments { font-size: .92rem; }
.wp-block-comment-author-name { font-weight: 700; }
.wp-block-post-comments-form textarea, .wp-block-post-comments-form input:not([type="submit"]) {
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-r);
	padding: 12px 16px;
	font-family: inherit;
	font-size: .9rem;
	width: 100%;
}
.wp-block-post-comments-form input[type="submit"] { border: 0; cursor: pointer; }

/* ==========================================================================
   Footer
   ========================================================================== */
footer.wp-block-template-part { background: var(--wp--preset--color--footer, #FBFBFB); border-top: 1px solid var(--ll-line); }
.ll-footer { font-size: .85rem; }
.ll-footer .ll-foot-title {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ll-gray);
	margin: 0 0 14px;
}
.ll-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.ll-footer ul a { color: var(--ll-gray); text-decoration: none; }
.ll-footer ul a:hover { color: var(--ll-magenta); }
.ll-footer .ll-foot-desc { color: var(--ll-gray); max-width: 24rem; }
.ll-foot-bottom {
	border-top: 1px solid var(--ll-line);
	font-size: .78rem;
	color: var(--ll-gray);
}
.ll-foot-love { color: var(--ll-magenta); font-weight: 700; }

/* ==========================================================================
   Drawer mobile (markup em inc/nav.php, comportamento em nav.js)
   ========================================================================== */
.ll-drawer, .ll-drawer-backdrop { display: none; }

@media (max-width: 781px) {
	.ll-drawer-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 60;
		background: rgba(31, 31, 31, .5);
		opacity: 0;
		transition: opacity .25s ease;
	}
	.ll-drawer-backdrop.is-open { opacity: 1; }

	.ll-drawer {
		display: flex;
		flex-direction: column;
		gap: 18px;
		position: fixed;
		top: 0;
		right: 0;
		z-index: 61;
		width: min(84vw, 340px);
		height: 100dvh;
		padding: 20px 20px calc(20px + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--base, #fff);
		box-shadow: -8px 0 30px rgba(0, 0, 0, .16);
		transform: translateX(100%);
		transition: transform .28s cubic-bezier(.16, 1, .3, 1);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.ll-drawer.is-open { transform: translateX(0); }
	.ll-drawer[hidden], .ll-drawer-backdrop[hidden] { display: none; }

	.ll-drawer-head { display: flex; align-items: center; justify-content: space-between; }
	.ll-drawer-title {
		font-size: .72rem;
		font-weight: 700;
		letter-spacing: .09em;
		text-transform: uppercase;
		color: var(--ll-gray);
	}
	.ll-drawer-close {
		width: 44px;
		height: 44px;
		margin: -10px -10px -10px 0;
		background: transparent;
		border: 0;
		font-size: 1.8rem;
		line-height: 1;
		color: var(--ll-ink);
		cursor: pointer;
	}
	.ll-drawer-search input {
		width: 100%;
		box-sizing: border-box;
		border: 1px solid var(--ll-line);
		border-radius: 100px;
		padding: 12px 18px;
		font-family: inherit;
		font-size: 1rem; /* <16px dispara zoom no iOS */
		background: var(--ll-surface);
	}
	.ll-drawer-search input:focus { outline: 2px solid var(--ll-magenta); outline-offset: 1px; }

	.ll-drawer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
	.ll-drawer-list li { margin: 0; }
	.ll-drawer-link {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 52px;
		padding: 12px 6px;
		font-size: 1.02rem;
		font-weight: 600;
		color: var(--ll-ink);
		text-decoration: none;
		border-bottom: 1px solid var(--ll-line);
	}
	.ll-drawer-link:hover, .ll-drawer-link:focus-visible { color: var(--ll-magenta); }
	.ll-drawer-count { font-size: .78rem; font-weight: 600; color: var(--ll-gray); }
	.ll-drawer-cta { margin-top: auto; width: 100%; box-sizing: border-box; text-align: center; }
}

/* Trava o scroll do fundo enquanto o drawer está aberto */
html.ll-drawer-open, html.ll-drawer-open body { overflow: hidden; }

/* ==========================================================================
   Leitura: barra de progresso, back-to-top, âncoras suaves
   ========================================================================== */
/* Progresso scroll-driven, zero JS; sem @supports fica invisível (scaleX 0) */
.ll-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	width: 100%;
	z-index: 62;
	transform: scaleX(0);
	transform-origin: 0 50%;
	background: var(--ll-magenta);
	pointer-events: none;
}
body.admin-bar .ll-progress { top: var(--wp-admin--admin-bar--height, 32px); }
@supports (animation-timeline: scroll()) {
	.ll-progress { animation: ll-progress linear both; animation-timeline: scroll(root block); }
	@keyframes ll-progress { to { transform: scaleX(1); } }
}
@media (prefers-reduced-motion: reduce) { .ll-progress { display: none; } }

.ll-top {
	position: fixed;
	right: 18px;
	bottom: calc(18px + env(safe-area-inset-bottom));
	z-index: 55;
	width: 46px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--ll-ink);
	color: #fff;
	text-decoration: none;
	font-size: 1.1rem;
	box-shadow: var(--ll-shadow);
	opacity: 0;
	transform: translateY(8px);
	pointer-events: none;
	transition: opacity .25s, transform .25s, background .2s;
}
.ll-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.ll-top:hover { background: var(--ll-magenta); }

@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
.ll-article-content > :target { animation: ll-target 1.6s ease; }
@keyframes ll-target {
	0%, 25% { background: var(--ll-tint); }
	100% { background: transparent; }
}

/* Navegação entre páginas com transição nativa (progressive enhancement) */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) {
	@view-transition { navigation: none; }
}

/* ==========================================================================
   Polimento: seleção on-brand, toque, impressão
   ========================================================================== */
::selection { background: var(--ll-tint); color: var(--ll-wine); }

a, button, summary, .ll-share-btn, .ll-tile, .ll-chips a { -webkit-tap-highlight-color: transparent; }
.ll-burger, .ll-drawer-close, .ll-share-btn { touch-action: manipulation; }

@media print {
	header.wp-block-template-part, footer.wp-block-template-part,
	.ll-nav-bar, .ll-nav-row2, .ll-share, .ll-cta, .ll-cta-mini, .ll-cta--side,
	.ll-toc-wrap, .ll-sidebar, .ll-prevnext, .ll-news, .ll-product-band,
	.wp-block-comments, .ll-progress, .ll-top, .ll-drawer, .ll-drawer-backdrop { display: none !important; }
	.ll-single-layout { display: block !important; }
	.ll-article-content { font-size: 12pt; color: #000; }
	.ll-article-content a { color: #000; text-decoration: underline; }
	.ll-article-content a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; color: #444; }
}

/* ==========================================================================
   Utilidades
   ========================================================================== */
.ll-hide-mobile { display: initial; }
@media (max-width: 781px) { .ll-hide-mobile { display: none !important; } }
.screen-reader-text {
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}
