/* ==========================================================================
   1.8.373 — Chamevo customizer products (#546 and any future product
   with body.chamevo-product). Mirrors the IDX Sign Builder visual language:
   grid-paper workspace, navy-bordered sticky summary card, uppercase 800
   headings, yellow value chips, navy selected chips with yellow underline,
   red Add to cart with navy inset. Theme-side only; Chamevo is themed through
   its public --cv-* custom properties and exported ::part()s.
   ========================================================================== */
body.chamevo-product {
	--pc-navy: #0f143a; --pc-red: #8f1c2c; --pc-red-dk: #6e1522; --pc-yellow: #f3c91a; --pc-blue: #9ccaf5;
	--pc-line: #d6d9e6; --pc-ink2: #454b66; --pc-bg: #eef0f6; --pc-field: #7d839e;
}

/* Workspace: like the sign builder, no marketing hero; grid-paper stage. */
body.chamevo-product .shop-hero { display: none !important; }
body.chamevo-product #shop-content.section {
	padding: clamp(1.25rem, 3vw, 2.25rem) 0 clamp(2.5rem, 5vw, 4rem);
	background-color: #fafbfd;
	background-image: linear-gradient(#eceef4 1px, transparent 1px), linear-gradient(90deg, #eceef4 1px, transparent 1px);
	background-size: 22px 22px;
}
body.chamevo-product .woocommerce-notices-wrapper:empty { display: none; }

/* Two-column app layout: designer | sticky summary. */
body.chamevo-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
	gap: 18px 22px;
	align-items: start;
	color: var(--pc-navy);
}
body.chamevo-product div.product > * { min-width: 0; }
body.chamevo-product div.product .cha-product-designer-wrapper {
	grid-column: 1; grid-row: 1;
	position: relative;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 18px 40px -28px rgba(15, 20, 58, .45);
	overflow: hidden;
}
body.chamevo-product div.product div.summary.entry-summary {
	grid-column: 2; grid-row: 1;
	float: none !important; width: auto !important; max-width: none; margin: 0 !important; padding: 16px;
	position: sticky; top: calc(var(--header-h, 96px) + 16px);
	display: flex; flex-direction: column; gap: 10px;
	background: #fff;
	border: 2px solid var(--pc-navy);
	border-radius: 10px;
	box-shadow: 0 18px 40px -30px rgba(15, 20, 58, .55);
}
body.admin-bar.chamevo-product div.product div.summary.entry-summary { top: calc(var(--header-h, 96px) + 48px); }
body.chamevo-product div.product > .woocommerce-tabs,
body.chamevo-product div.product > .related,
body.chamevo-product div.product > .upsells,
body.chamevo-product div.product > section { grid-column: 1 / -1; }

/* Summary header: sign-builder strip name. */
body.chamevo-product div.product .summary .product_title {
	margin: 0;
	font-family: var(--font-head);
	font-size: clamp(1.2rem, 1.6vw, 1.45rem);
	line-height: 1.15;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--pc-navy);
}

/* Price block: navy panel with yellow label (idxsb-price). */
body.chamevo-product div.product .summary > p.price,
body.chamevo-product div.product .summary .woocommerce-variation-price .price {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem;
	margin: 0; padding: 12px 14px;
	border-radius: 8px;
	background: var(--pc-navy);
	color: #fff !important;
	font-family: var(--font-display);
	font-size: 1.6rem; line-height: 1.1; font-weight: 800;
	font-variant-numeric: tabular-nums;
}
body.chamevo-product div.product .summary > p.price::before,
body.chamevo-product div.product .summary .woocommerce-variation-price .price::before {
	content: "Price"; flex-basis: 100%;
	font-family: var(--font-sans); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
	color: var(--pc-yellow);
}
body.chamevo-product div.product .summary .woocommerce-variation-price .price::before { content: "Your price"; }
body.chamevo-product div.product .summary .price .amount,
body.chamevo-product div.product .summary .price bdi { color: #fff; }
body.chamevo-product div.product .summary .price .screen-reader-text { position: absolute !important; }

/* Short description: compact help text; first bold line becomes a yellow step pill. */
body.chamevo-product div.product .woocommerce-product-details__short-description { font-size: .9rem; line-height: 1.5; color: var(--pc-ink2); }
body.chamevo-product div.product .woocommerce-product-details__short-description p { margin: 0 0 .55rem; }
body.chamevo-product div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
body.chamevo-product div.product .woocommerce-product-details__short-description p:first-child > strong:only-child {
	display: inline-flex; align-items: center; gap: .35rem;
	padding: .25rem .7rem; border-radius: 8px; line-height: 1.3;
	background: var(--pc-yellow); color: var(--pc-navy);
	font-size: .78rem; font-weight: 800; letter-spacing: .01em;
}

/* Variations: stacked groups, uppercase 800 labels, chips. */
body.chamevo-product div.product form.variations_form { margin: 0; padding-top: 12px; border-top: 2px solid var(--pc-line); }
body.chamevo-product div.product table.variations { width: 100%; margin: 0 0 6px; border: 0; border-collapse: collapse; }
body.chamevo-product div.product table.variations tbody,
body.chamevo-product div.product table.variations tr,
body.chamevo-product div.product table.variations th,
body.chamevo-product div.product table.variations td { display: block; width: 100%; padding: 0; border: 0; background: none; text-align: left; line-height: 1.3; }
body.chamevo-product div.product table.variations tr { margin: 0 0 12px; }
body.chamevo-product div.product table.variations th.label label {
	display: block; margin: 0 0 6px;
	font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--pc-navy);
}
body.chamevo-product div.product table.variations select {
	width: 100%; min-height: 44px; padding: .5rem 2.2rem .5rem .65rem;
	border: 1.5px solid var(--pc-field); border-radius: 8px; background-color: #fff;
	font-size: 1rem; color: var(--pc-navy);
}
body.chamevo-product div.product table.variations select.idxpc-native {
	position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); border: 0; opacity: 0; pointer-events: none;
}
body.chamevo-product .idxpc-choices { display: flex; flex-wrap: wrap; gap: 6px; }
body.chamevo-product .idxpc-chip {
	display: inline-flex; align-items: center; gap: .45rem;
	min-height: 44px; padding: .45rem .85rem;
	border: 1.5px solid var(--pc-field); border-radius: 8px;
	background: #fff; color: var(--pc-navy);
	font: 600 .92rem/1.1 var(--font-sans); letter-spacing: 0; text-transform: none;
	cursor: pointer; box-shadow: none;
	transition: border-color .15s, background .15s, color .15s, box-shadow .15s;
}
body.chamevo-product .idxpc-chip:hover { border-color: var(--pc-navy); background: #fff; color: var(--pc-navy); }
body.chamevo-product .idxpc-chip[aria-pressed="true"] {
	background: var(--pc-navy); border-color: var(--pc-navy); color: #fff;
	box-shadow: inset 0 -3px 0 var(--pc-yellow);
}
body.chamevo-product .idxpc-chip:focus-visible { outline: 3px solid var(--pc-yellow); outline-offset: 2px; box-shadow: 0 0 0 5px var(--pc-navy); }
body.chamevo-product .idxpc-chip.is-disabled { opacity: .55; text-decoration: line-through; background: #f1f2f6; cursor: not-allowed; }
body.chamevo-product .idxpc-chip__dot {
	width: 18px; height: 18px; flex: none; border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(15, 20, 58, .28);
}
body.chamevo-product .idxpc-chip[aria-pressed="true"] .idxpc-chip__dot { box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(255, 255, 255, .35); }
body.chamevo-product .idxpc-chip__dot.is-clear {
	background: repeating-conic-gradient(#d6d9e6 0 25%, #fff 0 50%) 0 0 / 8px 8px;
}
body.chamevo-product div.product .reset_variations {
	display: inline-block; margin: 6px 0 0; font-size: .85rem; font-weight: 600;
	color: var(--pc-navy); text-decoration: underline;
}

/* Variation result + buy row (idxsb-summary__buy). */
body.chamevo-product div.product .single_variation_wrap { display: flex; flex-direction: column; gap: 10px; }
body.chamevo-product div.product .woocommerce-variation:empty,
body.chamevo-product div.product .woocommerce-variation-description:empty,
body.chamevo-product div.product .woocommerce-variation-availability:empty { display: none; }
body.chamevo-product div.product .woocommerce-variation-add-to-cart {
	display: grid; grid-template-columns: auto 1fr; gap: 8px 10px; align-items: center;
}
body.chamevo-product div.product form.cart .quantity { float: none !important; margin: 0 !important; }
body.chamevo-product div.product form.cart .quantity input.qty {
	width: 5rem !important; min-height: 52px; padding: .4rem;
	border: 1.5px solid var(--pc-field); border-radius: 8px;
	font-size: 1.05rem; font-weight: 700; text-align: center; color: var(--pc-navy); background: #fff;
}
body.chamevo-product div.product form.cart .single_add_to_cart_button {
	width: 100%; min-height: 52px; float: none !important; margin: 0 !important;
	border: 0 !important; border-radius: 8px !important;
	background: #f3c91a !important; color: #0f143a !important; /* 1.8.422: was red */
	font: 600 1.05rem/1.1 var(--font-head) !important; letter-spacing: .04em; text-transform: uppercase;
	box-shadow: inset 0 -4px 0 var(--pc-navy); cursor: pointer;
	transition: background .15s;
}
body.chamevo-product div.product form.cart .single_add_to_cart_button:hover:not(.disabled):not([disabled]) { background: #dcb40f !important; color: #0f143a !important; }
body.chamevo-product div.product form.cart .single_add_to_cart_button.disabled,
body.chamevo-product div.product form.cart .single_add_to_cart_button[disabled] {
	background: #8a8fa8 !important; box-shadow: none; opacity: 1 !important; cursor: not-allowed;
}

/* Meta line. */
body.chamevo-product div.product .product_meta {
	margin: 0; padding-top: 10px; border-top: 1px solid var(--pc-line);
	font-size: .8rem; color: var(--pc-ink2);
}
body.chamevo-product div.product .product_meta a { color: var(--pc-navy); font-weight: 700; }

/* Tabs → sign-builder option bar. */
body.chamevo-product div.product .woocommerce-tabs {
	margin-top: 4px; padding: 14px; background: #fff;
	border: 1px solid #c9cde0; border-radius: 10px;
}
body.chamevo-product div.product .woocommerce-tabs ul.tabs {
	display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px !important; padding: 10px !important;
	border-radius: 10px; background: var(--pc-bg); overflow: visible;
}
body.chamevo-product div.product .woocommerce-tabs ul.tabs::before,
body.chamevo-product div.product .woocommerce-tabs ul.tabs li::before,
body.chamevo-product div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.chamevo-product div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important; padding: 0 !important; border: 2px solid var(--pc-navy) !important; border-radius: 8px !important;
	background: #fff !important;
}
body.chamevo-product div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px !important;
	font-size: .8rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--pc-navy) !important;
}
body.chamevo-product div.product .woocommerce-tabs ul.tabs li.active { box-shadow: 0 0 0 3px var(--pc-yellow); }
body.chamevo-product div.product .woocommerce-tabs .panel { margin: 0; padding: 0 4px; }
body.chamevo-product div.product .woocommerce-tabs .panel > h2 {
	margin: 0 0 10px; font-family: var(--font-head); font-size: .95rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--pc-navy);
}
body.chamevo-product div.product table.shop_attributes { margin: 0; border: 1px solid var(--pc-line); border-radius: 8px; border-collapse: separate; overflow: hidden; max-width: 640px; }
body.chamevo-product div.product table.shop_attributes th,
body.chamevo-product div.product table.shop_attributes td { padding: 10px 14px; border: 0; border-top: 1px solid var(--pc-line); background: #fff; font-style: normal; }
body.chamevo-product div.product table.shop_attributes tr:first-child th,
body.chamevo-product div.product table.shop_attributes tr:first-child td { border-top: 0; }
body.chamevo-product div.product table.shop_attributes th { width: 30%; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--pc-navy); background: var(--pc-bg); }
body.chamevo-product div.product table.shop_attributes td p { margin: 0; color: var(--pc-ink2); }

/* Chamevo customizer theming via its public tokens. */
body.chamevo-product cv-customizer {
	--cv-primary: #0f143a;
	--cv-on-primary: #ffffff;
	--cv-secondary: #454b66;
	--cv-success: #0b6b2b;
	--cv-error: #8f1c2c;
	--cv-warning: #f3c91a;
	--cv-bg: #ffffff;
	--cv-bg-secondary: #eef0f6;
	--cv-bg-tertiary: #fff3c4;
	--cv-canvas-bg: #ffffff;
	--cv-text: #0f143a;
	--cv-text-secondary: #454b66;
	--cv-border: #d6d9e6;
	--cv-border-interactive: #9aa0b8;
	--cv-border-hover: #0f143a;
	--cv-radius: 8px;
	--cv-radius-sm: 6px;
	--cv-radius-lg: 10px;
	--cv-shadow-md: 0 10px 24px -14px rgba(15, 20, 58, .35);
	--cv-shadow-lg: 0 18px 40px -20px rgba(15, 20, 58, .45);
	--cv-scrollbar-thumb: #b9bdd0;
	--cv-customizer-bg: #eef0f6;
	--cv-customizer-height: 800px;
	--cv-customizer-max-height: max(640px, calc(100vh - var(--header-h, 96px) - 32px));
	--cv-customizer-min-height: 560px;
	font-family: var(--font-sans);
	border-radius: 10px;
}
body.chamevo-product cv-customizer::part(canvas-area),
body.chamevo-product cv-customizer::part(canvas-scroll) {
	background-color: #fafbfd;
	background-image: linear-gradient(#eceef4 1px, transparent 1px), linear-gradient(90deg, #eceef4 1px, transparent 1px);
	background-size: 22px 22px;
}
body.chamevo-product cv-customizer::part(mainbar) { border-right: 1px solid #d6d9e6; }
body.chamevo-product cv-customizer::part(mainbar-item) { font-weight: 700; color: #0f143a; }
body.chamevo-product cv-customizer::part(mainbar-item):hover { box-shadow: inset 0 0 0 1.5px #0f143a; }
body.chamevo-product cv-customizer::part(actions-bar-top),
body.chamevo-product cv-customizer::part(actions-bar-bottom) { background: #fff; }
body.chamevo-product cv-customizer::part(actions-bar-top) { border-bottom: 2px solid #d6d9e6; }
body.chamevo-product cv-customizer::part(actions-bar-bottom) { border-top: 2px solid #d6d9e6; }
body.chamevo-product cv-customizer::part(module-panel) { border-right: 1px solid #d6d9e6; }
body.chamevo-product cv-customizer::part(images-tabs) { background: #fff; }
body.chamevo-product cv-customizer::part(images-tab) { font-weight: 700; }
body.chamevo-product cv-customizer::part(toolbar) { border: 2px solid #0f143a; }

/* Tablet / mobile: stack like the sign builder (name, price, options + buy, then the stage). */
@media (max-width: 1023px) {
	body.chamevo-product div.product { grid-template-columns: minmax(0, 1fr); }
	body.chamevo-product div.product div.summary.entry-summary { grid-column: 1; grid-row: 1; position: static; }
	body.chamevo-product div.product .cha-product-designer-wrapper { grid-row: 2; }
	body.chamevo-product cv-customizer { --cv-customizer-height: 640px; --cv-customizer-max-height: 80vh; --cv-customizer-min-height: 480px; }
}
@media (max-width: 600px) {
	body.chamevo-product #shop-content > .container { padding-left: 10px; padding-right: 10px; }
	body.chamevo-product div.product { gap: 12px; }
	body.chamevo-product div.product div.summary.entry-summary { padding: 14px 12px; }
	body.chamevo-product div.product .summary .product_title { text-align: center; }
	body.chamevo-product div.product .summary > p.price { justify-content: center; text-align: center; }
	body.chamevo-product .idxpc-chip { flex: 1 1 auto; min-width: calc(33.333% - 6px); justify-content: center; padding: .45rem .6rem; }
	body.chamevo-product cv-customizer { --cv-customizer-height: 500px; --cv-customizer-max-height: 72vh; --cv-customizer-min-height: 420px; }
	body.chamevo-product div.product table.shop_attributes,
	body.chamevo-product div.product table.shop_attributes tbody,
	body.chamevo-product div.product table.shop_attributes tr,
	body.chamevo-product div.product table.shop_attributes th,
	body.chamevo-product div.product table.shop_attributes td { display: block; width: 100%; }
	body.chamevo-product div.product table.shop_attributes td { border-top: 0; padding-top: 6px; }
	body.chamevo-product div.product .woocommerce-tabs { padding: 10px; }
	body.chamevo-product div.product .woocommerce-tabs ul.tabs li { flex: 1 1 auto; text-align: center; }
	body.chamevo-product div.product .woocommerce-tabs ul.tabs li a { justify-content: center; width: 100%; }
}

/* 1.8.387 — Color attribute as real colour swatches (fill = colour sampled from the product photo). */
body.chamevo-product .idxpc-choices.idxpc-swatches { display: flex; flex-wrap: wrap; gap: 9px; grid-template-columns: none; padding: 3px 2px 2px; }
body.chamevo-product .idxpc-swatch {
	position: relative; flex: none; width: 34px; height: 34px; padding: 0; margin: 0;
	border: 0; border-radius: 50%; background: transparent; cursor: pointer;
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(15, 20, 58, .18);
	transition: box-shadow .18s ease, transform .18s ease;
}
body.chamevo-product .idxpc-swatch__fill {
	position: absolute; inset: 0; border-radius: 50%; background: var(--sw);
	box-shadow: inset 0 0 0 1px rgba(15, 20, 58, .22), inset 0 -6px 10px -6px rgba(0, 0, 0, .25);
}
/* White / Yellow / pale colours: a stronger outline so they read on white */
body.chamevo-product .idxpc-swatch.is-light .idxpc-swatch__fill { box-shadow: inset 0 0 0 1.5px rgba(15, 20, 58, .45), inset 0 -6px 10px -6px rgba(0, 0, 0, .18); }
body.chamevo-product .idxpc-swatch:hover:not(.is-disabled) { transform: translateY(-1px) scale(1.06); box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #0f143a; }
body.chamevo-product .idxpc-swatch[aria-pressed="true"] { box-shadow: 0 0 0 2.5px #fff, 0 0 0 5px #0f143a, 0 0 0 7px #f3c91a; }
body.chamevo-product .idxpc-swatch:focus-visible { outline: none; box-shadow: 0 0 0 2.5px #fff, 0 0 0 5px #0f143a, 0 0 0 7.5px #f3c91a; }
body.chamevo-product .idxpc-swatch.is-disabled { cursor: not-allowed; opacity: .38; }
body.chamevo-product .idxpc-swatch.is-disabled::after {
	content: ""; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 2px; margin-left: -1px;
	background: #0f143a; transform: rotate(45deg); border-radius: 1px;
}
body.chamevo-product .idxpc-swatch-current {
	margin: 9px 0 0; font-family: var(--idxb-head, var(--font-sans)); font-size: .74rem; font-weight: 600; color: #4a4f6a; line-height: 1.3;
}
body.chamevo-product .idxpc-swatch-current strong { color: #0f143a; font-weight: 800; }
body.chamevo-product .idxpc-swatch-current__k { text-transform: uppercase; letter-spacing: .08em; font-size: .62rem; font-weight: 800; }
@media (max-width: 1023px) {
	body.chamevo-product .idxpc-choices.idxpc-swatches { gap: 12px; }
	body.chamevo-product .idxpc-swatch { width: 40px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
	body.chamevo-product .idxpc-swatch { transition: none; }
	body.chamevo-product .idxpc-swatch:hover { transform: none; }
}
