/* Consolidate font and base styles */
body {
font-family: 'Cairo', sans-serif;
line-height: 1.5; /* Use relative units for better scalability */
}

.btn-outline {
--bs-btn-color: #212529;
--bs-btn-border-color: #212529;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #212529;
--bs-btn-hover-border-color: #212529;
--bs-btn-focus-shadow-rgb: 33,37,41;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #212529;
--bs-btn-active-border-color: #212529;
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
--bs-btn-disabled-color: #212529;
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: #212529;
--bs-gradient: none;
}

/* Optimize carousel indicators */
.carousel .carousel-indicators [data-bs-target],
[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {
background-color: grey;
}

/* Simplify form-check styles */
.form-check,
.form-check-input.is-valid~.form-check-label,
.was-validated .form-check-input:valid~.form-check-label {
color: #212529;
}

.form-check-input.is-valid,
.was-validated .form-check-input:valid {
border: var(--bs-border-width) solid var(--bs-border-color)!important;
}

/* Optimize rounded classes */

.roundedpro,
.myNav {
border-radius: 8px !important;
}

.myNav {
font-size: 25px;
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
position: fixed;
bottom: 0;
right: 0;
}

/* Merge radio-group styles */
.radio-group,
.radio-group > * {
display: flex;
align-items: center;
margin-right: 0;
}

.radio-group {
flex-direction: row;
justify-content: space-between;
}

/* Optimize thumbnail styles */
.thumbnails {
display: flex;
}

.thumbnail,
.slider-image {
max-width: 100%;
}

.thumbnail {
width: 4rem;
height: auto;
margin-right: 10px;
cursor: pointer;
}

.thumbnailSelected {
border: var(--bs-border-width) solid var(--bs-border-color)!important;
padding: 4px;
transition: all 0.2s ease-in-out;
}

/* Optimize color option styles */
.color-radio {
display: none;
}

.color-option {
display: inline-flex;
justify-content: center;
align-items: center;
width: 25px;
height: 25px;
border-radius: 50%;
cursor: pointer;
transition: transform 0.2s;
}

.color-option:hover {
transform: scale(1.5);
}

.color-option,
.selected,
.color-option:hover {
border: 2px solid #f1f1f1;
}

/* Remove redundant styles */
.btn.disabled,
.btn:disabled,
fieldset:disabled .btn {
opacity: 1!important;
}

.button-wrapper {
position: relative;
width: fit-content;
}

.second-line {
display: block;
text-align: center;
}

#idBtnSend {
width: 100%;
}

.form-check-input:checked[type=radio] {
transform: scale(1.2)!important;
}

/* Optimize animation classes */
@keyframes fadeIn {
from { opacity: 0; }
to   { opacity: 1; }
}

.fade-in {
animation: fadeIn 0.6s ease-in;
opacity: 1;
height: auto;
padding-top: .75rem;
padding-bottom: .75rem;
margin-bottom: 1rem;
overflow: visible;
transition: opacity 0.6s ease-in, height 0.6s ease-in, padding-top 0.6s ease-in, padding-bottom 0.6s ease-in, margin-bottom 0.6s ease-in;
}

.sectionStyle {
border-radius: 20px;
/*border: var(--bs-border-width) solid var(--bs-border-color);
padding: 15px; */
transition: all 0.2s ease-in-out;
}

.sectionStyleNew {
border-radius: 20px;
/* border: var(--bs-border-width) solid var(--bs-border-color);
padding: 15px; */
transition: all 0.2s ease-in-out;
}

.hide-select {
display: none;
}

.fade-out {
opacity: 0;
height: 0;
padding-top: 0;
padding-bottom: 0;
margin-bottom: 0;
overflow: hidden;
transition: opacity 0.6s ease-out, height 0.6s ease-out, padding-top 0.6s ease-out, padding-bottom 0.6s ease-out, margin-bottom 0.6s ease-out;
}

.hidden {
display: none;
}

/* Skeleton Loader Styles */
.image-skeleton {
width: 100%;
padding-top: 56.25%; /* 16:9 Aspect Ratio */
background-color: #e0e0e0; /* Light gray background */
position: relative;
overflow: hidden;
}

.image-skeleton::after {
content: '';
position: absolute;
top: 0;
left: -150px;
width: 150px;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
animation: loading 1.5s infinite;
}

@keyframes loading {
0% {
left: -150px;
}
50% {
left: 100%;
}
100% {
left: 100%;
}
}

/* Hide skeleton and show image when loaded */
.carousel-item .mainImage {
display: none;
}

.carousel-item.loaded .mainImage {
display: block;
}

.carousel-item.loaded .image-skeleton {
display: none;
}

/* Optional: Ensure responsive images */
.carousel-item img {
object-fit: cover;
width: 100%;
height: auto;
display: inline-block;
margin: 0 auto;
}
.form-select:disabled {
background-color: transparent!important;
}
.sectionStyleNew img {
max-width: 100%!important;
height: auto!important;
display: block!important; /* Optional, for centering images */
margin-left: auto!important;
margin-right: auto!important;
border-radius: 12px!important;
}
.radio-group {
display: flex;
flex-wrap: nowrap; /* Keeps items in a single line as much as possible */
align-items: center; /* Aligns items vertically in the middle */
width: 100%; /* Ensures the radio group takes full width of its container */
}
.form-check {
display: flex;
align-items: center; /* Ensures vertical center alignment of the radio button and the label */
flex-grow: 1;
}
.form-check-input {
margin-right: 8px; /* Adds space to the right of the radio button for LTR languages */
}
/* For RTL languages, if you have set the direction on the parent or body */
.form-check-input[dir="rtl"] {
margin-right: 0; /* Reset the right margin for RTL */
margin-left: 8px; /* Adds space to the left of the radio button for RTL languages */
}
.ms-2 {
display: flex;
flex-direction: column;
justify-content: center; /* Aligns price information vertically in the center */
text-align: right; /* Aligns the price text to the right */
margin-left: auto; /* Pushes the price container to the right as far as it can go */
flex-shrink: 0; /* Prevents the price container from shrinking */
}
.visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
border: 0 !important;
}
.form-check {
padding-left: 0!important;
}