@charset "UTF-8";
@import url("epofw-switch.css");

/*--------------------------------------------------------------
# Auto Label Position Mode (Compact Above)
# Applied in multi-column layouts and responsive views
--------------------------------------------------------------*/

/* Multi-column layout: Label above field */
.epofw_addon_str_div .epofw-multi-column .epofw_field_container.epofw-label-compact-above {
	flex-direction: column;
}

.epofw_addon_str_div .epofw-multi-column .epofw_field_container.epofw-label-compact-above .epofw_td_label {
	flex: none;
	width: 100%;
	max-width: none;
	padding: 8px 0 4px;
	border-right: none;
}

.epofw_addon_str_div .epofw-multi-column .epofw_field_container.epofw-label-compact-above .epofw_td_value {
	width: 100%;
	padding: 4px 0 12px;
}

/*--------------------------------------------------------------
# End Auto Label Position Mode
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Input Normalization - Reset theme-specific input styles
--------------------------------------------------------------*/
.epofw_addon_str_div input[type="text"],
.epofw_addon_str_div input[type="number"],
.epofw_addon_str_div input[type="email"],
.epofw_addon_str_div input[type="url"],
.epofw_addon_str_div input[type="tel"],
.epofw_addon_str_div input[type="password"],
.epofw_addon_str_div input[type="date"],
.epofw_addon_str_div input[type="time"],
.epofw_addon_str_div textarea,
.epofw_addon_str_div select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-sizing: border-box;
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: normal;
	border: 1px solid #d1d5db;
	border-radius: 4px;
	padding: 8px 12px;
	background-color: #fff;
	color: #374151;
	width: 100%;
	max-width: 100%;
}

.epofw_addon_str_div input[type="text"]:focus,
.epofw_addon_str_div input[type="number"]:focus,
.epofw_addon_str_div input[type="email"]:focus,
.epofw_addon_str_div input[type="url"]:focus,
.epofw_addon_str_div input[type="tel"]:focus,
.epofw_addon_str_div input[type="password"]:focus,
.epofw_addon_str_div input[type="date"]:focus,
.epofw_addon_str_div input[type="time"]:focus,
.epofw_addon_str_div textarea:focus,
.epofw_addon_str_div select:focus {
	outline: none;
	border-color: #3b82f6;
	box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

.epofw_addon_str_div input[type="checkbox"],
.epofw_addon_str_div input[type="radio"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 16px;
	height: 16px;
	margin: 0 8px 0 0;
	border: 1px solid #d1d5db;
	background-color: #fff;
	cursor: pointer;
	vertical-align: middle;
	flex-shrink: 0;
}

.epofw_addon_str_div input[type="checkbox"] {
	border-radius: 3px;
}

.epofw_addon_str_div input[type="radio"] {
	border-radius: 50%;
}

.epofw_addon_str_div input[type="checkbox"]:checked,
.epofw_addon_str_div input[type="radio"]:checked {
	background-color: #3b82f6;
	border-color: #3b82f6;
}

.epofw_addon_str_div input[type="checkbox"]:checked::after {
	content: '';
	display: block;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
	margin: 1px auto;
}

.epofw_addon_str_div input[type="radio"]:checked::after {
	content: '';
	display: block;
	width: 6px;
	height: 6px;
	background-color: #fff;
	border-radius: 50%;
	margin: 4px auto;
}

.epofw_addon_str_div select {
	padding-right: 32px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23374151' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	cursor: pointer;
}

/*--------------------------------------------------------------
# End Input Normalization
--------------------------------------------------------------*/

.epofw_fields_table tr td label.epofw_td_label {
	margin: 0 5px 15px 0;
	display: block;
}

.epofw_fields_table tr td input {
	width: auto !important;
	margin-right: 5px;
}

tr#epofw_hidden {
	display: none;
}

.addon_total_tbl #addon_details strong {
	text-align: center;
	margin: 0 auto;
	display: block;
}

.epofw_above label:first-child {
	display: block;
}

.single-product ul.woocommerce-error {
	margin-left: 0;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	-webkit-box-align: start;
	align-items: flex-start;
}

img.epofw_file_type_img {
	display: block;
	margin: 10px 0;
	box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
}

.dv_img_container img {
	position: relative;
}

.dv_img_a_container {
	padding: 4px 5px !important;
	font-size: 10px;
	position: absolute;
	right: 0;
	background-color: #f00;
	color: #fff;
	display: inline-block;
	z-index: 9999;
}

.dv_img_container {
	position: relative;
	margin: 15px 0;
}

.epofw_switcher_field input {
	display: none;
}

.epofw_colorswitcher_field .button {
	display: inline-block;
	position: relative;
	width: 50px;
	height: 50px;
	margin: 10px;
	cursor: pointer;
	background: none;
}

.epofw_colorswitcher_field .button span {
	display: block;
	position: absolute;
	width: 50px;
	height: 50px;
	padding: 0;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	-o-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	border-radius: 100%;
	background: #eee;
	transition: ease 0.3s;
}

.epofw_colorswitcher_field .button span:hover {
	padding: 10px;
}

table.epofw_fields_table tr td:first-child,
table.addon_total_tbl tr td:first-child {
	width: 35% !important;
}

label.epofw_switcher_field {
	display: inline-block;
	text-align: center;
	align-items: center;
	padding: 0 5px;
	margin-bottom: 15px;
}

span.colorswitcher_active {
	box-shadow: 0 0 0 2px #1e73be !important;
}

.button.textswitcher_parent_active {
	background-color: #353c4e;
	color: #fff;
}

.epofw_switcher_field .button {
	margin-bottom: 5px;
}

.epofw_button {
	cursor: pointer;
	margin-bottom: 5px;
}

span.imageswitcher_active {
	display: inline-block;
	border: 1px solid;
}

span.epofw_imageswitcher_span.epofw_switcher_value {
	display: inline-block;
}

span.epofw_imageswitcher_span.epofw_switcher_value.imageswitcher_active {
	box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.15);
}

button.epofw-multiselect-toogle {
	margin: 10px 0;
}

button.epofw-multiselect-toogle:last-child {
	margin: 10px 10px;
}

body .epofw_addon_str_div .epofw_fields_table.epofw_field_dnl,
body .epofw_addon_str_table .epofw_fields_table.epofw_field_dnl {
	display: none;
}

.addon_total_hd,
.epofw_field_qty_hd {
	display: none;
}

li.select2-search.select2-search--inline {
	margin: 0 !important;
}

.select2-selection--multiple {
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box;
}

/* Ensure Select2 dropdown can display properly */
.select2-dropdown {
	z-index: 9999 !important;
	position: absolute !important;
	overflow: visible !important;
	box-sizing: border-box;
	/* Don't force width - let it match container naturally */
}

.select2-container--open .select2-dropdown {
	display: block !important;
	visibility: visible !important;
}

.epofw_shop .epofw_label_left,
.epofw_shop .epofw_td_label {
	margin: 10px 0;
}

.epofw_shop .imageswitcher_active img {
	margin: 0 auto !important;
}

.epofw_af_qty_section {
	margin: 15px 0 15px 0;
	margin-bottom: 15px;
}

/* Free Plugin css */
div.product form.cart table.epofw_fields_table {
	margin: 35px 0;
	float: left;
	width: 100%;
}

div.product form.cart table.epofw_fields_table td {
	padding-left: 8px;
	border: 1px solid rgba(0, 0, 0, 0.1);
}

div.product form.cart table#addon_total {
	float: left;
	width: 100%;
	margin: 35px 0;
}

div.product form.cart table#addon_total td {
	padding-left: 8px;
	border: 1px solid rgba(0, 0, 0, 0.1);
}

.ui-timepicker-div dl dt {
	margin-top: 0 !important;
}

/* .ui-timepicker-div dl dd {
	margin: 0 10px 20px 40% !important;
} */

/* Slider styling */
.epofw-slider-wrapper {
    margin: 0;
    padding: 0;
}

.epofw-slider-container {
    max-width: 400px;
    width: 100%;
    position: relative;
}

.epofw-slider-control {
    margin: 10px 0;
    height: 10px;
    background: #f0f0f0;
    border-radius: 5px;
    width: 100%;
    min-width: 200px;
    position: relative;
    display: block;
}

.epofw-slider-control .ui-slider-handle {
    width: 20px;
    height: 20px;
    background: #2271b1;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    top: -5px;
    margin-left: -10px;
}

.epofw-slider-control .ui-slider-range {
    background: #2271b1;
    height: 100%;
    border-radius: 5px;
}

.epofw-slider-value {
    margin-top: 10px;
    font-size: 14px;
    color: #666;
}

/* Add after the existing input styles (around line 6) */
.epofw_fields_table tr td .epofw-slider-wrapper {
    width: 100%;
    max-width: 400px;
    margin: 10px 0;
}

.epofw_fields_table tr td .epofw-slider-control {
    height: 10px;
    background: #f0f0f0;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    margin: 15px 0;
}

.epofw_fields_table tr td .epofw-slider-control .ui-slider-handle {
    width: 20px;
    height: 20px;
    background: #2271b1;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    top: -5px;
    margin-left: -10px;
}

.epofw_fields_table tr td .epofw-slider-control .ui-slider-range {
    background: #2271b1;
    height: 100%;
    border-radius: 5px;
}

.epofw_fields_table tr td .epofw-slider-value {
    display: inline-block;
    margin-top: 5px;
    font-size: 14px;
    color: #666;
}

/* Add theme-specific styles */
.theme-twentytwenty .epofw_fields_table tr td .epofw-slider-wrapper,
.theme-twentytwentyone .epofw_fields_table tr td .epofw-slider-wrapper,
.theme-storefront .epofw_fields_table tr td .epofw-slider-wrapper {
    width: 100%;
    max-width: 400px;
}

.theme-twentytwenty .epofw_fields_table tr td .epofw-slider-control:focus,
.theme-twentytwentyone .epofw_fields_table tr td .epofw-slider-control:focus,
.theme-storefront .epofw_fields_table tr td .epofw-slider-control:focus {
    outline: none;
}

/* Mobile responsiveness */
@media screen and (max-width: 768px) {
    .epofw_fields_table tr td .epofw-slider-wrapper {
        max-width: 100%;
    }
}


/* Improve slider display */
.epofw-slider-container {
    padding: 5px 0;
    display: flex;
    align-items: center;
}

.epofw-slider-control {
    flex-grow: 1;
    margin-right: 15px;
    height: 5px;
    background: #e0e0e0;
    border-radius: 5px;
    position: relative;
}

.epofw-slider-control .ui-slider-range {
    background: #2271b1;
    height: 5px;
    border-radius: 5px 0 0 5px;
}

.epofw-slider-control .ui-slider-handle {
    width: 16px;
    height: 16px;
    background: #fff;
    border: 2px solid #2271b1;
    border-radius: 50%;
    top: -6px;
    margin-left: -8px;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    transition: background 0.2s;
}

.epofw-slider-control .ui-slider-handle:hover,
.epofw-slider-control .ui-slider-handle:active {
    background: #f0f7fc;
}

.epofw-slider-value {
    display: inline-block;
    background: #f0f0f0;
    padding: 5px 10px;
    border-radius: 4px;
    min-width: 40px;
    text-align: center;
    font-weight: 500;
    font-size: 14px;
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
}

input[type=range].epofw-field-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
    vertical-align: middle;
    outline: none;
    margin: 0;
}

input[type=range].epofw-field-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    border: 1px solid #2271b1;
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    margin-top: -6px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

input[type=range].epofw-field-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 5px;
    cursor: pointer;
    background: #e0e0e0;
    border-radius: 5px;
}

input[type=range].epofw-field-slider::-moz-range-thumb {
    border: 1px solid #2271b1;
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

input[type=range].epofw-field-slider::-moz-range-track {
    width: 100%;
    height: 5px;
    cursor: pointer;
    background: #e0e0e0;
    border-radius: 5px;
}

 
/* Switch styling */
/* Switch Field Styles */
.epofw-switch-container {
	position: relative;
	display: inline-block;
	width: 60px;
	height: 34px;
}
.epofw-switch-checkbox {
	opacity: 0;
	width: 0;
	height: 0;
}
.epofw-switch-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	transition: .4s;
	border-radius: 34px;
}
.epofw-switch-slider:before {
	position: absolute;
	content: "";
	height: 26px;
	width: 26px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	transition: .4s;
	border-radius: 50%;
}
.epofw-switch-checkbox:checked + .epofw-switch-slider {
	background-color: #2196F3;
}
.epofw-switch-checkbox:checked + .epofw-switch-slider:before {
	transform: translateX(26px);
}
.epofw-switch-labels {
	margin-top: 10px;
	display: flex;
	justify-content: space-between;
	font-size: 12px;
}


.epofw-switch-container {
	position: relative;
	display: inline-block;
	width: 60px;
	height: 34px;
}

.epofw-switch-checkbox {
	opacity: 0;
	width: 0;
	height: 0;
}

.epofw-switch-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	transition: .4s;
	border-radius: 34px;
}

.epofw-switch-slider:before {
	position: absolute;
	content: "";
	height: 26px;
	width: 26px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	transition: .4s;
	border-radius: 50%;
}

.epofw-switch-checkbox:checked + .epofw-switch-slider {
	background-color: #2196F3;
}

.epofw-switch-checkbox:checked + .epofw-switch-slider:before {
	transform: translateX(26px);
}

.epofw-switch-labels {
	margin-top: 10px;
	display: flex;
	justify-content: space-between;
	font-size: 12px;
}

/* Hide default block add-to-cart button if our form is present */
.epofw_shop_form + .wp-element-button.add_to_cart_button,
.epofw_shop_form + .wp-element-button.add_to_cart_button {
    display: none !important;
}

.epofw-add-to-cart-button {
    background-color: var(--wp--preset--color--contrast);
    border-width: 0;
    color: var(--wp--preset--color--base);
    font-family: inherit;
    font-size: var(--wp--preset--font-size--medium);
    line-height: inherit;
    padding-top: 1rem;
    padding-right: 2.25rem;
    padding-bottom: 1rem;
    padding-left: 2.25rem;
    text-decoration: none;
	cursor: pointer;
	align-items: center;
    border-style: none;
    display: inline-flex;
    justify-content: center;
    line-height: inherit;
    overflow: hidden;
    white-space: normal;
    word-break: break-word;
	border-radius: 9999px;
    box-shadow: none;
}


/* Section Styling for Table Structure */
.epofw-section-title-row {
	border: none;
}

.epofw-section-title-cell {
	border: none;
	vertical-align: top;
}

.epofw-section-title {
	margin: 0;
	font-weight: 600;
	line-height: 1.4;
}

.epofw-section-description-row {
	border: none;
}

.epofw-section-description-cell {
	border: none;
	vertical-align: top;
}

.epofw-section-description {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	opacity: 0.8;
}

/* Ensure section field rows inherit proper styling */
.epofw-section-title-row + tr,
.epofw-section-description-row + tr {
	border-top: none;
}

.epofw_addon_str_div {
	margin: 0;
	padding: 0;
	display: block;
	width: 100%;
	min-width: 0;
}
.epofw_addon_str_div .epofw_fields_container.epofw_fields_table {
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: visible;
	position: relative;
	max-height: none;
	display: block;
	container-type: inline-size;
	container-name: epofw-addon-container;
}
.epofw_addon_str_div .epofw_fields_container.epofw_fields_table .epofw_td_label[colspan="2"] {
	position: relative;
}
.epofw_addon_str_div .epofw_fields_container.epofw_fields_table .epofw_td_label[colspan="2"]::after {
	content: "";
	position: absolute;
	left: 35%;
	top: 0;
	bottom: 0;
	width: 1px;
	background: #fff;
	z-index: 2;
}
.epofw_addon_str_div .epofw_fields_container.epofw_fields_table .epofw_field_container[id*=heading] .epofw_td_label, .epofw_addon_str_div .epofw_fields_container.epofw_fields_table .epofw_field_container[id*=paragraph] .epofw_td_label {
	flex: none;
	width: 100%;
	max-width: none;
}
.epofw_addon_str_div .epofw-row-group.epofw-multi-group {
	display: grid;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-2 {
	grid-template-columns: repeat(2, minmax(200px, 1fr));
}
.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3 {
	grid-template-columns: repeat(3, minmax(200px, 1fr));
}
.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4 {
	grid-template-columns: repeat(4, minmax(180px, 1fr));
}
.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
@container epofw-addon-container (max-width: 800px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: repeat(3, minmax(180px, 1fr));
	}
}
@container epofw-addon-container (max-width: 600px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: repeat(2, minmax(150px, 1fr));
	}
}
@container epofw-addon-container (max-width: 400px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-2, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: 1fr;
	}
}

/* Fallback media queries for browsers/themes where container queries may not work */
@media screen and (max-width: 800px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: repeat(3, minmax(180px, 1fr));
	}
}
@media screen and (max-width: 600px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: repeat(2, minmax(150px, 1fr));
	}
}
@media screen and (max-width: 480px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-2,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7,
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: 1fr;
	}
}

.epofw_addon_str_div .epofw-row-group.epofw-multi-group .epofw-row-container {
	min-width: 0;
	max-width: 100%;
	margin: 0;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw-row-group.epofw-multi-group .epofw_field_container {
	max-width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw-row-container {
	display: flex;
	margin: 0;
	padding: 0;
	min-height: 60px;
}
.epofw_addon_str_div .epofw-row-container:last-child {
	border-bottom: none;
}
.epofw_addon_str_div .epofw-row-container .epofw_field_container.epofw_label_above {
	width: 100%;
}
.epofw_addon_str_div .epofw_field_container {
	display: flex;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	overflow: visible;
	max-height: none;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_field_container.epofw_label_above {
	flex-direction: column;
}
.epofw_addon_str_div .epofw_field_container.epofw_label_above .label.epofw_label_above {
	width: 100%;
	flex: none;
	padding: 12px 16px 8px;
	border-bottom: none;
	margin-bottom: 0;
}
.epofw_addon_str_div .epofw_field_container.epofw_label_above .label.epofw_label_above .label_div {
	width: 100%;
}
.epofw_addon_str_div .epofw_field_container.epofw_label_above .value.epofw_above {
	width: 100%;
	flex: none;
	padding: 8px 16px 12px;
}
.epofw_addon_str_div .epofw_td_label {
	padding: 20px 0;
	display: inherit;
	border-right: none;
	text-align: left;
	flex: 0 0 auto;
	min-width: 0;
	max-width: 280px;
}
.epofw_addon_str_div .epofw_td_label .label_div {
	width: 100%;
	min-width: 0;
}
.epofw_addon_str_div .epofw_td_label label,
.epofw_addon_str_div .epofw_td_label h1,
.epofw_addon_str_div .epofw_td_label h2,
.epofw_addon_str_div .epofw_td_label h3,
.epofw_addon_str_div .epofw_td_label h4,
.epofw_addon_str_div .epofw_td_label h5,
.epofw_addon_str_div .epofw_td_label h6,
.epofw_addon_str_div .epofw_td_label span,
.epofw_addon_str_div .epofw_td_label blockquote {
	margin: 0;
	padding: 0;
}
.epofw_addon_str_div .epofw_td_label label {
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
	line-height: 1.4;
}
.epofw_addon_str_div .epofw_td_label blockquote {
	padding-left: 12px;
	margin: 0;
}

/*--------------------------------------------------------------
# Clean Form Table Layout (Label-Left Style)
# Only applies to SINGLE-COLUMN layouts when using Auto mode
# Multi-column layouts use Auto Label Position Mode (labels above)
--------------------------------------------------------------*/
/* Clean table-like form layout - labels left, inputs right */
/* Only for single-column and explicit label-left fields */
/* Note: display uses !important only when not hidden by conditional logic */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_left:not([style*="display: none"]):not([style*="display:none"]),
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto:not([style*="display: none"]):not([style*="display:none"]) {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	padding: 0.75em 0 !important;
	margin: 0 !important;
	gap: 1em !important;
	width: 100% !important;
}

/* Label column - fixed width for alignment */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_left > .epofw_td_label,
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_label {
	flex: 0 0 200px !important;
	width: 200px !important;
	min-width: 200px !important;
	max-width: 200px !important;
	padding: 0.5em 0 0 0 !important;
	margin: 0 !important;
	text-align: left !important;
}

.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_left > .epofw_td_label label,
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_left > .epofw_td_label span,
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_label label,
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_label span {
	font-weight: normal !important;
	margin: 0 !important;
	padding: 0 !important;
	white-space: normal !important;
	word-wrap: break-word !important;
}

/* Input column - takes remaining width */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_left > .epofw_td_value,
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value {
	flex: 1 1 auto !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 0.75em !important;
	width: auto !important;
	max-width: none !important;
}

/* Input fields take full width of their container */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="text"],
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="number"],
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="email"],
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="password"],
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="date"],
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="time"],
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value select:not(.multiselect2):not(.epofw_dft_multiselect) {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0.6em 0.75em !important;
}

/* Textarea full width */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value textarea {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0.6em 0.75em !important;
	min-height: 100px !important;
}

/* Select2 full width */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value .select2-container {
	width: 100% !important;
	max-width: 100% !important;
}

/* Checkbox and Radio - inline display */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value label:has(input[type="checkbox"]),
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value label:has(input[type="radio"]) {
	display: inline-flex !important;
	align-items: center !important;
	margin-right: 1em !important;
	margin-bottom: 0.5em !important;
	white-space: nowrap !important;
}

/* Slider full width */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value .epofw-slider-wrapper {
	width: 100% !important;
	max-width: 100% !important;
}


/* Switch container */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value .epofw-switch-container {
	margin: 0 !important;
}

/* File input */
.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value input[type="file"] {
	width: auto !important;
}

/*--------------------------------------------------------------
# End Clean Form Table Layout
--------------------------------------------------------------*/

.epofw_addon_str_div .epofw_td_value {
	/* flex: 1; */
	/* padding: 20px 16px;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	align-items: flex-start;
	overflow: visible;
	max-height: none; */


	align-items: flex-start;
	overflow: visible;
	max-height: none;
	flex: 2 1 auto;
	padding: 20px 16px;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.5em;
	max-width: 100%;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkbox], .epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkboxgroup] {
	max-width: 100%;
	overflow-y: visible;
	padding-bottom: 8px;
	width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkbox] .epofw_textswitcher_field, .epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkboxgroup] .epofw_textswitcher_field {
	margin: 0 8px 8px 0;
	flex-shrink: 0;
}
.epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkbox]::-webkit-scrollbar, .epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkboxgroup]::-webkit-scrollbar {
	width: 6px;
}
.epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkbox]::-webkit-scrollbar-track, .epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkboxgroup]::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 3px;
}
.epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkbox]::-webkit-scrollbar-thumb, .epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkboxgroup]::-webkit-scrollbar-thumb {
	background: #c1c1c1;
	border-radius: 3px;
}
.epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkbox]::-webkit-scrollbar-thumb:hover, .epofw_addon_str_div .epofw_td_value[data-epofw_sa*=checkboxgroup]::-webkit-scrollbar-thumb:hover {
	background: #a8a8a8;
}
/* Dynamic Column Layout for Radio Buttons and Image Switchers */
/* Container for radio buttons - use CSS Grid */
.epofw_addon_str_div .epofw_td_value:has(label input[type=radio]:not([type=checkbox])) {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px 16px;
	align-items: start;
}

/* Container for image switcher fields - use CSS Grid */
.epofw_addon_str_div .epofw_td_value:has(.epofw_imageswitcher_field),
.epofw_addon_str_div .epofw_td_value:has(.epofw_colorswitcher_field) {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 12px 16px;
	align-items: start;
}

/* Fallback for browsers that don't support :has() - target by data attribute or class */
.epofw_addon_str_div .epofw_td_value[data-field-type="radiogroup"] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 12px 16px;
	align-items: start;
}

.epofw_addon_str_div .epofw_td_value[data-field-type="imageswitcher"],
.epofw_addon_str_div .epofw_td_value[data-field-type="colorswitcher"] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 12px 16px;
	align-items: start;
}

.epofw_addon_str_div .epofw_td_value label {
	margin: 0;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	word-wrap: break-word;
	overflow-wrap: break-word;
	display: block;
	line-height: 1.5;
}
/* Radio button labels - only use flex when text needs to wrap */
.epofw_addon_str_div .epofw_td_value label:has(input[type=radio]:not([type=checkbox])) {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
}
.epofw_addon_str_div .epofw_td_value label input[type=radio],
.epofw_addon_str_div .epofw_td_value label input[type=checkbox] {
	margin-right: 0.5em;
	margin-bottom: 0;
	vertical-align: middle;
}
/* When using flex (radio buttons), adjust input alignment */
.epofw_addon_str_div .epofw_td_value label:has(input[type=radio]:not([type=checkbox])) input[type=radio] {
	flex-shrink: 0;
	align-self: flex-start;
	margin-top: 0.25em;
}
.epofw_addon_str_div .epofw_td_value .epofw_textswitcher_field {
	display: inline-flex;
	flex-direction: column;
	margin: 0 0.5em 0.5em 0;
	padding: 0;
	min-width: 120px;
	max-width: 200px;
	flex-shrink: 0;
	white-space: nowrap;
	text-align: center;
}
.epofw_addon_str_div .epofw_td_value .epofw_textswitcher_field input[type=radio] {
	display: none;
}

.epofw_addon_str_div .epofw_td_value .epofw_textswitcher_field .button .epofw_textswitcher_span {
	display: block;
}
.epofw_addon_str_div .epofw_td_value .epofw_textswitcher_field .cs_title {
	padding: 0.5em 0.75em;
}
.epofw_addon_str_div .epofw_td_value .epofw_textswitcher_field label {
	border: none !important;
	background: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.epofw_addon_str_div .epofw_td_value .epofw_textswitcher_field label:hover {
	border: none !important;
	background: none !important;
	box-shadow: none !important;
	transform: none !important;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	min-width: 0;
	max-width: 100%;
	width: 100%;
	text-align: center;
	box-sizing: border-box;
	align-items: center;
	justify-content: flex-start;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field input[type=radio] {
	display: none;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button {
	padding: 0.75em;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_imageswitcher_span,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_colorswitcher_span,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_textswitcher_span,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_imageswitcher_span,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_colorswitcher_span,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_textswitcher_span {
	display: block;
	margin: 0 auto;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_imageswitcher_span img,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_colorswitcher_span img,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_textswitcher_span img,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_imageswitcher_span img,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_colorswitcher_span img,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_textswitcher_span img {
	max-width: 100%;
	max-height: 80px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	margin: 0 auto;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .epofw_button .epofw_colorswitcher_span,
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .button .epofw_colorswitcher_span {
	width: 50px;
	height: 50px;
	margin: 0 auto;
}
.epofw_addon_str_div .epofw_td_value .epofw_switcher_field .cs_title {
	padding: 0.5em 0.25em;
	text-align: center;
	margin: 0;
	word-wrap: break-word;
	overflow-wrap: break-word;
	white-space: normal;
	line-height: 1.4;
	width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_td_value textarea {
	min-height: 80px;
	resize: vertical;
}
.epofw_addon_str_div .epofw_td_value .multiselect2,
.epofw_addon_str_div .epofw_td_value .epofw_dft_multiselect {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_td_value .select2-container {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Override Select2 inline styles that cause overflow */
.epofw_addon_str_div .epofw_td_value .select2-container[style] {
	width: 100% !important;
	max-width: 100% !important;
}
.epofw_addon_str_div .epofw_td_value .select2-selection--multiple {
	min-height: 40px;
}
.epofw_addon_str_div .epofw_td_value select {
	cursor: pointer;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw_td_value input[type=file] {
	width: 100%;
	max-width: 300px;
}
.epofw_addon_str_div .epofw-slider-wrapper {
	width: 100%;
	max-width: 100%;
}
.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container {
	position: relative;
	margin: 0;
	padding: 5px 10px;
	display: flex;
	align-items: center;
	gap: 15px;
	width: 100%;
	box-sizing: border-box;
}
.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container .epofw-slider-control {
	flex: 1;
	height: 8px;
	position: relative;
	cursor: pointer;
	background: #e0e0e0;
	border-radius: 4px;
}
.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container .epofw-slider-control .ui-slider-handle {
	width: 16px;
	height: 16px;
	position: absolute;
	top: -4px;
	margin-left: -8px;
	cursor: pointer;
	background: #fff;
	border: 2px solid #2271b1;
	border-radius: 50%;
	z-index: 2;
}
.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container .epofw-slider-control .ui-slider-range {
	background: #2271b1;
	height: 100%;
	border-radius: 5px;
	position: absolute;
	z-index: 1;
}
.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container .epofw-slider-value {
	text-align: center;
	margin: 0;
	flex-shrink: 0;
	min-width: 45px;
	padding: 5px 10px;
	background: #f5f5f5;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 14px;
}
/* Remove flex from slider container between 922px and 1235px */
@media (min-width: 922px) and (max-width: 1235px) {
	.epofw-slider-container,
	.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container {
		display: block;
	}
	.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container .epofw-slider-value {
		margin-top: 8px;
	}
}
/* Remove flex from slider container at 590px and below */
@media (max-width: 590px) {
	.epofw-slider-container,
	.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container {
		display: block;
	}
	.epofw_addon_str_div .epofw-slider-wrapper .epofw-slider-container .epofw-slider-value {
		margin-top: 8px;
	}
}
.epofw_addon_str_div .epofw-switch-label {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.epofw_addon_str_div .epofw-switch-container {
	position: relative;
	display: inline-block;
	width: 60px;
	height: 30px;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input {
	opacity: 0;
	width: 0;
	height: 0;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input:checked + .epofw-switch-slider {
	background-color: var(--checked-bg-color, #0073aa);
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input:checked + .epofw-switch-slider:before {
	transform: translateX(30px);
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: var(--unchecked-bg-color, #ccc);
	transition: 0.4s;
	border-radius: 30px;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-slider:before {
	position: absolute;
	content: "";
	height: 22px;
	width: 22px;
	left: 4px;
	bottom: 4px;
	background-color: #fff;
	transition: 0.4s;
	border-radius: 50%;
	z-index: 1;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-slider .checked-icon,
.epofw_addon_str_div .epofw-switch-container .epofw-switch-slider .unchecked-icon {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	color: #fff !important;
	z-index: 3;
	pointer-events: none;
	display: inline-block !important;
	line-height: 1;
	width: auto;
	height: auto;
	font-family: dashicons !important;
	font-style: normal;
	font-weight: normal;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-slider .checked-icon {
	left: 10px;
	right: auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s, visibility 0.4s;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-slider .unchecked-icon {
	right: 10px;
	left: auto;
	opacity: 1 !important;
	visibility: visible !important;
	transition: opacity 0.4s, visibility 0.4s;
}
/* Ensure unchecked icon is visible when switch is NOT checked */
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input:not(:checked) + .epofw-switch-slider .unchecked-icon {
	opacity: 1 !important;
	visibility: visible !important;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input:not(:checked) + .epofw-switch-slider .checked-icon {
	opacity: 0 !important;
	visibility: hidden !important;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input:checked + .epofw-switch-slider .checked-icon {
	opacity: 1 !important;
	visibility: visible !important;
}
.epofw_addon_str_div .epofw-switch-container .epofw-switch-input:checked + .epofw-switch-slider .unchecked-icon {
	opacity: 0 !important;
	visibility: hidden !important;
}
.epofw_addon_str_div .epofw-switch-container.epofw-switch-square .epofw-switch-slider:before {
	border-radius: 6px;
}
.epofw_addon_str_div .epofw-switch-container.epofw-switch-bounce .epofw-switch-slider:before {
	transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.epofw_addon_str_div .woocommerce-Price-amount {
	font-weight: 600;
}
.epofw_addon_str_div .woocommerce-Price-amount .woocommerce-Price-currencySymbol {
	font-size: 0.9em;
}
@media (max-width: 800px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: repeat(3, minmax(180px, 1fr));
	}
}
@media (max-width: 600px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: repeat(2, minmax(150px, 1fr));
	}
}
@media (max-width: 480px) {
	.epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-2, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-3, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-4, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-5, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-6, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-7, .epofw_addon_str_div .epofw-row-group.epofw-multi-group.epofw-col-8 {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 768px) {
	.epofw_addon_str_div .epofw-row-container {
		flex-direction: column;
		min-height: auto;
	}
	.epofw_addon_str_div .epofw_td_label {
		max-width: 100%;
		border-right: none;
		border-bottom: 1px solid #e5e7eb;
		padding: 16px;
		flex: 0 0 100%;
		min-width: 100%;
		max-width: 100%;
	}
	.epofw_addon_str_div .epofw_td_value {
		padding: 16px;
	}
	.epofw_addon_str_div .epofw_fields_container.epofw_fields_table::before {
		display: none;
	}
	/* Header row with single cell (colspan) - span full width */
	.epofw_addon_str_div .epofw_addon_totals .addon_total_tbl tbody tr td[colspan],
	.epofw_addon_str_div .epofw_addon_totals .addon_total_tbl tbody tr td:only-child {
		flex: 1;
		width: 100%;
		text-align: center;
		/* border-right: none !important; */
	}
}

.epofw_addon_totals {
	margin-top: 20px;
	width: 100%;
}
/* Hide addon totals when no addon items selected */
.epofw_addon_totals .addon_total_tbl.addon_total_hd {
	display: none !important;
}
.epofw_addon_totals .addon_total_tbl {
	width: 100%;
	display: block;
	overflow: hidden;
}
.epofw_addon_totals .addon_total_tbl tbody {
	display: block;
}
.epofw_addon_totals .addon_total_tbl::before {
	content: "";
	position: absolute;
	top: 0;
	left: 35%;
	bottom: 0;
	width: 1px;
	z-index: 1;
}
.epofw_addon_totals .addon_total_tbl tbody tr {
	display: flex;
	margin: 0;
	padding: 0;
	min-height: 50px;
}
.epofw_addon_totals .addon_total_tbl tbody tr td {
	align-items: center;
	padding: 1em;
	margin: 0;
	border: none;
}
.epofw_addon_totals .addon_total_tbl tbody tr td:first-child {
	flex: 1;
	text-align: left;
}
.epofw_addon_totals .addon_total_tbl tbody tr td:last-child {
	flex: 1;
	text-align: right;
}
.epofw_addon_totals .addon_total_tbl tbody tr td.addon_price {
	justify-content: flex-end;
}
.epofw_addon_totals .addon_total_tbl tbody #addon_details td {
	padding: 1.25em 1em;
}
.epofw_addon_totals .addon_total_tbl tbody #addon_subtotal td {
	padding: 1.25em 1em;
}
.epofw_addon_totals .dv_img_a_container {
	padding: 0.25em 0.5em;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
}
.epofw_addon_totals .dv_img_a_container::before {
	content: "×";
	font-size: 14px;
	font-weight: 700;
}
.epofw_addon_totals .dv_img_container {
	display: flex;
	flex-direction: row;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 10px;
}
.epofw_addon_totals .dv_img_container img {
	max-width: 60px;
	max-height: 60px;
	object-fit: cover;
}

@media (max-width: 768px) {
	/* Header row with single cell (colspan) - span full width */
	.epofw_addon_totals .addon_total_tbl tbody tr td[colspan],
	.epofw_addon_totals .addon_total_tbl tbody tr td:only-child {
		flex: 1;
		width: 100%;
		text-align: center;
		/* border-right: none !important; */
	}
	.epofw_addon_totals .dv_img_a_container {
		padding: 0.375em 0.625em;
	}
	.epofw_addon_totals .dv_img_container {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
	.epofw_addon_totals .dv_img_container img {
		max-width: 80px;
		max-height: 80px;
	}
}
@media (max-width: 768px) {
	.epofw_addon_str_div .epofw_fields_container.epofw_fields_table::before {
		display: none;
	}
	.epofw_addon_str_div .epofw_fields_container.epofw_fields_table .epofw_td_label[colspan="2"]::after {
		display: none;
	}
	.epofw_addon_str_div .epofw_field_container {
		flex-direction: column;
		min-height: auto;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_label {
		flex: none;
		width: 100%;
		max-width: none;
		padding: 12px 16px 8px;
		border-right: none;
		border-bottom: none;
		text-align: left;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value {
		flex: none;
		width: 100%;
		padding: 8px 16px 12px;
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
	/* Remove flex from single column label auto layout */
	.epofw_addon_str_div .epofw-columns-single .epofw_field_container.epofw_label_auto > .epofw_td_value {
		flex: none !important;
	}
	/* Remove padding from file input */
	.epofw_addon_str_div [id^="epofw_file_"] .epofw_td_value input[type=file] {
		padding: 0 !important;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_td_value {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_td_value[data-epofw_sa*=checkbox], .epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_td_value[data-epofw_sa*=checkboxgroup] {
		max-width: 100%;
		overflow-y: visible;
		overflow-x: auto;
		width: 100%;
		padding-bottom: 6px;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value label {
		display: flex;
		align-items: center;
		width: 100%;
		margin: 0 0 0.5em 0;
		white-space: nowrap;
		min-width: 0;
		box-sizing: border-box;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_textswitcher_field {
		width: 100%;
		margin: 0 0 8px 0;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_textswitcher_field .button {
		width: 100%;
		text-align: center;
	}
	/* Responsive grid for radio buttons and image switchers on mobile */
	.epofw_addon_str_div .epofw_td_value:has(label input[type=radio]:not([type=checkbox])),
	.epofw_addon_str_div .epofw_td_value:has(.epofw_imageswitcher_field),
	.epofw_addon_str_div .epofw_td_value:has(.epofw_colorswitcher_field),
	.epofw_addon_str_div .epofw_td_value[data-field-type="radiogroup"],
	.epofw_addon_str_div .epofw_td_value[data-field-type="imageswitcher"],
	.epofw_addon_str_div .epofw_td_value[data-field-type="colorswitcher"] {
		grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
		gap: 10px 12px;
	}

	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_colorswitcher_field,
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_imageswitcher_field {
		width: 100%;
		margin: 0 0 8px 0;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_colorswitcher_field .button,
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_colorswitcher_field .epofw_button,
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_imageswitcher_field .button,
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_imageswitcher_field .epofw_button {
		width: 100%;
		text-align: center;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_colorswitcher_field .cs_title,
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw_imageswitcher_field .cs_title {
		text-align: center;
		margin-top: 4px;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=text],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=number],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=password],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=email],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=url],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=tel],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=date],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=time],
	.epofw_addon_str_div .epofw_field_container .epofw_td_value textarea {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding: 10px 12px;
		font-size: 16px;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value input[type=file] {
		width: 100%;
		max-width: none;
		padding: 12px;
		font-size: 16px;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw-slider-wrapper {
		width: 100%;
		max-width: none;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw-slider-wrapper .epofw-slider-control {
		width: 100%;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .epofw-switch-container {
		margin: 8px 0;
	}
	.epofw_addon_str_div .epofw_field_container .epofw_td_value .select2-container,
	.epofw_addon_str_div .epofw_td_value .select2-container,
	.epofw_td_value .select2-container {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}
	.epofw_addon_str_div .epofw_td_value .multiselect2,
	.epofw_addon_str_div .epofw_td_value .epofw_dft_multiselect,
	.epofw_td_value .multiselect2,
	.epofw_td_value .epofw_dft_multiselect {
		width: auto;
		max-width: 100% !important;
		box-sizing: border-box;
	}
	.select2-container[style] {
		width: 100% !important;
		max-width: 100% !important;
	}
	.epofw_addon_str_div .woocommerce-Price-amount {
		font-size: 14px;
	}
}

/* Prevent section wrapper and fields from overflowing */
.epofw_addon_str_div .epofw-section-wrapper {
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: visible;
}

.epofw_addon_str_div .epofw-section-fields {
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: visible;
}

.epofw_addon_str_div .epofw-row-group {
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: visible;
}

.epofw_addon_str_div .epofw_field_container {
	max-width: 100%;
	box-sizing: border-box;
}

.epofw_addon_str_div .epofw-columns,
.epofw_addon_str_div .epofw-column {
	max-width: 100%;
	box-sizing: border-box;
}

/* Two-column layout support */
.epofw-single-group .epofw-columns-multi,
.epofw-columns.epofw-columns-multi {
	display: flex !important;
	flex-direction: row !important;
	overflow-x: hidden;
	overflow-y: visible;
	gap: 15px;
	max-width: 100%;
	box-sizing: border-box;
}

/* Ensure columns in multi-column layout take equal space */
.epofw-columns.epofw-columns-multi .epofw-column {
	flex: 1 1 0%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: visible;
}

/* Ensure field containers and values respect column width */
.epofw-columns.epofw-columns-multi .epofw-column .epofw_field_container {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	position: relative;
	overflow: visible;
}

.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding-left: 0;
	padding-right: 0;
	position: relative;
	overflow: visible;
}

/* Ensure all input fields respect column width */
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="text"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="number"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="email"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="password"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="url"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="tel"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="date"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value input[type="time"],
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value textarea,
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value select,
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_value .epofw_fields_tag_class:not(input[type=checkbox]):not(input[type=radio]) {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Fix label width in multi-column layouts - allow label to shrink */
.epofw-columns.epofw-columns-multi .epofw-column .epofw_td_label {
	min-width: 0;
	flex: 0 1 auto;
	max-width: 40%;
}

/*--------------------------------------------------------------
# Switcher Horizontal Layout Override
# Displays Image/Color/Text Switcher options side by side
# Works for ALL column layouts (single, multi, etc.)
# MUST be at end of file to override all previous rules
--------------------------------------------------------------*/

/* Make ALL switcher containers use flex row for horizontal layout */
.epofw_addon_str_div .epofw_td_value:has(.epofw_imageswitcher_field),
.epofw_addon_str_div .epofw_td_value:has(.epofw_colorswitcher_field),
.epofw_addon_str_div .epofw_td_value:has(.epofw_textswitcher_field) {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 16px !important;
	align-items: flex-start !important;
}

/* Fallback for browsers without :has() support - target by field type ID */
.epofw_addon_str_div [id^="epofw_imageswitcher"] .epofw_td_value,
.epofw_addon_str_div [id^="epofw_colorswitcher"] .epofw_td_value,
.epofw_addon_str_div [id^="epofw_textswitcher"] .epofw_td_value {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 16px !important;
	align-items: flex-start !important;
}

/* Override the individual switcher field width - make them inline for ALL layouts */
.epofw_addon_str_div .epofw_switcher_field,
.epofw_addon_str_div .epofw_imageswitcher_field,
.epofw_addon_str_div .epofw_colorswitcher_field,
.epofw_addon_str_div .epofw_textswitcher_field {
	display: inline-flex !important;
	flex-direction: column !important;
	width: auto !important;
	max-width: 150px !important;
	min-width: 80px !important;
	margin: 0 !important;
	flex-shrink: 0 !important;
	flex-grow: 0 !important;
	align-items: center !important;
}

/* Ensure switcher button doesn't force 100% width */
.epofw_addon_str_div .epofw_switcher_field .epofw_button,
.epofw_addon_str_div .epofw_switcher_field .button,
.epofw_addon_str_div .epofw_imageswitcher_field .epofw_button,
.epofw_addon_str_div .epofw_colorswitcher_field .button,
.epofw_addon_str_div .epofw_textswitcher_field .button {
	width: auto !important;
	padding: 0.5em !important;
}

/* Title/label below the image/color - ALL switchers */
.epofw_addon_str_div .epofw_switcher_field .cs_title,
.epofw_addon_str_div .epofw_imageswitcher_field .cs_title,
.epofw_addon_str_div .epofw_colorswitcher_field .cs_title {
	padding: 4px 8px !important;
	text-align: center !important;
	white-space: normal !important;
	overflow: visible !important;
	max-width: 150px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 2px !important;
}

/*--------------------------------------------------------------
# Option Title and Price Separate Styling
# Title and price stack vertically when width is limited
--------------------------------------------------------------*/

/* Title styling */
.epofw_addon_str_div .epofw_switcher_field .cs_title .epofw_option_title,
.epofw_addon_str_div .epofw_imageswitcher_field .cs_title .epofw_option_title,
.epofw_addon_str_div .epofw_colorswitcher_field .cs_title .epofw_option_title {
	display: block;
	font-weight: 500;
	line-height: 1.3;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

/* Price styling */
.epofw_addon_str_div .epofw_switcher_field .cs_title .epofw_option_price,
.epofw_addon_str_div .epofw_imageswitcher_field .cs_title .epofw_option_price,
.epofw_addon_str_div .epofw_colorswitcher_field .cs_title .epofw_option_price {
	display: block;
	font-size: 0.9em;
	color: #666;
	line-height: 1.3;
	white-space: nowrap;
}

/* Text Switcher - title and price inside button */
.epofw_addon_str_div .epofw_textswitcher_field .epofw_switcher_value .epofw_option_title {
	display: block;
	font-weight: 500;
	line-height: 1.3;
}

.epofw_addon_str_div .epofw_textswitcher_field .epofw_switcher_value .epofw_option_price {
	display: block;
	font-size: 0.85em;
	opacity: 0.8;
	line-height: 1.3;
	margin-top: 2px;
}

/* Make text switcher value stack title and price */
.epofw_addon_str_div .epofw_textswitcher_field .epofw_switcher_value {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center;
	cursor: pointer;
}

/*--------------------------------------------------------------
# Consistent Image Sizing in Image Switcher
# Fixed width AND height for uniform appearance
--------------------------------------------------------------*/

/* Force consistent image width AND height */
.epofw_addon_str_div .epofw_imageswitcher_field .epofw_button .epofw_imageswitcher_span img,
.epofw_addon_str_div .epofw_imageswitcher_field img {
	width: 120px !important;
	height: 80px !important;
	min-width: 80px;
	max-width: 150px !important;
	object-fit: cover !important;
	border-radius: 4px;
}

/* Ensure the image container has consistent width */
.epofw_addon_str_div .epofw_imageswitcher_field .epofw_button {
	min-width: 100px;
	width: 120px;
	display: flex;
	justify-content: center;
	align-items: center;
}

/* Color swatch consistent sizing */
.epofw_addon_str_div .epofw_colorswitcher_field .button .epofw_colorswitcher_span {
	width: 50px !important;
	height: 50px !important;
	min-width: 50px;
	min-height: 50px;
	border-radius: 50%;
}

/* Text Switcher button consistent sizing */
.epofw_addon_str_div .epofw_textswitcher_field .button {
	min-width: 80px;
	padding: 10px 15px !important;
}

/*--------------------------------------------------------------
# Checkbox/Radio Label with Responsive Title and Price
# Inline when width allows, stacked when narrow
--------------------------------------------------------------*/

/* Wrapper for title and price - uses flex-wrap for responsive behavior */
.epofw_addon_str_div .epofw_option_label_wrap {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 4px;
	line-height: 1.4;
}

/* Title styling for checkbox/radio */
.epofw_addon_str_div .epofw_option_label_wrap .epofw_option_title {
	font-weight: 400;
}

/* Price styling for checkbox/radio */
.epofw_addon_str_div .epofw_option_label_wrap .epofw_option_price {
	font-size: 0.9em;
	white-space: nowrap;
}

/* Ensure proper alignment with checkbox/radio input */
.epofw_addon_str_div .epofw_td_value label {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.5em;
	line-height: 1.4;
}

/* When label container is narrow, price wraps to new line */
.epofw_addon_str_div .epofw_td_value label .epofw_option_label_wrap {
	flex: 1;
	min-width: 0;
}
