/* ==========================================================================

   Custom File Upload & Validation Styles

   ========================================================================== */



/* Upload zone */

.upload-zone {

  border: 1.5px dashed #a8ccb3; 

  border-radius: 10px;

  padding: 24px 16px; 

  text-align: center; 

  cursor: pointer;

  background: #fbfefb; 

  position: relative;

  min-height: 100px; 

  display: flex; 

  flex-direction: column;

  align-items: center; 

  justify-content: center;

  transition: border-color .2s, background .2s, box-shadow .2s;

}



.upload-zone:hover, 

.upload-zone.dragover { 

  border-color: var(--green); 

  background: #f4fbf6; 

}



.upload-zone.has-file { 

  border-color: var(--green); 

  background: #f0fbf4; 

}



/* Invalid state for upload zone */

.upload-zone.is-invalid {

  border-color: #dc3545 !important;

  background-color: #fff8f8 !important;

  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.15);

}



.upload-zone input[type="file"] {

  position: absolute; 

  inset: 0; 

  opacity: 0; 

  cursor: pointer; 

  width: 100%; 

  height: 100%;

}



.upload-icon { 

  color: var(--green); 

  font-size: 24px; 

  margin-bottom: 7px; 

}



.upload-zone.is-invalid .upload-icon {

  color: #dc3545 !important;

}



.upload-text { 

  font-size: 13px; 

  color: #3d5c45; 

}



.upload-text a { 

  color: var(--green); 

  font-weight: 500; 

  text-decoration: underline; 

  text-underline-offset: 2px; 

}



.upload-sub { 

  font-size: 11.5px; 

  color: #8faa96; 

  margin-top: 3px; 

}



/* Progress bar */

.upload-progress { 

  display: none; 

  margin-top: 6px; 

  width: 100%;

}



.upload-progress.show { 

  display: block; 

}



.progress { 

  height: 4px; 

  border-radius: 2px; 

}



.progress-bar { 

  background: var(--green); 

  transition: width .3s ease; 

}



/* File preview pill */

.file-preview {

  display: none; 

  align-items: center; 

  gap: 10px;

  background: #fff; 

  border: 1.5px solid var(--green-border);

  border-radius: 8px; 

  padding: 8px 12px; 

  margin-top: 8px;

  font-size: 13px; 

  color: var(--text-body);

}



.file-preview.show { 

  display: flex; 

}



.file-preview .fp-icon  { 

  color: var(--green); 

  font-size: 18px; 

  flex-shrink: 0; 

}



.file-preview .fp-name  { 

  flex: 1; 

  overflow: hidden; 

  text-overflow: ellipsis; 

  white-space: nowrap; 

}



.file-preview .fp-size  { 

  font-size: 11px; 

  color: #8faa96; 

  flex-shrink: 0; 

}



.file-preview .fp-remove { 

  background: none; 

  border: none; 

  color: #c0392b; 

  cursor: pointer; 

  font-size: 16px; 

  padding: 0 0 0 6px; 

  line-height: 1; 

}



/* Image preview for logo */

.img-preview-wrap {

  display: none; 

  position: relative; 

  margin-top: 8px;

  border-radius: 8px; 

  overflow: hidden;

  border: 1.5px solid var(--green-border); 

  max-width: 180px;

}



.img-preview-wrap.show { 

  display: block; 

}



.img-preview-wrap img { 

  width: 100%; 

  display: block; 

}



.img-preview-wrap .remove-img {

  position: absolute; 

  top: 4px; 

  right: 4px;

  background: rgba(0,0,0,.55); 

  color: #fff; 

  border: none;

  border-radius: 50%; 

  width: 24px; 

  height: 24px;

  display: flex; 

  align-items: center; 

  justify-content: center;

  cursor: pointer; 

  font-size: 14px;

}



/* Custom Alert Box */

.custom-alert {

  background: #fff9f5; 

  border: 1px solid #f0d5c0;

  border-radius: 8px; 

  padding: 12px 14px;

  font-size: 12px; 

  color: #7a4a28; 

  line-height: 1.6;

}



.custom-alert i { 

  color: #d4843c; 

  font-size: 15px; 

  margin-right: 6px; 

}



/* Common Animations */

@keyframes fadeIn { 

  from { opacity: 0; transform: translateY(8px); } 

  to { opacity: 1; transform: none; } 

}



.invalid-feedback {

  display: none;

  width: 100%;

  margin-top: 0.25rem;

  font-size: 0.875em;

  color: #dc3545;

  animation: fadeIn 0.3s ease;

}



/* Search dropdown menu for associated company */

.search-dropdown-menu {

    position: absolute;

    top: 100%;

    left: 0;

    right: 0;

    z-index: 1000;

    background: #fff;

    border: 1px solid #ddd;

    border-radius: 4px;

    box-shadow: 0 4px 6px rgba(0,0,0,0.1);

    max-height: 250px;

    overflow-y: auto;

}



.search-item {

    padding: 10px 15px;

    cursor: pointer;

    border-bottom: 1px solid #eee;

    font-size: 14px;

}



.search-item:last-child {

    border-bottom: none;

}



.search-item:hover {

    background-color: #f8f9fa;

    color: #007bff;

}

.custom-form-box{

  background-color: #fff;

  padding: 20px;

  max-width: 440px !important;

  border-radius: 10px;

  box-shadow: 0 20px 60px rgba(0, 0, 0, .12);

}



.wish-btn.liked i {

    color: #ef4444 !important;

}



/* ==========================================================================

   Select2 Bootstrap 5 Compatibility

   ========================================================================== */

.select2-container--default .select2-selection--single {

    height: 48px !important;

    padding: 10px 0;

    border: 1px solid #ced4da !important;

    border-radius: 8px !important;

}

.select2-container--default .select2-selection--single .select2-selection__arrow {

    height: 46px !important;

}

.select2-container--default .select2-selection--single .select2-selection__rendered {

    line-height: normal !important;

    padding-left: 15px !important;

    color: #495057 !important;

}

.select2-dropdown {

    border: 1px solid #ced4da !important;

    border-radius: 8px !important;

    box-shadow: 0 4px 6px rgba(0,0,0,0.05);

}

.select2-container--default .select2-results__option--highlighted[aria-selected] {

    background-color: var(--green) !important;

}

.custom_ad_err_alert{

  padding: 3px;

  font-size: 13px;

  background-color: #fef2f2;

  color: #ee543b;

  border-color: #ee543b;

}

.pkg-property{

    color: #919090;

  margin-top: -8px;

}

.pkg-price {

  color: #e5453c;

}

.products-clr {

  border: 2px solid rgb(142, 192, 255);

  background-color: #d9eaff;

}

.products-clr1 {

  background-color: #fff4db;

  border-color: #fddc2e !important;

}

.sec-head h3{

  font-size: 16px;

}

.badge-soft-success {

  color: rgba(15, 128, 15, 1);

  background-color: rgba(235, 251, 235, 1);

  padding: 7px;

  font-weight: 500;

  display: inline-block;

  font-size: 13px;

}

.soc-tt {

  background: #ddd;

  border-color: #000000;

  color: #000;

}

.pkg-body .badge-soft-primary, 

.pkg-body .badge-soft-success {

    font-size: 11px !important;

}

.center1 .slick-prev, .center1 .slick-next {

    top: -11.5% !important;

}



.center .slick-prev, .center .slick-next {

    top: -11.5% !important;

}

.inclusion-item-notick::before{
  content: none;
}