.tw3cboy-addon-box{display:block;width:100%;max-width:620px;margin:22px 0;padding:20px;border:1px solid rgba(15,23,42,.10);border-radius:20px;background:radial-gradient(circle at top right,rgba(186,230,253,.26),transparent 220px),#fff;box-shadow:0 14px 40px rgba(15,23,42,.06)}.tw3cboy-addon-box legend{display:grid;gap:3px;padding:0 8px;color:#0f172a}.tw3cboy-addon-box legend strong{font-size:1.18rem}.tw3cboy-addon-box__eyebrow{color:#0284c7;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.tw3cboy-addon-box__intro{margin:0 0 14px;color:#64748b;font-size:.85rem}.tw3cboy-addon-options{display:grid;gap:10px}.tw3cboy-addon-option{position:relative;display:grid;grid-template-columns:22px 58px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:78px;padding:10px 14px;overflow:hidden;border:1px solid rgba(15,23,42,.09);border-radius:16px;background:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.tw3cboy-addon-option:hover{border-color:rgba(14,165,233,.30);box-shadow:0 10px 28px rgba(37,99,235,.08);transform:translateY(-1px)}.tw3cboy-addon-option:has(input:checked){border-color:rgba(2,132,199,.42);background:#f0f9ff;box-shadow:0 10px 28px rgba(14,165,233,.10)}.tw3cboy-addon-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.tw3cboy-addon-option__check{display:grid;place-items:center;width:22px;height:22px;border:1.5px solid #cbd5e1;border-radius:7px;color:transparent;background:#fff;font-size:13px;font-weight:900}.tw3cboy-addon-option input:checked+.tw3cboy-addon-option__check{color:#fff;border-color:#0284c7;background:#0284c7}.tw3cboy-addon-option__image{display:grid;place-items:center;width:58px;height:58px;overflow:hidden;border:1px solid rgba(15,23,42,.07);border-radius:12px;color:#7a8ca2;background:#fff}.tw3cboy-addon-option__image.is-placeholder{background:#f6f9fc}.tw3cboy-addon-option__image img{display:block;width:100%;height:100%;padding:4px;object-fit:contain}.tw3cboy-addon-option__info{display:grid;min-width:0;gap:4px}.tw3cboy-addon-option__info strong{overflow:hidden;color:#0f172a;font-size:.95rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.tw3cboy-addon-option__info small{color:#64748b;font-size:.72rem}.tw3cboy-addon-option__price{color:#075985;font-size:.95rem;font-weight:900;white-space:nowrap}@media(max-width:580px){.tw3cboy-addon-box{margin:18px 0;padding:15px 12px;border-radius:17px}.tw3cboy-addon-option{grid-template-columns:22px 50px minmax(0,1fr);gap:9px;min-height:72px;padding:9px 10px}.tw3cboy-addon-option__image{width:50px;height:50px}.tw3cboy-addon-option__price{grid-column:3;font-size:.86rem}.tw3cboy-addon-option__info strong{font-size:.87rem}}


/* ==========================================================
   v2.0.1 DESKTOP PRODUCT FORM LAYOUT FIX
   ========================================================== */

/*
 * The theme uses a two-column grid for quantity and add-to-cart.
 * The add-on fieldset must span the complete row.
 */
@media (min-width: 781px) {
	body.single-product div.product form.cart > .tw3cboy-addon-box,
	body.single-product div.product form.cart .tw3cboy-addon-box,
	body.woocommerce.single-product form.cart > .tw3cboy-addon-box {
		grid-column: 1 / -1 !important;
		grid-row: auto !important;
		align-self: stretch !important;
		justify-self: stretch !important;
		float: none !important;
		clear: both !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		margin: 0 0 16px !important;
		padding: 18px !important;
		box-sizing: border-box !important;
	}

	body.single-product div.product form.cart > .tw3cboy-addon-box + .quantity,
	body.woocommerce.single-product form.cart > .tw3cboy-addon-box + .quantity {
		grid-column: 1 !important;
		grid-row: auto !important;
		margin: 0 !important;
	}

	body.single-product div.product form.cart .single_add_to_cart_button,
	body.woocommerce.single-product form.cart .single_add_to_cart_button {
		grid-column: 2 !important;
		grid-row: auto !important;
		margin: 0 !important;
	}

	body.single-product .tw3cboy-addon-box legend,
	body.woocommerce.single-product .tw3cboy-addon-box legend {
		float: none !important;
		width: auto !important;
		max-width: 100% !important;
		margin: 0 0 8px !important;
		padding: 0 7px !important;
		box-sizing: border-box !important;
	}

	body.single-product .tw3cboy-addon-box__intro,
	body.woocommerce.single-product .tw3cboy-addon-box__intro {
		width: 100% !important;
		margin: 0 0 12px !important;
		float: none !important;
		clear: both !important;
	}

	body.single-product .tw3cboy-addon-options,
	body.woocommerce.single-product .tw3cboy-addon-options {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 10px !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}

	body.single-product .tw3cboy-addon-option,
	body.woocommerce.single-product .tw3cboy-addon-option {
		display: grid !important;
		grid-template-columns: 24px 62px minmax(0, 1fr) max-content !important;
		align-items: center !important;
		gap: 12px !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		min-height: 82px !important;
		margin: 0 !important;
		padding: 10px 13px !important;
		float: none !important;
		clear: both !important;
		box-sizing: border-box !important;
	}

	body.single-product .tw3cboy-addon-option > span,
	body.woocommerce.single-product .tw3cboy-addon-option > span {
		float: none !important;
		margin: 0 !important;
		box-sizing: border-box !important;
	}

	body.single-product .tw3cboy-addon-option__check,
	body.woocommerce.single-product .tw3cboy-addon-option__check {
		grid-column: 1 !important;
		width: 24px !important;
		height: 24px !important;
		min-width: 24px !important;
	}

	body.single-product .tw3cboy-addon-option__image,
	body.woocommerce.single-product .tw3cboy-addon-option__image {
		grid-column: 2 !important;
		width: 62px !important;
		height: 62px !important;
		min-width: 62px !important;
		overflow: hidden !important;
	}

	body.single-product .tw3cboy-addon-option__image img,
	body.woocommerce.single-product .tw3cboy-addon-option__image img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		padding: 4px !important;
		margin: 0 !important;
		object-fit: contain !important;
	}

	body.single-product .tw3cboy-addon-option__info,
	body.woocommerce.single-product .tw3cboy-addon-option__info {
		grid-column: 3 !important;
		display: grid !important;
		min-width: 0 !important;
		width: auto !important;
		gap: 4px !important;
	}

	body.single-product .tw3cboy-addon-option__info strong,
	body.woocommerce.single-product .tw3cboy-addon-option__info strong {
		display: block !important;
		overflow: hidden !important;
		min-width: 0 !important;
		margin: 0 !important;
		color: #0f172a !important;
		font-size: .94rem !important;
		line-height: 1.35 !important;
		text-overflow: ellipsis !important;
		white-space: nowrap !important;
	}

	body.single-product .tw3cboy-addon-option__info small,
	body.woocommerce.single-product .tw3cboy-addon-option__info small {
		display: block !important;
		margin: 0 !important;
		color: #64748b !important;
		font-size: .71rem !important;
		line-height: 1.35 !important;
	}

	body.single-product .tw3cboy-addon-option__price,
	body.woocommerce.single-product .tw3cboy-addon-option__price {
		grid-column: 4 !important;
		justify-self: end !important;
		width: auto !important;
		min-width: max-content !important;
		margin: 0 !important;
		color: #075985 !important;
		font-size: .94rem !important;
		font-weight: 900 !important;
		line-height: 1.2 !important;
		text-align: right !important;
		white-space: nowrap !important;
	}

	body.single-product .tw3cboy-addon-option__price .woocommerce-Price-amount,
	body.woocommerce.single-product .tw3cboy-addon-option__price .woocommerce-Price-amount {
		display: inline !important;
		margin: 0 !important;
		font-size: inherit !important;
		white-space: nowrap !important;
	}
}

/* Medium desktop widths. */
@media (min-width: 781px) and (max-width: 1050px) {
	body.single-product .tw3cboy-addon-option,
	body.woocommerce.single-product .tw3cboy-addon-option {
		grid-template-columns: 22px 54px minmax(0, 1fr) max-content !important;
		gap: 9px !important;
		padding: 9px 10px !important;
	}

	body.single-product .tw3cboy-addon-option__image,
	body.woocommerce.single-product .tw3cboy-addon-option__image {
		width: 54px !important;
		height: 54px !important;
		min-width: 54px !important;
	}

	body.single-product .tw3cboy-addon-option__info strong,
	body.woocommerce.single-product .tw3cboy-addon-option__info strong,
	body.single-product .tw3cboy-addon-option__price,
	body.woocommerce.single-product .tw3cboy-addon-option__price {
		font-size: .86rem !important;
	}
}

/* Preserve the existing mobile layout. */
@media (max-width: 780px) {
	body.single-product div.product form.cart > .tw3cboy-addon-box,
	body.woocommerce.single-product form.cart > .tw3cboy-addon-box {
		grid-column: 1 / -1 !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 0 14px !important;
	}
}


/* ==========================================================
   v2.0.2 DESKTOP FULL-NAME LAYOUT
   ========================================================== */

/*
 * Final desktop structure:
 *   checkbox | image | full product name
 *            |       | price
 *
 * The price no longer occupies a fourth column, so long names retain the
 * complete available width instead of collapsing to one letter plus ellipsis.
 */
@media (min-width: 781px) {
	body.single-product div.product form.cart:has(.tw3cboy-addon-box),
	body.woocommerce.single-product form.cart:has(.tw3cboy-addon-box) {
		display: grid !important;
		grid-template-columns: 96px minmax(0, 1fr) !important;
		align-items: stretch !important;
		gap: 12px !important;
		width: 100% !important;
		max-width: 540px !important;
		min-width: 0 !important;
		margin-top: 24px !important;
	}

	body.single-product div.product form.cart:has(.tw3cboy-addon-box) > .tw3cboy-addon-box,
	body.woocommerce.single-product form.cart:has(.tw3cboy-addon-box) > .tw3cboy-addon-box {
		grid-column: 1 / -1 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 0 16px !important;
		padding: 18px !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}

	body.single-product .tw3cboy-addon-options,
	body.woocommerce.single-product .tw3cboy-addon-options {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 10px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.single-product .tw3cboy-addon-option,
	body.woocommerce.single-product .tw3cboy-addon-option {
		display: grid !important;
		grid-template-columns: 24px 68px minmax(0, 1fr) !important;
		grid-template-rows: auto auto !important;
		grid-template-areas:
			"check image info"
			"check image price" !important;
		align-items: center !important;
		column-gap: 13px !important;
		row-gap: 5px !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		min-height: 90px !important;
		margin: 0 !important;
		padding: 11px 14px !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}

	body.single-product .tw3cboy-addon-option__check,
	body.woocommerce.single-product .tw3cboy-addon-option__check {
		grid-area: check !important;
		align-self: center !important;
		width: 24px !important;
		height: 24px !important;
		min-width: 24px !important;
		margin: 0 !important;
	}

	body.single-product .tw3cboy-addon-option__image,
	body.woocommerce.single-product .tw3cboy-addon-option__image {
		grid-area: image !important;
		align-self: center !important;
		width: 68px !important;
		height: 68px !important;
		min-width: 68px !important;
		margin: 0 !important;
		overflow: hidden !important;
	}

	body.single-product .tw3cboy-addon-option__image img,
	body.woocommerce.single-product .tw3cboy-addon-option__image img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		padding: 4px !important;
		margin: 0 !important;
		object-fit: contain !important;
	}

	body.single-product .tw3cboy-addon-option__info,
	body.woocommerce.single-product .tw3cboy-addon-option__info {
		grid-area: info !important;
		align-self: end !important;
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		overflow: visible !important;
	}

	body.single-product .tw3cboy-addon-option__info strong,
	body.woocommerce.single-product .tw3cboy-addon-option__info strong {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		overflow: visible !important;
		color: #0f172a !important;
		font-size: .95rem !important;
		font-weight: 850 !important;
		line-height: 1.38 !important;
		text-overflow: clip !important;
		white-space: normal !important;
		overflow-wrap: anywhere !important;
		word-break: normal !important;
	}

	body.single-product .tw3cboy-addon-option__info small,
	body.woocommerce.single-product .tw3cboy-addon-option__info small {
		display: none !important;
	}

	body.single-product .tw3cboy-addon-option__price,
	body.woocommerce.single-product .tw3cboy-addon-option__price {
		grid-area: price !important;
		align-self: start !important;
		justify-self: start !important;
		display: block !important;
		width: auto !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		overflow: visible !important;
		color: #075985 !important;
		font-size: .92rem !important;
		font-weight: 900 !important;
		line-height: 1.25 !important;
		text-align: left !important;
		white-space: normal !important;
	}

	body.single-product .tw3cboy-addon-option__price .woocommerce-Price-amount,
	body.woocommerce.single-product .tw3cboy-addon-option__price .woocommerce-Price-amount,
	body.single-product .tw3cboy-addon-option__price bdi,
	body.woocommerce.single-product .tw3cboy-addon-option__price bdi {
		display: inline !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		font-size: inherit !important;
		line-height: inherit !important;
		white-space: nowrap !important;
	}

	body.single-product div.product form.cart:has(.tw3cboy-addon-box) > .quantity,
	body.woocommerce.single-product form.cart:has(.tw3cboy-addon-box) > .quantity {
		grid-column: 1 !important;
		width: 96px !important;
		max-width: 96px !important;
		margin: 0 !important;
	}

	body.single-product div.product form.cart:has(.tw3cboy-addon-box) > .single_add_to_cart_button,
	body.woocommerce.single-product form.cart:has(.tw3cboy-addon-box) > .single_add_to_cart_button {
		grid-column: 2 !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}
}

/* Slightly narrower desktop/tablet landscape. */
@media (min-width: 781px) and (max-width: 1050px) {
	body.single-product div.product form.cart:has(.tw3cboy-addon-box),
	body.woocommerce.single-product form.cart:has(.tw3cboy-addon-box) {
		grid-template-columns: 86px minmax(0, 1fr) !important;
		max-width: 100% !important;
	}

	body.single-product .tw3cboy-addon-option,
	body.woocommerce.single-product .tw3cboy-addon-option {
		grid-template-columns: 22px 58px minmax(0, 1fr) !important;
		column-gap: 10px !important;
		padding: 10px 11px !important;
	}

	body.single-product .tw3cboy-addon-option__image,
	body.woocommerce.single-product .tw3cboy-addon-option__image {
		width: 58px !important;
		height: 58px !important;
		min-width: 58px !important;
	}

	body.single-product div.product form.cart:has(.tw3cboy-addon-box) > .quantity,
	body.woocommerce.single-product form.cart:has(.tw3cboy-addon-box) > .quantity {
		width: 86px !important;
		max-width: 86px !important;
	}
}

/* Mobile remains as in v2.0.0, with explicit full-name wrapping. */
@media (max-width: 780px) {
	body.single-product .tw3cboy-addon-option__info strong,
	body.woocommerce.single-product .tw3cboy-addon-option__info strong {
		overflow: visible !important;
		text-overflow: clip !important;
		white-space: normal !important;
		overflow-wrap: anywhere !important;
	}
}
