/* ==========================================================================
   Pelier Market — cart drawer, cart page, steppers, minimum banner,
   WhatsApp order form. No prices anywhere.
   ========================================================================== */

/* Drawer ----------------------------------------------------------------- */
.pm-drawer {
	position: fixed;
	inset: 0;
	top: var(--pm-adminbar-h, 0px); /* stay below the WP admin bar when logged in */
	z-index: 1100;
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0s linear .35s;
}
.pm-drawer.is-open {
	visibility: visible;
	pointer-events: auto;
	transition: visibility 0s linear 0s;
}
.pm-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .4);
	opacity: 0;
	transition: opacity .35s var(--ease);
	cursor: pointer;
}
.pm-drawer.is-open .pm-drawer__overlay { opacity: 1; }
.pm-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 540px; /* reference drawer width */
	max-width: 100%;
	display: flex;
	flex-direction: column;
	background: var(--pm-white);
	color: var(--pm-ink);
	box-shadow: -10px 0 30px rgba(0, 0, 0, .08);
	transform: translateX(100%);
	transition: transform .35s var(--ease);
	outline: none;
}
.pm-drawer.is-open .pm-drawer__panel { transform: none; }
.pm-drawer__body {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
}
.pm-drawer__head {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	height: 72px;
	padding: 0 32px;
	border-bottom: 1px solid var(--pm-line);
}
.pm-drawer__title {
	margin: 0;
	font-family: var(--font-head);
	font-size: 26.04px;
	line-height: 1.2;
	font-weight: 400;
}
.pm-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -12px;
	color: var(--pm-ink);
	transition: opacity .2s var(--ease);
}
.pm-drawer__close:hover { opacity: .6; }
.pm-drawer__scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
.pm-drawer__foot { border-top: 1px solid var(--pm-line); }

/* Minimum banner --------------------------------------------------------- */
.pm-min {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 12px 32px;
	font-size: 13px;
	line-height: 19px;
	font-weight: 500;
}
.pm-min__text { margin: 0; }
.pm-min__icon { flex: 0 0 auto; display: inline-flex; margin-top: 1px; }
.pm-min--todo { background: #f6efed; color: var(--pm-wine); }
.pm-min--ok { background: #eef7f0; color: #1e6b3a; }
.pm-min--page,
.pm-min--mini { border-radius: var(--radius); padding: 12px 14px; margin: 0 0 18px; }

/* Lines ------------------------------------------------------------------ */
.pm-lines { margin: 0; padding: 0 32px; list-style: none; }
.pm-line {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr);
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--pm-line);
	transition: opacity .2s var(--ease);
}
.pm-line:last-child { border-bottom: 0; }
.pm-line.is-loading { opacity: .5; pointer-events: none; }
.pm-line__thumb {
	position: relative;
	display: block;
	width: 80px;
	height: 100px;
	overflow: hidden;
	background: var(--pm-ph);
}
.pm-line__thumb > img,
.pm-line__thumb > .pm-ph {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: auto !important;
}
.pm-line__thumb .pm-ph::after { inset: 6px; }
.pm-line__thumb .pm-ph__inner { padding: 6px; }
.pm-line__thumb .pm-icon { width: 18px; height: 18px; }
.pm-line__info { min-width: 0; }
.pm-line__title {
	display: block;
	margin: 0 0 4px;
	font-size: 14px;
	line-height: 20px;
	font-weight: 500;
	color: var(--pm-ink);
}
a.pm-line__title:hover { text-decoration: underline; text-underline-offset: 3px; }
.pm-line__meta {
	margin: 0;
	font-size: 12px;
	line-height: 18px;
	color: var(--pm-muted);
}
.pm-line__sell { color: var(--pm-espresso); }
.pm-line__min { font-size: 11px; }
.pm-line__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px 12px;
	margin-top: 12px;
}
.pm-line__qty { display: inline-flex; align-items: center; gap: 8px; }
.pm-line__remove {
	font-size: 12px;
	line-height: 18px;
	color: var(--pm-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
	padding: 4px 0;
}
.pm-line__remove:hover { color: var(--pm-wine); }

/* Quantity stepper ------------------------------------------------------- */
.pm-cqty {
	display: inline-flex;
	align-items: stretch;
	height: 36px;
	border: 1px solid var(--pm-border);
	border-radius: var(--radius);
	background: var(--pm-white);
}
.pm-cqty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	color: var(--pm-ink);
	transition: opacity .2s var(--ease), background-color .2s var(--ease);
}
.pm-cqty__btn:hover { background: #f6f3ef; }
.pm-cqty__btn[disabled] { opacity: .3; cursor: not-allowed; background: none; }
.pm-cqty__input {
	width: 38px;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 14px;
	line-height: 1;
	text-align: center;
	color: var(--pm-ink);
	-moz-appearance: textfield;
	appearance: textfield;
}
.pm-cqty__input:focus { outline: none; box-shadow: inset 0 -2px 0 var(--pm-wine); }
.pm-cqty__input::-webkit-outer-spin-button,
.pm-cqty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pm-cqty__unit { font-size: 12px; color: var(--pm-muted); }

/* Summary / order form --------------------------------------------------- */
.pm-summary { padding: 20px 32px 28px; }
.pm-summary__title {
	margin: 0 0 16px;
	font-family: var(--font-head);
	font-size: 22px;
	line-height: 1.2;
}
.pm-summary__stats {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 18px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--pm-line);
}
.pm-summary__stat {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 14px;
	line-height: 20px;
}
.pm-summary__stat dt { color: var(--pm-muted); }
.pm-summary__stat dd { margin: 0; font-weight: 600; }
.pm-order-form { margin: 0; }
.pm-order-form__intro { margin: 0 0 14px; font-size: 13px; line-height: 19px; color: var(--pm-muted); }
.pm-field { margin: 0 0 10px; }
.pm-order-form .pm-label { font-size: 12px; line-height: 16px; margin: 0 0 4px; color: var(--pm-espresso); }
.pm-req { color: var(--pm-wine); }
.pm-order-form .pm-input {
	min-height: 42px;
	padding: 9px 12px;
	font-size: 14px;
	line-height: 20px;
}
.pm-order-form textarea.pm-input { min-height: 64px; resize: vertical; }
.pm-order-form .pm-input[aria-invalid="true"] { border-color: var(--pm-wine); }
.pm-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.pm-order-form__error {
	margin: 4px 0 12px;
	padding: 10px 12px;
	font-size: 13px;
	line-height: 19px;
	color: var(--pm-wine);
	background: #f6efed;
	border-radius: var(--radius);
}
.pm-order-form__error[hidden] { display: none; }
.pm-order-form__submit { margin-top: 16px; min-height: 52px; font-weight: 500; }
.pm-order-form__submit .pm-icon { flex: 0 0 auto; }
.pm-btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.pm-btn.is-loading > * { visibility: hidden; }
.pm-btn.is-loading::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid rgba(255, 255, 255, .5);
	border-top-color: #fff;
	border-radius: 50%;
	animation: pm-spin .7s linear infinite;
}
.pm-btn--outline.is-loading::after,
.pm-btn--white.is-loading::after { border-color: rgba(0, 0, 0, .2); border-top-color: #000; }
@keyframes pm-spin { to { transform: rotate(360deg); } }
.pm-order-form__hint {
	margin: 8px 0 0;
	font-size: 12px;
	line-height: 18px;
	text-align: center;
	color: var(--pm-wine);
}
.pm-order-form__note {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 18px;
	text-align: center;
	color: var(--pm-muted);
}
.pm-summary__link { margin: 18px 0 0; text-align: center; }
.pm-summary__pickup {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 18px 0 0;
	font-size: 12px;
	color: var(--pm-muted);
}

/* Inline messages -------------------------------------------------------- */
.pm-cart-msg {
	margin: 12px 24px 0;
	padding: 10px 12px;
	font-size: 13px;
	line-height: 19px;
	color: var(--pm-wine);
	background: #f6efed;
	border-radius: var(--radius);
}
.pm-cart-page .pm-cart-msg { margin: 0 0 12px; }
.pm-atc-msg {
	flex-basis: 100%;
	width: 100%;
	margin: 10px 0 0;
	padding: 10px 12px;
	font-size: 13px;
	line-height: 19px;
	color: var(--pm-wine);
	background: #f6efed;
	border-radius: var(--radius);
}
.pm-atc-msg.is-ok { color: #1e6b3a; background: #eef7f0; }
form.cart .single_add_to_cart_button.is-loading { opacity: .7; cursor: progress; }

/* Empty + success states ------------------------------------------------- */
.pm-cart-empty,
.pm-cart-success {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 56px 32px;
}
.pm-cart-empty__icon { color: var(--pm-ph-dark); margin-bottom: 16px; }
.pm-cart-empty__title,
.pm-cart-success__title {
	margin: 0 0 8px;
	font-family: var(--font-head);
	font-size: 22px;
	line-height: 1.3;
}
.pm-cart-empty__text,
.pm-cart-success__text {
	max-width: 320px;
	margin: 0 0 24px;
	font-size: 13px;
	line-height: 20px;
	color: var(--pm-muted);
}
.pm-cart-success__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-bottom: 18px;
	border-radius: 50%;
	background: #eef7f0;
	color: #1e6b3a;
}
.pm-cart-success .pm-btn--wa { max-width: 340px; }
.pm-cart-success__continue { margin-top: 20px; }

/* Cart page -------------------------------------------------------------- */
.pm-cart-page { padding: 48px 0 90px; }
.pm-cart-page__title {
	margin: 0 0 36px;
	font-family: var(--font-head);
	font-size: 36px;
	line-height: 1.2;
	font-weight: 400;
	text-align: center;
}
.pm-cart-page__notices:empty { display: none; }
.pm-cart-page__notices .woocommerce-notices-wrapper:empty { display: none; }
.pm-cart-page__notices .woocommerce-error,
.pm-cart-page__notices .woocommerce-message,
.pm-cart-page__notices .woocommerce-info {
	margin: 0 0 24px;
	padding: 12px 16px;
	list-style: none;
	font-size: 14px;
	border-radius: var(--radius);
	background: #f6efed;
	color: var(--pm-wine);
}
.pm-cart-page__notices .woocommerce-message,
.pm-cart-page__notices .woocommerce-info { background: #f6f3ef; color: var(--pm-espresso); }
.pm-cart-page__notices .woocommerce-error li { margin: 0; }
.pm-cart-page__state {
	max-width: 520px;
	margin: 0 auto;
	border: 1px solid var(--pm-line);
	border-radius: var(--radius);
}
.pm-cart-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 56px;
	align-items: start;
}
.pm-cart-form { margin: 0; }
.pm-cart-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 170px 90px;
	gap: 20px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--pm-line);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--pm-muted);
}
.pm-cart-head__qty,
.pm-cart-head__pieces { text-align: center; }
.pm-lines--page { padding: 0; }
.pm-lines--page .pm-line {
	grid-template-columns: 100px minmax(0, 1fr) 170px 90px;
	gap: 20px;
	align-items: center;
	padding: 24px 0;
}
.pm-lines--page .pm-line:last-child { border-bottom: 1px solid var(--pm-line); }
.pm-lines--page .pm-line__thumb { width: 100px; height: 125px; }
.pm-lines--page .pm-line__title { font-size: 15px; line-height: 22px; }
.pm-lines--page .pm-line__meta { font-size: 13px; line-height: 20px; }
.pm-line__col--qty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.pm-line__col--pieces { display: flex; flex-direction: column; align-items: center; text-align: center; }
.pm-line__pieces { font-size: 16px; font-weight: 600; }
.pm-line__pieces-label { font-size: 11px; color: var(--pm-muted); text-transform: uppercase; letter-spacing: .8px; }
.pm-cart-grid__continue { margin: 24px 0 0; }
.pm-cart-grid__summary { position: sticky; top: calc(var(--pm-header-h, 0px) + var(--pm-adminbar-h, 0px) + 24px); }
.pm-summary-card { border: 1px solid var(--pm-line); border-radius: var(--radius); background: var(--pm-white); }
.pm-summary-card .pm-summary { padding: 28px; }
.pm-cart-form noscript .pm-btn { margin-top: 16px; }

/* Mini-cart (widget) ----------------------------------------------------- */
.pm-lines--mini { padding: 0; }
.pm-mini__pieces { display: flex; justify-content: space-between; margin: 12px 0; font-size: 14px; }
.pm-mini__buttons { margin: 0; }
.pm-mini__empty { margin: 0; font-size: 14px; color: var(--pm-muted); }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1100px) {
	.pm-cart-grid { grid-template-columns: minmax(0, 1fr) 340px; gap: 36px; }
	.pm-cart-head { grid-template-columns: minmax(0, 1fr) 150px 70px; }
	.pm-lines--page .pm-line { grid-template-columns: 90px minmax(0, 1fr) 150px 70px; }
	.pm-lines--page .pm-line__thumb { width: 90px; height: 112px; }
}
@media (max-width: 900px) {
	.pm-cart-grid { grid-template-columns: 1fr; gap: 32px; }
	.pm-cart-grid__summary { position: static; }
}
@media (max-width: 640px) {
	.pm-cart-page { padding: 28px 0 60px; }
	.pm-cart-page__title { font-size: 30px; margin-bottom: 24px; }
	.pm-cart-head { display: none; }
	.pm-lines--page { border-top: 1px solid var(--pm-line); }
	.pm-lines--page .pm-line {
		grid-template-columns: 80px minmax(0, 1fr) auto;
		grid-template-areas: "thumb info info" "thumb qty pieces";
		gap: 12px 16px;
		align-items: start;
		padding: 20px 0;
	}
	.pm-lines--page .pm-line__thumb { grid-area: thumb; width: 80px; height: 100px; }
	.pm-lines--page .pm-line__info { grid-area: info; }
	.pm-lines--page .pm-line__col--qty { grid-area: qty; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
	.pm-lines--page .pm-line__col--pieces { grid-area: pieces; align-self: center; }
	.pm-summary-card .pm-summary { padding: 22px 18px; }
}
@media (max-width: 480px) {
	.pm-drawer__panel { width: 100%; }
	.pm-drawer__head { padding: 0 20px; }
	.pm-lines { padding: 0 20px; }
	.pm-lines--page { padding: 0; }
	.pm-min { padding: 12px 20px; }
	.pm-summary { padding: 20px 20px 28px; }
	.pm-cart-msg { margin-left: 20px; margin-right: 20px; }
}
@media (max-width: 767px) {
	/* 16px avoids the iOS zoom-on-focus */
	.pm-order-form .pm-input,
	.pm-cqty__input { font-size: 16px; }
}
