/* ==========================================================================
   GLOBAL IMAGE & ASPECT RATIO CONSISTENCY (16:9 GLOBAL RULE)
   ========================================================================== */

/* 1. Elementor Pro Loop Grid Cards & Image Containers (16:9 Aspect Ratio) */
.elementor-loop-container .e-loop-item,
.e-loop-item,
.elementor-11917,
.e-loop-item-11917 {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.elementor-loop-container .e-loop-item .elementor-element-9300000,
.elementor-loop-container .e-loop-item .card-img-container,
.e-loop-item .elementor-widget-theme-post-featured-image,
.e-loop-item .elementor-widget-image,
.e-loop-item .card-img-container {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
    overflow: hidden !important;
    position: relative !important;
    flex-shrink: 0 !important;
    background: #F4EFE6 !important;
}

.elementor-loop-container .e-loop-item img,
.e-loop-item .elementor-widget-theme-post-featured-image img,
.e-loop-item .elementor-widget-image img,
.e-loop-item .card-img-container img,
.e-loop-item img {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 220px !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

/* Ensure equal card body height and bottom button alignment in Loop Grids */
.elementor-loop-container .e-loop-item .elementor-element-9723000,
.e-loop-item .elementor-element-9723000 {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
    justify-content: space-between !important;
}

.elementor-loop-container .e-loop-item .elementor-element-9623000,
.e-loop-item .elementor-element-9623000 {
    margin-top: auto !important;
}

/* 2. Single Article Header Featured Images (16:9 Aspect Ratio & Viewport Constrained) */
.single-post .sp_hero_featured_image,
.single-post .elementor-element-sp_hero_featured_image,
.single-post .sp-hero-featured-image,
.elementor-template-single-post .elementor-widget-theme-post-featured-image,
.single-post #sp_hero_featured_image {
    width: 100% !important;
    max-width: 100% !important;
}

.single-post .sp_hero_featured_image .elementor-widget-container,
.single-post .elementor-element-sp_hero_featured_image .elementor-widget-container,
.single-post .sp-hero-featured-image .elementor-widget-container,
.elementor-template-single-post .elementor-widget-theme-post-featured-image .elementor-widget-container {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    max-height: 440px !important;
    overflow: hidden !important;
    border-radius: 20px !important;
}

.single-post .sp_hero_featured_image img,
.single-post .elementor-element-sp_hero_featured_image img,
.single-post .sp-hero-featured-image img,
.elementor-template-single-post .elementor-widget-theme-post-featured-image img,
.single-post .elementor-widget-theme-post-featured-image img {
    width: 100% !important;
    height: 100% !important;
    max-height: 440px !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 20px !important;
    display: block !important;
}

/* 3. Homepage Service Cards & Card Grids Equal Alignment */
.elementor-element-7904000 .elementor-element-5f04000 > .e-con,
.elementor-element-7904000 .elementor-element-7804000 > .e-con {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    height: 100% !important;
}

.elementor-element-7904000 .elementor-widget-button {
    margin-top: auto !important;
}


/* ==========================================================================
   FORM INPUT FIELD HIGH CONTRAST & MOBILE INTUITIVE BORDERS
   ========================================================================== */
.elementor-element-resv001 .elementor-field-group .elementor-field,
#reserva-cita .elementor-field-group .elementor-field,
.elementor-form .elementor-field-textual {
    background-color: #FFFFFF !important;
    border: 1.5px solid #C4B5A5 !important;
    color: #14243D !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 3px rgba(20, 36, 61, 0.05) !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    -webkit-appearance: none !important;
}

.elementor-element-resv001 .elementor-field-group .elementor-field::placeholder,
#reserva-cita .elementor-field-group .elementor-field::placeholder,
.elementor-form .elementor-field-textual::placeholder {
    color: #8C7E72 !important;
    opacity: 1 !important;
}

.elementor-element-resv001 .elementor-field-group .elementor-field:focus,
#reserva-cita .elementor-field-group .elementor-field:focus,
.elementor-form .elementor-field-textual:focus {
    background-color: #FFFFFF !important;
    border-color: #E59518 !important;
    box-shadow: 0 0 0 3px rgba(229, 149, 24, 0.22) !important;
    outline: none !important;
}

.elementor-element-resv001 label.elementor-field-label,
#reserva-cita label.elementor-field-label {
    color: #14243D !important;
    font-weight: 700 !important;
}

@media (max-width: 767px) {
    .elementor-element-resv001 .elementor-field-group .elementor-field,
    #reserva-cita .elementor-field-group .elementor-field,
    .elementor-form .elementor-field-textual {
        font-size: 15px !important;
        padding: 12px 14px !important;
        border: 1.5px solid #BAA997 !important;
    }
}