/* ==========================================================================
   CW Imagen Editorial — Punto Fisio
   Scoped, responsive and compatible with Cohete CW design tokens. Optional lightbox reuses CW Galería Premium.
   ========================================================================== */

.cw-pf-image {
    --cw-img-radius: 2px;
    --cw-img-frame-inset: 14px;
    --cw-img-frame-width: 1px;
    --cw-img-frame: rgba(255,255,255,.72);
    --cw-img-accent: var(--cw-pf-primary, #00CFAB);
    --cw-img-surface: var(--cw-pf-surface, #F3DACE);
    --cw-img-offset: 14px;
    --cw-img-decor-opacity: .7;
    --cw-img-duration: 480ms;
    --cw-img-ratio-desktop: 4 / 5;
    --cw-img-ratio-tablet: var(--cw-img-ratio-desktop);
    --cw-img-ratio-mobile: var(--cw-img-ratio-tablet);
    --cw-img-secondary-ratio: 1 / 1;
    --cw-img-secondary-x: 16px;
    --cw-img-secondary-y: 16px;
    --cw-img-secondary-radius: 14px;
    --cw-img-secondary-frame: rgba(255,255,255,.82);
    --cw-img-tertiary-ratio: 4 / 5;
    --cw-img-tertiary-x: 14px;
    --cw-img-tertiary-y: 14px;
    --cw-img-tertiary-radius: 12px;
    --cw-img-tertiary-frame: rgba(255,255,255,.78);
    display: block;
    position: relative;
    max-width: 100%;
    margin: 0;
    isolation: isolate;
}

.cw-pf-image,
.cw-pf-image *,
.cw-pf-image *::before,
.cw-pf-image *::after {
    box-sizing: border-box;
}

.cw-pf-image__link,
.cw-pf-image__link:link,
.cw-pf-image__link:visited,
.cw-pf-image__link:hover,
.cw-pf-image__link:focus-visible,
.cw-pf-image__link:active {
    display: block;
    position: relative;
    color: inherit !important;
    text-decoration: none !important;
    outline: 0;
}

.cw-pf-image__stage {
    display: block;
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 0;
    padding: 0;
    line-height: 0;
    transform: translateZ(0);
}

.cw-pf-image__media {
    display: block;
    position: relative;
    z-index: 2;
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: var(--cw-img-ratio-desktop, 4 / 5);
    overflow: hidden;
    line-height: 0;
    border-radius: var(--cw-img-radius);
    background: color-mix(in srgb, var(--cw-pf-surface, #F4F7F7) 92%, transparent);
    transition: transform var(--cw-img-duration) cubic-bezier(.16,1,.3,1), box-shadow var(--cw-img-duration) ease;
}

.cw-pf-image__img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    object-fit: cover;
    object-position: center center;
    vertical-align: middle !important;
    backface-visibility: hidden;
    transition: transform calc(var(--cw-img-duration) * 1.08) cubic-bezier(.16,1,.3,1) !important;
}

.cw-pf-image--auto-desktop .cw-pf-image__media {
    aspect-ratio: auto;
}
.cw-pf-image--auto-desktop .cw-pf-image__img {
    position: relative !important;
    inset: auto !important;
    height: auto !important;
}

/* Optional two-image composition. The secondary photograph is deliberately
   quieter than the primary one and can be positioned responsively from Elementor. */
.cw-pf-image__secondary {
    position: absolute;
    z-index: 8;
    top: var(--cw-img-secondary-y);
    right: var(--cw-img-secondary-x);
    width: 34%;
    aspect-ratio: var(--cw-img-secondary-ratio, 1 / 1);
    overflow: hidden;
    pointer-events: none;
    line-height: 0;
    border-radius: var(--cw-img-secondary-radius);
    background: color-mix(in srgb, var(--cw-pf-surface, #F4F7F7) 92%, transparent);
    box-shadow:
        0 18px 42px color-mix(in srgb, var(--cw-pf-text, #333333) 18%, transparent),
        0 2px 10px color-mix(in srgb, var(--cw-pf-text, #333333) 8%, transparent);
    transform-origin: center;
    backface-visibility: hidden;
    transition: box-shadow var(--cw-img-duration) ease;
}

.cw-pf-image__secondary-img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    object-fit: cover;
    object-position: center center;
    vertical-align: middle !important;
}

.cw-pf-image__secondary-edge {
    display: none;
    position: absolute;
    z-index: 2;
    inset: 7px;
    border: 1px solid var(--cw-img-secondary-frame);
    border-radius: max(0px, calc(var(--cw-img-secondary-radius) - 5px));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cw-pf-text, #333333) 4%, transparent);
    pointer-events: none;
}

.cw-pf-image--secondary-frame .cw-pf-image__secondary-edge {
    display: block;
}

.cw-pf-image__secondary::after {
    content: '';
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 20%, transparent);
}

.cw-pf-image--hover-lift .cw-pf-image__link:hover .cw-pf-image__secondary,
.cw-pf-image--hover-lift .cw-pf-image__link:focus-visible .cw-pf-image__secondary {
    box-shadow:
        0 20px 46px color-mix(in srgb, var(--cw-pf-text, #333333) 20%, transparent),
        0 3px 12px color-mix(in srgb, var(--cw-pf-text, #333333) 9%, transparent);
}

.cw-pf-image__tertiary {
    position: absolute;
    z-index: 7;
    top: auto;
    right: auto;
    bottom: var(--cw-img-tertiary-y);
    left: var(--cw-img-tertiary-x);
    width: 27%;
    aspect-ratio: var(--cw-img-tertiary-ratio, 4 / 5);
    overflow: hidden;
    pointer-events: none;
    line-height: 0;
    border-radius: var(--cw-img-tertiary-radius);
    background: color-mix(in srgb, var(--cw-pf-surface, #F4F7F7) 92%, transparent);
    box-shadow:
        0 15px 34px color-mix(in srgb, var(--cw-pf-text, #333333) 15%, transparent),
        0 2px 8px color-mix(in srgb, var(--cw-pf-text, #333333) 7%, transparent);
    transform-origin: center;
    backface-visibility: hidden;
    transition: box-shadow var(--cw-img-duration) ease;
}

.cw-pf-image__tertiary-img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    object-fit: cover;
    object-position: center center;
    vertical-align: middle !important;
}

.cw-pf-image__tertiary-edge {
    display: none;
    position: absolute;
    z-index: 2;
    inset: 6px;
    border: 1px solid var(--cw-img-tertiary-frame);
    border-radius: max(0px, calc(var(--cw-img-tertiary-radius) - 5px));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cw-pf-text, #333333) 4%, transparent);
    pointer-events: none;
}

.cw-pf-image--tertiary-frame .cw-pf-image__tertiary-edge {
    display: block;
}

.cw-pf-image__tertiary::after {
    content: '';
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 18%, transparent);
}

.cw-pf-image--hover-lift .cw-pf-image__link:hover .cw-pf-image__tertiary,
.cw-pf-image--hover-lift .cw-pf-image__link:focus-within .cw-pf-image__tertiary {
    box-shadow:
        0 17px 38px color-mix(in srgb, var(--cw-pf-text, #333333) 17%, transparent),
        0 3px 10px color-mix(in srgb, var(--cw-pf-text, #333333) 8%, transparent);
}

/* Optional unified lightbox. It deliberately adds no visual badge: the image
   composition stays clean and the pointer/focus state is enough to indicate interaction. */
.cw-pf-image--lightbox .cw-pf-image__media,
.cw-pf-image--lightbox .cw-pf-image__secondary,
.cw-pf-image--lightbox .cw-pf-image__tertiary {
    pointer-events: auto;
    cursor: zoom-in;
    text-decoration: none !important;
    outline: 0;
    -webkit-tap-highlight-color: transparent;
}

.cw-pf-image--lightbox .cw-pf-image__lightbox-item:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--cw-img-accent) 78%, #fff 22%) !important;
    outline-offset: 3px;
}

.cw-pf-image--lightbox .cw-pf-image__lightbox-item {
    color: inherit !important;
}

.cw-pf-image__inner {
    display: none;
    position: absolute;
    z-index: 4;
    inset: var(--cw-img-frame-inset);
    border: var(--cw-img-frame-width) solid var(--cw-img-frame);
    border-radius: var(--cw-img-inner-radius, max(0px, calc(var(--cw-img-radius) - 2px)));
    pointer-events: none;
    opacity: .92;
}

.cw-pf-image--has-frame .cw-pf-image__inner {
    display: block;
}

.cw-pf-image__plate,
.cw-pf-image__rail,
.cw-pf-image__corner {
    pointer-events: none;
}

/* Architectural floating: layered plane, restrained depth and precise edge accents. */
.cw-pf-image--architectural .cw-pf-image__media {
    box-shadow:
        0 18px 50px color-mix(in srgb, var(--cw-pf-text, #333333) 10%, transparent),
        0 2px 8px color-mix(in srgb, var(--cw-pf-text, #333333) 5%, transparent);
}

.cw-pf-image--architectural .cw-pf-image__media::after {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, #fff 30%, transparent),
        inset 0 -54px 70px color-mix(in srgb, var(--cw-pf-text, #333333) 5%, transparent);
}

.cw-pf-image--architectural .cw-pf-image__plate {
    display: block;
    position: absolute;
    z-index: 0;
    top: calc(var(--cw-img-offset) * .72);
    right: calc(var(--cw-img-offset) * -1);
    bottom: calc(var(--cw-img-offset) * -1);
    left: calc(var(--cw-img-offset) * .72);
    border: 1px solid color-mix(in srgb, var(--cw-img-accent) 18%, transparent);
    border-radius: var(--cw-img-plate-radius, var(--cw-img-radius));
    background: var(--cw-img-plate-color,
        linear-gradient(145deg,
            color-mix(in srgb, var(--cw-img-surface) 90%, #fff 10%) 0%,
            color-mix(in srgb, var(--cw-img-surface) 82%, var(--cw-img-accent) 18%) 100%));
    box-shadow: 0 16px 36px color-mix(in srgb, var(--cw-pf-text, #333333) 5%, transparent);
    opacity: calc(var(--cw-img-decor-opacity) * .72);
}

.cw-pf-image--architectural .cw-pf-image__corner {
    display: block;
    position: absolute;
    z-index: 6;
    width: var(--cw-img-corner-size, clamp(24px, 3.4vw, 40px));
    height: var(--cw-img-corner-size, clamp(24px, 3.4vw, 40px));
    opacity: calc(var(--cw-img-decor-opacity) * .9);
}

.cw-pf-image--architectural .cw-pf-image__corner--a {
    top: calc(var(--cw-img-corner-distance, var(--cw-img-offset) * .34) * -1);
    left: calc(var(--cw-img-corner-distance, var(--cw-img-offset) * .34) * -1);
    border-top: 1px solid var(--cw-img-corner-color, color-mix(in srgb, var(--cw-img-accent) 92%, transparent));
    border-left: 1px solid var(--cw-img-corner-color, color-mix(in srgb, var(--cw-img-accent) 92%, transparent));
}

.cw-pf-image--architectural .cw-pf-image__corner--b {
    right: calc(var(--cw-img-corner-distance, var(--cw-img-offset) * .34) * -1);
    bottom: calc(var(--cw-img-corner-distance, var(--cw-img-offset) * .34) * -1);
    border-right: 1px solid var(--cw-img-corner-color, color-mix(in srgb, var(--cw-img-accent) 92%, transparent));
    border-bottom: 1px solid var(--cw-img-corner-color, color-mix(in srgb, var(--cw-img-accent) 92%, transparent));
}

/* Editorial: a quiet vertical rail and a restrained backing plane. */
.cw-pf-image--editorial .cw-pf-image__plate {
    display: block;
    position: absolute;
    z-index: 0;
    inset: var(--cw-img-offset) calc(var(--cw-img-offset) * -1) calc(var(--cw-img-offset) * -1) var(--cw-img-offset);
    border-radius: var(--cw-img-radius);
    background: var(--cw-img-plate-color, color-mix(in srgb, var(--cw-img-surface) 48%, transparent));
    opacity: var(--cw-img-decor-opacity);
}

.cw-pf-image--editorial .cw-pf-image__rail {
    display: block;
    position: absolute;
    z-index: 6;
    left: calc(var(--cw-img-offset) * -.7);
    top: 12%;
    width: 1px;
    height: 44%;
    background: var(--cw-img-corner-color, var(--cw-img-accent));
    opacity: var(--cw-img-decor-opacity);
}

.cw-pf-image--editorial .cw-pf-image__rail::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -5px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--cw-img-accent);
    transform: translateX(-50%);
}

/* Clinical aura: organic depth without turning the photo into a card. */
.cw-pf-image--soft .cw-pf-image__media {
    border-radius: var(--cw-img-radius);
    box-shadow:
        0 22px 56px color-mix(in srgb, var(--cw-pf-text, #333333) 8%, transparent),
        0 1px 2px color-mix(in srgb, var(--cw-pf-text, #333333) 6%, transparent);
}

.cw-pf-image--soft .cw-pf-image__media::after {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(180deg, color-mix(in srgb, #fff 5%, transparent), transparent 28%, transparent 72%, color-mix(in srgb, var(--cw-img-accent) 5%, transparent));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 24%, transparent);
}

.cw-pf-image--soft .cw-pf-image__inner {
    border-radius: max(0px, calc(var(--cw-img-radius) - 2px));
    opacity: .72;
}

.cw-pf-image--soft .cw-pf-image__plate {
    display: block;
    position: absolute;
    z-index: 0;
    inset: calc(var(--cw-img-offset) * .5) calc(var(--cw-img-offset) * -.78) calc(var(--cw-img-offset) * -.78) calc(var(--cw-img-offset) * .5);
    border-radius: var(--cw-img-radius);
    background: var(--cw-img-plate-color,
        radial-gradient(circle at 76% 16%, color-mix(in srgb, var(--cw-img-accent) 22%, transparent) 0%, transparent 44%),
        linear-gradient(145deg,
            color-mix(in srgb, var(--cw-img-surface) 90%, transparent),
            color-mix(in srgb, var(--cw-img-surface) 62%, transparent)));
    border: 1px solid color-mix(in srgb, var(--cw-img-accent) 12%, transparent);
    box-shadow: 0 24px 58px color-mix(in srgb, var(--cw-img-accent) 8%, transparent);
    opacity: calc(var(--cw-img-decor-opacity) * .78);
}

.cw-pf-image--soft .cw-pf-image__rail,
.cw-pf-image--soft .cw-pf-image__corner {
    display: none !important;
}

/* Precision frame: almost museographic, using geometry instead of a backing card. */
.cw-pf-image--minimal .cw-pf-image__plate,
.cw-pf-image--minimal .cw-pf-image__rail {
    display: none !important;
}

.cw-pf-image--minimal .cw-pf-image__media {
    box-shadow:
        0 0 0 1px color-mix(in srgb, var(--cw-img-accent) 13%, transparent),
        0 14px 36px color-mix(in srgb, var(--cw-pf-text, #333333) 7%, transparent);
}

.cw-pf-image--minimal .cw-pf-image__media::after {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 24%, transparent);
}

.cw-pf-image--minimal .cw-pf-image__inner {
    opacity: .76;
}

.cw-pf-image--minimal .cw-pf-image__corner {
    display: block;
    position: absolute;
    z-index: 6;
    width: 22px;
    height: 22px;
    opacity: .72;
}

.cw-pf-image--minimal .cw-pf-image__corner--a {
    top: 8px;
    left: 8px;
    border-top: 1px solid var(--cw-img-accent);
    border-left: 1px solid var(--cw-img-accent);
    border-top-left-radius: max(0px, calc(var(--cw-img-radius) - 6px));
}

.cw-pf-image--minimal .cw-pf-image__corner--b {
    right: 8px;
    bottom: 8px;
    border-right: 1px solid var(--cw-img-accent);
    border-bottom: 1px solid var(--cw-img-accent);
    border-bottom-right-radius: max(0px, calc(var(--cw-img-radius) - 6px));
}

/* Clean premium: no external ornament, only a refined optical edge and depth. */
.cw-pf-image--plain .cw-pf-image__plate,
.cw-pf-image--plain .cw-pf-image__rail,
.cw-pf-image--plain .cw-pf-image__corner {
    display: none !important;
}

.cw-pf-image--plain .cw-pf-image__media {
    box-shadow:
        0 1px 2px color-mix(in srgb, var(--cw-pf-text, #333333) 5%, transparent),
        0 18px 46px color-mix(in srgb, var(--cw-pf-text, #333333) 6%, transparent);
}

.cw-pf-image--plain .cw-pf-image__media::after {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--cw-img-surface) 44%, transparent),
        inset 0 1px 0 color-mix(in srgb, #fff 35%, transparent);
}

.cw-pf-image--plain .cw-pf-image__inner {
    opacity: .55;
}

.cw-pf-image--hover-zoom .cw-pf-image__link:hover .cw-pf-image__img,
.cw-pf-image--hover-zoom .cw-pf-image__link:focus-visible .cw-pf-image__img {
    transform: scale(1.025) !important;
}

.cw-pf-image--hover-lift .cw-pf-image__link:hover .cw-pf-image__media,
.cw-pf-image--hover-lift .cw-pf-image__link:focus-visible .cw-pf-image__media {
    transform: translate3d(0,-4px,0);
}

.cw-pf-image__link:focus-visible .cw-pf-image__media {
    outline: 2px solid var(--cw-img-accent);
    outline-offset: 4px;
}

.cw-pf-image__caption {
    display: block;
    margin: 12px 0 0;
    padding: 0;
    color: var(--cw-pf-muted, color-mix(in srgb, var(--cw-pf-text, #333333) 66%, transparent));
    font-size: 13px;
    line-height: 1.5;
    letter-spacing: .01em;
}

body[data-theme='dark'] .cw-pf-image {
    --cw-img-surface: var(--cw-pf-surface, #162F31);
}

body[data-theme='dark'] .cw-pf-image__secondary {
    box-shadow:
        0 18px 42px rgba(0,0,0,.28),
        0 2px 10px rgba(0,0,0,.16);
}

@media (max-width: 1024px) {
    .cw-pf-image__media {
        aspect-ratio: var(--cw-img-ratio-tablet, var(--cw-img-ratio-desktop, 4 / 5));
    }
    .cw-pf-image--auto-tablet .cw-pf-image__media {
        aspect-ratio: auto;
    }
    .cw-pf-image--auto-tablet .cw-pf-image__img {
        position: relative !important;
        inset: auto !important;
        height: auto !important;
    }
    .cw-pf-image--auto-desktop:not(.cw-pf-image--auto-tablet) .cw-pf-image__media {
        aspect-ratio: var(--cw-img-ratio-tablet, 4 / 5);
    }
    .cw-pf-image--auto-desktop:not(.cw-pf-image--auto-tablet) .cw-pf-image__img {
        position: absolute !important;
        inset: 0 !important;
        height: 100% !important;
    }
}

@media (max-width: 767px) {
    .cw-pf-image__media {
        aspect-ratio: var(--cw-img-ratio-mobile, var(--cw-img-ratio-tablet, var(--cw-img-ratio-desktop, 4 / 5)));
    }
    .cw-pf-image--auto-mobile .cw-pf-image__media {
        aspect-ratio: auto;
    }
    .cw-pf-image--auto-mobile .cw-pf-image__img {
        position: relative !important;
        inset: auto !important;
        height: auto !important;
    }
    .cw-pf-image--auto-tablet:not(.cw-pf-image--auto-mobile) .cw-pf-image__media,
    .cw-pf-image--auto-desktop:not(.cw-pf-image--auto-mobile) .cw-pf-image__media {
        aspect-ratio: var(--cw-img-ratio-mobile, 4 / 5);
    }
    .cw-pf-image--auto-tablet:not(.cw-pf-image--auto-mobile) .cw-pf-image__img,
    .cw-pf-image--auto-desktop:not(.cw-pf-image--auto-mobile) .cw-pf-image__img {
        position: absolute !important;
        inset: 0 !important;
        height: 100% !important;
    }
    .cw-pf-image {
        --cw-img-frame-inset: 8px;
        --cw-img-offset: 7px;
        --cw-img-secondary-x: 10px;
        --cw-img-secondary-y: 10px;
        --cw-img-secondary-radius: 12px;
        --cw-img-tertiary-x: 9px;
        --cw-img-tertiary-y: 9px;
        --cw-img-tertiary-radius: 11px;
    }
    .cw-pf-image__secondary {
        top: auto;
        right: var(--cw-img-secondary-x);
        bottom: var(--cw-img-secondary-y);
        left: auto;
        width: 40%;
        transform: none;
        box-shadow:
            0 12px 28px color-mix(in srgb, var(--cw-pf-text, #333333) 15%, transparent),
            0 2px 7px color-mix(in srgb, var(--cw-pf-text, #333333) 7%, transparent);
    }
    .cw-pf-image__secondary-edge {
        inset: 5px;
    }
    .cw-pf-image--secondary-hide-mobile .cw-pf-image__secondary {
        display: none !important;
    }
    .cw-pf-image--tertiary-hide-mobile .cw-pf-image__tertiary {
        display: none !important;
    }
    .cw-pf-image--architectural .cw-pf-image__corner {
        width: 26px;
        height: 26px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cw-pf-image__media,
    .cw-pf-image__img {
        transition: none !important;
        transform: none !important;
    }
    .cw-pf-image__secondary,
    .cw-pf-image__tertiary {
        transition: none !important;
    }
}

/* Mirrored compositions let alternating sections keep a deliberate visual rhythm. */
.cw-pf-image--decor-left.cw-pf-image--architectural .cw-pf-image__plate {
    right: calc(var(--cw-img-offset) * .72);
    left: calc(var(--cw-img-offset) * -1);
}

.cw-pf-image--decor-left.cw-pf-image--architectural .cw-pf-image__corner--a {
    right: calc(var(--cw-img-corner-distance, var(--cw-img-offset) * .34) * -1);
    left: auto;
    border-right: 1px solid var(--cw-img-corner-color, color-mix(in srgb, var(--cw-img-accent) 92%, transparent));
    border-left: 0;
}

.cw-pf-image--decor-left.cw-pf-image--architectural .cw-pf-image__corner--b {
    right: auto;
    left: calc(var(--cw-img-corner-distance, var(--cw-img-offset) * .34) * -1);
    border-right: 0;
    border-left: 1px solid var(--cw-img-corner-color, color-mix(in srgb, var(--cw-img-accent) 92%, transparent));
}

.cw-pf-image--decor-left.cw-pf-image--editorial .cw-pf-image__plate {
    right: var(--cw-img-offset);
    left: calc(var(--cw-img-offset) * -1);
}

.cw-pf-image--decor-left.cw-pf-image--editorial .cw-pf-image__rail {
    right: calc(var(--cw-img-offset) * -.7);
    left: auto;
}

.cw-pf-image--decor-left.cw-pf-image--soft .cw-pf-image__plate {
    right: calc(var(--cw-img-offset) * .5);
    left: calc(var(--cw-img-offset) * -.78);
    background:
        radial-gradient(circle at 24% 16%, color-mix(in srgb, var(--cw-img-accent) 22%, transparent) 0%, transparent 44%),
        linear-gradient(215deg,
            color-mix(in srgb, var(--cw-img-surface) 90%, transparent),
            color-mix(in srgb, var(--cw-img-surface) 62%, transparent));
}

/* Controles específicos v1.0.20: independientes sin cambios retroactivos. */
.cw-pf-image .cw-pf-image__plate{border-radius:var(--cw-img-plate-radius,var(--cw-img-radius))}
.cw-pf-image .cw-pf-image__corner--a{border-top-color:var(--cw-img-corner-color,color-mix(in srgb,var(--cw-img-accent) 92%,transparent));border-left-color:var(--cw-img-corner-color,color-mix(in srgb,var(--cw-img-accent) 92%,transparent));border-top-left-radius:var(--cw-img-corner-radius,max(0px,calc(var(--cw-img-radius) + var(--cw-img-offset)*.34)))}
.cw-pf-image .cw-pf-image__corner--b{border-right-color:var(--cw-img-corner-color,color-mix(in srgb,var(--cw-img-accent) 92%,transparent));border-bottom-color:var(--cw-img-corner-color,color-mix(in srgb,var(--cw-img-accent) 92%,transparent));border-bottom-right-radius:var(--cw-img-corner-radius,max(0px,calc(var(--cw-img-radius) + var(--cw-img-offset)*.34)))}

/* 1.0.30 · Dato editorial independiente de la fotografía (sin JS).
   La capa se ancla a la composición, NO al recorte del archivo. */
.cw-pf-image__info{
 position:absolute;z-index:20;display:flex;flex-direction:column;gap:8px;
 width:max-content;max-width:min(var(--cw-img-note-width,270px),92%);
 border:1px solid color-mix(in srgb,var(--cw-img-note-text,#303333) 12%,transparent);
 border-radius:var(--cw-img-note-radius,14px);background:var(--cw-img-note-bg,#fff);
 color:var(--cw-img-note-text,#303333)!important;padding:20px 22px;
 line-height:1.5;box-shadow:0 12px 28px rgba(15,50,50,.08);
 pointer-events:none;white-space:normal;text-align:left;
 font-family:var(--e-global-typography-primary-font-family,Montserrat,Arial,sans-serif);
}
.cw-pf-image__info-rule{width:34px;height:2px;flex:none;background:linear-gradient(90deg,var(--cw-pf-secondary,#00acfb),var(--cw-pf-primary,#00cfab));margin-bottom:3px}
.cw-pf-image__info-label{display:block;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--cw-img-note-label,#00bdaa)!important;line-height:1.4}
.cw-pf-image__info-text{display:block;font-size:14px;font-weight:570;line-height:1.55;color:var(--cw-img-note-text,#303333)!important}
.cw-pf-image__info--bottom-right{bottom:var(--cw-img-note-y,-12px);right:var(--cw-img-note-x,-12px)}
.cw-pf-image__info--bottom-left{bottom:var(--cw-img-note-y,-12px);left:var(--cw-img-note-x,-12px)}
.cw-pf-image__info--top-right{top:var(--cw-img-note-y,-12px);right:var(--cw-img-note-x,-12px)}
.cw-pf-image__info--top-left{top:var(--cw-img-note-y,-12px);left:var(--cw-img-note-x,-12px)}
.cw-pf-image__info--center{top:calc(50% + var(--cw-img-note-y,0px));left:calc(50% + var(--cw-img-note-x,0px));transform:translate(-50%,-50%)}
@media(max-width:767px){
 .cw-pf-image__info{padding:13px 15px;gap:5px;max-width:min(var(--cw-img-note-width,270px),86%);box-shadow:0 7px 16px rgba(15,50,50,.07)}
 .cw-pf-image__info-label{font-size:9px}.cw-pf-image__info-text{font-size:12px;line-height:1.45}
}

/* Variante editorial para celular: el elemento picture comparte la geometría
   del <img> original sin introducir una caja adicional. */
.cw-pf-image__picture { display: contents; }
