/*
Theme Name: AdamStudios Theme
Theme URI: https://adamstudios.art
Author: The Duumvirati
Author URI: https://adamstudios.art
Description: Dark-theme art gallery for AdamStudios. Mobile-first responsive design with WooCommerce integration. CSS-only — no logic, no code rewrites.
Version: 4.1.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Requires at least: 5.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: adamstudios-theme
*/

/* =========================================================================
   CSS CUSTOM PROPERTIES (Design System)
   ========================================================================= */

:root {
    /* Colors */
    --as-bg:             #1a1a1a;
    --as-bg-light:       #242424;
    --as-bg-card:        #2a2a2a;
    --as-text:           #ffffff;
    --as-text-light:     #e0e0e0;
    --as-text-muted:     #999999;
    --as-accent-gold:    #d4a574;
    --as-accent-gold-hover: #e0b88a;
    --as-accent-blue:    #4a7ba7;
    --as-accent-blue-hover: #5a8db9;
    --as-border:         #333333;
    --as-badge-bg:       #555555;
    --as-badge-text:     #ffffff;
    --as-overlay:        rgba(0, 0, 0, 0.6);
    --as-collected-bg:   #3a3a3a;

    /* Typography */
    --as-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    --as-font-size-base: clamp(1rem, 0.9rem + 0.25vw, 1.25rem);
    --as-font-size-sm: clamp(0.85rem, 0.8rem + 0.2vw, 1rem);
    --as-font-size-lg: clamp(1.25rem, 1.1rem + 0.5vw, 1.75rem);
    --as-font-size-xl: clamp(1.5rem, 1.3rem + 0.75vw, 2.25rem);
    --as-font-size-xxl: clamp(2rem, 1.6rem + 1vw, 3rem);
    --as-line-height: 1.6;

    /* Spacing */
    --as-space-xs: 0.5rem;
    --as-space-sm: 0.75rem;
    --as-space-md: 1rem;
    --as-space-lg: 1.5rem;
    --as-space-xl: 2rem;
    --as-space-xxl: 3rem;

    /* Layout */
    --as-max-width: 1400px;
    --as-sidebar-width: 400px;

    /* Transitions */
    --as-transition: 0.2s ease;

    /* Borders */
    --as-radius: 4px;
    --as-radius-lg: 8px;
}

/* =========================================================================
   RESET & BASE
   ========================================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--as-font-family);
    font-size: var(--as-font-size-base);
    line-height: var(--as-line-height);
    color: var(--as-text);
    background: var(--as-bg) url('site-background.jpg') center center / cover no-repeat fixed;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

/* 65% dark overlay on background texture */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.65);
    z-index: -1;
    pointer-events: none;
}

/* iOS does not support background-attachment: fixed — falls back to scroll, which is fine */
@supports (-webkit-touch-callout: none) {
    body {
        background-attachment: scroll;
    }
}

/* Hide WordPress admin bar and remove the 32px top offset it creates */
#wpadminbar {
    display: none !important;
}

html {
    margin-top: 0 !important;
}

body.admin-bar {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

a {
    color: var(--as-accent-gold);
    text-decoration: none;
    transition: color var(--as-transition);
}

a:hover,
a:focus {
    color: var(--as-accent-gold-hover);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

h1, h2, h3, h4, h5, h6 {
    margin: 0 0 var(--as-space-md);
    font-weight: 700;
    line-height: 1.2;
    color: var(--as-text);
}

h1 { font-size: var(--as-font-size-xxl); }
h2 { font-size: var(--as-font-size-xl); }
h3 { font-size: var(--as-font-size-lg); }

p {
    margin: 0 0 var(--as-space-md);
    color: var(--as-text-light);
}

/* =========================================================================
   LAYOUT CONTAINER
   ========================================================================= */

.adamstudios-container,
.site-content,
.woocommerce {
    width: 100%;
    max-width: var(--as-max-width);
    margin: 0 auto;
    padding: 0 var(--as-space-md);
}

/* =========================================================================
   PAGE TITLES (regular pages: Contact, Originals, Prints, etc.)
   ========================================================================= */

.entry-header {
    text-align: center;
    padding: var(--as-space-sm) 0 var(--as-space-sm);
}

.entry-title {
    font-size: var(--as-font-size-xxl);
    letter-spacing: 0.03em;
    margin: 0;
}

/* Homepage: kill any gap from article/entry-content above the first section */
.home .entry-header {
    display: none;
}

.home article {
    padding: 0 !important;
    margin: 0 !important;
}

/* =========================================================================
   WOOCOMMERCE PAGE TITLES (Gallery/Shop, product archives)
   ========================================================================= */

.woocommerce-products-header {
    text-align: center;
    padding: var(--as-space-sm) var(--as-space-md) 0;
}

.woocommerce-products-header__title,
.woocommerce-products-header .page-title,
.woocommerce .page-title {
    font-size: var(--as-font-size-xxl) !important;
    letter-spacing: 0.03em;
    margin: 0 0 var(--as-space-xs);
    text-align: center !important;
    font-weight: 700;
    font-style: normal;
}

/* Result count and ordering — put on same row */
.woocommerce .woocommerce-result-count {
    color: var(--as-text-muted);
    font-size: var(--as-font-size-sm);
    margin: 0;
}

.woocommerce .woocommerce-ordering {
    margin: 0;
}

.woocommerce .woocommerce-ordering select {
    background-color: var(--as-bg-card);
    color: var(--as-text);
    border: 1px solid var(--as-border);
    padding: var(--as-space-xs) var(--as-space-sm);
    font-size: var(--as-font-size-sm);
    border-radius: var(--as-radius);
}

/* =========================================================================
   HEADER & NAVIGATION
   ========================================================================= */

.site-header {
    background-color: var(--as-bg);
    border-bottom: 1px solid var(--as-border);
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 0;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

/* Homepage: no border — images flush against header */
.home .site-header {
    border-bottom: none;
}

.site-header .adamstudios-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--as-space-lg) !important;
    max-width: none;
    margin: 0;
    min-height: 56px;
}

.site-branding {
    flex-shrink: 0;
}

.site-title {
    font-size: var(--as-font-size-lg);
    margin: 0;
    padding: 0;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1;
}

.site-title a {
    color: var(--as-text);
}

.site-title a:hover {
    color: var(--as-accent-gold);
}

/* Navigation */
.main-navigation {
    display: none; /* Hidden on mobile by default */
}

.main-navigation.active {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--as-bg);
    border-bottom: 1px solid var(--as-border);
    padding: var(--as-space-md);
    z-index: 999;
}

.main-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--as-space-sm);
    align-items: flex-end;
}

.main-navigation a {
    color: var(--as-text-light);
    font-size: var(--as-font-size-sm);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: var(--as-space-sm) 0;
    display: block;
    transition: color var(--as-transition);
}

.main-navigation a:hover,
.main-navigation .current-menu-item a {
    color: var(--as-accent-gold);
}

/* Mobile menu toggle */
.menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid var(--as-border);
    color: var(--as-text);
    padding: var(--as-space-xs) var(--as-space-sm);
    cursor: pointer;
    font-size: var(--as-font-size-sm);
    border-radius: var(--as-radius);
    min-width: 48px;
    min-height: 48px;
}

.menu-toggle:hover {
    border-color: var(--as-accent-gold);
    color: var(--as-accent-gold);
}

/* Desktop navigation */
@media (min-width: 769px) {
    .menu-toggle {
        display: none;
    }

    .main-navigation {
        display: block;
    }

    .main-navigation ul {
        flex-direction: row;
        gap: var(--as-space-xl);
        align-items: center;
    }

    .main-navigation a {
        padding: 0;
        line-height: 1;
    }
}

/* =========================================================================
   HEADER CART ICON
   ========================================================================= */

.adamstudios-header-cart {
    position: relative;
    display: flex;
    align-items: center;
    color: var(--as-text-light);
    transition: color var(--as-transition);
    flex-shrink: 0;
    margin-left: var(--as-space-lg);
}

.adamstudios-header-cart:hover {
    color: var(--as-accent-gold);
}

.adamstudios-cart-icon {
    width: 22px;
    height: 22px;
}

.adamstudios-cart-count {
    position: absolute;
    top: -8px;
    right: -10px;
    background: var(--as-accent-gold);
    color: var(--as-bg);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    pointer-events: none;
}

/* =========================================================================
   FOOTER
   ========================================================================= */

.site-footer {
    background-color: var(--as-bg);
    border-top: 1px solid var(--as-border);
    padding: var(--as-space-xs) 0;
    margin-top: var(--as-space-lg);
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

.footer-content {
    max-width: var(--as-max-width);
    margin: 0 auto;
    padding: 0 var(--as-space-md);
    text-align: center;
}

.footer-nav {
    margin-bottom: var(--as-space-xs);
}

.footer-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--as-space-md);
}

.footer-nav a {
    color: var(--as-text-muted);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.footer-nav a:hover {
    color: var(--as-accent-gold);
}

.site-info {
    color: var(--as-text-muted);
    font-size: 0.7rem;
}

.site-info p {
    margin: 0;
}

/* =========================================================================
   WOOCOMMERCE: SHOP / GALLERY GRID
   ========================================================================= */

.woocommerce ul.products {
    display: block !important;
    column-count: 1;
    column-gap: 10px;
    list-style: none;
    margin: 0;
    padding: 10px;
}

/* Kill WooCommerce clearfix pseudo-elements */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none !important;
    content: none !important;
}

/* 2 columns at 480px+ */
@media (min-width: 480px) {
    .woocommerce ul.products {
        column-count: 2;
    }
}

/* 3 columns at tablet */
@media (min-width: 769px) {
    .woocommerce ul.products {
        column-count: 3;
    }
}

/* 4 columns at desktop */
@media (min-width: 1201px) {
    .woocommerce ul.products {
        column-count: 4;
    }
}

/* Individual product card in grid */
.woocommerce ul.products li.product {
    background-color: var(--as-bg-card);
    border-radius: var(--as-radius);
    overflow: hidden;
    transition: transform var(--as-transition), box-shadow var(--as-transition);
    position: relative;
    float: none !important;
    width: 100% !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    display: inline-block;
    break-inside: avoid;
}

.woocommerce ul.products li.product:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    z-index: 2;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
    color: var(--as-text);
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    border-radius: 0;
    margin: 0 !important;
    padding: 0 !important;
    display: block;
}

/* Homepage sliders: keep 4:5 crop for uniform appearance */
.adamstudios-home-section .woocommerce ul.products li.product a img,
.adamstudios-home-section .woocommerce ul.products li.product img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: var(--as-font-size-sm);
    padding: var(--as-space-xs) var(--as-space-sm);
    margin: 0;
    color: var(--as-text);
    font-weight: 600;
    text-align: center;
}

.woocommerce ul.products li.product .price {
    display: none;
}

.woocommerce ul.products li.product .price del {
    color: var(--as-text-muted);
    opacity: 0.6;
}

/* Hide default Add to Cart button in loop */
.woocommerce ul.products li.product .button {
    display: none;
}

/* =========================================================================
   COLLECTED BADGE (in product loop)
   ========================================================================= */

/* Collected badge — subtle grey text below the title */
.adamstudios-collected-badge {
    display: block;
    text-align: center;
    color: #888;
    font-size: 0.7rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 0 var(--as-space-sm) var(--as-space-xs);
    margin: 0;
}

/* Grey border on collected product cards */
.woocommerce ul.products li.product:has(.adamstudios-collected-badge) {
    border: 1px solid #555;
}

/* =========================================================================
   GALLERY FILTER DROPDOWN
   ========================================================================= */

.adamstudios-gallery-filter {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: var(--as-space-md) 0;
    max-width: var(--as-max-width);
    margin: 0 auto;
}

.adamstudios-gallery-filter select {
    background-color: var(--as-bg-card);
    color: var(--as-text);
    border: 1px solid var(--as-border);
    padding: var(--as-space-sm) var(--as-space-md);
    font-size: var(--as-font-size-sm);
    font-family: var(--as-font-family);
    border-radius: var(--as-radius);
    cursor: pointer;
    min-height: 48px;
    min-width: 200px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

.adamstudios-gallery-filter select:hover,
.adamstudios-gallery-filter select:focus {
    border-color: var(--as-accent-gold);
    outline: none;
}

/* =========================================================================
   WOOCOMMERCE: SINGLE PRODUCT PAGE
   
   Layout (desktop): two columns via CSS grid
     Left:  title, status, image
     Right: price, purchase options, additional info (tabs)
   Layout (mobile): single column, same order
   ========================================================================= */

.single-product .product {
    padding: var(--as-space-xl) 0;
}

/* Title + status render before gallery via hooks */
.single-product .product > .product_title {
    margin-bottom: var(--as-space-xs);
}

.single-product .product > .adamstudios-status-collected,
.single-product .product > .adamstudios-status-available {
    margin-bottom: var(--as-space-md);
}

/* Mobile: stacked layout (default) */
.single-product .woocommerce-product-gallery {
    width: 100%;
    margin-bottom: var(--as-space-xl);
}

.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    border-radius: var(--as-radius-lg);
}

.single-product .entry-summary {
    width: 100%;
    display: flex;
    flex-direction: column;
}

/* Flex ordering within summary column: description first, then purchase options */
.single-product .entry-summary .woocommerce-tabs { order: 1; margin-top: 0; clear: none; width: 100%; }
.single-product .entry-summary .price { order: 2; }
.single-product .entry-summary form.cart { order: 3; }
.single-product .entry-summary .adamstudios-purchase-row { order: 4; }
.single-product .entry-summary .adamstudios-payment-icons { order: 5; }
.single-product .entry-summary .adamstudios-bnpl-messaging { order: 6; }
.single-product .entry-summary .woocommerce-product-details__short-description { order: 7; }

/* Override WooCommerce layout.css float-based product layout.
   WooCommerce sets float:left/right + width:48% on .images and .summary.
   We use grid instead, so these must be neutralized. !important needed
   because woocommerce-layout.css loads after the theme stylesheet. */
.woocommerce.single-product div.product div.images,
.woocommerce.single-product div.product div.summary {
    float: none !important;
    width: 100% !important;
}
.woocommerce.single-product div.product .woocommerce-tabs {
    clear: none !important;
}

/* Desktop: two-column grid */
@media (min-width: 769px) {
    .single-product div.product {
        display: grid;
        grid-template-columns: 3fr 2fr;
        gap: 0 var(--as-space-xxl);
        align-items: start;
    }

    /* Left column: title, status, gallery — all pinned to column 1 */
    .single-product .product > .product_title,
    .single-product .product > .adamstudios-status-collected,
    .single-product .product > .adamstudios-status-available,
    .single-product .woocommerce-product-gallery {
        grid-column: 1;
    }

    .single-product .woocommerce-product-gallery {
        position: relative;
        margin-bottom: 0;
    }

    /* Right column: summary spans all rows */
    .single-product .entry-summary {
        grid-column: 2;
        grid-row: 1 / span 20;
    }

    /* Related products: full width below both columns */
    .single-product .product > .related.products {
        grid-column: 1 / -1;
    }
}

/* Product title */
.single-product .product_title {
    font-size: var(--as-font-size-xl);
    margin-bottom: var(--as-space-md);
    color: var(--as-text);
}

/* Product price — hidden on single product pages */
.single-product .entry-summary .price,
.single-product .entry-summary > .price,
.single-product .entry-summary p.price,
.single-product .summary .price {
    display: none !important;
}



/* Express checkout / payment buttons — hidden on product pages */
.single-product #wc-stripe-payment-request-wrapper,
.single-product .wc-block-components-express-payment,
.single-product .woocommerce-checkout-payment,
.single-product .woopay-express-button,
.single-product [id*="express-payment"],
.single-product [class*="express-checkout"],
.single-product [class*="wc-block-components-express"],
.single-product .wc_ppcp_express_checkout,
.single-product [class*="ppcp-button"],
.single-product [class*="paypal-button"],
.single-product [class*="venmo-button"],
.single-product .wc-stripe-payment-request-button-separator,
.single-product .gpay-button-container,
.single-product .apple-pay-button-container,
.single-product .wc-block-components-product-sale-badge,
.single-product [id*="ppcp"],
.single-product [id*="paypal"],
.single-product iframe[title*="PayPal"],
.single-product iframe[title*="Venmo"] {
    display: none !important;
}

/* Payment method icons strip */
.adamstudios-payment-icons {
    display: block;
    width: 100%;
    margin: var(--as-space-sm) 0 0;
}

.adamstudios-payment-link {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    text-decoration: none;
    opacity: 0.75;
    transition: opacity var(--as-transition);
}

.adamstudios-payment-link:hover {
    opacity: 1;
}

.adamstudios-payment-icon {
    display: inline-block;
    flex: 1;
    height: 36px;
}

.adamstudios-payment-icon svg {
    width: 100%;
    height: 100%;
    border-radius: 4px;
}

/* BNPL installment messaging — subtle line below payment icons */
.adamstudios-bnpl-messaging {
    display: block;
    width: 100%;
    margin: var(--as-space-xs) 0 0;
    text-align: center;
}

.adamstudios-bnpl-link {
    color: var(--as-text-light);
    font-size: 0.75rem;
    text-decoration: none;
    opacity: 0.6;
    transition: opacity var(--as-transition);
    letter-spacing: 0.02em;
}

.adamstudios-bnpl-link:hover {
    opacity: 0.9;
    color: var(--as-text);
    text-decoration: none;
}

.adamstudios-bnpl-link strong {
    font-weight: 600;
    color: var(--as-text);
}

/* Make the WooCommerce cart form full width */
.single-product .entry-summary form.cart {
    display: block;
    width: 100%;
    margin: 0 0 var(--as-space-sm);
}

/* Hide the quantity input */
.single-product .entry-summary form.cart .quantity {
    display: none;
}

/* Purchase row (cross-link button) — full width to match */
.adamstudios-purchase-row {
    display: block;
    width: 100%;
    margin: 0 0 var(--as-space-sm);
}

/* Product description */
.single-product .woocommerce-product-details__short-description {
    color: var(--as-text-light);
    margin-bottom: var(--as-space-lg);
    line-height: 1.8;
}

/* =========================================================================
   ADD TO CART BUTTON STYLING
   ========================================================================= */

/* Base button style */
.single-product .single_add_to_cart_button {
    display: block;
    width: 100%;
    padding: var(--as-space-md) var(--as-space-lg);
    font-size: var(--as-font-size-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: none;
    border-radius: var(--as-radius);
    cursor: pointer;
    transition: all var(--as-transition);
    text-align: center;
    min-height: 48px;
}

/* ORIGINAL: Neutral dark button (matches print button) */
.adamstudios-original .single_add_to_cart_button {
    background-color: #333;
    color: var(--as-text);
    border: 1px solid #555;
}

.adamstudios-original .single_add_to_cart_button:hover {
    background-color: #444;
    border-color: #777;
    transform: translateY(-2px);
}

/* COLLECTED: Hide entire add-to-cart form */
.adamstudios-collected .cart,
.adamstudios-collected form.cart,
.adamstudios-collected .single_add_to_cart_button,
.adamstudios-collected .quantity {
    display: none !important;
}

/* Collected price display */
.adamstudios-collected-price {
    font-size: var(--as-font-size-lg);
    color: var(--as-text-muted);
    margin-bottom: var(--as-space-sm);
}

.adamstudios-collected-price strong {
    color: var(--as-accent-gold);
}

/* PRINT: Matching neutral dark button */
.adamstudios-print .single_add_to_cart_button {
    background-color: #333;
    color: var(--as-text);
    border: 1px solid #555;
}

.adamstudios-print .single_add_to_cart_button:hover {
    background-color: #444;
    border-color: #777;
    transform: translateY(-2px);
}

/* Quantity input styling */
.single-product .quantity .qty {
    background-color: var(--as-bg-card);
    color: var(--as-text);
    border: 1px solid var(--as-border);
    padding: var(--as-space-sm);
    width: 60px;
    text-align: center;
    border-radius: var(--as-radius);
    font-size: var(--as-font-size-base);
    min-height: 48px;
}

/* =========================================================================
   CROSS-LINK BUTTONS
   ========================================================================= */

.adamstudios-cross-link {
    margin-top: var(--as-space-lg);
}

.adamstudios-cross-link-btn {
    display: block;
    width: 100%;
    padding: var(--as-space-md) var(--as-space-lg);
    font-size: var(--as-font-size-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--as-radius);
    transition: all var(--as-transition);
    text-align: center;
    min-height: 48px;
    line-height: normal;
    text-decoration: none;
    box-sizing: border-box;
}

.adamstudios-btn-print {
    background-color: #333;
    color: var(--as-text);
    border: 1px solid #555;
}

.adamstudios-btn-print:hover {
    background-color: #444;
    border-color: #777;
    color: var(--as-text);
    transform: translateY(-2px);
}

.adamstudios-btn-original {
    background-color: #333;
    color: var(--as-text);
    border: 1px solid #555;
}

.adamstudios-btn-original:hover {
    background-color: #444;
    border-color: #777;
    color: var(--as-text);
    transform: translateY(-2px);
}

/* =========================================================================
   PRODUCT PAGE: Collected and Available status labels
   ========================================================================= */

/* "Collected" status label — shown above price on original product pages */
.adamstudios-status-collected {
    color: var(--as-accent-gold);
    font-weight: 700;
    font-size: var(--as-font-size-lg);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 var(--as-space-xs);
}

/* "Available" status label — shown above price */
.adamstudios-status-available {
    color: #4caf50;
    font-weight: 700;
    font-size: var(--as-font-size-lg);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 var(--as-space-xs);
}

/* Hide WooCommerce default stock/availability text — we show our own */
.single-product .stock {
    display: none !important;
}

/* WooCommerce meta (categories, tags) on product pages — hide for cleaner look */
.single-product .product_meta {
    display: none;
}

/* =========================================================================
   PROCESS VIDEO EMBED
   ========================================================================= */

.adamstudios-video-section {
    width: 100%;
    max-width: 540px;
    margin: var(--as-space-xl) auto 0;
    padding-top: var(--as-space-lg);
    clear: both;
}

.adamstudios-video-container {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: var(--as-radius-lg);
}

/* Vimeo / YouTube — 16:9 responsive */
.adamstudios-video-container.adamstudios-video-landscape {
    padding-bottom: 56.25%;
    height: 0;
    background: #000;
}

.adamstudios-video-container.adamstudios-video-landscape iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* Instagram — fluid height, let the embed breathe */
.adamstudios-video-container.adamstudios-video-instagram {
    background: transparent;
}

.adamstudios-video-container.adamstudios-video-instagram iframe {
    width: 100%;
    min-height: 80vw;
    max-height: 85vh;
    border: none;
}

/* Native self-hosted video — clean, no chrome */
.adamstudios-video-container.adamstudios-video-native {
    background: transparent;
}

.adamstudios-video-container.adamstudios-video-native video {
    width: 100%;
    display: block;
    border-radius: var(--as-radius-lg);
}

/* Facebook — responsive with min height */
.adamstudios-video-container.adamstudios-video-facebook {
    background: #000;
}

.adamstudios-video-container.adamstudios-video-facebook iframe {
    width: 100%;
    min-height: 300px;
    border: none;
}

/* Tablet */
@media (min-width: 769px) {
    .adamstudios-video-container.adamstudios-video-instagram iframe {
        min-height: 620px;
        max-height: none;
    }

    .adamstudios-video-container.adamstudios-video-facebook iframe {
        min-height: 360px;
    }
}

/* Mobile — full width, scale to screen */
@media (max-width: 768px) {
    .adamstudios-video-section {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }
}

/* =========================================================================
   RELATED PRODUCTS
   ========================================================================= */

.single-product .related.products {
    margin-top: var(--as-space-xxl);
    padding-top: var(--as-space-xxl);
    border-top: 1px solid var(--as-border);
    clear: both;
    width: 100%;
}

.single-product .related.products > h2 {
    font-size: var(--as-font-size-lg);
    margin-bottom: var(--as-space-lg);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.single-product .related.products ul.products {
    display: grid !important;
    column-count: auto !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

@media (min-width: 769px) {
    .single-product .related.products ul.products {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Related product cards — override masonry inline-block */
.single-product .related.products ul.products li.product {
    display: block !important;
    break-inside: auto !important;
    margin: 0 !important;
    width: auto !important;
}

/* Related product images — 4:5 crop for uniform grid */
.single-product .related.products ul.products li.product a img,
.single-product .related.products ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    display: block !important;
}

/* =========================================================================
   WOOCOMMERCE: CART & CHECKOUT
   ========================================================================= */

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
    color: var(--as-text);
}

.woocommerce table.shop_table {
    background-color: var(--as-bg-card);
    border-color: var(--as-border);
    border-radius: var(--as-radius-lg);
    overflow: hidden;
}

.woocommerce table.shop_table th {
    background-color: var(--as-bg-light);
    color: var(--as-text);
    border-color: var(--as-border);
}

.woocommerce table.shop_table td {
    color: var(--as-text-light);
    border-color: var(--as-border);
}

.woocommerce .button,
.woocommerce input[type="submit"] {
    background-color: var(--as-accent-gold);
    color: #000000;
    border: none;
    padding: var(--as-space-sm) var(--as-space-lg);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--as-radius);
    cursor: pointer;
    transition: all var(--as-transition);
    min-height: 48px;
}

.woocommerce .button:hover,
.woocommerce input[type="submit"]:hover {
    background-color: var(--as-accent-gold-hover);
    transform: translateY(-2px);
}

/* Form inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    background-color: var(--as-bg-card);
    color: var(--as-text);
    border: 1px solid var(--as-border);
    padding: var(--as-space-sm) var(--as-space-md);
    border-radius: var(--as-radius);
    font-family: var(--as-font-family);
    font-size: var(--as-font-size-base);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--as-accent-gold);
    outline: none;
}

.woocommerce form .form-row label {
    color: var(--as-text-light);
}

/* =========================================================================
   NOTICES & MESSAGES
   ========================================================================= */

.woocommerce-message,
.woocommerce-info {
    background-color: var(--as-bg-card);
    border-top-color: var(--as-accent-gold);
    color: var(--as-text-light);
}

.woocommerce-error {
    background-color: var(--as-bg-card);
    border-top-color: #c0392b;
    color: var(--as-text-light);
}

/* =========================================================================
   BREADCRUMBS
   ========================================================================= */

.woocommerce-breadcrumb {
    color: var(--as-text-muted);
    font-size: var(--as-font-size-sm);
    margin-bottom: var(--as-space-lg);
    padding: var(--as-space-md) 0;
}

.woocommerce-breadcrumb a {
    color: var(--as-text-muted);
}

.woocommerce-breadcrumb a:hover {
    color: var(--as-accent-gold);
}

/* =========================================================================
   PRODUCT TABS (WooCommerce default)
   ========================================================================= */

.woocommerce-tabs {
    margin-top: var(--as-space-lg);
}

.woocommerce-tabs .tabs {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--as-border);
}

.woocommerce-tabs .tabs li {
    margin: 0;
}

.woocommerce-tabs .tabs li a {
    display: block;
    padding: var(--as-space-sm) var(--as-space-lg);
    color: var(--as-text-muted);
    font-size: var(--as-font-size-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid transparent;
    transition: all var(--as-transition);
}

.woocommerce-tabs .tabs li.active a {
    color: var(--as-accent-gold);
    border-bottom-color: var(--as-accent-gold);
}

.woocommerce-tabs .panel {
    padding: var(--as-space-xl) 0;
    color: var(--as-text-light);
}

/* Hide redundant h2 inside tab panels — the tab heading already says it */
.woocommerce-tabs .panel > h2:first-child {
    display: none;
}

/* Product details section (replaces tabs) */
.adamstudios-product-details-section {
    margin-bottom: var(--as-space-lg);
}

.adamstudios-description {
    color: var(--as-text-light);
    margin-bottom: var(--as-space-md);
}

.adamstudios-description p:last-child {
    margin-bottom: 0;
}

.adamstudios-medium {
    color: var(--as-text-muted);
    font-size: var(--as-font-size-sm);
    margin: 0;
}

/* =========================================================================
   PAGINATION
   ========================================================================= */

.woocommerce-pagination {
    padding: var(--as-space-xl) 0;
    text-align: center;
}

.woocommerce-pagination ul.page-numbers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: var(--as-space-xs);
}

.woocommerce-pagination .page-numbers li a,
.woocommerce-pagination .page-numbers li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    padding: var(--as-space-xs) var(--as-space-sm);
    background-color: var(--as-bg-card);
    color: var(--as-text-light);
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius);
    transition: all var(--as-transition);
}

.woocommerce-pagination .page-numbers li a:hover {
    background-color: var(--as-accent-gold);
    color: #000000;
    border-color: var(--as-accent-gold);
}

.woocommerce-pagination .page-numbers li span.current {
    background-color: var(--as-accent-gold);
    color: #000000;
    border-color: var(--as-accent-gold);
}

/* =========================================================================
   SALE BADGE (WooCommerce default — hide it, we use our own badge)
   ========================================================================= */

.woocommerce span.onsale {
    display: none;
    grid-column: 1;
}

/* =========================================================================
   STAR RATING (WooCommerce)
   ========================================================================= */

.woocommerce .star-rating {
    color: var(--as-accent-gold);
}

/* =========================================================================
   ZOOM LENS STYLING (for plugin desktop zoom)
   ========================================================================= */

.adamstudios-zoom-lens {
    cursor: zoom-in;
}

/* Product image hover cursor */
.single-product .woocommerce-product-gallery__image img {
    cursor: zoom-in;
}

/* Disable WooCommerce's lightbox trigger icon */
.woocommerce-product-gallery__trigger {
    display: none !important;
}

/* Disable WooCommerce's photoswipe lightbox overlay */
.pswp {
    display: none !important;
}

/* Prevent default WooCommerce zoom trigger indicator */
.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
    display: none;
}

/* =========================================================================
   ACCESSIBILITY
   ========================================================================= */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

:focus-visible {
    outline: 2px solid var(--as-accent-gold);
    outline-offset: 2px;
}

/* =========================================================================
   UTILITY CLASSES
   ========================================================================= */

.text-center { text-align: center; }
.text-muted { color: var(--as-text-muted); }
.mt-lg { margin-top: var(--as-space-lg); }
.mb-lg { margin-bottom: var(--as-space-lg); }

/* =========================================================================
   HOMEPAGE SECTIONS
   ========================================================================= */

.adamstudios-home-section {
    padding: 0;
    border-bottom: none;
    /* Full-bleed: break out of any parent container */
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
}

.adamstudios-home-section:last-child {
    border-bottom: none;
}

.adamstudios-home-section h2 {
    text-align: center;
    font-size: var(--as-font-size-xl);
    margin-bottom: var(--as-space-md);
    margin-top: 0;
    letter-spacing: 0.03em;
}

.adamstudios-home-section .section-subtitle {
    text-align: center;
    color: var(--as-text-muted);
    font-size: var(--as-font-size-base);
    max-width: 700px;
    margin: calc(-1 * var(--as-space-md)) auto var(--as-space-xl);
}

/* About section — full-bleed container, centered content */
.adamstudios-about {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--as-space-xxl) var(--as-space-lg);
}

.adamstudios-about h2 {
    text-align: left;
    font-size: var(--as-font-size-lg);
    margin-bottom: var(--as-space-lg);
}

.adamstudios-about p {
    color: var(--as-text-light);
    line-height: 1.8;
    margin-bottom: var(--as-space-md);
}

/* Homepage bio section — three columns: COLLECTED | bio | AVAILABLE */
.adamstudios-homepage-bio {
    display: flex;
    align-items: stretch;
    justify-content: center;
    max-width: 1000px;
    margin: 0 auto;
    padding: var(--as-space-xl) var(--as-space-md);
    gap: var(--as-space-lg);
}

.adamstudios-bio-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--as-space-sm);
    flex-shrink: 0;
    width: 50px;
}

.adamstudios-bio-label-left {
    justify-content: flex-start;
    padding-top: var(--as-space-xs);
}

.adamstudios-bio-label-right {
    justify-content: flex-end;
    padding-bottom: var(--as-space-xs);
}

.adamstudios-bio-label-left .adamstudios-bio-text {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    text-orientation: mixed;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--as-text-light);
    opacity: 0.7;
}

.adamstudios-bio-label-right .adamstudios-bio-text {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--as-text-light);
    opacity: 0.7;
}

.adamstudios-bio-arrow {
    font-size: 1.5rem;
    color: var(--as-text-light);
    opacity: 0.5;
}

.adamstudios-bio-content {
    flex: 1;
    max-width: 700px;
}

.adamstudios-bio-content p {
    color: var(--as-text-light);
    line-height: 1.8;
    margin: 0;
    font-size: 1.1rem;
}

/* Mobile: keep labels, slightly smaller */
@media (max-width: 768px) {
    .adamstudios-homepage-bio {
        padding: var(--as-space-lg) var(--as-space-xs);
        gap: var(--as-space-sm);
    }

    .adamstudios-bio-label {
        width: 30px;
    }

    .adamstudios-bio-label-left .adamstudios-bio-text,
    .adamstudios-bio-label-right .adamstudios-bio-text {
        font-size: 0.7rem;
        letter-spacing: 0.15em;
    }

    .adamstudios-bio-arrow {
        font-size: 1.2rem;
    }

    .adamstudios-bio-content p {
        font-size: 1rem;
    }
}

/* Product grid inside homepage sections — full bleed, edge-to-edge */
.adamstudios-home-section .woocommerce {
    max-width: 100%;
    padding: 0;
}

.adamstudios-home-section .woocommerce ul.products {
    padding: 0;
    gap: 0;
}

/* Homepage product grids: IMAGES ONLY — hide titles, prices, buttons */
.adamstudios-home-section .woocommerce ul.products li.product .woocommerce-loop-product__title,
.adamstudios-home-section .woocommerce ul.products li.product .price,
.adamstudios-home-section .woocommerce ul.products li.product .button,
.adamstudios-home-section .woocommerce ul.products li.product .star-rating,
.adamstudios-home-section .woocommerce ul.products li.product .adamstudios-collected-badge {
    display: none !important;
}

/* Front page: no extra padding on first section */
.home .entry-content > .adamstudios-home-section:first-child {
    padding-top: 0;
    margin-top: 0;
}

/* Homepage entry content — remove ALL padding for full-bleed sections */
.home .entry-content {
    padding: 0;
    max-width: 100%;
    margin-top: 0;
}

.home .adamstudios-container {
    max-width: 100%;
    padding: 0;
}

.home .site-main {
    padding: 0;
    margin: 0;
}

.home .site-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100%;
}

.home .site-footer {
    margin-top: 0;
}

/* HOMEPAGE GAP FIX: Kill every possible source of space between header and content */
.home #content,
.home #primary,
.home .site-main,
.home article,
.home .entry-content,
.home .entry-content > *:first-child,
.home .adamstudios-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Kill empty paragraphs WordPress inserts via wpautop */
.home .entry-content > p:empty,
.home .entry-content > p br {
    display: none !important;
    font-size: 0 !important;
    line-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

/* Collapse any paragraph that's just whitespace */
.home .entry-content > p {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

/* But don't collapse paragraphs with actual visible text content */
.home .entry-content > p:not(:empty) {
    line-height: var(--as-line-height);
    font-size: var(--as-font-size);
}

/* The home sections themselves */
.home .adamstudios-home-section:first-child {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Ensure the header has no bottom spacing on home */
.home .site-header {
    border-bottom: none;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    position: sticky;
    z-index: 1000;
}

/* Kill WordPress Gutenberg block wrapper margins */
.home .wp-block-group,
.home .wp-block-html,
.home .wp-block-shortcode,
.home .entry-content > div:first-child,
.home .entry-content > .adamstudios-home-section,
.home .entry-content > p:first-child {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
    padding-top: 0 !important;
}

/* Flex layout to eliminate computed gaps */
.home #page {
    display: flex;
    flex-direction: column;
}

.home #page > .site-header {
    flex-shrink: 0;
}

.home #page > #content {
    flex-grow: 1;
}

/* Kill ALL margin and padding on the homepage page wrapper */
.home article,
.home .entry-content,
.home .woocommerce,
.home .adamstudios-home-section .woocommerce {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* Force homepage product grid to always be 4 columns and full width */
.adamstudios-home-section .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    grid-template-rows: 1fr !important;
    gap: 0 !important;
    column-count: auto !important;
    width: 100% !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Homepage images: forced 4:5 crop for uniform slider slots */
.adamstudios-home-section .woocommerce ul.products li.product a img,
.adamstudios-home-section .woocommerce ul.products li.product img,
.adamstudios-home-section ul.products li.product a img,
.adamstudios-home-section ul.products li.product img {
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    height: auto !important;
}

/* Override masonry styles for homepage — force grid behavior */
.adamstudios-home-section .woocommerce ul.products li.product,
.adamstudios-home-section ul.products li.product {
    display: block !important;
    break-inside: auto !important;
    margin: 0 !important;
    width: auto !important;
}

.adamstudios-home-section .woocommerce ul.products::before,
.adamstudios-home-section .woocommerce ul.products::after {
    display: none !important;
    content: none !important;
}

/* On mobile, still 2 columns for the homepage banner */
@media (max-width: 479px) {
    .adamstudios-home-section .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Product cards in homepage: no padding, no margin, pure image */
.adamstudios-home-section .woocommerce ul.products li.product,
.adamstudios-home-section ul.products li.product {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    border: none !important;
    list-style: none !important;
    background-color: transparent !important;
    border-radius: 0 !important;
}

/* WooCommerce adds default margin-bottom and padding to product lists */
.adamstudios-home-section ul.products,
.adamstudios-home-section .woocommerce ul.products {
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    width: 100% !important;
}

/* =========================================================================
   HOMEPAGE CROSSFADE SLIDESHOW
   ========================================================================= */

/* Slideshow grid — same as normal product grid but for rebuilt slots */
.adamstudios-slideshow-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    grid-template-rows: 1fr !important;
    gap: 0 !important;
    column-count: auto !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

.adamstudios-slideshow-grid::before,
.adamstudios-slideshow-grid::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 479px) {
    .adamstudios-slideshow-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Each slot holds stacked images */
.adamstudios-slideshow-slot {
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    border: none !important;
    list-style: none !important;
}

.adamstudios-slideshow-container {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

/* All slideshow images are stacked via absolute positioning */
.adamstudios-slideshow-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    object-fit: cover;
    border-radius: 0;
    margin: 0 !important;
    padding: 0;
    display: block;
    opacity: 0;
    transition: opacity 1.2s ease-in-out;
}

.adamstudios-slideshow-img.active {
    opacity: 1;
}



/* =========================================================================
   INFINITE SCROLL: Loading indicator
   ========================================================================= */

.adamstudios-infinite-loader {
    text-align: center;
    padding: var(--as-space-lg) 0;
    color: var(--as-text-muted);
    font-size: var(--as-font-size-sm);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
