/**
 * Estilos do frontend — Livre Resolução.
 */

.lr-wrapper {
	max-width: 640px;
	margin: 1.5rem 0;
	font-size: 15px;
	line-height: 1.6;
}

.lr-title {
	margin: 0 0 1rem;
	font-size: 1.4rem;
}

/* Avisos */
.lr-notice {
	padding: 12px 16px;
	border-radius: 6px;
	margin: 0 0 1.25rem;
	border: 1px solid transparent;
}
.lr-notice-success {
	background: #ecfdf3;
	border-color: #abefc6;
	color: #067647;
}
.lr-notice-error {
	background: #fef3f2;
	border-color: #fecdca;
	color: #b42318;
}

/* Campos */
.lr-field {
	margin: 0 0 1rem;
}
.lr-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
}
.lr-field input[type="text"],
.lr-field input[type="email"],
.lr-field textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #cbd2d9;
	border-radius: 6px;
	font-size: 15px;
	box-sizing: border-box;
}
.lr-field input:focus,
.lr-field textarea:focus {
	outline: none;
	border-color: #0a58ca;
	box-shadow: 0 0 0 3px rgba(10, 88, 202, 0.15);
}
.lr-req {
	color: #b42318;
}

.lr-legal,
.lr-success-note {
	font-size: 13px;
	color: #52606d;
	background: #f8fafc;
	border-left: 3px solid #cbd2d9;
	padding: 10px 12px;
	margin: 0 0 1.25rem;
}

/* Botão */
.lr-button {
	display: inline-block;
	background-color: #0a58ca;
	color: #ffffff;
	border: 1px solid #0a58ca;
	padding: 12px 22px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 6px;
	cursor: pointer;
	text-decoration: none;
	transition: filter 0.15s ease;
	line-height: 1.2;
}
.lr-button:hover {
	filter: brightness(0.92);
	color: #ffffff;
}

.lr-button-link {
	text-decoration: none;
}

/* ---------------------------------------------------------------------------
 * Botão + painel modal
 *
 * Por omissão (e sem JavaScript) o painel do formulário aparece inline e o
 * botão de abertura fica escondido — garante que o formulário é sempre
 * acessível. Quando o JavaScript está ativo (.lr-js), em modo "modal" o
 * botão aparece e o painel passa a comportar-se como janela modal.
 * ------------------------------------------------------------------------- */

.lr-open-modal {
	display: none;
}
.lr-panel-backdrop,
.lr-panel-close {
	display: none;
}
.lr-panel-heading {
	margin: 0 0 1rem;
	font-size: 1.3rem;
}

/* Estado com JavaScript, modo modal */
.lr-js .lr-wrapper[data-lr-mode="modal"] .lr-open-modal {
	display: inline-block;
}

/* Painel escondido: o display:none tem de vencer a regra do overlay abaixo,
   por isso usamos !important (a regra do overlay só se aplica a :not([hidden])). */
.lr-form-panel[hidden] {
	display: none !important;
}

/* Sem JavaScript disponível, revela o painel escondido para manter o
   formulário sempre acessível (substitui a antiga regra <noscript> inline). */
html:not(.lr-js) .lr-form-panel[hidden] {
	display: block !important;
}
.lr-js .lr-wrapper[data-lr-mode="modal"] .lr-form-panel:not([hidden]) {
	position: fixed;
	inset: 0;
	z-index: 99998;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 24px 16px;
	overflow-y: auto;
}
.lr-js .lr-wrapper[data-lr-mode="modal"] .lr-panel-backdrop {
	display: block;
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
}
.lr-js .lr-wrapper[data-lr-mode="modal"] .lr-panel-inner {
	position: relative;
	z-index: 1;
	background: #ffffff;
	border-radius: 10px;
	max-width: 560px;
	width: 100%;
	margin: auto;
	padding: 28px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
}
.lr-js .lr-wrapper[data-lr-mode="modal"] .lr-panel-close {
	display: block;
	position: absolute;
	top: 10px;
	right: 14px;
	background: none;
	border: none;
	font-size: 28px;
	line-height: 1;
	color: #52606d;
	cursor: pointer;
	padding: 4px;
}
.lr-js .lr-wrapper[data-lr-mode="modal"] .lr-panel-close:hover {
	color: #1f2933;
}

/* Honeypot — escondido de humanos */
.lr-hp {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* Ecrã de revisão (passo 2 sem JS) */
.lr-review-title {
	margin: 0 0 0.5rem;
}
.lr-review-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0 1.5rem;
}
.lr-review-table th,
.lr-review-table td {
	text-align: left;
	padding: 8px 12px;
	border: 1px solid #e4e7eb;
	vertical-align: top;
}
.lr-review-table th {
	background: #f4f5f7;
	width: 35%;
}
.lr-review-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.lr-cancel-link {
	background: none;
	border: none;
	color: #52606d;
	text-decoration: underline;
	cursor: pointer;
	font-size: 14px;
	padding: 0;
}

/* CTA no detalhe da encomenda */
.lr-order-cta {
	margin: 1.5rem 0;
	padding: 1.25rem 1.5rem;
	border: 1px solid #e4e7eb;
	border-radius: 8px;
	background: #f8fafc;
}
.lr-order-cta-title {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
}

/* Modal de confirmação (progressive enhancement) */
.lr-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.lr-modal[hidden] {
	display: none;
}
.lr-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
}
.lr-modal-box {
	position: relative;
	background: #ffffff;
	border-radius: 10px;
	max-width: 480px;
	width: 100%;
	padding: 24px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
	z-index: 1;
}
.lr-modal-title {
	margin: 0 0 12px;
	font-size: 1.2rem;
}
.lr-modal-summary {
	background: #f4f5f7;
	border-radius: 6px;
	padding: 12px 14px;
	margin: 0 0 12px;
	font-size: 14px;
}
.lr-modal-summary dl {
	margin: 0;
}
.lr-modal-summary dt {
	font-weight: 600;
	color: #52606d;
}
.lr-modal-summary dd {
	margin: 0 0 8px;
}
.lr-modal-warning {
	color: #b42318;
	font-weight: 600;
	margin: 0 0 16px;
}
.lr-modal-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

@media (max-width: 480px) {
	.lr-review-table th {
		width: 45%;
	}
}
