/* PP Gift Registry Elementor Widgets - Layout Only Styles */
/* NO TYPOGRAPHY, COLORS, BORDERS, HOVER EFFECTS - Only structural layout */

/* Base widget container - structural only */
.pp-gift-registry-elementor-widget {
    display: block;
    width: 100%;
    box-sizing: border-box;
}

.pp-gift-registry-elementor-widget *,
.pp-gift-registry-elementor-widget *:before,
.pp-gift-registry-elementor-widget *:after {
    box-sizing: border-box;
}

/* Ensure basic visibility for all elements except script tags */
.pp-gift-registry-elementor-widget > *:not(script) {
    display: block;
    position: relative;
}

/* Ensure script tags remain hidden */
.pp-gift-registry-elementor-widget script {
    display: none !important;
}

/* Placeholder styles for Elementor editor preview */
.pp-gift-registries-placeholder,
.pp-my-gift-registries-placeholder,
.pp-create-gift-registry-placeholder,
.pp-view-gift-registry-placeholder {
    text-align: center;
    padding: 40px 20px;
    border-radius: 8px;
}

.pp-gift-registries-placeholder i,
.pp-my-gift-registries-placeholder i,
.pp-create-gift-registry-placeholder i,
.pp-view-gift-registry-placeholder i {
    display: block;
    margin-bottom: 15px;
}

.pp-gift-registries-placeholder h3,
.pp-my-gift-registries-placeholder h3,
.pp-create-gift-registry-placeholder h3,
.pp-view-gift-registry-placeholder h3 {
    margin: 0 0 10px 0;
}

.pp-gift-registries-placeholder p,
.pp-my-gift-registries-placeholder p,
.pp-create-gift-registry-placeholder p,
.pp-view-gift-registry-placeholder p {
    margin: 0;
}

/* Basic structure - visibility and display only */
.pp-gift-registry-elementor-widget .pp-gift-registry-item {
    display: block;
    position: relative;
}

.pp-gift-registry-elementor-widget .pp-gift-registry-form {
    display: block;
    position: relative;
    width: 100%;
}

.pp-gift-registry-elementor-widget .pp-gift-registry-form-title {
    display: block;
}

.pp-gift-registry-elementor-widget .pp-gift-registry-form-description {
    display: block;
}

/* Form elements - structural only */
.pp-gift-registry-elementor-widget .pp-gift-registry-form input,
.pp-gift-registry-elementor-widget .pp-gift-registry-form textarea,
.pp-gift-registry-elementor-widget .pp-gift-registry-form select {
    display: block;
    width: 100%;
}

.pp-gift-registry-elementor-widget .pp-gift-registry-form .submit-button {
    display: inline-block;
    cursor: pointer;
}

/* Dashboard structural styles */
.pp-gift-registry-elementor-widget .pp-gift-registry-dashboard {
    display: block;
}

.pp-gift-registry-elementor-widget .pp-gift-registry-button {
    display: inline-block;
    text-decoration: none;
    cursor: pointer;
}

/* Single registry structural styles */
.pp-gift-registry-elementor-widget .pp-single-gift-registry {
    display: block;
}

.pp-gift-registry-elementor-widget .pp-registry-item {
    display: block;
    position: relative;
}

/* Login message styling */
.pp-gift-registry-elementor-widget .pp-login-message {
    display: block;
}

/* Basic content structure - display only */
.pp-gift-registry-elementor-widget .registry-title,
.pp-gift-registry-elementor-widget .registry-description,
.pp-gift-registry-elementor-widget .registry-meta,
.pp-gift-registry-elementor-widget .product-title,
.pp-gift-registry-elementor-widget .product-price {
    display: block;
}

/* Widget editor styles */
.elementor-editor .pp-gift-registry-elementor-widget {
    min-height: 50px;
}

.elementor-editor .pp-gift-registries-placeholder,
.elementor-editor .pp-my-gift-registries-placeholder,
.elementor-editor .pp-create-gift-registry-placeholder,
.elementor-editor .pp-view-gift-registry-placeholder {
    display: block !important;
}

/* Basic widget container structure */
.elementor-widget-pp_gift_registries .pp-gift-registry-elementor-widget,
.elementor-widget-pp_my_gift_registries .pp-gift-registry-elementor-widget,
.elementor-widget-pp_create_gift_registry .pp-gift-registry-elementor-widget,
.elementor-widget-pp_view_gift_registry .pp-gift-registry-elementor-widget {
    display: block;
    width: 100%;
}

/* Elementor widget containers */
.elementor-widget-pp_gift_registries .elementor-widget-container,
.elementor-widget-pp_my_gift_registries .elementor-widget-container,
.elementor-widget-pp_create_gift_registry .elementor-widget-container,
.elementor-widget-pp_view_gift_registry .elementor-widget-container {
    display: block;
    width: 100%;
}

/* Debug helper for empty widgets only in editor */
.elementor-editor .pp-gift-registry-elementor-widget:empty:before {
    content: "PP Gift Registry Widget - No Content Loaded";
    display: block;
    padding: 1rem;
    text-align: center;
}

/* Product Filters Layout */
.pp-product-filters {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    align-items: center;
    flex-wrap: wrap;
}

.pp-filter-btn {
    padding: 8px 16px;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: all 0.3s ease;
    border: none;
    background: none;
    font-size: inherit;
    font-family: inherit;
}

.pp-filter-btn.active {
    font-weight: bold;
}

/* LAYOUT-ONLY STYLES FOR NON-ELEMENTOR FALLBACK */
/* These provide basic layout structure when not using Elementor */

/* Search form layout */
.pp-search-form {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    align-items: center;
}

.pp-search-field input,
.pp-filter-field select {
    min-width: 200px;
}

/* Grid layouts */
.pp-registries-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

.pp-items-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
    margin-top: 20px;
}

/* Card layout structure */
.pp-registry-card,
.pp-registry-item {
    display: block;
    min-height: 100%;
    position: relative;
    overflow: hidden;
}

/* Product image structure */
.pp-item-image {
    position: relative;
    text-align: center;
    margin-bottom: 15px;
    overflow: hidden;
}

.pp-item-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

/* Product details structure */
.pp-item-details {
    flex: 1;
    margin-bottom: 15px;
}

/* Nome lista - layout only, no default styling */
h2.pp-nome-lista {
    display: block;
}

/* Nome prodotto card - layout only, no default styling */
h4.pp-nome-prodotto-card {
    display: block;
}

/* Card footer structure - normal flow */
.card-footer {
    display: block;
    padding: 15px;
}

/* Item actions layout */
.pp-item-actions {
    margin: 0;
}

.pp-item-actions .cart {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}

.pp-item-actions .quantity {
    display: flex;
    align-items: center;
    gap: 5px;
}

.pp-item-actions .quantity input {
    width: 60px;
    text-align: center;
}

.pp-item-actions .single_add_to_cart_button {
    flex: 1;
    text-align: center;
    cursor: pointer;
}

.pp-item-actions .button {
    margin-right: 8px;
    margin-bottom: 8px;
    cursor: pointer;
    display: inline-block;
}

/* Content wrapper layout */
.pp-registry-content-wrapper {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.pp-registry-description {
    flex: 4;
}

.pp-registry-share-box {
    flex: 1;
    max-width: 20%;
    min-width: 200px;
}

.pp-share-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 15px;
}

.pp-share-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    cursor: pointer;
    text-decoration: none;
}

/* Action buttons layout */
.pp-registry-actions-top {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
    padding: 12px;
    align-items: center;
}

.pp-action-link {
    text-decoration: none;
    padding: 8px 16px;
    cursor: pointer;
}

/* Badge positioning */
.pp-fulfilled-badge,
.pp-out-of-stock-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 6px 12px;
    z-index: 2;
}

/* Gallery badge positioning */
.pp-gallery-badge {
    position: absolute;
    bottom: 10px;
    left: 10px;
    padding: 6px 10px;
    background: rgba(0, 0, 0, 0.8);
    color: white;
    border-radius: 4px;
    font-size: 12px;
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    z-index: 2;
    transition: background 0.3s ease;
}

.pp-gallery-badge:hover {
    background: rgba(0, 0, 0, 0.9);
}

.pp-gallery-badge i {
    font-size: 14px;
}

/* Gallery badge for WooCommerce lightbox integration */

/* No items message */
.pp-no-items {
    text-align: center;
    padding: 60px 20px;
}

.pp-no-items .button {
    padding: 12px 24px;
    display: inline-block;
}

/* Responsive Design - Layout only */
@media (max-width: 768px) {
    .pp-search-form {
        flex-direction: column;
    }
    
    .pp-search-field input,
    .pp-filter-field select {
        width: 100%;
    }
    
    .pp-registries-grid,
    .pp-items-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .pp-registry-content-wrapper {
        flex-direction: column;
    }
    
    .pp-registry-share-box {
        min-width: auto;
    }
    
    .pp-item-actions .cart {
        flex-direction: column;
        gap: 8px;
    }
    
    .pp-item-actions .quantity {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .pp-item-image img {
        height: 150px;
    }
}

/* Remove any default font-weight that could interfere with Elementor */
/* Let Elementor apply its styles directly without inheritance conflicts */

/* Buyers info section (visible only to registry owner) */
.pp-item-buyers {
    margin-top: 15px;
    padding-top: 10px;
    border-top: 1px dashed #ddd;
}

.pp-buyers-list {
    list-style: none;
    margin: 10px 0 0 0;
    padding: 0;
}

.pp-buyer-item {
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.pp-buyer-item:last-child {
    border-bottom: none;
}

.pp-buyer-name {
    font-weight: 600;
}

.pp-buyer-name.pp-anonymous {
    font-style: italic;
    color: #666;
}

.pp-buyer-qty {
    color: #666;
    font-size: 0.9em;
}

.pp-gift-message {
    margin-top: 5px;
    padding-left: 10px;
    border-left: 2px solid #0073aa;
    color: #0073aa;
    font-style: italic;
}

.pp-order-notes {
    margin-top: 5px;
    padding: 5px 10px;
    background: #f9f9f9;
    border-radius: 4px;
    color: #666;
}