/* WhatsApp Quote — Frontend UI. All selectors scoped under ideapw_ prefix */

:root {
	--ideapw-primary: #25D366;
	--ideapw-primary-dark: #1DA851;
	--ideapw-ink: #101828;
	--ideapw-muted: #667085;
	--ideapw-border: #E4E7EC;
	--ideapw-radius: 999px;
	--ideapw-shadow: 0 2px 8px rgba(16,24,40,.08);
	--ideapw-shadow-lg: 0 12px 32px rgba(16,24,40,.18);
	--ideapw-danger: #D92D20;
}

@media (prefers-reduced-motion: reduce) {
	.ideapw_quote_button, .ideapw_quote_modal, .ideapw_quote_modal__panel, .ideapw_quote_form__spinner {
		transition: none !important; animation: none !important;
	}
}

/* ---------- Button ---------- */
.ideapw_quote_button {
	all: unset;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	font-family: inherit;
	font-weight: 600;
	line-height: 1;
	border-radius: var(--ideapw-radius, 999px);
	background: var(--ideapw-btn-bg-color, linear-gradient(135deg, var(--ideapw-primary), var(--ideapw-primary-dark)));
	color: #fff;
	padding: 13px 22px;
	box-shadow: var(--ideapw-shadow);
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease, background .15s ease, color .15s ease, border-color .15s ease;
	position: relative;
	margin: 8px 0;
	width: 100%;
	max-width: 340px;
	border: 1.5px solid transparent;
}
.ideapw_quote_button:hover { transform: translateY(-2px); box-shadow: var(--ideapw-shadow-lg); }
.ideapw_quote_button:active { transform: translateY(0); }
.ideapw_quote_button:focus-visible { outline: 3px solid rgba(37,211,102,.5); outline-offset: 2px; }
.ideapw_quote_button[disabled] { opacity: .65; cursor: not-allowed; transform: none; }
.ideapw_quote_button__icon { flex: none; width: 24px; height: 24px; }
.ideapw_quote_button__label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ideapw_quote_button--size-small { padding: 9px 16px; font-size: 12.5px; }
.ideapw_quote_button--size-medium { padding: 13px 22px; font-size: 14px; }
.ideapw_quote_button--size-large { padding: 16px 28px; font-size: 15.5px; }
.ideapw_quote_button--size-small .ideapw_quote_button__icon { width: 20px; height: 20px; }

/* Bordered — transparent fill, colored outline. */
.ideapw_quote_button--style-outline {
	background: transparent;
	color: var(--ideapw-btn-border-color, var(--ideapw-primary-dark));
	border-color: var(--ideapw-btn-border-color, var(--ideapw-primary));
	box-shadow: none;
}
.ideapw_quote_button--style-outline:hover { background: rgba(37,211,102,.08); box-shadow: none; }

/* White background — colored border and text on a plain white fill. */
.ideapw_quote_button--style-white {
	background: var(--ideapw-btn-bg-color, #fff);
	color: var(--ideapw-btn-border-color, var(--ideapw-primary-dark));
	border-color: var(--ideapw-btn-border-color, var(--ideapw-border));
}
.ideapw_quote_button--style-white:hover { box-shadow: var(--ideapw-shadow); transform: translateY(-1px); }

/* Premium Dark — flat ink background, no gradient, minimal shadow. */
.ideapw_quote_button--style-premium_dark {
	background: var(--ideapw-btn-bg-color, var(--ideapw-ink));
	color: #fff;
	border-color: var(--ideapw-btn-border-color, rgba(255,255,255,.08));
	box-shadow: 0 1px 2px rgba(16,24,40,.18);
}
.ideapw_quote_button--style-premium_dark:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 10px rgba(16,24,40,.22);
	background: var(--ideapw-btn-bg-color, #1D2939);
}

/* Premium Minimal — text-first, no fill, no border, subtle hover tint. */
.ideapw_quote_button--style-premium_minimal {
	background: transparent;
	color: var(--ideapw-btn-border-color, var(--ideapw-btn-bg-color, var(--ideapw-primary-dark)));
	border-color: transparent;
	box-shadow: none;
	letter-spacing: .01em;
}
.ideapw_quote_button--style-premium_minimal:hover {
	background: rgba(16,24,40,.04);
	transform: none;
	box-shadow: none;
}

/* ---------- Cart / checkout "quote all items" placement ---------- */
.ideapw_cart_quote_wrap {
	width: 100%;
	margin-top: 10px;
}
.ideapw_quote_button--cart-all {
	width: 100%;
	max-width: none;
}
/* Sits directly under WooCommerce's own Proceed to Checkout button. */
.wc-proceed-to-checkout .ideapw_cart_quote_wrap { margin-top: 10px; }
/* Sits directly under WooCommerce's own Place Order button on checkout. */
#order_review .ideapw_cart_quote_wrap,
.woocommerce-checkout-review-order .ideapw_cart_quote_wrap { margin-top: 12px; }

.ideapw_quote_button--style-soft {
	background: rgba(37,211,102,.12); color: var(--ideapw-primary-dark); box-shadow: none; border-color: transparent;
}
.ideapw_quote_button--style-soft:hover { background: rgba(37,211,102,.2); }

.ideapw_quote_button--loading .ideapw_quote_button__label { opacity: .6; }
.ideapw_quote_button--success { background: linear-gradient(135deg, #1DA851, #147a3c); }

@media (max-width: 480px) {
	.ideapw_quote_button { width: 100%; max-width: none; }
}

/* ---------- Modal ---------- */
.ideapw_quote_modal {
	position: fixed; inset: 0; z-index: 100000;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.ideapw_quote_modal[hidden] { display: none; }

.ideapw_quote_modal__backdrop {
	position: absolute; inset: 0; background: rgba(16,24,40,.55);
	backdrop-filter: blur(2px);
	opacity: 0; transition: opacity .25s ease;
}
.ideapw_quote_modal.is-open .ideapw_quote_modal__backdrop { opacity: 1; }

.ideapw_quote_modal__panel {
	position: relative;
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--ideapw-shadow-lg);
	width: 100%;
	max-width: 460px;
	max-height: min(92vh, 820px);
	overflow: hidden;
	transform: translateY(24px) scale(.97);
	opacity: 0;
	transition: transform .28s cubic-bezier(.2,.8,.2,1), opacity .28s ease;
}
.ideapw_quote_modal.is-open .ideapw_quote_modal__panel { transform: translateY(0) scale(1); opacity: 1; }

.ideapw_quote_modal__scroll {
	max-height: min(92vh, 820px);
	overflow-y: auto;
	padding: 28px 26px 24px;
}

.ideapw_quote_modal__close {
	all: unset; position: absolute; top: 16px; right: 16px;
	width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
	border-radius: 50%; cursor: pointer; color: var(--ideapw-muted);
	transition: background .15s ease, color .15s ease;
}
.ideapw_quote_modal__close:hover { background: #F2F4F7; color: var(--ideapw-ink); }
.ideapw_quote_modal__close:focus-visible { outline: 2px solid var(--ideapw-primary); }

.ideapw_quote_modal__header { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.ideapw_quote_modal__badge {
	width: 44px; height: 44px; border-radius: 13px; flex: none;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--ideapw-primary), var(--ideapw-primary-dark)); color: #fff;
}
.ideapw_quote_modal__badge svg { width: 24px; height: 24px; }
.ideapw_quote_modal__title { margin: 0; font-size: 18px; font-weight: 700; color: var(--ideapw-ink); }

.ideapw_quote_modal__product {
	display: flex; align-items: center; gap: 12px;
	background: #F7F8FA; border-radius: 14px; padding: 12px; margin-bottom: 18px;
}
.ideapw_quote_modal__product_image { width: 52px; height: 52px; object-fit: cover; border-radius: 10px; flex: none; }
.ideapw_quote_modal__product_name { margin: 0; font-weight: 600; font-size: 13.5px; color: var(--ideapw-ink); }
.ideapw_quote_modal__product_variation { margin: 2px 0 0; font-size: 12px; color: var(--ideapw-muted); }

.ideapw_quote_form__row { margin-bottom: 14px; }
.ideapw_quote_field__label { display: block; font-size: 12.5px; font-weight: 600; color: var(--ideapw-ink); margin-bottom: 6px; }
.ideapw_required { color: var(--ideapw-danger); margin-left: 2px; }
.ideapw_quote_field__input {
	width: 100%; padding: 11px 13px; border: 1.5px solid var(--ideapw-border);
	border-radius: 12px; font-size: 13.5px; font-family: inherit; color: var(--ideapw-ink);
	background: #fff; transition: border-color .15s ease, box-shadow .15s ease;
}
.ideapw_quote_field__input:focus { outline: none; border-color: var(--ideapw-primary); box-shadow: 0 0 0 4px rgba(37,211,102,.12); }
.ideapw_quote_field__input.is-invalid { border-color: var(--ideapw-danger); }
.ideapw_quote_field__textarea { resize: vertical; min-height: 72px; }
.ideapw_quote_field__error { display: none; color: var(--ideapw-danger); font-size: 11.5px; margin-top: 5px; }
.ideapw_quote_field__error.is-visible { display: block; }

.ideapw_quote_form__footer { margin-top: 8px; }
.ideapw_quote_form__status { min-height: 18px; font-size: 12.5px; color: var(--ideapw-muted); margin-bottom: 8px; }
.ideapw_quote_form__status.is-error { color: var(--ideapw-danger); }
.ideapw_quote_form__status.is-success { color: var(--ideapw-primary-dark); }

.ideapw_quote_form__submit {
	all: unset; box-sizing: border-box;
	display: flex; align-items: center; justify-content: center; gap: 8px;
	width: 100%; padding: 14px; border-radius: 999px; cursor: pointer;
	background: linear-gradient(135deg, var(--ideapw-primary), var(--ideapw-primary-dark));
	color: #fff; font-weight: 700; font-size: 14px;
	box-shadow: var(--ideapw-shadow);
	transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.ideapw_quote_form__submit_icon { display: flex; flex: none; line-height: 0; }
.ideapw_quote_form__submit_icon svg { width: 24px; height: 24px; }
.ideapw_quote_form__submit:hover { transform: translateY(-2px); box-shadow: var(--ideapw-shadow-lg); }
.ideapw_quote_form__submit[disabled] { opacity: .7; cursor: not-allowed; transform: none; }
.ideapw_quote_form__spinner {
	display: none; width: 16px; height: 16px; border-radius: 50%;
	border: 2px solid rgba(255,255,255,.4); border-top-color: #fff;
	animation: ideapw_spin .7s linear infinite;
}
.ideapw_quote_form__submit.is-loading .ideapw_quote_form__spinner { display: inline-block; }
.ideapw_quote_form__submit.is-loading .ideapw_quote_form__submit_label { opacity: .8; }
@keyframes ideapw_spin { to { transform: rotate(360deg); } }

@media (max-width: 480px) {
	.ideapw_quote_modal { padding: 0; align-items: flex-end; }
	.ideapw_quote_modal__panel {
		max-width: none; width: 100%; max-height: 92vh;
		border-radius: 20px 20px 0 0;
		transform: translateY(100%);
	}
	.ideapw_quote_modal.is-open .ideapw_quote_modal__panel { transform: translateY(0); }
}
