/*

IMPRESSÃO

*/


/* Responsive embeds: fixed-width iframes (old post embeds, $content_width)
   overflow small viewports and force the whole page to scale down. */
.conteudo iframe,
.conteudo embed,
.conteudo object {
	max-width: 100%;
}

.conteudo iframe[src*="youtube"],
.conteudo iframe[src*="vimeo"] {
	aspect-ratio: 16 / 9;
	height: auto;
}

.ddq-youtube {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0 0 20px;
	background: #000;
	overflow: hidden;
}

.ddq-youtube iframe,
.ddq-youtube-play {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.ddq-youtube-play {
	position: relative;
	padding: 0;
	background: #000;
	color: #fff;
	cursor: pointer;
}

.ddq-youtube-play img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.82;
}

.ddq-youtube-play span {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	transform: translate(-50%, -50%);
	padding: 0;
	border-radius: 50%;
	background: #f00;
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.38);
	font-size: 0;
}

.ddq-youtube-play span::before {
	content: "";
	width: 0;
	height: 0;
	margin-left: 5px;
	border-top: 12px solid transparent;
	border-bottom: 12px solid transparent;
	border-left: 20px solid #fff;
}

.ddq-youtube-play:hover span,
.ddq-youtube-play:focus-visible span {
	background: #c00;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.9), 0 3px 12px rgba(0, 0, 0, 0.45);
}


/* Infinite scroll: the plugin inserts raw post wraps into #autopost; on the
   masonry grid the theme JS lays those posts out via isotope instead, so the
   raw wraps must stay hidden. The fallback pagination is redundant while
   infinite scroll is active. */
.mason .infinite-wrap {
	display: none;
}

body.infinite-scroll .posts .navigation {
	display: none;
}


/* Infinite scroll loader: simple brand-pink spinner under the grid. */
.infinite-loader {
	display: block;
	width: 28px;
	height: 28px;
	margin: 25px auto 35px;
	border: 3px solid var(--color-primary-sand);
	border-top-color: var(--color-primary-olive);
	border-radius: 50%;
	text-indent: 0;
	animation: dq-spin 0.8s linear infinite;
}

@keyframes dq-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.infinite-loader {
		animation: none;
	}
}

/* End of the archive: the plugin disables itself but leaves the loader
   spinning; hide it once there is nothing left to load. */
body.infinity-end .infinite-loader {
	display: none;
}

/* Jetpack Carousel prints its skeleton in wp_footer, but when the carousel
   initializes late the matching stylesheet can no longer be enqueued — and
   #jp-carousel-loading-overlay ships without an inline style, so its spinner
   renders at the very bottom of the page. Mirror Jetpack's own default here;
   the carousel JS shows it via inline styles, which override this. */
#jp-carousel-loading-overlay {
	display: none;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}

/* No display rule for .jp-carousel-overlay here: its skeleton ships with an
   inline display:none, and Jetpack's fade-in REMOVES the inline display
   property, counting on stylesheets to leave the overlay visible. A theme
   display:none would permanently hide the opened carousel (scroll locked,
   nothing on screen). */
