/**
 * Coteia — Favoritos nativo.
 * @since 0.9.7-alpha.1
 */

.coteia-favorites-page .coteia-site-main {
	background:#f8fafc;
}
.coteia-favorites-page .coteia-site-main > .coteia-container {
	padding-top:clamp(32px,5vw,64px);
	padding-bottom:clamp(44px,7vw,88px);
}
.coteia-favorites-shell {
	width:100%;
	max-width:1200px;
	margin:0 auto;
}
.coteia-favorites-heading {
	margin-bottom:28px;
}
.coteia-favorites-heading h1 {
	margin:0;
	color:#1e293b;
	font-family:var(--coteia-font-heading,inherit);
	font-size:clamp(1.55rem,2.5vw,2.1rem);
	line-height:1.2;
	text-align:left;
}
.coteia-favorites-heading h1::after {
	content:'';
	display:block;
	width:100%;
	height:4px;
	margin-top:12px;
	border-radius:999px;
	background:linear-gradient(90deg,#2968c8 0 76%,#ffe600 76% 100%);
}
.coteia-favorites-heading p {
	margin:14px 0 0;
	color:#64748b;
	line-height:1.65;
}
.coteia-favorites-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:18px;
}
.coteia-favorite-card {
	position:relative;
	display:flex;
	flex-direction:column;
	min-width:0;
	overflow:hidden;
	border:1px solid #e2e8f0;
	border-radius:14px;
	background:#fff;
	box-shadow:0 6px 18px rgba(15,23,42,.07);
}
.coteia-favorite-card-media {
	aspect-ratio:4/3;
	background:#f1f5f9;
	overflow:hidden;
}
.coteia-favorite-card-media img {
	width:100%;
	height:100%;
	object-fit:contain;
	display:block;
}
.coteia-favorite-card-body {
	display:flex;
	flex:1 1 auto;
	flex-direction:column;
	gap:10px;
	padding:16px;
}
.coteia-favorite-card h2 {
	margin:0;
	color:#1e293b;
	font-size:1rem;
	line-height:1.35;
}
.coteia-favorite-card-pricing {
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:12px;
	margin-top:auto;
}
.coteia-favorite-card-pricing del {
	color:#94a3b8;
	font-size:.82rem;
}
.coteia-favorite-card-pricing strong {
	color:#2968c8;
	font-size:1rem;
}
.coteia-favorite-card-link {
	display:block;
	text-decoration:none;
	color:inherit;
}
.coteia-favorite-card-link:focus-visible {
	outline:3px solid rgba(41,104,200,.28);
	outline-offset:2px;
}
.coteia-favorite-remove {
	position:absolute;
	top:10px;
	right:10px;
	z-index:2;
	display:grid;
	width:34px;
	height:34px;
	place-items:center;
	border:0;
	border-radius:999px;
	background:rgba(255,255,255,.94);
	color:#2968c8;
	box-shadow:0 2px 8px rgba(15,23,42,.16);
	cursor:pointer;
	font-size:19px;
	line-height:1;
}
.coteia-favorite-remove:hover,
.coteia-favorite-remove:focus-visible {
	background:#2968c8;
	color:#fff;
}
.coteia-favorites-empty {
	padding:42px 24px;
	border:1px solid #e2e8f0;
	border-radius:16px;
	background:#fff;
	text-align:center;
	box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.coteia-favorites-empty h2 {
	margin:0 0 8px;
	color:#1e293b;
	font-size:1.25rem;
}
.coteia-favorites-empty p {
	margin:0;
	color:#64748b;
	line-height:1.6;
}
@media (max-width:980px) {
	.coteia-favorites-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:720px) {
	.coteia-favorites-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
	.coteia-favorites-grid { grid-template-columns:1fr; }
	.coteia-favorites-page .coteia-site-main > .coteia-container {
		padding-top:24px;
		padding-bottom:52px;
	}
}


.coteia-favorites-login-required {
	padding:42px 24px;
	border:1px solid #e2e8f0;
	border-radius:16px;
	background:#fff;
	text-align:center;
	box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.coteia-favorites-login-required h2 {
	margin:0 0 8px;
	color:#1e293b;
	font-size:1.25rem;
}
.coteia-favorites-login-required p {
	margin:0 auto 18px;
	max-width:640px;
	color:#64748b;
	line-height:1.6;
}
.coteia-favorites-login-link {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:0 18px;
	border-radius:10px;
	background:#2968c8;
	color:#fff;
	font-weight:700;
	text-decoration:none;
}
.coteia-favorites-login-link:hover,
.coteia-favorites-login-link:focus-visible {
	background:#1f56aa;
	color:#fff;
}


/* Favoritos — título visual opcional. */
.coteia-favorites-heading.is-title-hidden {
	margin-bottom:18px;
}


/* =====================================================
 * Favoritos — segunda coluna configurável
 * ===================================================== */
.coteia-favorites-columns {
	display:grid;
	width:100%;
	gap:clamp(20px,3vw,32px);
	align-items:stretch;
}
.coteia-favorites-columns.has-sidebar {
	grid-template-columns:minmax(0,1fr) minmax(280px,360px);
}
.coteia-favorites-columns.no-sidebar {
	grid-template-columns:1fr;
}
.coteia-favorites-main,
.coteia-favorites-sidebar {
	min-width:0;
}
.coteia-favorites-sidebar {
	height:100%;
	min-height:0;
	display:grid;
	gap:16px;
}
.coteia-favorites-sidebar.has-ads {
	display:flex;
	flex-direction:column;
}
.coteia-favorites-sidebar-row {
	min-width:0;
	min-height:0;
	padding:18px;
	border:1px solid #e2e8f0;
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(15,23,42,.08);
}
.coteia-favorites-sidebar.has-ads .coteia-favorites-sidebar-row--ads {
	flex:0 0 28%;
	max-height:28%;
	padding:8px;
	overflow:hidden;
}
.coteia-favorites-sidebar.has-ads .coteia-favorites-sidebar-row--content {
	flex:1 1 auto;
	min-height:0;
}
.coteia-favorites-sidebar.no-ads .coteia-favorites-sidebar-row--content {
	min-height:100%;
}
.coteia-favorites-ad-html,
.coteia-favorites-ad-demo {
	height:100%;
	max-height:100%;
}
.coteia-favorites-ad-demo {
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	justify-content:center;
	gap:4px;
	padding:12px 14px;
	border-radius:12px;
	background:#f8fafc;
	color:#475569;
	overflow:hidden;
}
.coteia-favorites-ad-demo span {
	font-size:.68rem;
	font-weight:800;
	letter-spacing:.08em;
	color:#2968c8;
}
.coteia-favorites-ad-demo strong {
	font-size:.95rem;
	color:#1e293b;
}
.coteia-favorites-ad-demo small {
	color:#64748b;
}
.coteia-favorites-side-products {
	display:flex;
	flex-direction:column;
	gap:10px;
	height:100%;
}
.coteia-favorites-side-product {
	display:grid;
	grid-template-columns:70px minmax(0,1fr);
	align-items:center;
	gap:12px;
	min-width:0;
	padding:10px;
	border:1px solid #e2e8f0;
	border-radius:12px;
	background:#fff;
	color:inherit;
	text-decoration:none;
}
.coteia-favorites-side-product.is-clickable:hover,
.coteia-favorites-side-product.is-clickable:focus-visible {
	border-color:rgba(41,104,200,.45);
	box-shadow:0 4px 14px rgba(15,23,42,.08);
}
.coteia-favorites-side-product-image {
	width:70px;
	height:64px;
	overflow:hidden;
	border-radius:9px;
	background:#f1f5f9;
}
.coteia-favorites-side-product-image img {
	width:100%;
	height:100%;
	object-fit:contain;
	display:block;
}
.coteia-favorites-side-product-body {
	min-width:0;
}
.coteia-favorites-side-product-body h3 {
	margin:0 0 7px;
	color:#1e293b;
	font-size:.9rem;
	line-height:1.3;
}
.coteia-favorites-side-product-price {
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:10px;
}
.coteia-favorites-side-product-price del {
	color:#94a3b8;
	font-size:.76rem;
}
.coteia-favorites-side-product-price strong {
	color:#2968c8;
	font-size:.9rem;
}
@media (max-width:900px) {
	.coteia-favorites-columns.has-sidebar {
		grid-template-columns:1fr;
	}
	.coteia-favorites-sidebar {
		height:auto;
	}
	.coteia-favorites-sidebar.has-ads {
		display:grid;
		grid-template-rows:auto auto;
	}
	.coteia-favorites-sidebar.has-ads .coteia-favorites-sidebar-row--ads {
		max-height:none;
	}
}


/* =====================================================
 * Favoritos — ADS adaptado ao espaço delimitado
 * ===================================================== */
.coteia-favorites-sidebar-row--ads,
.coteia-favorites-empty-band-ads {
	min-width:0;
	min-height:0;
	overflow:hidden;
}

.coteia-favorites-sidebar-row--ads .coteia-favorites-ad-html,
.coteia-favorites-empty-band-ads .coteia-favorites-ad-html {
	width:100%;
	height:100%;
	min-width:0;
	min-height:0;
	max-height:100%;
	overflow:hidden;
}

.coteia-favorites-sidebar-row--ads .coteia-favorites-ad-html > *,
.coteia-favorites-empty-band-ads .coteia-favorites-ad-html > * {
	max-width:100%;
	max-height:100%;
}

.coteia-favorites-sidebar-row--ads iframe,
.coteia-favorites-sidebar-row--ads ins,
.coteia-favorites-sidebar-row--ads img,
.coteia-favorites-empty-band-ads iframe,
.coteia-favorites-empty-band-ads ins,
.coteia-favorites-empty-band-ads img {
	display:block;
	max-width:100%;
	max-height:100%;
}

.coteia-favorites-sidebar-row--ads iframe,
.coteia-favorites-empty-band-ads iframe {
	width:100%;
	border:0;
}

/* HTML demonstrativo aprovado: compacta o conteúdo, não aumenta a área do ADS. */
.coteia-favorites-sidebar-row--ads .adsdemo-display-card,
.coteia-favorites-empty-band-ads .adsdemo-display-card {
	display:flex !important;
	flex-direction:column !important;
	width:100% !important;
	height:100% !important;
	max-width:none !important;
	max-height:100% !important;
	margin:0 !important;
	border-radius:12px !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-banner,
.coteia-favorites-empty-band-ads .adsdemo-display-banner {
	display:flex !important;
	flex:1 1 auto !important;
	min-height:0 !important;
	flex-direction:column !important;
	justify-content:center !important;
	padding:12px 14px 10px !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-label,
.coteia-favorites-empty-band-ads .adsdemo-display-label {
	top:8px !important;
	right:10px !important;
	padding:2px 8px !important;
	font-size:.58rem !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-banner h3,
.coteia-favorites-empty-band-ads .adsdemo-display-banner h3 {
	max-width:76% !important;
	margin:0 0 5px !important;
	font-size:clamp(1.05rem,1.55vw,1.35rem) !important;
	line-height:1.08 !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-banner p,
.coteia-favorites-empty-band-ads .adsdemo-display-banner p {
	max-width:95% !important;
	margin:0 0 8px !important;
	font-size:clamp(.68rem,.85vw,.78rem) !important;
	line-height:1.25 !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-cta,
.coteia-favorites-empty-band-ads .adsdemo-display-cta {
	align-self:flex-start !important;
	padding:7px 13px !important;
	font-size:.74rem !important;
	line-height:1.1 !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-footer,
.coteia-favorites-empty-band-ads .adsdemo-display-footer {
	flex:0 0 auto !important;
	gap:8px !important;
	padding:6px 10px !important;
	font-size:.62rem !important;
	line-height:1.2 !important;
}

.coteia-favorites-sidebar-row--ads .adsdemo-display-footer span,
.coteia-favorites-empty-band-ads .adsdemo-display-footer span {
	min-width:0;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

/* =====================================================
 * Favoritos vazio — faixa horizontal complementar
 * ===================================================== */
.coteia-favorites-empty-band {
	display:grid;
	width:100%;
	gap:16px;
	margin-top:22px;
	padding-top:22px;
	border-top:1px solid #e2e8f0;
	align-items:stretch;
}

.coteia-favorites-empty-band[hidden] {
	display:none !important;
}

.coteia-favorites-empty-band.has-content-and-ads {
	grid-template-columns:minmax(0,7fr) minmax(260px,3fr);
}

.coteia-favorites-empty-band.has-content-only {
	grid-template-columns:1fr;
}

.coteia-favorites-empty-band.has-ads-only {
	grid-template-columns:minmax(0,1fr) minmax(260px,30%);
}

.coteia-favorites-empty-band.has-ads-only::before {
	content:'';
	min-width:0;
}

.coteia-favorites-empty-band-content,
.coteia-favorites-empty-band-ads {
	min-width:0;
	padding:16px;
	border:1px solid #e2e8f0;
	border-radius:16px;
	background:#fff;
	box-shadow:0 8px 24px rgba(15,23,42,.06);
}

.coteia-favorites-empty-band-content .coteia-favorites-side-products {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	height:auto;
	gap:12px;
}

.coteia-favorites-empty-band-ads {
	height:100%;
	max-height:220px;
	padding:8px;
}

@media (max-width:900px) {
	.coteia-favorites-empty-band.has-content-and-ads,
	.coteia-favorites-empty-band.has-ads-only {
		grid-template-columns:1fr;
	}

	.coteia-favorites-empty-band.has-ads-only::before {
		display:none;
	}

	.coteia-favorites-empty-band-content .coteia-favorites-side-products {
		grid-template-columns:1fr;
	}

	.coteia-favorites-empty-band-ads {
		max-height:none;
	}
}


/* =====================================================
 * Favoritos alpha.14 — estado vazio sem duplicação
 * ===================================================== */

/* O atributo hidden é autoritativo, inclusive contra display:flex da sidebar. */
.coteia-favorites-sidebar[hidden],
.coteia-favorites-empty-band[hidden] {
	display:none !important;
}

/*
 * Quando Favoritos está vazio, a área da página mantém uma altura útil e
 * a faixa complementar é empurrada para o final do corpo, imediatamente
 * antes do rodapé. Não depende da altura do card de estado vazio.
 */
.coteia-favorites-shell.is-empty-with-band {
	display:flex;
	flex-direction:column;
	min-height:max(520px,calc(100svh - 260px));
}

.coteia-favorites-shell.is-empty-with-band .coteia-favorites-empty-band {
	margin-top:auto;
}

/* Segurança para navegadores sem svh. */
@supports not (height: 100svh) {
	.coteia-favorites-shell.is-empty-with-band {
		min-height:max(520px,calc(100vh - 260px));
	}
}


/* alpha.16 — visitante não logado também é estado vazio válido. */
.coteia-favorites-shell[data-empty-state="1"] .coteia-favorites-empty-band:not([hidden]) {
	display:grid;
}


/* =====================================================
 * Favoritos alpha.17 — faixa complementar junto ao estado vazio
 * ===================================================== */
.coteia-favorites-shell.is-empty-with-band {
	min-height:0;
}

.coteia-favorites-shell.is-empty-with-band .coteia-favorites-empty-band {
	margin-top:22px;
}

@supports not (height: 100svh) {
	.coteia-favorites-shell.is-empty-with-band {
		min-height:0;
	}
}
