/* --- Estilos Luxury para Galerías y Álbumes --- */
:root {
    --studiolens-gutter: 1.25rem;
    --studiolens-m-gutter: 0.9375rem;
    --studiolens-max-width: 1240px; /* Ancho máximo base */
    --studiolens-padding: 2.5rem;
    --studiolens-m-padding: 1.25rem;
    --studiolens-font-luxury: 'Syne', sans-serif;
}

/* --- Tipografía Luxury Syne --- */
h1, h2, h3, h4, 
.studiolens-title, 
.studiolens-title a, 
.studiolens-album-title, 
.studiolens-gallery-title, 
.entry-title { 
    font-family: var(--studiolens-font-luxury) !important; 
    text-transform: none !important; 
    font-weight: 700 !important; 
}

/* Fuerza Bruta: Eliminar fondos y recuadros */
[class*="studiolens"] { 
    background: transparent !important; 
    background-color: transparent !important; 
    border: none !important; 
    box-sizing: border-box !important;
}

[class*="studiolens"] *, 
[class*="studiolens"] *:before, 
[class*="studiolens"] *:after {
    box-sizing: border-box !important;
}

.studiolens-gallery-item, 
.studiolens-gallery-item *, 
.studiolens-gallery-item:hover, 
.studiolens-gallery-item *:hover { 
    background: transparent !important; 
    background-color: transparent !important; 
    border: none !important; 
    box-shadow: none !important; 
}

/* Forzar Syne y color blanco en items */
.studiolens-gallery-item h3, 
.studiolens-gallery-item a, 
.studiolens-gallery-item span, 
.studiolens-title, 
.studiolens-title a { 
    color: #ffffff !important; 
    font-family: var(--studiolens-font-luxury) !important; 
    font-weight: 800 !important; 
    text-decoration: none !important; 
    text-shadow: 2px 2px 5px rgba(0,0,0,0.8) !important; 
}

/* Forzar minúsculas */
.studiolens-gallery-item .studiolens-title, 
.studiolens-gallery-item .studiolens-title a, 
.studiolens-gallery-item h3, 
.studiolens-album-title, 
.studiolens-gallery-wrapper * { 
    text-transform: lowercase !important; 
}

/* Primera letra en mayúscula para títulos específicos */
.studiolens-gallery-item .studiolens-title::first-letter, 
.studiolens-gallery-item h3::first-letter,
.studiolens-album-title::first-letter { 
    text-transform: uppercase !important; 
}

/* Eliminar máscaras de mayúsculas y ajustar tamaño */
.studiolens-gallery-wrapper .studiolens-title, 
.studiolens-gallery-wrapper .studiolens-title a, 
.studiolens-gallery-wrapper h3, 
.studiolens-album-title { 
    font-size: 44px !important; 
    font-variant: normal !important; 
    font-variant-caps: normal !important; 
    font-feature-settings: "smcp" 0, "c2sc" 0, "case" 0 !important; 
    -webkit-font-variant-ligatures: none !important; 
    font-variant-ligatures: none !important; 
}

/* Forzar mayúsculas en el menú de contacto */
#menu-item-24 a, 
.menu-item-24 a, 
a[href*="contacto"] { 
    text-transform: uppercase !important; 
    font-variant: normal !important; 
}

/* Contenedor Flexible Universal */
.studiolens-flex-container {
    max-width: var(--studiolens-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--studiolens-padding);
    padding-right: var(--studiolens-padding);
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .studiolens-flex-container {
        padding-left: var(--studiolens-m-padding);
        padding-right: var(--studiolens-m-padding);
    }
}

.studiolens-container, 
 .studiolens-album-masonry-container {
     /* Classes defined below */
 }

/* Re-definición de contenedores usando el sistema flexible */
.studiolens-container, 
.studiolens-album-masonry-container,
.studiolens-album-description {
    max-width: var(--studiolens-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--studiolens-padding);
    padding-right: var(--studiolens-padding);
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .studiolens-container, 
    .studiolens-album-masonry-container,
    .studiolens-album-description {
        padding-left: var(--studiolens-m-padding);
        padding-right: var(--studiolens-m-padding);
    }
}

/* Asegurar que la grilla Masonry ocupe el 100% real sin gaps extraños */
.studiolens-masonry, 
.studiolens-album-masonry {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    display: block !important; /* Masonry lo necesita block */
}

.studiolens-grid-sizer,
.studiolens-item,
.studiolens-album-grid-sizer,
.studiolens-album-item {
    width: 100%;
    box-sizing: border-box;
    float: left; /* Ayuda a Masonry en el cálculo inicial */
}

.studiolens-gutter-sizer,
.studiolens-album-gutter-sizer {
    width: var(--studiolens-gutter);
}

@media (max-width: 767px) {
    .studiolens-gutter-sizer,
    .studiolens-album-gutter-sizer {
        width: var(--studiolens-m-gutter);
    }
}

/* --- Desktop Columns --- */
@media (min-width: 768px) {
    /* 1 Column Logic */
    .cols-1 .studiolens-grid-sizer,
    .cols-1 .studiolens-item,
    .cols-1 .studiolens-album-grid-sizer,
    .cols-1 .studiolens-album-item { 
        width: 100% !important; 
        margin-bottom: var(--studiolens-gutter) !important; 
    }

    /* 2 Columns Logic */
    .cols-2 .studiolens-grid-sizer,
    .cols-2 .studiolens-item,
    .cols-2 .studiolens-album-grid-sizer,
    .cols-2 .studiolens-album-item { 
        width: calc(50% - (var(--studiolens-gutter) * 1 / 2) - 0.5px) !important; 
        margin-bottom: var(--studiolens-gutter) !important; 
    }
    
    /* 3 Columns Logic */
    .cols-3 .studiolens-grid-sizer,
    .cols-3 .studiolens-item,
    .cols-3 .studiolens-album-grid-sizer,
    .cols-3 .studiolens-album-item { 
        width: calc(33.33% - (var(--studiolens-gutter) * 2 / 3) - 0.5px) !important; 
        margin-bottom: var(--studiolens-gutter) !important; 
    }

    /* 4 Columns Logic */
    .cols-4 .studiolens-grid-sizer,
    .cols-4 .studiolens-item,
    .cols-4 .studiolens-album-grid-sizer,
    .cols-4 .studiolens-album-item { 
        width: calc(25% - (var(--studiolens-gutter) * 3 / 4) - 0.5px) !important; 
        margin-bottom: var(--studiolens-gutter) !important; 
    }
}

/* --- Mobile Columns --- */
@media (max-width: 767px) {
    /* 1 Column Mobile */
    .m-cols-1 .studiolens-grid-sizer,
    .m-cols-1 .studiolens-item,
    .m-cols-1 .studiolens-album-grid-sizer,
    .m-cols-1 .studiolens-album-item {
        width: 100% !important;
        margin-bottom: var(--studiolens-m-gutter) !important;
    }

    /* 2 Columns Mobile */
    .m-cols-2 .studiolens-grid-sizer,
    .m-cols-2 .studiolens-item,
    .m-cols-2 .studiolens-album-grid-sizer,
    .m-cols-2 .studiolens-album-item {
        width: calc(50% - (var(--studiolens-m-gutter) / 2) - 0.5px) !important;
        margin-bottom: var(--studiolens-m-gutter) !important;
    }
}

/* --- Item Styling --- */
.studiolens-item, .studiolens-album-item {
    position: relative;
    overflow: hidden;
    background: #111; /* Fondo oscuro para Luxury placeholder */
    transition: transform 0.3s ease;
    /* Aspect ratio para estabilizar CLS */
    aspect-ratio: var(--aspect-ratio, 3/2);
    min-height: 100px;
    opacity: 0; /* Empiezan invisibles para evitar flash de Masonry */
}

/* Contenedor interno para asegurar que la imagen llene el espacio del aspect-ratio */
.studiolens-item-inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.studiolens-item-inner img, 
.studiolens-album-item img, 
.studiolens-lightbox-content {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Asegurar que llene el contenedor con aspect-ratio */
    transition: transform 1.2s cubic-bezier(0.19, 1, 0.22, 1);
    /* Protección contra descargas */
    pointer-events: auto;
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-select: none;
    -webkit-touch-callout: none;
}

.studiolens-album-item img {
    cursor: zoom-in;
    -webkit-tap-highlight-color: transparent;
}

.studiolens-item:hover img { transform: scale(1.05); }

/* --- Overlay --- */
.studiolens-overlay {
    position: absolute; inset: 0; background: rgba(0,0,0,0.3);
    opacity: 0; transition: opacity 0.5s ease;
    display: flex; align-items: center; justify-content: center;
}
.studiolens-item:hover .studiolens-overlay { opacity: 1; }

.studiolens-link-btn {
    display: inline-block; padding: 12px 24px; border: 1px solid #fff;
    color: #fff; text-decoration: none; text-transform: uppercase;
    font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 2px;
    background: transparent; transition: all 0.3s ease;
}
.studiolens-link-btn:hover { background: #fff; color: #000; }

/* --- Lightbox --- */
.studiolens-lightbox-overlay {
    display: none;
    position: fixed;
    z-index: 999999;
    left: 0; top: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.95);
    backdrop-filter: blur(10px);
    justify-content: center; align-items: center;
    cursor: zoom-out;
}
.studiolens-lightbox-content {
    max-width: 90%; max-height: 90vh;
    object-fit: contain;
    animation: studiolensZoomIn 0.4s ease;
}

.studiolens-lightbox-stage {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
    display: inline-block;
}

.studiolens-lightbox-stage .studiolens-lightbox-content {
    max-width: 100%;
    max-height: 90vh;
}

.studiolens-lightbox-stage #studiolens-lightbox-watermark {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
@keyframes studiolensZoomIn {
    from { transform: scale(0.9); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}
.studiolens-lightbox-close {
    position: absolute; top: 30px; right: 40px;
    color: #fff; font-size: 40px; cursor: pointer;
}

/* --- Hero Section --- */
.studiolens-album-hero {
    height: 100vh; width: 100%; position: relative;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; margin-bottom: 80px; background: #000;
}

/* --- Limpieza ULTRA-EXTREMA de elementos del tema en Álbumes y Páginas Luxury --- */
.studiolens-luxury-view .entry-header,
.studiolens-luxury-view .entry-meta,
.studiolens-luxury-view .comments-area,
.studiolens-luxury-view .ast-article-post-meta,
.studiolens-luxury-view .page-header,
.studiolens-luxury-view .site-footer,
.studiolens-luxury-view .vcard,
.studiolens-luxury-view .author,
.studiolens-luxury-view .posted-on,
.studiolens-luxury-view .cat-links,
.studiolens-luxury-view .tags-links,
.studiolens-luxury-view .ast-single-related-posts-container,
.studiolens-luxury-view .entry-title,
.studiolens-luxury-view .ast-footer-copyright {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
    width: 0 !important;
}


/* --- Ajuste de Alineación Luxury (Header + Contenido) --- */
.studiolens-luxury-view .site-header .ast-container,
.studiolens-luxury-view .studiolens-album-masonry-container,
.studiolens-luxury-view .studiolens-container,
.studiolens-luxury-view .site-content .ast-container,
.studiolens-luxury-view #content .entry-content,
.studiolens-luxury-view .main-header-bar.ast-header-wrap,
.studiolens-luxury-view .ast-container,
.studiolens-luxury-view .entry-content,
.studiolens-luxury-view .site-content,
.studiolens-luxury-view .ast-main-header-wrap,
.studiolens-luxury-view .main-header-bar,
.studiolens-luxury-view .ast-row {
    padding-left: 40px !important; 
    padding-right: 40px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
    float: none !important;
}

/* Restaurar Tipografías y Colores de Astra */
.studiolens-luxury-view .main-header-bar, 
.studiolens-luxury-view .main-header-bar *,
.studiolens-luxury-view #content,
.studiolens-luxury-view #content * {
    font-family: inherit; /* No sobreescribir la fuente del tema */
}

/* Forzar que el header ocupe el ancho correcto sin márgenes externos */
.studiolens-luxury-view .site-header {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    z-index: 100;
}

.studiolens-luxury-view .site-header .ast-container {
    max-width: var(--studiolens-max-width) !important;
}

/* Corregir submenús flotando lejos */
.studiolens-luxury-view .main-header-bar {
    border: none !important;
}

.studiolens-luxury-view .main-header-menu .sub-menu {
    top: 100% !important; 
    margin-top: 0 !important;
}



/* Ajuste para tablets y móviles */
@media (max-width: 991px) {
    .studiolens-luxury-view .site-header .ast-container,
    .studiolens-luxury-view .studiolens-album-masonry-container,
    .studiolens-luxury-view .studiolens-container,
    .studiolens-luxury-view .site-content .ast-container,
    .studiolens-luxury-view #content .entry-content,
    .studiolens-luxury-view .ast-container,
    .studiolens-luxury-view .entry-content,
    .studiolens-luxury-view .ast-row {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* Eliminar ruidos de Astra que desplazan el contenido */
.studiolens-luxury-view .ast-builder-grid-row,
.studiolens-luxury-view .main-header-bar,
.studiolens-luxury-view .ast-main-header-wrap,
.studiolens-luxury-view .ast-header-break-point .main-header-bar {
    max-width: 100% !important;
    /* Quitamos padding y margin 0 agresivo que rompe el header interno */
}

/* Asegurar que el contenido interno no rompa la alineación */
.studiolens-luxury-view #content .entry-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
}

/* Asegurar que el contenido principal no tenga márgenes forzados que rompan el Hero */
.studiolens-luxury-view #content,
.studiolens-luxury-view .site-content,
.studiolens-luxury-view #primary {
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 100% !important;
}

/* Resetear el contenedor del shortcode para que use el mismo padding que el álbum */
.studiolens-container, .studiolens-album-masonry-container {
    max-width: var(--studiolens-max-width) !important;
    margin: 0 auto !important;
    padding-left: var(--studiolens-padding) !important;
    padding-right: var(--studiolens-padding) !important;
    box-sizing: border-box !important;
    overflow: visible !important; /* Importante para que Masonry no se corte */
}

/* Ajuste para móviles */
@media (max-width: 767px) {
    .studiolens-container, .studiolens-album-masonry-container {
        padding-left: var(--studiolens-m-padding) !important;
        padding-right: var(--studiolens-m-padding) !important;
    }
}

.studiolens-container {
    margin-top: 60px;
    margin-bottom: 60px;
}
.studiolens-album-hero img {
    position: absolute; width: 100%; height: 100%; object-fit: cover;
    filter: brightness(0.7);
}
.studiolens-album-title {
    position: relative; z-index: 2; color: #fff; font-family: 'Syne', sans-serif;
    font-size: 5vw; text-align: center; text-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
@media (max-width: 767px) {
    .studiolens-album-hero { height: 60vh; }
    .studiolens-album-title { font-size: 3rem; }
}

/* --- E-Commerce Luxury UI --- */
.studiolens-commerce-overlay {
    position: absolute; bottom: 0; left: 0; width: 100%;
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
    padding: 15px; transform: translateY(100%); transition: transform 0.3s ease;
    z-index: 10; /* Asegurar que esté por encima de la imagen */
}
.studiolens-album-item:hover .studiolens-commerce-overlay { transform: translateY(0); }

.studiolens-add-to-cart {
    width: 100%; background: #fff; color: #000; border: none;
    padding: 10px; font-family: 'Inter', sans-serif; font-size: 11px;
    font-weight: 600; text-transform: uppercase; letter-spacing: 1px;
    cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
    transition: all 0.3s ease;
    position: relative;
    z-index: 20;
}
.studiolens-add-to-cart:hover { background: #eee !important; color: #000 !important; }
.studiolens-add-to-cart.added { background: #000 !important; color: #fff !important; border: 1px solid #333; }

.studiolens-cart-icon:before { content: '✚'; font-size: 14px; }
.studiolens-add-to-cart.added .studiolens-cart-icon:before { content: '✓'; }

/* Floating Cart */
.studiolens-floating-cart {
    position: fixed; bottom: 40px; right: 40px; z-index: 9999;
    background: #000; color: #fff; border: 1px solid #333;
    padding: 15px 25px; border-radius: 50px; cursor: pointer;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5); display: flex; align-items: center; gap: 15px;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.studiolens-floating-cart:hover { transform: scale(1.05); border-color: #fff; }
.studiolens-cart-counter {
    background: #fff; color: #000; width: 20px; height: 20px;
    border-radius: 50%; font-size: 10px; font-weight: bold;
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: -5px; right: 10px;
}
.studiolens-cart-icon-main:before { content: '🛒'; font-size: 18px; }
.studiolens-cart-total { font-weight: 500; font-family: 'Inter', sans-serif; letter-spacing: 1px; }

/* Modal Cart */
.studiolens-cart-modal {
    display: none; position: fixed; z-index: 999999; inset: 0;
    background: rgba(0,0,0,0.9); backdrop-filter: blur(15px);
    justify-content: center; align-items: center;
}
.studiolens-cart-modal.active { display: flex; }
.studiolens-cart-content {
    background: #111; border: 1px solid #333; width: 90%; max-width: 600px;
    padding: 40px; border-radius: 20px; position: relative; max-height: 80vh;
    display: flex; flex-direction: column;
}
.studiolens-cart-close {
    position: absolute; top: 20px; right: 25px; color: #888;
    font-size: 30px; cursor: pointer; transition: color 0.3s;
}
.studiolens-cart-close:hover { color: #fff; }
.studiolens-cart-title {
    font-family: 'Syne', sans-serif; font-size: 2rem; margin-bottom: 30px; color: #fff;
}
.studiolens-cart-items { overflow-y: auto; flex-grow: 1; margin-bottom: 30px; padding-right: 10px; }
.studiolens-cart-item {
    display: flex; align-items: center; gap: 20px; padding: 15px 0;
    border-bottom: 1px solid #222;
}
.studiolens-cart-item img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; }
.studiolens-cart-item-info { flex-grow: 1; }
.studiolens-cart-item-info h4 { margin: 0; color: #fff; font-size: 14px; }
.studiolens-cart-item-remove { color: #d63638; background: none; border: none; cursor: pointer; font-size: 12px; padding: 0; }

.studiolens-cart-summary { background: #000; padding: 20px; border-radius: 12px; margin-bottom: 20px; }
.studiolens-summary-row { display: flex; justify-content: space-between; margin-bottom: 10px; color: #888; font-size: 13px; }
.studiolens-summary-row.total { color: #fff; font-weight: bold; font-size: 18px; border-top: 1px solid #222; pt: 15px; mt: 5px; }
.studiolens-combo-notice { color: #2271b1; font-size: 12px; font-style: italic; margin-top: 10px; }

.studiolens-checkout-btn {
    width: 100%; background: #fff; color: #000; border: none; padding: 18px;
    font-family: 'Inter', sans-serif; font-weight: 600; text-transform: uppercase;
    letter-spacing: 2px; border-radius: 50px; cursor: pointer; transition: 0.3s;
}
.studiolens-checkout-btn:hover { background: #000; color: #fff; border: 1px solid #fff; }

/* Watermark Overlay */
.studiolens-watermark-overlay {
    position: absolute;
    inset: 0;
    background-repeat: repeat;
    background-position: center;
    background-size: 200px;
    opacity: var(--studiolens-watermark-opacity, 0.3);
    pointer-events: none;
    z-index: 5;
    mix-blend-mode: overlay;
}

.studiolens-watermark-overlay.studiolens-watermark-text {
    background-repeat: repeat;
    background-position: center;
    background-size: 360px 240px;
}
.studiolens-album-wrapper h1 {
    text-align: center!important;
    margin: 0!important;
    font-family: 'Syne', sans-serif!important;

    /* Tamaño adaptable */
    font-size: clamp(2.5rem, 10vw, 8rem)!important;
}
.studiolens-overlay .studiolens-link-btn {
    font-size: 1rem !important;
	text-align: center;
	text-transform: capitalize;
}

.studiolens-overlay .studiolens-link-btn:hover {
    color: #fff !important;
}
.studiolens-luxury-view .post-navigation {
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin: 80px auto;
    padding: 20px;
    color: #fff;
}

.studiolens-luxury-view .post-navigation a {
    color: #000000!important;
    text-decoration: none;
    font-family: 'Syne', sans-serif;
    font-size: 16px;
    opacity: 0.8;
    transition: 0.3s;
}

.studiolens-luxury-view .post-navigation a:hover {
    opacity: 1;
}

.studiolens-img-item {
    cursor: grab;
}

.studiolens-img-item:active {
    cursor: grabbing;
}

.studiolens-ghost {
    opacity: 0.4;
    transform: scale(0.95);
}
.studiolens-album-description {
    font-size: 18px!important;
	text-align:center!important;
}


.page-id-165 .ast-main-header-wrap,
.page-id-165 .main-header-bar,
.page-id-165 .ast-primary-header-bar,
.page-id-165 .site-header .ast-container {
    max-width: var(--studiolens-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
    box-sizing: border-box;
}

/* CLAVE */
.page-id-165 .main-header-bar {
    width: 100% !important;
}
.page-id-165 .ast-full-width-header .main-header-bar {
    max-width: var(--studiolens-max-width) !important;
    margin: 0 auto !important;
}
