body
{
    /* Overflow handled by Bootstrap and custom styles */
}

.modal-backdrop
{
    z-index: 800 !important;
}

.modal-bg
{
    background: #f3f3f3;
}

.view
{
    width: 96%;
    position: absolute;
}

.section-w
{
    width: 100%;
    position: absolute;
}

.error
{
    height: 20.5px;
    padding-top: 2px;
    font-size: 11px;
    color: #ff1100;
    font-weight: 400;
    margin-bottom: 5px;
}

.ml-auto
{
    margin-left: auto;
}

.scroll-permission
{
    height: 250px;
    overflow-y: scroll;
}

.scroll-body
{
    max-height: 400px;
    overflow-y: scroll;
}

hr
{
    border: solid 1px rgb(0, 0, 0);
    padding: 0px;
}

.div-loader
{
    display: flex;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 600;
    border-radius: 5px;
    background: #fdfdfd9a;
    /* align-items: center; */
    justify-content: center;
    margin: 0;
}

.loader
{
    width: 60px;
}

.loader-wheel
{
    animation: spin 1s infinite linear;
    border: 2px solid transparent;
    border-left: 4px solid rgb(4, 69, 200);
    border-radius: 50%;
    height: 50px;
    margin-bottom: 10px;
    width: 50px;
    position: relative;
    top:45%;
}

@keyframes spin
{
    0% {
    transform: rotate(0deg);
    }
    100% {
    transform: rotate(360deg);
    }
}

.fs-7
{
    font-size: 0.8rem;
}

.fs-8
{
    font-size: 0.65rem;
}

.sispac-span
{
    border-radius: 10px;
    font-size: 13px;
    padding-top: 2px;
    padding-bottom: 2px;
    padding-left: 7px;
    padding-right: 7px;
}

.loading-validate
{
    height: 22.8px;
}

.select2
{
    width: 100% !important;
}

.cursor-pointer
{
    cursor: pointer;
}

.col-4-data
{
    width: 520px;
}

.col-3-data
{
    width: 235px;
}

.col-2-data
{
    width: 140px;
}

.col-15-data
{
    width: 70px;
}

.col-1-data
{
    width: 50px;
}

.w-10
{
    width: 10%;
}

.w-15
{
    width: 15%;
}

.w-20
{
    width: 20%;
}

.pointer
{
    cursor: pointer;
}

.icon-filter-up
{
    color: #c7c7c7;
    position: absolute;
    bottom: 22px;
    right: 5px;
}

.icon-filter-down
{
    color: #c7c7c7;
    position: absolute;
    bottom: 16px;
    right: 5px;
}

.icon-active
{
    color: #909090;
}

.modal-open {
    overflow:hidden;
    overflow-y:scroll;
}

.select2-container.select2-container--default.select2-container--open
{
    position: inherit !important;
}

.multiselect-option
{
    font-size: 14px !important;

}

.multiselect-tag
{
    background: #0D6EFD !important;
    font-size: 14px !important;
}

.multiselect,.multiselect-wrapper
{
    font-size: 14px !important;
    min-height: 36.4px !important;
}

.multiselect:focus
{
    box-shadow: none !important;
    font-size: 14px !important;
}

.multiselect.is-active
{
    box-shadow: none !important;
}

.btn-menu
{
    color: #0D6EFD;
    font-size: 17px;
}

input[type="text"]:disabled,
input[type="number"]:disabled,
input[type="date"]:disabled,
input[type="email"]:disabled,
select:disabled,
textarea:disabled
{
    background-color:#f3f4f6 !important;
}

.multiselect-option.is-selected
{
    background: #0B5ED7 !important;
}
.col-15
{
    width: 12.48%;
}
.col-13
{
    width: 11%;
}
.col-05
{
    width: 4.16%;
}
.col-02
{
    width: 2.8%;
}

.vue-notification-template
{
    height: auto;
}

.btn-destroy
{
    top: -10px;
    border: none;
    color: black;
    background: transparent;
    right: 0;
    padding: 5px;
    border-radius: 15px;
    height: 25px;
}

.table-scroll{
    height:300px;
    overflow-y:scroll;
}

.table-scroll-sm{
    height:250px;
    overflow-y:scroll;
}

thead tr:nth-child(1) th
{
    background: white;
    position: sticky;
    top: 0;
    z-index: 4;
}

.eyelash-general
{
    border-color: var(--bs-nav-tabs-link-active-border-color) !important;
}

.content-body
{
    min-height: 350px;
}

.m-vh-100
{
    min-height: 70vh;
}

.subarea
{
    min-height: 300px;
}

.table-form
{
 font-size: 13px;
}
.bg-grey
{
    background: #f1f1f1 !important;
}
.table-x-scroll
{
    overflow-x: scroll;
}
.mw-180
{
    min-width: 180px;
}
.mw-250
{
    min-width: 250px;
}
.mw-55
{
    min-width: 55px;
}

.dashboard-card
{
    border-left: #0B5ED7 solid 4px;
}

  .popover__wrapper {
    display: inline-block;
    position: relative;
  }
  .popover__content {
    padding: 5px;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    left: -300px;
    top: 20px;
    transform: translate(0, 10px);
    background-color: #ffffff;
    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
    width: 300px;
    height: auto;
  }
  .popover__content:before {
    position: absolute;
    z-index: -1;
    content: "";
    left:290px;
    top: 5px;
    border-style: solid;
    border-width: 0 10px 10px 10px;
    border-color: transparent transparent white transparent;
    transition-duration: 0.3s;
    transition-property: transform;
    transform: rotate(90deg);
  }
  .popover__wrapper:hover .popover__content {
    z-index: 1000;
    opacity: 1;
    visibility: visible;
    transform: translate(0, -20px);
    transition: all 0.5s cubic-bezier(0.75, -0.02, 0.2, 0.97);
  }
  .popover__message {
    text-align: center;
  }

.modal-xl {
    max-width: 90%;
}

.draggable-row {
    cursor: move;
    transition: background-color 0.2s ease;
}

.draggable-row:hover {
    background-color: #f8f9fa;
}

.drop-zone-highlight {
    background-color: #e9ecef !important;
}

.table th {
    background-color: #f8f9fa;
    font-weight: bold;
}

.th-gantt-1 {
    width: 50px !important;
}

.th-gantt-2 {
    width: 150px !important;
}

.th-gantt-3 {
    width: 200px !important;
}

.th-gantt-4 {
    width: 180px !important;
}

.bg-suspended
{
    background: #FFB7B7;
    color: red;
}
.material-sm
{
    font-size: 1rem !important;
}
.h-80
{
    height: 70% !important;
}

.circle {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    display: inline-block;
}

.bg-header
{
    background-color: #ebebeb !important;
}

.bg-subtable
{
    background-color: #eef1f3 !important;
}

.question
{
    text-align: center;
    background-color: #F6F5F6;
    height: 100px;
    margin-bottom: 10px;
    border: 1px solid #bbbbbb;
}

.question i
{
    color: #bbbbbb;
}

.text-orange
{
    color: #ff6200 !important;
}

.text-lime
{
    color: #abe841d9 !important;
}

.text-green
{
    color: #00ff00ce !important;
}

.sticky-action 
{
    position: sticky;
    right: 0;
    background: #f1f1f1 !important;
    border-left: 1px solid #dee2e6;
    border-right: 1px solid #dee2e6;
    z-index: 4;
}
  
thead .sticky-action 
{
    z-index: 10;
}
  
.sticky-action .dropdown 
{
    position: relative;
    z-index: 20;
}
  
.sticky-action .dropdown-menu 
{
    position: absolute !important;
    z-index: 9999 !important;
}
  
.dropdown-modifi.show
{
    transform: translate3d(-47.8px, -0.4px, 0px) !important;
}

.pac-table-scroll 
{
    max-height: 350px;
    min-height: 350px;
    overflow-y: auto;
    overflow-x: hidden;
}

thead .sticky-thead th 
{
    position: sticky;
    top: -1px;
    background: #f8f9fa;
    z-index: 2;
}

.text-secondary2
{
    color: #e0e0e0 !important;
}

/* Nuevos */

.contenedor__nosotros {
  width: 90%;
  max-width: 1100px;
  margin: 2rem auto;
}

.nosotros__titulo-seccion {
  color: #00953B;
  font-weight: 600;
  border-left: 5px solid #00953B;
  padding-left: 10px;
  margin-bottom: 1rem;
}

.nosotros__card-componente {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  padding: 20px 15px;
  transition: all 0.3s ease;
  cursor: pointer;
  height: 100%;
}

.nosotros__card-componente:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 15px rgba(0,0,0,0.12);
}

.nosotros__icono {
  font-size: 2rem;
  color: #00953B;
  margin-bottom: 10px;
}

.nosotros__card-componente h5 {
  font-size: 1rem;
  color: #00953B;
  font-weight: 600;
}

.nosotros__card-componente p {
  font-size: 0.9rem;
  color: #555;
}
/* MODAL MODERNO */
.nosotros__modal-content.nosotros__moderno {
  border: none;
  border-radius: 16px;
  box-shadow: 0 6px 25px rgba(0,0,0,0.15);
  background-color: #fff;
  padding: 20px;
}

.nosotros__moderno-header {
  background: #fff;
  border-bottom: 1px solid #e6e6e6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 20px;
}

.nosotros__btn-cerrar {
  background: transparent;
  border: none;
  font-size: 1.3rem;
  color: #666;
  transition: all 0.3s;
}

.nosotros__btn-cerrar:hover {
  color: #00953B;
  transform: rotate(90deg);
}

.nosotros__modal-body h6 {
  color: #00953B;
  font-weight: 600;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}

.nosotros__modal-body ul {
  padding-left: 20px;
}

.nosotros__modal-body li {
  margin-bottom: 0.4rem;
  font-size: 0.95rem;
}

@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 96%;
    }
}

@media (min-width: 1400px) {
    .container-body, .container-body-lg, .container-body-md, .container-body-sm, .container-body-xl, .container-body-xxl {
        max-width: 100%;
    }
}

.h-slider {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

/* Use the actual image ratio (1920x500 -> 96/25) so the container matches the images' proportions */
.carousel-inner {
    aspect-ratio: 96 / 25; /* 1920 / 500 */
    overflow: hidden;
    max-height: none;
}

/* Ensure carousel items fill the carousel-inner height so images can cover fully */
.carousel-item {
    height: 100%;
}

.carousel-inner .carousel-item img.h-slider {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 767.98px) {
    /* Mobile uses 1281x721 images with ~16:9 ratio */
    .carousel-inner {
        aspect-ratio: 16 / 9; /* Mobile image ratio */
        max-height: 50vh;
        min-height: 200px;
    }
}

/* Tablet/Laptop: adjust object-position to show more of the top */
@media (min-width: 768px) and (max-width: 1440px) {
    .carousel-inner {
        height: 380px;
        aspect-ratio: auto;
        max-height: 380px;
    }
    .carousel-item {
        height: 100%;
    }
    .carousel-inner .carousel-item img.h-slider,
    .carousel-inner .carousel-item picture img.h-slider {
        height: 100%;
        width: 100%;
        object-fit: cover;
        object-position: center 25%; /* Show more of the top portion */
    }
}

/* Desktop: standard positioning for large screens */
@media (min-width: 1441px) {
    .carousel-inner {
        height: 420px;
        aspect-ratio: auto;
        max-height: 420px;
    }
    .carousel-item {
        height: 100%;
    }
    .carousel-inner .carousel-item img.h-slider,
    .carousel-inner .carousel-item picture img.h-slider {
        height: 100%;
        width: 100%;
        object-fit: cover;
        object-position: center 35%; /* Slightly adjusted for large screens */
    }
}

/* Mobile tweaks to keep caption visible */
@media (max-width: 991.98px) {
    .caption-box {
        padding: 0.6rem 0.8rem;
        max-width: 85%;
    }
    /* Only change alignment for center-positioned captions (Top-Center / Bottom-Center) */
    .carousel-caption-container[data-position="TC"],
    .carousel-caption-container[data-position="BC"] {
        align-items: center !important;
        justify-content: center !important;
    }
    .carousel-caption-container .caption-box h5 {
        font-size: 1rem;
    }
    .carousel-caption-container .caption-box p {
        font-size: 0.85rem;
        margin-bottom: 0.4rem;
    }
    .caption-button {
        min-width: 90px !important;
        padding: 6px 10px !important;
    }
}

/* Mobile: optimize for 16:9 mobile images */
@media (max-width: 767.98px) {
    .carousel-inner {
        /* Mobile images are 1281x721 (~16:9), let aspect-ratio handle height */
        height: auto !important;
        min-height: 180px;
        max-height: 35vh;
    }
    .carousel-item {
        height: 100% !important;
        min-height: 180px;
    }
    .carousel-inner .carousel-item img.h-slider,
    .carousel-inner .carousel-item picture img.h-slider {
        height: 100% !important;
        min-height: 180px;
        object-position: center center; /* show the central area of the image */
        object-fit: cover;
    }
    /* Vertically center ALL captions on mobile for visibility, regardless of position_code.
       This ensures button/text is always visible without being cut off. */
    .carousel-caption {
        height: auto !important;
        top: 50% !important;
        bottom: auto !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 90% !important;
    }
    .carousel-caption .caption-box {
        background: rgba(0,0,0,0.65) !important;
    }
}

/* Tamaño por defecto (desktop) */
.logo-midagri {
    height: 50px;
    width: auto;
}

.logo-agromercado {
    height: 40px;
    width: auto;
}

/* Tablets */
@media (max-width: 992px) {
    .logo-midagri {
        height: 42px;
    }

    .logo-agromercado {
        height: 34px;
    }
}

/* Celulares */
@media (max-width: 576px) {
    .logo-midagri {
        height: 45px;
    }

    .logo-agromercado {
        height: 34px;
    }
}

/* Celulares */
@media (max-width: 480px) {
    .logo-midagri {
        height: 40px;
    }

    .logo-agromercado {
        height: 32px;
    }
}

@media (max-width: 576px) {
    .navbar-brand span {
        font-size: 0.9rem;
    }
}

.ribbon-new {
    position: absolute;
    top: 0;
    left: 0;
    width: 75px;
    height: 75px;
    overflow: hidden;
    z-index: 5;
}

.ribbon-new span {
    position: absolute;
    display: block;
    width: 100px;
    padding: 1px 0;
    background-color: #db0b0b;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    left: -25px;
    top: 15px;
    transform: rotate(-45deg);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}