/*
Theme Name: Divi Child
Description: Child theme for Divi with custom Artinerary search functionality
Template: Divi
Version: 1.0.0
Text Domain: divi-child
*/

/* Import Inter Google Font */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap');

/* Import parent theme styles */
@import url("../Divi/style.css");

/* Fix menu dropdown arrow encoding issue */
.et-menu .menu-item-has-children > a:first-child::after {
    content: "\e313" !important;
    font-family: 'ETmodules' !important;
}

/* Global Font Override for All Custom Shortcodes */
.artinerary-search-form,
.artinerary-search-form *,
.artinerary-search-free,
.artinerary-search-free *,
.artinerary-categories,
.artinerary-categories *,
.artistsaz-artist-display,
.artistsaz-artist-display *,
.artwork-display-container,
.artwork-display-container *,
.artist-display-container,
.artist-display-container *,
.artist-card,
.artist-card *,
.artwork-card,
.artwork-card *,
.artist-filters-sidebar,
.artist-filters-sidebar *,
.artwork-filters-sidebar,
.artwork-filters-sidebar *,

/* Apply Inter font to custom shortcodes, but exclude icon fonts (Font Awesome, Dashicons, Material Icons) */
.artist-commission-cta,
.artist-commission-cta *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),

.artist-type-badges,
.artist-type-badges *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),

.tags-filter-container,
.tags-filter-container *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.chip-filter-container,
.chip-filter-container *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.filter-group,
.filter-group *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.filter-actions,
.filter-actions *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),

.artwork-gallery-container,
.artwork-gallery-container *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.artwork-description-container,
.artwork-description-container *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.more-from-artist-section,
.more-from-artist-section *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.artist-profile-section,
.artist-profile-section *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]),
.more-art-like-this-section,
.more-art-like-this-section *:not(i[class*="fa"]):not(i[class*="fab"]):not(i[class*="fas"]):not(i[class*="far"]):not(span[class*="dashicons"]):not(span[class*="material-icons"]) {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif !important;
}

/* Prevent wpautop from processing shortcode output */
.wpautop-prevent {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.wpautop-prevent > p,
.wpautop-prevent > br {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}

/* Custom styles for Artinerary Search Form Shortcode */

/* Artinerary Search Form Shortcode Styles */
.artinerary-search-form {
    max-width: 1170px;
    margin: 0 auto;
    padding: 0;
}

.artinerary-search-form-inner {
    display: flex;
    border-radius: 4px;
    box-shadow: none;
    overflow: hidden;
    min-height: 60px;
    align-items: stretch;
    gap: 16px;
}

/* Remove wpautop-generated paragraph tags and breaks inside search forms */
.artinerary-search-form-inner p:empty,
.artinerary-search-form-inner br,
.search-fields-container p,
.search-fields-container br,
.search-field-group br {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}

/* Remove wpautop wrappers inside artists grids to maintain layout */
.artists-grid > p {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.artists-grid br { display: none !important; }

/* Also remove wpautop wrappers inside artworks flex grid */
.artworks-flexbox-grid > p {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}
.artworks-flexbox-grid br { display: none !important; }

/* Neutralize wpautop wrappers inside artist commission CTA */
.artist-commission-cta > p:not(.connect-description) {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 0 !important;
}
.artist-commission-cta br { display: none !important; }

/* Neutralize wpautop wrappers inside the icon row but keep them visible */
.artist-commission-cta .connect-icons > p {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}
.artist-commission-cta .connect-icons br { display: none !important; }

/* Neutralize wpautop wrappers inside artwork page shortcodes */
.artwork-gallery-container > p,
.artwork-gallery-container .gallery-thumbnails > p,
.artwork-gallery-container .gallery-main-image > p,
.artwork-gallery-container .main-image-container > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 0 !important;
}
.artwork-gallery-container br { display: none !important; }

.artwork-description-container > p:not(.artwork-description-text p) {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 0 !important;
}
.artwork-description-container br { display: none !important; }

.more-from-artist-section > p,
.more-from-artist-header > p,
.more-from-artist-container > p,
.more-from-artist-grid > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 0 !important;
}
.more-from-artist-section br { display: none !important; }

.artist-profile-section > p:not(.artist-description p),
.artist-profile-header > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 0 !important;
}
.artist-profile-section br { display: none !important; }

.more-art-like-this-section > p,
.more-art-like-this-container > p,
.more-art-like-this-grid > p {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 0 !important;
}
.more-art-like-this-section br { display: none !important; }

/* Neutralize wpautop wrappers inside shortcode containers (artists + artworks) */
.artistsaz-artist-display > p,
.artist-display-container > p,
.artist-display-content > p,
.artist-results-header > p,
.search-results-header > p,
.artist-filters-sidebar > p,
.artist-filters-sidebar .filter-group > p,
.artist-filters-sidebar .chip-filter-container > p,
.artist-filters-sidebar .tags-filter-container > p,
.artist-load-more-container > p,
.artist-pagination > p,
	.artist-grid-container > p,
	.view-all-container > p,

.artist-grid > p,
.artworks-grid > p,
.artwork-display-container > p,
.artwork-main-layout > p,

.artwork-content-area > p,
.artwork-results-header > p,
.artwork-filters-sidebar > p,
.artwork-filters-sidebar .filter-group > p {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}

.artistsaz-artist-display br,
.artist-display-container br,
.artist-results-header br,
.search-results-header br,
.artist-filters-sidebar br,
.artist-grid br,
	.artist-grid-container br,
	.view-all-container br,

/* Defensive: remove any paragraph wrappers inside artwork filters sidebar */
.artwork-filters-sidebar p {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}


.artworks-grid br,
.artwork-display-container br,
.artwork-main-layout br,
.artwork-content-area br,
.artwork-results-header br,
.artwork-filters-sidebar br {
    display: none !important;
}

/* Force sort controls to the far right within results headers */
.artist-results-header .sort-options,
.artwork-results-header .sort-options {
    margin-left: auto !important;
}


.search-fields-container {
    display: flex;
    flex: 1;
}

.search-field-group {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 15px 20px;
    background: #ffffff;
    transition: all 0.3s ease;
    min-height: 75px;
}

.search-field-group:not(:last-child) {
    border-right: none;
}

.search-field-group.focused {
    background: #f8f9fa;
}

.search-field-group:hover {
    background: #f8f9fa;
}

/* Location field should be narrower than search field */
.search-field-group.location-field {
    flex: 0.6;
    min-width: 150px;
}

.search-label {
    font-size: 12px;
    font-weight: 600;
    color: #333333;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

.search-input,
input[name="search_what"],
input[name="search_where"],
.artinerary-search-form input[type="text"] {
    border: none !important;
    outline: none !important;
    font-size: 16px;
    color: #333333;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    width: 100%;
    height: auto;
    box-shadow: none !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 0 !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: none !important;
}

.search-input:focus,
input[name="search_what"]:focus,
input[name="search_where"]:focus,
.artinerary-search-form input[type="text"]:focus {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

.search-input::placeholder {
    color: #999999;
    font-size: 14px;
}

/* Select dropdown styling to match input */
.search-select,
select[name="search_type"],
.artinerary-search-form select {
    border: none !important;
    outline: none !important;
    font-size: 16px;
    color: #333333;
    background: transparent !important;
    padding: 0 30px 0 0 !important;
    margin: 0 !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    width: 100%;
    height: auto;
    box-shadow: none !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 0 !important;
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 8px center !important;
    background-size: 16px !important;
}

.search-select:focus,
select[name="search_type"]:focus,
.artinerary-search-form select:focus {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

/* Load More Button Styles - Global */
.artwork-load-more-container,
.artist-load-more-container {
    text-align: center !important;
    margin-top: 40px !important;
    padding: 20px !important;
}

.load-more-btn,
#load-more-artworks,
#load-more-artists,
button#load-more-artworks,
button#load-more-artists {
    background: #65256d !important;
    background-color: #65256d !important;
    color: white !important;
    border: none !important;
    border-width: 0 !important;
    padding: 15px 30px !important;
    border-radius: 5px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    margin-bottom: 15px !important;
    min-width: 200px !important;
    display: inline-block !important;
    text-decoration: none !important;
    box-shadow: none !important;
    outline: none !important;
    font-family: inherit !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.load-more-btn:hover:not(:disabled),
#load-more-artworks:hover:not(:disabled),
#load-more-artists:hover:not(:disabled),
button#load-more-artworks:hover:not(:disabled),
button#load-more-artists:hover:not(:disabled) {
    background: #362051 !important;
    background-color: #362051 !important;
    transform: translateY(-1px) !important;
    color: white !important;
    text-decoration: none !important;
}

.load-more-btn:disabled,
#load-more-artworks:disabled,
#load-more-artists:disabled,
button#load-more-artworks:disabled,
button#load-more-artists:disabled {
    opacity: 0.7 !important;
    cursor: not-allowed !important;
    transform: none !important;
    background: #65256d !important;
    background-color: #65256d !important;
}

.load-more-spinner {
    color: white !important;
    /* Don't override display property - let JavaScript control it */
}

.load-more-info {
    color: #666 !important;
    font-size: 14px !important;
    margin-top: 10px !important;
}

/* Filter Button Styles - Global */
.filter-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin-top: 20px !important;
    padding-top: 20px !important;
    border-top: 1px solid #e9ecef !important;
}

.filter-submit-btn,
.reset-filters-btn,
button.filter-submit-btn,
.artwork-filters-form .filter-submit-btn,
.artist-filters-form .filter-submit-btn {
    padding: 12px 20px !important;
    border-radius: 5px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all 0.3s !important;
    border: none !important;
    border-width: 0 !important;
    display: block !important;
    width: 100% !important;
    box-shadow: none !important;
    outline: none !important;
    font-family: inherit !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    margin: 0 !important;
}

.filter-submit-btn,
button.filter-submit-btn,
.artwork-filters-form .filter-submit-btn,
.artist-filters-form .filter-submit-btn {
    background: #65256d !important;
    background-color: #65256d !important;
    color: white !important;
}

.filter-submit-btn:hover,
button.filter-submit-btn:hover,
.artwork-filters-form .filter-submit-btn:hover,
.artist-filters-form .filter-submit-btn:hover {
    background: #362051 !important;
    background-color: #362051 !important;
    color: white !important;
    text-decoration: none !important;
}

.reset-filters-btn {
    background: #f8f9fa !important;
    color: #666 !important;
    border: 1px solid #e9ecef !important;
}

.reset-filters-btn:hover {
    background: #e9ecef !important;
    color: #333 !important;
    text-decoration: none !important;
}

/* Price Filter Radio Buttons as Chips - Global */
.price-filter-radios {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

.price-filter-option,
.artwork-filters-form .price-filter-option,
.artist-filters-form .price-filter-option,
label.price-filter-option {
    display: block !important;
    cursor: pointer !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: #666 !important;
    background: #f8f9fa !important;
    border: 1px solid #e9ecef !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
    margin: 0 !important;
    text-decoration: none !important;
    text-align: center !important;
    position: relative !important;
}

.price-filter-option:hover,
.artwork-filters-form .price-filter-option:hover,
.artist-filters-form .price-filter-option:hover,
label.price-filter-option:hover {
    color: #65256d !important;
    background: #f0f0f0 !important;
    border-color: #65256d !important;
    text-decoration: none !important;
}

/* Selected state styling */
.price-filter-option:has(input[type="radio"]:checked),
.artwork-filters-form .price-filter-option:has(input[type="radio"]:checked),
.artist-filters-form .price-filter-option:has(input[type="radio"]:checked),
label.price-filter-option:has(input[type="radio"]:checked) {
    color: white !important;
    background: #65256d !important;
    border-color: #65256d !important;
}

/* Hide the actual radio button */
.price-filter-option input[type="radio"],
.artwork-filters-form .price-filter-option input[type="radio"],
.artist-filters-form .price-filter-option input[type="radio"],
label.price-filter-option input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
}

/* Regular search form button - NOT the free version */
.artinerary-search-form:not(.artinerary-search-free) .search-submit-btn {
    background: #65256d;
    color: #ffffff;
    border: none;
    padding: 0 30px;
    font-size: 16px;
    font-weight: 600;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    cursor: pointer;
    transition: all 0.3s ease;
    min-width: 170px;
    height: 85px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.artinerary-search-form:not(.artinerary-search-free) .search-submit-btn:hover {
    background: #362051;
}

.artinerary-search-form:not(.artinerary-search-free) .search-submit-btn:active {
    transform: translateY(1px);
}

/* Remove wpautop artifacts from button */
.artinerary-search-form:not(.artinerary-search-free) .search-submit-btn br,
.artinerary-search-form:not(.artinerary-search-free) .search-submit-btn p {
    display: none !important;
}

/* Responsive Design for Search Form */
@media (max-width: 768px) {
    .artinerary-search-form-inner {
        flex-direction: column;
        min-height: auto;
    }

    .search-fields-container {
        flex-direction: column;
    }

    .search-field-group:not(:last-child) {
        border-right: none;
        border-bottom: none;
    }

    .search-field-group {
        min-height: 60px;
    }

    .search-submit-btn {
        min-width: auto;
        min-height: 60px;
        padding: 0 20px;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .artinerary-search-form {
        padding: 0;
    }

    .search-field-group {
        padding: 10px 15px;
        min-height: 60px;
    }

    .search-input {
        font-size: 14px;
    }

    .search-submit-btn {
        padding: 0 15px;
        min-height: 60px;
        font-size: 16px;
    }
}

/* Divi-specific overrides */
.et_pb_section .artinerary-search-form {
    margin: 0 auto;
}

.et_pb_row .artinerary-search-form {
    width: 100%;
}

/* Ensure proper integration with Divi modules */
.et_pb_text .artinerary-search-form,
.et_pb_code .artinerary-search-form {
    max-width: 100%;
}

/* Additional Divi overrides for input borders */
.et_pb_module .artinerary-search-form input[type="text"],
.et_pb_text .artinerary-search-form input[type="text"],
.et_pb_code .artinerary-search-form input[type="text"],
#et_builder_outer_content .artinerary-search-form input[type="text"],
.et_pb_row .artinerary-search-form input[type="text"] {
    border: none !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Override any Divi focus states */
.et_pb_module .artinerary-search-form input[type="text"]:focus,
.et_pb_text .artinerary-search-form input[type="text"]:focus,
.et_pb_code .artinerary-search-form input[type="text"]:focus,
#et_builder_outer_content .artinerary-search-form input[type="text"]:focus,
.et_pb_row .artinerary-search-form input[type="text"]:focus {
    border: none !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Artinerary Search Free Form Styles - Simplified version for free users */
.artinerary-search-free {
    max-width: 800px;
    margin: 0 auto;
    padding: 0;
}

.artinerary-search-free .artinerary-search-form-inner {
    display: flex;
    border-radius: 4px;
    box-shadow: none;
    overflow: hidden;
    min-height: 75px;
    align-items: stretch;
    gap: 16px;
}

.artinerary-search-free .search-fields-container {
    display: flex;
    flex: 1;
}

.artinerary-search-free .search-field-group {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 15px 20px;
    background: #ffffff;
    transition: all 0.3s ease;
    min-height: 75px;
}

.artinerary-search-free .search-label {
    font-size: 12px;
    font-weight: 600;
    color: #3D1548;
    margin: 0 0 8px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
}

.artinerary-search-free .search-input {
    border: none;
    background: transparent;
    font-size: 16px;
    color: #333;
    padding: 0;
    margin: 0;
    outline: none;
    width: 100%;
    font-family: 'Inter', sans-serif;
    line-height: 1.4;
}

.artinerary-search-free .search-input::placeholder {
    color: #999;
    font-style: italic;
}

.artinerary-search-free .search-submit-btn {
    background: #65246D;
    color: white;
    border: none;
    padding: 0 30px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 140px;
    height: 75px;
    font-family: 'Inter', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.artinerary-search-free .search-submit-btn:hover {
    background: #3D1449;
    transform: translateY(-1px);
}

.artinerary-search-free .search-submit-btn:active {
    transform: translateY(0);
}



/* Responsive Design for Free Search Form */
@media (max-width: 768px) {
    .artinerary-search-free .artinerary-search-form-inner {
        flex-direction: column;
        min-height: auto;
    }

    .artinerary-search-free .search-fields-container {
        flex-direction: column;
    }

    .artinerary-search-free .search-field-group {
        min-height: 60px;
    }

    .artinerary-search-free .search-submit-btn {
        min-width: auto;
        min-height: 60px;
        padding: 0 20px;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .artinerary-search-free {
        padding: 0;
    }

    .artinerary-search-free .search-field-group {
        padding: 10px 15px;
        min-height: 60px;
    }

    .artinerary-search-free .search-input {
        font-size: 14px;
    }

    .artinerary-search-free .search-submit-btn {
        padding: 0 15px;
        min-height: 60px;
        font-size: 16px;
    }
}

/* Artinerary Category Boxes Shortcode Styles */
.artinerary-categories {
    max-width: 900px;
    margin: 0 auto;
    padding: 0;
}

.artinerary-categories-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
}

/* Hide wpautop-generated paragraph tags between category boxes */
.artinerary-categories-grid > p {
    display: none !important;
}

.category-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    background: #ffffff;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    padding: 10px 6px;
    box-sizing: border-box;
}

.category-box:hover,
.category-box.active {
    background: #65256d;
    text-decoration: none;
}

.category-box:hover .category-icon,
.category-box.active .category-icon {
    color: #ffffff;
}

.category-box:hover .category-label,
.category-box.active .category-label {
    color: #ffffff;
}

.category-icon {
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.category-icon .category-image {
    width: 40px;
    height: 40px;
    transition: filter 0.3s ease;
    filter: brightness(0) saturate(100%); /* Makes black images appear black */
}

.category-box:hover .category-icon .category-image,
.category-box.active .category-icon .category-image {
    filter: brightness(0) saturate(100%) invert(1); /* Makes images white on hover/active */
}

.category-label {
    font-size: 14px;
    font-weight: 600;
    color: #333333;
    text-align: center;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    transition: color 0.3s ease;
    line-height: 1.1;
}

/* Responsive Design for Category Boxes */
@media (max-width: 768px) {
    .artinerary-categories-grid {
        justify-content: center;
        gap: 6px;
    }

    .category-box {
        width: 85px;
        height: 85px;
        padding: 8px 4px;
    }

    .category-icon .category-image {
        width: 32px;
        height: 32px;
    }

    .category-icon {
        margin-bottom: 3px;
    }

    .category-label {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .artinerary-categories-grid {
        gap: 4px;
    }

    .category-box {
        width: 75px;
        height: 75px;
        padding: 6px 3px;
    }

    .category-icon .category-image {
        width: 28px;
        height: 28px;
    }

    .category-icon {
        margin-bottom: 2px;
    }

    .category-label {
        font-size: 11px;
    }
}

/* Divi-specific overrides for category boxes */
.et_pb_section .artinerary-categories {
    margin: 0 auto;
}

.et_pb_row .artinerary-categories {
    width: 100%;
}

.et_pb_text .artinerary-categories,
.et_pb_code .artinerary-categories {
    max-width: 100%;
}

/* Ensure proper link styling in Divi */
.et_pb_module .category-box,
.et_pb_text .category-box,
.et_pb_code .category-box {
    text-decoration: none !important;
}

.et_pb_module .category-box:hover,
.et_pb_text .category-box:hover,
.et_pb_code .category-box:hover {
    text-decoration: none !important;
}

/* Featured Item Styling - Purple Border with Glow - Global */
.artwork-image.featured-item,
.artist-image.featured-item {
    border: 3px solid #65256D !important;
    box-shadow: 0 0 20px rgba(101, 37, 109, 0.7) !important;
    border-radius: 4px !important;
    position: relative !important;
}

.artwork-image.featured-item::after,
.artist-image.featured-item::after {
    content: "★" !important;
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    background: #65256D !important;
    color: white !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    z-index: 10 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
}

/* ========================================
   ARTIST GRID SLIDER STYLES (Homepage)
   ======================================== */

/* Artist Grid Container */
.artist-grid-container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 20px;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

/* Artist Grid */
.artist-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin-bottom: 40px;
}

/* Artist Cards */
.grid-artist-card {
    background: white;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.grid-artist-card:hover {
    transform: translateY(-4px);
}

.grid-artist-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.grid-artist-image {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.grid-artist-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.grid-artist-card:hover .grid-artist-thumbnail {
    transform: scale(1.05);
}

/* Artist Info */
.grid-artist-info {
    padding: 12px 0px;
}

.grid-artist-name-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.grid-artist-name {
    font-size: 18px;
    font-weight: 600;
    margin: 0;
    color: #333;
    line-height: 1.3;
    font-family: 'Inter', sans-serif;
    flex: 1;
    text-align: left;
}

.grid-artist-category {
    font-size: 12px;
    color: #666;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    text-align: right;
    margin-left: 10px;
}

.grid-artist-medium {
    font-size: 14px;
    color: #666;
    margin: 0 0 6px 0;
    font-weight: 500;
}

.grid-artist-location {
    font-size: 13px;
    color: #888;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}

.location-icon {
    font-size: 12px;
}

/* View All Button */
.view-all-container {
    text-align: center;
    margin-top: 40px;
}

.view-all-btn {
    display: inline-block;
    background: #65246D;
    color: white;
    padding: 15px 30px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    font-size: 16px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.view-all-btn:hover {
    background: #3D1449;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(61, 21, 72, 0.3);
    color: white;
    text-decoration: none;
}

/* No Artists Message */
.no-artists-grid {
    text-align: center;
    padding: 60px 20px;
    color: #666;
    font-size: 16px;
    grid-column: 1 / -1;
}

/* Responsive Design */
@media (max-width: 1200px) {
    .artist-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 25px;
    }
}

@media (max-width: 768px) {
    .artist-grid-container {
        padding: 30px 15px;
    }

    .artist-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        margin-bottom: 30px;
    }

    .grid-artist-info {
        padding: 12px 0px;
    }

    .grid-artist-name {
        font-size: 16px;
    }

    .grid-artist-category {
        font-size: 11px;
    }

    .view-all-btn {
        padding: 12px 24px;
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .artist-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .view-all-container {
        margin-top: 30px;
    }
}


/* ===== Artist Display Shortcode Styles (migrated from inline) ===== */
/* Container and Layout */
.artistsaz-artist-display {
    max-width: 100vw;
    margin: 0 auto;
    padding: 20px;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

.artist-display-container {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

/* Sidebar Filters */
.artist-filters-sidebar {
    flex: 0 0 280px;
    background: #f8f9fa;
    padding: 25px;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.artist-filters-sidebar h3 {
    margin: 0 0 20px 0;
    color: #65256d;
    font-size: 18px;
    font-weight: 600;
}

.filter-group {
    margin-bottom: 20px;
}

.filter-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #333;
}

.filter-group input,
.filter-group select {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.filter-group input[type="checkbox"] {
    width: auto;
    margin-right: 8px;
}

/* Chip Filter Styling */
.chip-filter-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 5px;
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 400;
    color: #495057;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    text-decoration: none;
}

.filter-chip:hover {
    background: #e9ecef;
    border-color: #dee2e6;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.filter-chip.active {
    background: #65246D;
    border-color: #65246D;
    color: white;
    font-weight: 500;
}

.filter-chip.active:hover {
    background: #3D1449;
    border-color: #3D1449;
    transform: translateY(-1px);
}

/* Tags Filter Styling */
.tags-filter-container {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 10px;
    background: white;
}

.tag-checkbox {
    display: block;
    margin-bottom: 8px;
    font-weight: normal;
    cursor: pointer;
    padding: 4px 0;
    border-bottom: 1px solid #f0f0f0;
}

.tag-checkbox:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.tag-checkbox input[type="checkbox"] {
    margin-right: 8px;
    margin-bottom: 0;
}

.tag-label {
    font-size: 14px;
    color: #333;
}

.tag-checkbox:hover .tag-label {
    color: #65256d;
}


/* Filter actions */
.filter-actions {
    margin-top: 25px;
    display: flex;
    gap: 10px;
    flex-direction: column;
}

.filter-submit {
    background: #65246D;
    color: white;
    border: none;
    padding: 12px 20px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
    transition: background-color 0.3s;
}

.filter-submit:hover { background: #3D1449; }

.filter-reset {
    text-align: center;
    color: #666;
    text-decoration: none;
    padding: 8px;
    font-size: 14px;
}

.filter-reset:hover { color: #65256d; }

/* Main content area */
.artist-display-content { flex: 1; min-width: 0; }

/* Results header */
.artist-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid #e9ecef;
}

.results-count { font-size: 16px; color: #666; font-weight: 500; }

.sort-options { display: flex; align-items: center; gap: 10px; }
.sort-options label { font-size: 14px; color: #666; font-weight: 500; margin: 0; }
.sort-options select {
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    background: white;
    cursor: pointer;
    transition: border-color 0.3s;
}
.sort-options select:hover,
.sort-options select:focus {
    border-color: #65256d;
    outline: none;
}

/* Artists Grid */
.artists-grid { display: flex; flex-wrap: wrap; gap: 20px; margin: 0; }
.artist-card-link {
    text-decoration: none; color: inherit; display: block;
    flex: 0 0 calc(25% - 15px); max-width: calc(25% - 15px); margin: 0;
}
.artist-card-link:hover { text-decoration: none; color: inherit; }

/* Card */
.artist-card {
    display: flex; flex-direction: column; background: white; border-radius: 0 !important;
    border: none !important; overflow: hidden; box-shadow: none !important;
    -webkit-box-shadow: none !important; -moz-box-shadow: none !important; transition: transform 0.3s; height: 100%;
}

/* Column overrides */
.artists-grid[data-columns="2"] .artist-card-link { flex: 0 0 calc(50% - 10px); max-width: calc(50% - 10px); }
.artists-grid[data-columns="4"] .artist-card-link { flex: 0 0 calc(25% - 15px); max-width: calc(25% - 15px); }


/* Card hover */
.artist-card-link:hover .artist-card {
    transform: translateY(-2px);
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
    border-radius: 0 !important;
}

.artist-image { position: relative; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #f8f9fa; }
.artist-thumbnail { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.artist-card:hover .artist-thumbnail { transform: scale(1.05); }

/* Featured Item */
.artist-image.featured-item {
    border: 3px solid #65256D;
    box-shadow: 0 0 20px rgba(101, 37, 109, 0.7);
    border-radius: 4px; position: relative;
}
.artist-image.featured-item::after {
    content: "★"; position: absolute; top: 8px; right: 8px; background: #65256D; color: white;
    width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    font-size: 16px; z-index: 10; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.artist-info { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.artist-title { margin: 0; padding: 0; font-size: 18px; font-weight: 600; }
.artist-title a { color: #333; text-decoration: none; transition: color 0.3s; }
.artist-title a:hover { color: #65256d; }
.artist-location { margin: 8px 0; color: #666; font-size: 14px; display: flex; align-items: center; gap: 5px; }
.artist-location .location-icon { color: #65256d; font-size: 16px; margin-right: 2px; }
.artist-medium { margin: 8px 0; color: #666; font-size: 14px; }
.established-badge { display: inline-block; background: #f0f0f0; color: #666; padding: 2px 6px; border-radius: 4px; font-size: 12px; font-weight: 400; margin: 8px 0 0 0; width: fit-content; }
.artist-bio { margin: 12px 0; color: #666; font-size: 14px; line-height: 1.5; }

/* No Results */
.no-artists-found { text-align: center; padding: 60px 20px; color: #666; width: 100%; flex: 1 1 100%; }
.reset-filters-btn { display: inline-block; background: #65246D; color: white; padding: 12px 24px; border-radius: 4px; text-decoration: none; margin-top: 15px; transition: background-color 0.3s; }
.reset-filters-btn:hover { background: #3D1449; color: white; }

/* Pagination */
.artist-pagination { margin-top: 40px; text-align: center; }
.artist-pagination .page-numbers { display: inline-block; padding: 8px 12px; margin: 0 2px; border: 1px solid #ddd; color: #666; text-decoration: none; border-radius: 4px; transition: all 0.3s; }
.artist-pagination .page-numbers:hover,
.artist-pagination .page-numbers.current { background: #65246D; color: white; border-color: #65246D; }

/* Load More */
.artist-load-more-container { text-align: center; margin-top: 40px; padding: 20px; }
.artist-load-more-container .load-more-btn {
    background: #65246D; color: white; border: none; padding: 15px 30px; border-radius: 5px; font-size: 16px;
    font-weight: 600; cursor: pointer; transition: all 0.3s; margin-bottom: 15px; min-width: 200px;
}
.artist-load-more-container .load-more-btn:hover:not(:disabled) { background: #3D1449; transform: translateY(-1px); }
.artist-load-more-container .load-more-btn:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }
.artist-load-more-container .load-more-spinner { display: inline-block; }
.artist-load-more-container .load-more-info { color: #666; font-size: 14px; margin-top: 10px; }

/* Responsive */
@media (max-width: 1024px) {
    .artists-grid[data-columns="4"] .artist-card-link { flex: 0 0 calc(33.333% - 13.333px); max-width: calc(33.333% - 13.333px); }
}

/* Mobile Filter Toggle Button - Hidden by default */
.mobile-artist-filter-toggle { display: none !important; }

@media (max-width: 768px) {
    .artistsaz-artist-display { padding: 20px 15px; }
    .artist-display-container { flex-direction: column; gap: 20px; width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; }

    /* Show mobile filter toggle - full width */
    .mobile-artist-filter-toggle {
        display: flex !important; position: sticky; top: 20px; z-index: 1000; background: #65246D; color: white; border: none;
        padding: 0 20px; height: 44px; border-radius: 8px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14px; cursor: pointer;
        margin-bottom: 20px; box-shadow: 0 4px 12px rgba(61, 21, 72, 0.3); transition: all 0.3s ease; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; text-align: center; align-items: center; justify-content: center;
    }
    .mobile-artist-filter-toggle:hover { background: #3D1449; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(61, 21, 72, 0.4); }
    .mobile-artist-filter-toggle:active,
    .mobile-artist-filter-toggle:focus,
    .mobile-artist-filter-toggle.active { background: #3D1449 !important; color: white !important; }
    .mobile-artist-filter-toggle .toggle-icon { margin-left: 8px; transition: transform 0.3s ease; }
    .mobile-artist-filter-toggle.active .toggle-icon { transform: rotate(180deg); }

    /* Mobile filter sidebar */
    .artist-filters-sidebar { display: none !important; width: 100% !important; max-width: 100% !important; flex: none !important; box-sizing: border-box !important; margin-bottom: 0; padding: 0; background: transparent; border: none; box-shadow: none; }
    .artist-filters-sidebar.mobile-expanded { display: block !important; padding: 20px; margin-bottom: 30px; width: 100% !important; max-width: 100% !important; background: #f8f9fa; border-radius: 8px; border: 1px solid #e9ecef; }
    .artist-filters-sidebar.mobile-expanded .filter-group,
    .artist-filters-sidebar.mobile-expanded form,
    .artist-filters-sidebar.mobile-expanded h3 { opacity: 1; transition: opacity 0.3s ease 0.1s; }
    .artist-filters-sidebar:not(.mobile-expanded) .filter-group,
    .artist-filters-sidebar:not(.mobile-expanded) form,
    .artist-filters-sidebar:not(.mobile-expanded) h3 { opacity: 0; transition: opacity 0.2s ease; }

    /* Full width form elements */
    .artist-filters-sidebar select,
    .artist-filters-sidebar input[type="text"] { font-size: 16px; padding: 12px; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
    .artist-filters-sidebar .filter-group { width: 100% !important; margin-bottom: 20px; }
    .artist-filters-sidebar form { width: 100% !important; }

    /* Content */
    .artist-content-area { width: 100% !important; max-width: 100% !important; flex: 1 !important; }
    .artists-grid { margin: 0; gap: 15px !important; padding: 0 !important; }
    .artist-card-link { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; margin: 0 !important; display: block !important; }
    .artists-grid[data-columns="2"] .artist-card-link,
    .artists-grid[data-columns="3"] .artist-card-link,
    .artists-grid[data-columns="4"] .artist-card-link { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
    .artist-card { width: 100% !important; margin: 0 !important; }
    .artist-results-header { flex-direction: column; gap: 15px; align-items: flex-start; }
}

@media (max-width: 480px) {
    .artistsaz-artist-display { padding: 15px 10px; }
    .mobile-artist-filter-toggle { height: 40px; padding: 0 16px; font-size: 13px; top: 15px; }
    .artist-filters-sidebar { padding: 15px; }
    .artist-filters-sidebar.mobile-expanded { padding: 15px; }
    .artists-grid { margin: 0; gap: 15px !important; }
    .artist-card-link { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; margin: 0 !important; }
    .artists-grid[data-columns="2"] .artist-card-link,
    .artists-grid[data-columns="3"] .artist-card-link,
    .artists-grid[data-columns="4"] .artist-card-link { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
    .artist-card { width: 100% !important; margin: 0 !important; }
    .artist-info { padding: 15px; }
}


/* ===== Artist Commission CTA (shortcode: [artist_commission_cta]) ===== */
.artist-commission-cta {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 40px 30px;
    text-align: center;
    background-color: #fff;
    margin: 20px 0;
}
.artist-commission-cta .connect-heading {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    margin: 0 0 8px 0;
    line-height: 1;
}
.artist-commission-cta .connect-description {
    font-size: 16px;
    color: #666;
    margin: 0 0 20px 0;
    line-height: 1.5;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}
.artist-commission-cta .connect-icons {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 20px;
}
.artist-commission-cta .connect-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid #3D1548;
    border-radius: 50%;
    color: #3D1548;
    text-decoration: none;
    font-size: 16px;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.artist-commission-cta .connect-icon:hover {
    background: #65246D;
    color: #ffffff;
    border-color: #65246D;
    transform: translateY(-1px);
}
.artist-commission-cta .connect-icon:focus {
    outline: 2px solid #5E0430;
    outline-offset: 2px;
}
.artist-commission-cta .connect-icon img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

/* Restore Font Awesome fonts inside CTA icons (safety override) */
.artist-commission-cta .connect-icon i[class*="fa"] {
    font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands", "FontAwesome" !important;
}
.artist-commission-cta .connect-icon i.fas {
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
}
.artist-commission-cta .connect-icon i.far {
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 400 !important;
}
.artist-commission-cta .connect-icon i.fab {
    font-family: "Font Awesome 5 Brands" !important;
    font-weight: 400 !important;
}

@media (max-width: 768px) {
    .artist-commission-cta { padding: 30px 20px; }
    .artist-commission-cta .connect-heading { font-size: 20px; }

    .artist-commission-cta .connect-description { font-size: 14px; }
}

/* ===== Artist Type Badge (shortcode: [artist_type_badge]) ===== */
.artist-type-badges { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.artist-type-badge {
    display: inline-block;
    padding: 6px 14px;
    background-color: #ffffff;
    color: #666666;
    font-size: 14px;
    font-weight: 400;
    border: 1px solid #e8e8e8;
    border-radius: 50px;
    text-transform: capitalize;
}

/* ===== Artwork Page Shortcode Styles (migrated from inline) ===== */

/* [artwork_gallery] Shortcode Styles */
.artwork-gallery-container {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.gallery-thumbnails {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex-shrink: 0;
}

.gallery-thumbnail {
    width: 80px;
    aspect-ratio: 1 / 1;
    border: 2px solid transparent;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.3s ease;
}

.gallery-thumbnail.active {
    border-color: #3D1548;
}

.gallery-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-main-image {
    flex: 1;
    max-width: 100%;
}

.main-image-container {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

.main-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.main-image.active {
    opacity: 1;
}

.image-counter {
    text-align: center;
    margin-top: 15px;
    color: #666;
    font-size: 14px;
}

/* Responsive adjustments for artwork gallery */
@media (max-width: 768px) {
    .artwork-gallery-container {
        flex-direction: column !important;
    }

    .gallery-thumbnails {
        flex-direction: row !important;
        justify-content: center;
        order: 2;
        margin-top: 15px;
    }

    .gallery-main-image {
        order: 1;
    }

    .main-image-container {
        aspect-ratio: 1 / 1 !important;
    }
}

@media (max-width: 480px) {
    .main-image-container {
        aspect-ratio: 1 / 1 !important;
    }

    .gallery-thumbnail {
        width: 60px !important;
        aspect-ratio: 1 / 1 !important;
    }
}

/* [artwork_description] Shortcode Styles */
.artwork-description-container {
    font-family: 'Inter', sans-serif;
    margin: 20px 0;
}

.artwork-description-text {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    margin-bottom: 12px;
}

.read-more-btn {
    background: none;
    border: none;
    color: #3D1548;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    transition: color 0.3s ease;
    font-family: 'Inter', sans-serif;
}

.read-more-btn:hover {
    color: #5E0430;
}

.read-more-btn:focus {
    outline: 2px solid #3D1548;
    outline-offset: 2px;
}

@media (max-width: 768px) {
    .artwork-description-text {
        font-size: 15px;
    }

    .read-more-btn {
        font-size: 13px;
    }
}

/* [more_from_artist] Shortcode Styles */
.more-from-artist-section {
    margin: 40px 0;
    font-family: 'Inter', sans-serif;
}

.more-from-artist-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.more-from-artist-title {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.more-from-artist-nav {
    display: flex;
    gap: 8px;
}

/* Ensure header spans full width and hide autop-inserted paragraphs/br that break spacing */
.more-from-artist-header { width: 100%; }
.more-from-artist-header > p { display: none !important; }
.more-from-artist-header br { display: none !important; }
/* Push nav fully to the right even if extra nodes appear */
.more-from-artist-nav { margin-left: auto; }


.nav-btn {
    width: 40px;
    height: 40px;
    border: 1px solid #ddd;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: #666;
}

.nav-btn:hover {
    background: #f5f5f5;
    border-color: #3D1548;
    color: #3D1548;
}

.nav-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.more-from-artist-container {
    overflow: hidden;
    position: relative;
}

.more-from-artist-grid {
    display: flex;
    gap: 20px;
    transition: transform 0.3s ease;
    will-change: transform;
}

.more-from-artist-card {
    flex: 0 0 300px;
    background: white;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.more-from-artist-card:hover {
    transform: translateY(-4px);
}

.artwork-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.artwork-image-container {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f8f9fa;
    position: relative;
}

.artwork-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.more-from-artist-card:hover .artwork-image-container img {
    transform: scale(1.05);
}

.artwork-info {
    padding: 12px;
}

.artwork-title {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin: 0 0 0 0;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.artwork-medium {
    font-size: 14px;
    color: #666;
    margin: 0 0 0 0;
    line-height: 1;
}

.artwork-price {
    font-size: 16px;
    font-weight: 600;
    color: #3D1548;
    margin: 0;
}

/* Responsive Design for more_from_artist */
@media (max-width: 768px) {
    .more-from-artist-card {
        flex: 0 0 250px;
    }

    .more-from-artist-title {
        font-size: 20px;
    }

    .artwork-image-container {
        height: 180px;
    }
}

@media (max-width: 480px) {
    .more-from-artist-card {
        flex: 0 0 220px;
    }

    .artwork-info {
        padding: 10px;
    }

    .artwork-title {
        font-size: 14px;
    }
}

/* [artist_profile_section] Shortcode Styles */
.artist-profile-section {
    font-family: 'Inter', sans-serif;
    margin: 40px 0;
    padding: 0;
}

.artist-profile-header {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 20px;
}

.artist-image-container {
    flex-shrink: 0;
}

.artist-profile-image {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.artist-profile-image:hover {
    transform: scale(1.05);
}

.artist-profile-section .artist-info {
    flex: 1;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
}

.artist-name-location {
    flex: 1;
}

.artist-name {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    margin: 0 0 4px 0;
    line-height: 1.2;
}

.artist-name a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s ease;
}

.artist-name a:hover {
    color: #3D1548;
}

.artist-summary {
    font-size: 15px;
    color: #555;
    margin: 2px 0 4px 0;
    line-height: 1.3;
    font-weight: 500;
}

.artist-location {
    font-size: 14px;
    color: #666;
    margin: 0;
    line-height: 1.4;
}

.view-profile-btn {
    background: white;
    border: 2px solid #ddd;
    color: #333;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.3s ease;
    white-space: nowrap;
    font-family: 'Inter', sans-serif;
}

.view-profile-btn:hover {
    border-color: #3D1548;
    color: #3D1548;
    background: #f8f9fa;
}

/* Neutralize wpautop wrappers inside artist profile header so layout stays on one row */
.artist-profile-header > p,
.artist-profile-header br {
  display: none !important;
}

/* CRITICAL: Force p wrapper around the button to use display: contents so flex row layout works */
.artist-info > p {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}

/* Push the View Profile button to the far right within the header row */
.artist-info .view-profile-btn {
  margin-left: auto;
}

/* Default collapsed state for full description; JS toggles visibility */
.artist-description .description-full { display: none; }

.artist-description {
    margin-top: 20px;
}


.artist-description p {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    margin: 0 0 12px 0;
}

.artist-read-more-btn {
    background: none;
    border: none;
    color: #3D1548;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    transition: color 0.3s ease;
    font-family: 'Inter', sans-serif;
}

.artist-read-more-btn:hover {
    color: #5E0430;
}

.artist-read-more-btn:focus {
    outline: 2px solid #3D1548;
    outline-offset: 2px;
}

/* Responsive Design for artist_profile_section */
@media (max-width: 768px) {
    .artist-profile-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 16px;
    }

    .artist-info {
        flex-direction: column;
        align-items: center;
        gap: 12px;
        width: 100%;
    }

    .artist-info .view-profile-btn {
        margin-left: 0;
        margin-top: 2px;
    }

    .artist-name { font-size: 20px; }
    .artist-summary { font-size: 14px; }
    .artist-location { font-size: 13px; }
    .artist-description p { font-size: 15px; }
}

@media (max-width: 480px) {
    .artist-profile-image {
        width: 70px;
        height: 70px;
    }

    .artist-name {
        font-size: 18px;
    }

    .view-profile-btn {
        padding: 8px 16px;
        font-size: 13px;
    }
}

/* [more_art_like_this] Shortcode Styles */
.more-art-like-this-section {
    margin: 40px 0;
    font-family: 'Inter', sans-serif;
}

.more-art-like-this-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.more-art-like-this-title {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.more-art-like-this-nav {
    display: flex;
    gap: 8px;
}

/* Ensure similar-art header spans full width and hide autop-inserted wrappers */
.more-art-like-this-header { width: 100%; }
.more-art-like-this-header > p { display: none !important; }
.more-art-like-this-header br { display: none !important; }
/* Push nav fully to the right */
.more-art-like-this-nav { margin-left: auto; }


.prev-btn-similar,
.next-btn-similar {
    width: 40px;
    height: 40px;
    border: 1px solid #ddd;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: #666;
}

.prev-btn-similar:hover,
.next-btn-similar:hover {
    background: #f5f5f5;
    border-color: #3D1548;
    color: #3D1548;
}

.prev-btn-similar:disabled,
.next-btn-similar:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.more-art-like-this-container {
    overflow: hidden;
    position: relative;
}

.more-art-like-this-grid {
    display: flex;
    gap: 20px;
    transition: transform 0.3s ease;
    will-change: transform;
}

.more-art-like-this-card {
    flex: 0 0 300px;
    background: white;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.more-art-like-this-card:hover {
    transform: translateY(-4px);
}

.more-art-like-this-card .artwork-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.more-art-like-this-card .artwork-image-container {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f8f9fa;
    position: relative;
}

.more-art-like-this-card .artwork-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.more-art-like-this-card:hover .artwork-image-container img {
    transform: scale(1.05);
}

.more-art-like-this-card .artwork-info {
    padding: 12px;
}

.more-art-like-this-card .artwork-title {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin: 0 0 0 0;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.more-art-like-this-card .artwork-medium {
    font-size: 14px;
    color: #666;
    margin: 0 0 0 0;
    line-height: 1;
}

.more-art-like-this-card .artwork-price {
    font-size: 16px;
    font-weight: 600;
    color: #3D1548;
    margin: 0;
}

/* Responsive Design for more_art_like_this */
@media (max-width: 768px) {
    .more-art-like-this-card {
        flex: 0 0 250px;
    }

    .more-art-like-this-title {
        font-size: 20px;
    }

    .more-art-like-this-card .artwork-image-container {
        height: 180px;
    }
}

@media (max-width: 480px) {
    .more-art-like-this-card {
        flex: 0 0 220px;
    }

    .more-art-like-this-card .artwork-info {
        padding: 10px;
    }

    .more-art-like-this-card .artwork-title {
        font-size: 14px;
    }
}

/* ===== Newsletter Subscribe Form (shortcode: [newsletter_subscribe]) ===== */
.newsletter-subscribe-form {
    max-width: 600px;
    margin: 0 auto;
    padding: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

.newsletter-form {
    width: 100%;
}

.newsletter-input-group {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.newsletter-email-input {
    flex: 1;
    padding: 14px 18px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    color: #333;
    background: #fff;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.newsletter-email-input:focus {
    outline: none;
    border-color: #65246D;
    box-shadow: 0 0 0 3px rgba(101, 36, 109, 0.1);
}

.newsletter-email-input::placeholder {
    color: #999;
    font-style: italic;
}

.newsletter-submit-btn {
    background: #65246D;
    color: #ffffff;
    border: none;
    padding: 14px 24px;
    font-size: 18px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 4px;
    white-space: nowrap;
    min-width: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.newsletter-submit-btn i {
    margin: 0;
}

.newsletter-submit-btn:hover {
    background: #3D1449;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(61, 20, 73, 0.3);
}

.newsletter-submit-btn:active {
    transform: translateY(0);
}

.newsletter-submit-btn:disabled {
    background: #999;
    cursor: not-allowed;
    transform: none;
}

.newsletter-message {
    margin-top: 16px;
    padding: 12px 18px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
}

.newsletter-message.success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.newsletter-message.error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* Responsive Design for Newsletter Form */
@media (max-width: 768px) {
    .newsletter-input-group {
        flex-direction: column;
        gap: 10px;
    }

    .newsletter-email-input,
    .newsletter-submit-btn {
        width: 100%;
    }

    .newsletter-submit-btn {
        padding: 14px 24px;
    }
}

@media (max-width: 480px) {
    .newsletter-email-input {
        padding: 12px 16px;
        font-size: 14px;
    }

    .newsletter-submit-btn {
        padding: 12px 20px;
        font-size: 14px;
    }
}
