/* =========================================================================
   Carrusel de servicios
   ========================================================================= */
.pinero-carrusel{
    --pc-gap: 16px;
    --pc-inset: 8px;          /* aire interno del slide; el JS lo compensa en align */
    --pc-container: 1348px;   /* AJUSTA al ancho del contenedor de Flatsome */
    --pc-edge: 20px;          /* lo recalcula el JS con precisión */
    --pc-radius: 18px;
    --pc-height: 400px;
    --pc-primary: var(--primary-color, #255649);
    --pc-gold: var(--fs-color-secondary, #b19325);
    --pc-cream: #f7f5f0;
    --pc-glass: rgba(255, 255, 255, .78);
    --pc-line: rgba(37, 86, 73, .14);
    position: relative;
}

@media (max-width: 1024px){
    .pinero-carrusel{ --pc-height: 360px; }
}
@media (max-width: 640px){
    .pinero-carrusel{ --pc-height: 440px; }
}

/* Estructura blindada frente a resets del tema */
.pinero-carrusel,
.pinero-carrusel *,
.pinero-carrusel *::before,
.pinero-carrusel *::after{ box-sizing: border-box; }

.pinero-carrusel .pinero-carrusel__viewport{
    overflow: hidden !important;
    cursor: grab;
    touch-action: pan-y pinch-zoom;
}
.pinero-carrusel.is-dragging .pinero-carrusel__viewport{ cursor: grabbing; }
.pinero-carrusel.is-draggable{ user-select: none; -webkit-user-select: none; }

/* Track: el padding lateral coloca físicamente el primer tile en el
   borde del contenido; el align del JS usa ese mismo valor. */
.pinero-carrusel .pinero-carrusel__container{
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
    padding-inline-start: var(--pc-edge) !important;
    padding-inline-end: var(--pc-edge) !important;
    list-style: none !important;
    will-change: transform;
}

/* Slides: N por página respecto al ancho de contenido (100% del content-box).
   El +2*inset compensa el padding interno para que N tiles + gaps = contenido. */
.pinero-carrusel .pinero-carrusel__slide{
    flex: 0 0 calc((100% + 2 * var(--pc-inset)) / 3) !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 var(--pc-inset) !important;
    list-style: none !important;
    height: var(--pc-height);
}

@media (max-width: 1024px){
    .pinero-carrusel .pinero-carrusel__slide{
        flex-basis: calc((100% + 2 * var(--pc-inset)) / 2) !important;
    }
}
@media (max-width: 640px){
    .pinero-carrusel .pinero-carrusel__slide{
        flex-basis: 100% !important; /* tile casi a ancho de contenido + peek del siguiente */
    }
}

/* Tile */
.pinero-carrusel .pinero-tile{
    position: relative;
    display: block;
    height: 100%;
    border-radius: var(--pc-radius);
    overflow: hidden;
    isolation: isolate;
    transform: translateZ(0);
    background: var(--pc-cream);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

.pinero-carrusel .pinero-tile__img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s cubic-bezier(.2, .6, .2, 1);
    pointer-events: none;
    -webkit-user-drag: none;
}

.pinero-carrusel .pinero-tile:focus-visible .pinero-tile__img{ transform: scale(1.05); }

.pinero-carrusel .pinero-tile__title{
    position: absolute;
    left: 20px;
    bottom: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    width: max-content;
    max-width: calc(100% - 20px);
    margin: 0 !important;
    padding: 10px 16px;
    border-radius: 12px;
    font-family: inherit;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--pc-primary);
    background: var(--pc-glass);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    backdrop-filter: blur(16px) saturate(1.4);
    border: 1px solid rgba(255, 255, 255, .75);
    box-shadow: 0 20px 44px -26px rgba(28, 66, 55, .45);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
    .pinero-carrusel .pinero-tile__title{ background: rgba(255, 255, 255, .95); }
}

.pinero-carrusel .pinero-tile__arrow{
    flex: 0 0 auto;
    color: var(--pc-gold);
    transition: transform .3s ease;
}
.pinero-carrusel .pinero-tile:focus-visible .pinero-tile__arrow{ transform: translateX(4px); }

.pinero-carrusel .pinero-tile:focus-visible{
    outline: 3px solid var(--pc-primary);
    outline-offset: 2px;
}

/* Hover solo con puntero real (evita hover pegado en táctil) */
@media (hover: hover) and (pointer: fine){
    .pinero-carrusel .pinero-tile:hover .pinero-tile__img{ transform: scale(1.05); }
    .pinero-carrusel .pinero-tile:hover .pinero-tile__arrow{ transform: translateX(4px); }
    .pinero-carrusel .pinero-carrusel__dot:hover::after{ background: var(--pc-gold); }
}

/* Slide de subservicio */
.pinero-carrusel .pinero-carrusel__slide--sub{
    display: flex;
    flex-direction: column;
}

.pinero-carrusel .pinero-sub__parent{
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    width: max-content;
    max-width: 100%;
    height: 34px;
    margin: 0 0 var(--pc-gap) !important;
    padding: 0 14px;
    border-radius: 10px;
    border: 1px solid var(--pc-line);
    color: var(--pc-primary);
    font-family: inherit;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
	box-shadow: 0 20px 50px rgba(28, 43, 37, .07);
}
.pinero-carrusel .pinero-sub__parent span{
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pinero-carrusel .pinero-carrusel__slide--sub .pinero-tile{
    flex: 1 1 auto;
    min-height: 0;
}

@media (max-width: 640px){
    .pinero-carrusel .pinero-tile__title{ font-size: .82rem; padding: 8px 12px; }
}

/* Dots estilo Apple (condensados solo si hay más de 8 páginas) */
.pinero-carrusel .pinero-carrusel__dots{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 18px 0 0;
}
.pinero-carrusel .pinero-carrusel__dots[hidden]{ display: none; }

.pinero-carrusel .pinero-carrusel__dot{
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.pinero-carrusel .pinero-carrusel__dot::after{
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #d8d4c8;
    transition: width .3s ease, transform .3s ease, opacity .3s ease, background-color .3s ease;
}

.pinero-carrusel .pinero-carrusel__dot.is-mid::after{ transform: scale(.75); opacity: .8; }
.pinero-carrusel .pinero-carrusel__dot.is-far::after{ transform: scale(.5); opacity: .5; }

.pinero-carrusel .pinero-carrusel__dot[aria-current="true"]::after{
    width: 22px;
    background: var(--pc-primary);
    opacity: 1;
}

.pinero-carrusel .pinero-carrusel__dot:focus-visible{
    outline: 2px solid var(--pc-primary);
    outline-offset: 2px;
    border-radius: 8px;
}

@media (max-width: 640px){
    .pinero-carrusel .pinero-carrusel__dot{ width: 18px; height: 30px; }
    .pinero-carrusel .pinero-carrusel__dot[aria-current="true"]{ width: 22px; }
    .pinero-carrusel .pinero-carrusel__dot[aria-current="true"]::after{ width: 19px; }
    .pinero-carrusel .pinero-carrusel__dots.is-compact .pinero-carrusel__dot{ width: 14px; }
    .pinero-carrusel .pinero-carrusel__dots.is-compact .pinero-carrusel__dot[aria-current="true"]{ width: 20px; }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
    .pinero-carrusel .pinero-tile__img,
    .pinero-carrusel .pinero-tile__arrow,
    .pinero-carrusel .pinero-carrusel__dot::after{ transition: none; }
}