/* ========================================
   RESET CSS & BASE STYLES
   ======================================== */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	/* Cores Neutras - Base Minimalista */
	--white: #FFFFFF;
	--gray-50: #FAFAFA;
	--gray-100: #F5F5F5;
	--gray-200: #E5E5E5;
	--gray-300: #D4D4D4;
	--gray-400: #A3A3A3;
	--gray-600: #525252;
	--gray-800: #262626;
	--gray-900: #171717;
	--black: #000000;

	/* Cores de Feedback */
	--success: #22C55E;
	--warning: #F59E0B;
	--error: #EF4444;

	/* Sistema de Espaçamento */
	--spacing-1: 4px;
	--spacing-2: 8px;
	--spacing-3: 12px;
	--spacing-4: 16px;
	--spacing-5: 20px;
	--spacing-6: 24px;
	--spacing-8: 32px;
	--spacing-12: 48px;

	/* Border Radius */
	--radius-sm: 6px;
	--radius-md: 8px;
	--radius-lg: 12px;
	--radius-xl: 16px;
	--radius-full: 9999px;

	/* Sombras */
	--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
	--shadow-base: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06);
	--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.10), 0 2px 4px rgba(0, 0, 0, 0.08);
	--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.10), 0 4px 6px rgba(0, 0, 0, 0.08);
	--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.12), 0 8px 10px rgba(0, 0, 0, 0.08);

	/* Transições */
	--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
	--transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

body {
	font-family: 'Inter', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--gray-800);
	background-color: var(--gray-50);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

html {
	overflow-x: hidden;
}

/* ========================================
   PRIMEFACES OVERRIDES
   ======================================== */
.blockMsg {
	visibility: hidden;
}

.blockOverlay {
	opacity: 0.1 !important;
	z-index: 1020 !important;
}

body .ui-dialog .ui-dialog-titlebar {
    padding: 1.0rem 1.5rem 0 1.5rem !important;
}

body .ui-confirmdialog-no {
    width: 100% !important;
    background: var(--error) !important;
    border: 1px solid var(--error) !important;
	border-radius: var(--radius-md);
	transition: all var(--transition-base);
}

body .ui-confirmdialog-no:hover {
	background: #DC2626 !important;
	transform: scale(0.98);
}

/* ========================================
   BUTTONS & INPUTS
   ======================================== */
.btn-opcao-checkout {
	border: 1px solid var(--gray-300) !important;
	border-radius: var(--radius-md);
	margin-left: 10% !important;
	margin-right: 10% !important;
	transition: all var(--transition-base);
	background: var(--white);
}

.btn-opcao-checkout:hover {
	border-color: var(--gray-400);
	box-shadow: var(--shadow-sm);
}

.btn-opcao-avancar {
	border: 1px solid var(--gray-300) !important;
	border-radius: var(--radius-md);
   	margin-left: 10% !important;
	margin-right: 10% !important;
	transition: all var(--transition-base);
}

input, textarea {
	text-transform: uppercase;
	width: 100%;
	border: 1px solid var(--gray-300);
	border-radius: var(--radius-md);
	padding: var(--spacing-2) var(--spacing-3);
	transition: all var(--transition-base);
	background: var(--white);
	color: var(--gray-800);
}

input:focus, textarea:focus {
	outline: none;
	border-color: var(--gray-400);
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}

.normal-case {
	text-transform: none !important;	
}

.lower-case {
	text-transform: lowercase !important;
}

.text-center {
	text-align: center;
}

.fa {
	color: #3c3c3c;
}

.fa:hover {
	color: #b1b1b1;
}

.block {
	display: block !important;
}

.flow-root {
	display: flow-root !important;
}

.inline-flex {
	display: inline-flex !important
}

.blocoinfo {
	padding: 50px 0 !important;
	text-align: center;
}

.lblcolumn {
	font-weight: bold;
}

.btnunselected {
	background: transparent !important;	
}

.div-prod-lista {
	display: flex;
	align-items: center;
	border-bottom: 1px solid #c1c1c1;
}

.sessao-frame {
    padding: 0 10% !important;
}

.field {
	display: grid;
	padding-bottom: 16px;
}

.field label {
	padding-bottom: 4px;
}

.padding0 {
	padding: 0 !important;
}

/* ========================================
   PRODUCT LIST & CARDS
   ======================================== */
.product-list {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
	gap: 24px !important;
	padding: 24px 16px !important;
	max-width: 1400px !important;
	margin: 0 auto !important;
	width: 100% !important;
	box-sizing: border-box !important;
	overflow-x: hidden !important;
}

/* Sobrescrever grid fixo do template */
@media (min-width: 1200px) {
	.product-list {
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
	}
}

@media (max-width: 1200px) and (min-width: 768px) {
	.product-list {
		grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
		gap: 20px !important;
	}
}

@media (max-width: 768px) and (min-width: 480px) {
	.product-list {
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
		gap: 16px !important;
		padding: 16px 12px !important;
	}
}

@media (max-width: 480px) {
	.product-list {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
		padding: 16px !important;
	}
}

.product {
	background: var(--white);
	border: 1px solid var(--gray-200);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-base);
	padding: var(--spacing-5);
	text-align: center;
	transition: all var(--transition-slow);
	flex-direction: column;
	overflow: hidden;
	min-width: 0;
}

.product:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
	border-color: var(--gray-300);
}

.product a {
	text-decoration: none;
    color: inherit;
	display: block;
	flex-grow: 1;
}

.product .produto-titulo {
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--gray-900);
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	padding-bottom: var(--spacing-2);
	min-height: 4.2em;
	margin-top: var(--spacing-3);
}

.product img {
	max-width: 100%;
	height: auto;
	border-radius: var(--radius-md);
}

.product-midia {
	height: 230px !important;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: var(--spacing-4);
	background: var(--gray-50);
	border-radius: var(--radius-md);
	overflow: hidden;
	position: relative;
}

.product-midia img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.product-midia iframe {
	height: -webkit-fill-available;
	border-radius: var(--radius-md);
}

/* ========================================
   PRODUCT CART ITEM - Nova estrutura limpa
   ======================================== */
.product-cart-item {
	text-align: left;
	display: flex;
	flex-direction: column;
	padding: var(--spacing-2) var(--spacing-1);
	border-radius: var(--radius-md);
	margin-bottom: var(--spacing-1);
	gap: 4px;
}

/* Qtdade mínima - linha 1, width 100% */
.pci-qtdade-minima {
	font-size: 0.75rem;
	color: #666;
	width: 100%;
	line-height: 1.3;
}

/* Nome da variação - linha própria quando existe */
.pci-variacao-nome {
	display: block;
	font-size: 0.813rem;
	font-weight: 500;
	color: var(--gray-600);
	line-height: 1.4;
	margin-bottom: 4px;
}

/* Linha de preço + controles */
.pci-row {
	display: flex;
	align-items: center;
	width: 100%;
}

/* Spans wrappers do JSF ficam invisíveis ao flex */
.pci-row > span {
	display: contents;
}

/* Preço: à esquerda */
.pci-preco {
	font-size: 0.938rem;
	font-weight: 600;
	color: var(--gray-900);
	white-space: nowrap;
	flex-shrink: 0;
}

/* Controles: à direita */
.pci-controls {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-left: auto;
}

/* Links (p:commandLink) dentro dos controles */
.pci-controls a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: 32px;
}

/* Links desabilitados do PrimeFaces - manter visíveis */
.pci-controls a.ui-state-disabled {
	display: inline-flex !important;
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}

.pci-controls i {
	font-size: 1.25rem;
	cursor: pointer;
	transition: all var(--transition-base);
	border-radius: var(--radius-full);
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.pci-controls i:hover {
	background: var(--gray-100);
	transform: scale(1.1);
}

.pci-controls i:active {
	transform: scale(0.95);
}

.iptqtdade {
	width: 60px;
	height: 32px;
	font-size: 1rem;
	font-weight: 600;
	border: 1px solid var(--gray-300);
	border-radius: var(--radius-md);
	text-align: center;
	padding: 0 var(--spacing-1);
	background: var(--white);
	color: var(--gray-900);
	flex-shrink: 0;
}

.product-cart-item-indisponivel-label {
    color: var(--error);
    padding: var(--spacing-2);
    font-size: 0.875rem;
	font-weight: 500;
    display: block;
    width: 100%;
    text-align: center;
	background: rgba(239, 68, 68, 0.1);
	border-radius: var(--radius-md);
	margin-top: var(--spacing-2);
}

/* ========================================
   PAGINATOR
   ======================================== */
.paginator-area {
	display: flex;
	justify-content: center;
	padding: var(--spacing-8) 0;
}

.paginator-area ul {
	padding: 0;
	display: inline-flex;
	list-style-type: none;
	gap: var(--spacing-2);
	flex-wrap: wrap;
	align-items: center;
}

.paginator-area li {
	border: 1px solid var(--gray-300);
	cursor: pointer;
	border-radius: var(--radius-md);
	min-width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--transition-base);
	background: var(--white);
}

.paginator-area li:hover {
	background: var(--gray-100);
	transform: scale(1.05);
	border-color: var(--gray-400);
}

.paginator-area li.active {
	transform: scale(1);
}

.paginator-area li a {
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.paginator-area li i {
	font-size: 1rem;
}

/* ========================================
   UTILITIES
   ======================================== */
.pi-heart-beating {
	color: #EB5E28;
	animation: heartBeat 1.5s infinite;
}

@keyframes heartBeat {
	0%, 100% { transform: scale(1); }
	25% { transform: scale(1.1); }
	50% { transform: scale(1); }
}

/* ========================================
   RESPONSIVE DESIGN
   ======================================== */
@media (max-width: 1024px) {
	.product-list {
		grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
		gap: var(--spacing-5);
	}
}

@media (max-width: 640px) {
	.paginator-area li {
		min-width: 36px;
		height: 36px;
		font-size: 0.875rem;
	}

	.paginator-area ul {
		gap: var(--spacing-1);
	}

	.div-prod-lista {
		display: block;
	}

	.sessao-frame {
    	padding: 0 2% !important;
	}

	.product-list {
		grid-template-columns: 1fr;
		gap: var(--spacing-4);
		padding: var(--spacing-4) var(--spacing-2);
	}

	.product {
		padding: var(--spacing-4);
	}

	body {
		font-size: 14px;
	}
}