.lakefront-customizer-fields {
	border: 1px solid #d7d7d7;
	border-radius: 6px;
	margin: 1.25rem 0;
	padding: 1.25rem;
	background: #fff;
}

.lakefront-customizer-fields h3 {
	margin-top: 0;
}

.lakefront-customizer-summary {
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
	background: #f6f6f3;
	border-left: 4px solid #263d3a;
}

.lakefront-customizer-fieldset {
	border: 0;
	margin: 0 0 1rem;
	padding: 0;
}

.lakefront-customizer-fieldset legend {
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.lakefront-customizer-choice,
.lakefront-customizer-checkbox,
.lakefront-customizer-confirmation {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 0.65rem 0;
}

.lakefront-customizer-choice input,
.lakefront-customizer-checkbox input,
.lakefront-customizer-confirmation input {
	margin-top: 0.25rem;
	flex: 0 0 auto;
}

.lakefront-customizer-choice small,
.lakefront-customizer-checkbox small,
.lakefront-customizer-upload small,
.lakefront-customizer-panel small {
	display: block;
	margin-top: 0.2rem;
	opacity: 0.78;
}

.lakefront-customizer-panel {
	margin: 1rem 0;
	padding: 1rem;
	background: #fafafa;
	border: 1px solid #e5e5e5;
}

.lakefront-customizer-panel[hidden] {
	display: none !important;
}

.lakefront-customizer-panel input[type="text"] {
	width: 100%;
	max-width: 420px;
}

.lakefront-customizer-upload {
	margin: 1.15rem 0;
	padding-top: 1rem;
	border-top: 1px solid #e5e5e5;
}

.lakefront-customizer-upload input[type="file"] {
	display: block;
	margin: 0.5rem 0;
	max-width: 100%;
}

.lakefront-customizer-confirmation {
	margin-top: 1rem;
	padding: 0.9rem;
	background: #fff8e7;
	border: 1px solid #ead8a8;
}

.lakefront-customizer-fields .required {
	color: #b32d2e;
}

.lakefront-customizer-note {
	display: block;
	margin-top: 0.75rem;
}


.lakefront-customizer-intro {
	margin: 0 0 1rem;
}

.lakefront-customizer-designer-note,
.lakefront-customizer-trust-note {
	margin: 1rem 0;
	padding: 1rem 1.05rem;
	border: 1px solid #d9e2df;
	border-radius: 6px;
	background: #f7faf9;
}

.lakefront-customizer-designer-note strong,
.lakefront-customizer-trust-note strong {
	display: block;
	margin-bottom: 0.3rem;
}

.lakefront-customizer-designer-note p {
	margin: 0.3rem 0 0;
}

.lakefront-customizer-personalization select,
.lakefront-customizer-personalization input[type="text"] {
	width: 100%;
	max-width: 420px;
}

.lakefront-customizer-custom-wording[hidden],
[data-lakefront-year-row][hidden] {
	display: none !important;
}

.lakefront-customizer-fieldset {
	padding-top: 0.35rem;
}

.lakefront-customizer-trust-note {
	font-size: 0.96em;
	line-height: 1.55;
}


/* V0.003 personalization example and safer map-option UI. */
.lakefront-customizer-example-image {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin: 1rem 0;
	padding: 0.8rem;
	border: 1px solid #e2e2de;
	border-radius: 6px;
	background: #fbfbf8;
	text-align: left;
}

.lakefront-customizer-example-image a {
	flex: 0 0 105px;
}

.lakefront-customizer-example-image img {
	display: block;
	width: 105px;
	max-width: 100%;
	max-height: 145px;
	margin: 0;
	object-fit: contain;
}

.lakefront-customizer-example-image figcaption {
	flex: 1 1 auto;
	font-size: 0.9em;
	line-height: 1.45;
	opacity: 0.86;
}

.lakefront-customizer-live-preview {
	margin: 0.9rem 0 1.1rem;
	padding: 1rem 1.05rem;
	border: 1px dashed #b9c4c0;
	border-radius: 6px;
	background: #fcfcfa;
	text-align: center;
}

.lakefront-customizer-live-preview-label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.78em;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.68;
}

.lakefront-customizer-live-preview strong,
.lakefront-customizer-live-preview > span[data-lakefront-preview-year] {
	display: block;
}

.lakefront-customizer-live-preview strong {
	font-size: 1.16em;
	line-height: 1.3;
}

.lakefront-customizer-live-preview > span[data-lakefront-preview-year] {
	margin-top: 0.2rem;
}

.lakefront-customizer-live-preview small {
	display: block;
	margin-top: 0.55rem;
}

.lakefront-customizer-live-preview em {
	display: block;
	margin-top: 0.65rem;
	font-size: 0.82em;
	font-style: normal;
	opacity: 0.67;
}

.lakefront-customizer-map-feature {
	margin-top: 0.9rem;
	padding-top: 0.85rem;
	border-top: 1px solid #e5e5e5;
}

.lakefront-customizer-map-feature > strong,
.lakefront-customizer-map-feature > small {
	display: block;
}

.lakefront-customizer-map-feature > small {
	margin-top: 0.2rem;
	margin-bottom: 0.55rem;
	opacity: 0.78;
}

@media (max-width: 768px) {
	.lakefront-customizer-fields {
		padding: 1rem;
	}

	.lakefront-customizer-example-image {
		align-items: flex-start;
	}

	.lakefront-customizer-example-image a {
		flex-basis: 90px;
	}

	.lakefront-customizer-example-image img {
		width: 90px;
		max-height: 130px;
	}
}


/* V0.004 optional paid add-on. */
.lakefront-customizer-hidden-state {
	display: none !important;
}

.lakefront-customizer-addon {
	margin: 1.4rem 0 0;
	padding: 1.15rem 1.2rem;
	border: 1px solid #d7dedb;
	border-radius: 8px;
	background: #fff;
}

.lakefront-customizer-addon-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.lakefront-customizer-addon-header h3 {
	margin: 0.1rem 0 0.35rem;
}

.lakefront-customizer-addon-header p {
	margin: 0;
	max-width: 560px;
}

.lakefront-customizer-eyebrow {
	display: block;
	font-size: 0.72em;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	opacity: 0.65;
}

.lakefront-customizer-addon-price {
	flex: 0 0 auto;
	text-align: right;
	white-space: nowrap;
}

.lakefront-customizer-addon-price strong,
.lakefront-customizer-addon-price small {
	display: block;
}

.lakefront-customizer-addon-price strong {
	font-size: 1.08em;
}

.lakefront-customizer-addon-price small {
	margin-top: 0.1rem;
	opacity: 0.7;
}

.lakefront-customizer-toggle {
	margin-top: 1rem !important;
}

.lakefront-customizer-status {
	margin: 0.65rem 0 0;
	font-size: 0.9em;
	opacity: 0.75;
}

.lakefront-customizer-expanded {
	margin-top: 1.15rem;
	padding-top: 1.1rem;
	border-top: 1px solid #e4e7e5;
}

.lakefront-customizer-expanded[hidden] {
	display: none !important;
}

.lakefront-customizer-layout-choice {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	padding: 0.7rem;
	border: 1px solid #e2e5e3;
	border-radius: 6px;
	background: #fff;
}

.lakefront-customizer-layout-choice:has(.lakefront-customizer-layout-thumb) {
	grid-template-columns: auto 72px minmax(0, 1fr);
}

.lakefront-customizer-layout-choice input:checked ~ span strong {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lakefront-customizer-layout-thumb {
	display: block;
	width: 72px;
	height: 82px;
	object-fit: contain;
	background: #fafafa;
	border: 1px solid #ececec;
}

.lakefront-customizer-selected-example {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin: 1rem 0;
	padding: 0.8rem;
	border: 1px solid #e2e2de;
	border-radius: 6px;
	background: #fbfbf8;
}

.lakefront-customizer-selected-example[hidden] {
	display: none !important;
}

.lakefront-customizer-selected-example a {
	flex: 0 0 115px;
}

.lakefront-customizer-selected-example img {
	display: block;
	width: 115px;
	max-height: 155px;
	object-fit: contain;
}

.lakefront-customizer-selected-example figcaption {
	font-size: 0.9em;
	line-height: 1.45;
	opacity: 0.86;
}

.lakefront-customizer-price-summary {
	margin: 1rem 0;
	padding: 0.9rem 1rem;
	border: 1px solid #e2e5e3;
	border-radius: 6px;
	background: #fafbf9;
}

.lakefront-customizer-price-summary > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: 0.15rem 0;
}

.lakefront-customizer-price-summary small {
	display: block;
	margin-top: 0.45rem;
	opacity: 0.72;
}

.lakefront-customizer-ready-note {
	margin: 1rem 0;
	padding: 1rem;
	border-left: 4px solid #263d3a;
	background: #f6f7f5;
}

.lakefront-customizer-ready-note strong,
.lakefront-customizer-ready-note span {
	display: block;
}

.lakefront-customizer-ready-note span {
	margin-top: 0.25rem;
}

.lakefront-customizer-return {
	margin-top: 0.75rem !important;
}

.lakefront-customizer-remove {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	text-decoration: underline;
	cursor: pointer;
	opacity: 0.72;
}

.lakefront-customizer-remove:hover,
.lakefront-customizer-remove:focus {
	opacity: 1;
}

/*
 * Express checkout remains available in V0.004. While an active personalization
 * draft is being synchronized to the WooCommerce session, common wallet wrappers
 * are briefly protected against a race-click. They are not hidden or removed.
 */
body.lakefront-customizer-personalization-syncing .wcpay-express-checkout-wrapper,
body.lakefront-customizer-personalization-syncing #wcpay-express-checkout-wrapper,
body.lakefront-customizer-personalization-syncing .wcpay-payment-request-wrapper,
body.lakefront-customizer-personalization-syncing #wcpay-payment-request-wrapper,
body.lakefront-customizer-personalization-syncing .wc-stripe-payment-request-wrapper,
body.lakefront-customizer-personalization-syncing #wc-stripe-payment-request-wrapper,
body.lakefront-customizer-personalization-syncing .wc-stripe-product-checkout-container,
body.lakefront-customizer-personalization-syncing .wcpay-express-checkout-element,
body.lakefront-customizer-personalization-syncing .wc-stripe-express-checkout-element,
body.lakefront-customizer-personalization-syncing .ppc-button-wrapper,
body.lakefront-customizer-personalization-syncing .wc-ppcp-express-checkout {
	pointer-events: none;
	opacity: 0.65;
}

.lakefront-customizer-addon.is-syncing .lakefront-customizer-status::after {
	content: "";
	display: inline-block;
	width: 0.7em;
	height: 0.7em;
	margin-left: 0.45em;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	vertical-align: -0.08em;
	animation: lakefront-customizer-spin 0.7s linear infinite;
}

@keyframes lakefront-customizer-spin {
	to { transform: rotate(360deg); }
}

@media (max-width: 768px) {
	.lakefront-customizer-addon {
		padding: 1rem;
	}

	.lakefront-customizer-addon-header {
		display: block;
	}

	.lakefront-customizer-addon-price {
		margin-top: 0.65rem;
		text-align: left;
	}

	.lakefront-customizer-layout-choice:has(.lakefront-customizer-layout-thumb) {
		grid-template-columns: auto 58px minmax(0, 1fr);
	}

	.lakefront-customizer-layout-thumb {
		width: 58px;
		height: 70px;
	}

	.lakefront-customizer-selected-example {
		align-items: flex-start;
	}

	.lakefront-customizer-selected-example a {
		flex-basis: 90px;
	}

	.lakefront-customizer-selected-example img {
		width: 90px;
		max-height: 130px;
	}
}


/* V0.005 purchase-area pricing and clearer cart/checkout presentation. */
[data-lakefront-toggle][hidden] {
	display: none !important;
}

.lakefront-customizer-purchase-price {
	margin: 0.45rem 0 0.85rem;
	padding: 0.8rem 0.9rem;
	border: 1px solid #d9dedc;
	border-radius: 6px;
	background: #fafbf9;
}

.lakefront-customizer-purchase-price[hidden] {
	display: none !important;
}

.lakefront-customizer-purchase-price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding: 0.15rem 0;
	line-height: 1.4;
}

.lakefront-customizer-purchase-price-row > span {
	opacity: 0.82;
}

.lakefront-customizer-purchase-price-row > strong {
	white-space: nowrap;
}

.lakefront-customizer-purchase-price-total {
	margin-top: 0.45rem;
	padding-top: 0.55rem;
	border-top: 1px solid #d9dedc;
	font-weight: 700;
}

.lakefront-customizer-purchase-price-total > span {
	opacity: 1;
}

.lakefront-customizer-purchase-price-total > strong {
	font-size: 1.25em;
}

/*
 * The native variation price is the standard print price. While personalization
 * is active, the V0.005 breakdown replaces that isolated number beside the
 * purchase controls so the buyer sees the actual amount being added to cart.
 * Removing personalization restores the native WooCommerce price immediately.
 */
form.cart.lakefront-customizer-personalization-active .woocommerce-variation-price {
	display: none !important;
}

/* Group personalized details so cart/checkout metadata does not run together. */
.lakefront-customizer-cart-details {
	display: grid;
	gap: 0.15rem;
	margin: 0.15rem 0 0.55rem;
	padding: 0.55rem 0.65rem;
	border-left: 3px solid #263d3a;
	background: #f7f8f6;
	line-height: 1.4;
}

.lakefront-customizer-cart-details > strong,
.lakefront-customizer-cart-details > span {
	display: block;
}

.lakefront-customizer-cart-detail-muted {
	font-size: 0.92em;
	opacity: 0.75;
}

.lakefront-customizer-cart-price-breakdown {
	display: grid;
	gap: 0.2rem;
	margin: 0.15rem 0 0.35rem;
	padding: 0.55rem 0.65rem;
	border: 1px solid #e0e3e1;
	border-radius: 4px;
	background: #fbfcfa;
	min-width: 190px;
}

.lakefront-customizer-cart-price-breakdown > span {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}

.lakefront-customizer-cart-price-breakdown > span > span {
	opacity: 0.78;
}

.lakefront-customizer-cart-price-breakdown strong {
	white-space: nowrap;
}

.lakefront-customizer-cart-price-total {
	margin-top: 0.25rem;
	padding-top: 0.35rem;
	border-top: 1px solid #d9dedc;
}

.lakefront-customizer-cart-price-total > span {
	opacity: 1 !important;
	font-weight: 600;
}

.woocommerce-cart-form .variation dd,
.woocommerce-checkout-review-order-table .variation dd {
	margin-bottom: 0.55rem;
}

.woocommerce-cart-form .variation dd p,
.woocommerce-checkout-review-order-table .variation dd p {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	.lakefront-customizer-purchase-price {
		padding: 0.75rem;
	}

	.lakefront-customizer-cart-price-breakdown {
		min-width: 0;
	}
}


/* V0.006 cart presentation: dedicated personalization card inside the product cell. */
.woocommerce-cart-form tr.lakefront-customizer-cart-item td.product-name {
	min-width: 310px;
}

.lakefront-customizer-cart-card {
	box-sizing: border-box;
	width: 100%;
	max-width: 430px;
	margin-top: 0.8rem;
	padding: 0.85rem 0.95rem;
	border: 1px solid #dfe5e3;
	border-radius: 6px;
	background: #fafbf9;
	line-height: 1.42;
}

.lakefront-customizer-cart-card-heading {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
	margin-bottom: 0.55rem;
}

.lakefront-customizer-cart-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.15rem 0.45rem;
	border-radius: 999px;
	background: #e7f3f5;
	color: #1f5963;
	font-size: 0.72em;
	font-weight: 700;
	letter-spacing: 0.045em;
	line-height: 1.5;
	text-transform: uppercase;
}

.lakefront-customizer-cart-card-title {
	font-size: 0.92em;
	font-weight: 700;
}

.lakefront-customizer-cart-copy {
	display: grid;
	gap: 0.08rem;
	margin-bottom: 0.55rem;
}

.lakefront-customizer-cart-requested-text {
	font-size: 1.02em;
	line-height: 1.32;
}

.lakefront-customizer-cart-year {
	opacity: 0.78;
}

.lakefront-customizer-cart-specs {
	display: grid;
	gap: 0.2rem;
	margin: 0 0 0.65rem;
	padding: 0;
}

.lakefront-customizer-cart-specs > div {
	display: grid;
	grid-template-columns: minmax(90px, 0.7fr) minmax(110px, 1.3fr);
	gap: 0.75rem;
	margin: 0;
}

.lakefront-customizer-cart-specs dt,
.lakefront-customizer-cart-specs dd {
	margin: 0;
	padding: 0;
}

.lakefront-customizer-cart-specs dt {
	opacity: 0.68;
}

.lakefront-customizer-cart-specs dd {
	font-weight: 600;
}

.lakefront-customizer-cart-costs {
	display: grid;
	gap: 0.18rem;
	padding-top: 0.55rem;
	border-top: 1px solid #dfe5e3;
}

.lakefront-customizer-cart-costs > div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}

.lakefront-customizer-cart-costs > div > span {
	opacity: 0.75;
}

.lakefront-customizer-cart-costs strong {
	white-space: nowrap;
}

.lakefront-customizer-cart-cost-total {
	margin-top: 0.2rem;
	padding-top: 0.35rem;
	border-top: 1px solid #e6e9e7;
	font-weight: 700;
}

.lakefront-customizer-cart-cost-total > span {
	opacity: 1 !important;
}

/*
 * V0.005 rich get_item_data blocks remain available for checkout/order review.
 * In the cart, V0.006 suppresses those custom rows and uses the card above.
 */
.woocommerce-cart-form tr.lakefront-customizer-cart-item .variation {
	margin-top: 0.35rem;
	margin-bottom: 0;
}

.woocommerce-cart-form tr.lakefront-customizer-cart-item .variation dt,
.woocommerce-cart-form tr.lakefront-customizer-cart-item .variation dd {
	line-height: 1.35;
}

@media (max-width: 768px) {
	.woocommerce-cart-form tr.lakefront-customizer-cart-item td.product-name {
		min-width: 0;
	}

	.lakefront-customizer-cart-card {
		max-width: none;
		padding: 0.75rem;
	}

	.lakefront-customizer-cart-specs > div {
		grid-template-columns: 1fr 1.25fr;
	}
}

/* V0.007 cart label wrapping fix.
 * Keep short UI labels intact even when a theme applies aggressive word breaking.
 * Customer-entered personalization text remains free to wrap normally at spaces.
 */
.lakefront-customizer-cart-specs > div {
	grid-template-columns: 112px minmax(0, 1fr);
}

.lakefront-customizer-cart-specs dt,
.lakefront-customizer-cart-specs dd,
.lakefront-customizer-cart-costs > div > span,
.lakefront-customizer-cart-costs strong,
.lakefront-customizer-cart-badge,
.lakefront-customizer-cart-card-title {
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

.lakefront-customizer-cart-specs dt,
.lakefront-customizer-cart-costs > div > span,
.lakefront-customizer-cart-badge {
	white-space: nowrap;
}

@media (max-width: 768px) {
	.lakefront-customizer-cart-specs > div {
		grid-template-columns: 108px minmax(0, 1fr);
	}
}

