/* Main Style - KvX Builds For Sections & JS Helpers */

/* =========================== Sidecart: */

.kv-sd-item-container:not(:last-child) { border-bottom: 1px dotted #374151; }
.kv-sd-item-container h3 a { transition: all 300ms ease-in-out; }
.kv-sd-item-container h3 a:hover { text-decoration: underline; }
.kv-sd-item-container p { color: #818386; }
.kv-sd-item-container button[data-action="decrease"], .kv-sd-item-container button[data-action="increase"] {
    transition: all 300ms ease-in-out;
    color: var(--theme-sidecart-controls-btns); 
}
.kv-sd-item-container button[data-action="decrease"]:hover, .kv-sd-item-container button[data-action="increase"]:hover { 
    color: var(--theme-sidecart-controls-btns-hover); 
}
.kv-sd-item-container button[data-action="remove"] {
    color: var(--theme-sidecart-remove-btn);
    transition: all 300ms ease-in-out;
}
.kv-sd-item-container button[data-action="remove"]:hover { color: var(--theme-sidecart-remove-btn-hover); }

/* ============================= Specific Sections Effects */

/* Hotel Hover Img Scale Effect */
.kv-hotel-img-effect, .kv-hotel-img-effect figure img, .kv-hotel-img-effect div, .kv-hotel-img-effect div p { transition: all 450ms cubic-bezier(0.4, 0, 0.2, 1); }
.kv-hotel-img-effect:hover figure img { transform: scale(1.08); }
.kv-hotel-img-effect div {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 35%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 30px;
    background: linear-gradient(to top, #000000cc 0%, #00000066 60%, transparent 100%);
}
.kv-hotel-img-effect:hover div { 
    height: 60%;
    background: linear-gradient(to top, #000000e6 0%, transparent 100%);
}
.kv-hotel-img-effect:hover div p { transform: translateY(-40px); }

/* Gym Hover Card Effect */
.kv-service-card-hover-effect { overflow: hidden; }
.kv-service-card-hover-effect li { transition: all 300ms ease-in-out; }
.kv-service-card-hover-effect li::before {
    content: '';
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-secondary);
    opacity: 0.1;
    transform-origin: top;
    transform: scaleY(0);
    transition: transform 0.4s ease;
}
.kv-service-card-hover-effect li:hover::before { transform: scaleY(1); }
.kv-service-card-hover-effect li > figure {
    opacity: 0;
    transition: all 300ms ease-in-out;
}
.kv-service-card-hover-effect li:hover > figure { opacity: 1; }
.kv-service-card-hover-effect li:hover { 
    color: white; 
    background-color: black;
}

/* KV Galeria */
.kvg-cat-tag {
    color: black;
    transition: all 300ms ease-in-out;
    padding: 0px 16px;
    border-radius: 40px;
}
.kvg-cat-tag:hover, .kvg-cat-tag.active {
    background-color: #999999;
    color: white;
}

/* ================================== Builds: */

/* Pagination Blog, Cat, Products... */
.kv-pagination-container .kv-page-bubble {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e5e5e5;
    color: #333;
    font-weight: 600;
    transition: all .2s ease;
}
.kv-pagination-container .kv-page-bubble:hover {
    background: var(--color-link-hover);
    color: #fff;
}
.kv-pagination-container .kv-page-bubble.active {
    background: #000;
    color: #fff;
    pointer-events: none;
}

/* Pagination AJAX */
[data-id="kv-ajax-pagination-item"] {
    transition: opacity .18s ease, transform .18s ease;
    will-change: opacity, transform;
}
[data-id="kv-ajax-pagination-item"][data-hidden="true"] {
    opacity: 0;
    transform: translateY(6px);
    pointer-events: none;
    position: absolute;
    visibility: hidden;
}
[data-id="kv-ajax-pagination-controls"] {
    display: flex;
    gap: .5rem;
    justify-content: center;
    align-items: center;
    margin-top: 1.25rem;
}
[data-id="kv-ajax-pagination-controls"] button {
    border: 1px solid #d1d5db;
    padding: .45rem .75rem;
    border-radius: .45rem;
    font-size: .9rem;
    transition: background .15s ease, color .15s ease, transform .12s ease, letter-spacing 300ms ease-in-out;
}
[data-id="kv-ajax-pagination-controls"] button:hover {
    background-color: var(--color-link-hover);
    letter-spacing: 0.05rem;
}
[data-id="kv-ajax-pagination-controls"] 
[data-trigger="pages"] button.is-active {
    background: var(--color-accent, #111);
    color: white;
    border-color: var(--color-accent, #111);
}
[data-id="kv-ajax-pagination-controls"][data-hidden="true"] { display: none !important; }

/* Kv Lazy Render */
[data-id="kv-lazyload-container"] > * {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
    transition: opacity 0.25s ease, transform 0.25s ease;
    will-change: opacity, transform;
}
[data-id="kv-lazyload-container"] > *.kv-loaded {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

/* Kv Lazy Load */
img[data-kv-ll-src] {
    opacity: 0;
    background-color: #f5f5f5;
    transition: opacity 0.25s ease;
}
img.kv-ll-loaded { opacity: 1; }