/*
Theme Name: Generate Press (child)
Template: generatepress

Refactor notes:
- Drop-in replacement for the existing child-theme stylesheet.
- Keeps your current GeneratePress, ACF, shortcode, artist, band, item, and footer selectors.
- Reworks the visual system into a dark archive / neon punk palette.
*/

:root {
    /* PAGE STRUCTURE */
    --bg-page: #0d0d0d;
    --bg-page-soft: #151515;
    --bg-header: #000000;
    --bg-footer: #000000;
    --bg-content: #ffffff;
    --bg-content-soft: #f0eadc;
    --bg-callout: #ece5d6;

    /* ACCENTS */
    --accent-primary: #111111;
    /*--accent-secondary: #00d9ff;   !* electric cyan *!*/
    /*--accent-tertiary: #ff2e88;  !* loud pink *!*/
    --accent-secondary: #00b6d6;   /* electric cyan */
    --accent-tertiary: #c9286e;  /* loud pink */
    --accent-menu: #ffd400;     /* flyer yellow */
    --accent-danger: #d60000;

    /* TEXT */
    --text-color: #171717;
    --text-header: #000000;
    --text-muted: #57524a;
    --text-inverse: #ffffff;

    /* LINKS */
    --text-link: #005f73;
    --text-link-hover: var(--accent-primary);
    --text-link-visited: #6d4aa0;

    /* BORDERS / SHADOWS */
    --border-soft: rgba(0, 0, 0, .14);
    --border-loud: var(--accent-primary);
    --shadow-content: 0 0 0 1px rgba(255, 255, 255, .06), 0 18px 55px rgba(0, 0, 0, .34);
    --shadow-card: 0 8px 24px rgba(0, 0, 0, .18);

    /* LEGACY VARIABLE MAPPING - keeps existing CSS/API stable */
    --header-footer: var(--bg-header);
    --primary-color: var(--bg-page);
    --primary-color-lightened: var(--bg-content);

    /* FONTS */
    /*--font-body: "Inter", sans-serif;*/
    --font-body: "Public Sans", sans-serif;
    --font-menu: "Fjalla One", sans-serif;
    --font-header: "Fjalla One", sans-serif;
}

/* Begin footer formatting: pin the footer to the bottom of the page after content */
html {
    min-height: 100%;
    background: var(--bg-page);
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-size: 16px;
    line-height: 1.55;
    font-family: var(--font-body);
    font-weight: 400;
    color: var(--text-color);
    background: #ffffff;
    /*background:*/
    /*    radial-gradient(circle at top left, rgba(255, 46, 136, .22), transparent 30rem),*/
    /*    radial-gradient(circle at bottom right, rgba(0, 217, 255, .16), transparent 28rem),*/
    /*    linear-gradient(135deg, var(--bg-page), var(--bg-page-soft));*/
}

#page.site {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: transparent;
}

.site-content {
    flex: 1 0 auto;
}

.site-footer {
    flex-shrink: 0;
}
/* End footer formatting */

/* Ensure content box is always max size */
.container.grid-container {
    width: 100%;
}

p.main-title > a {
    font-family: var(--header-footer);
    text-transform: uppercase;
    color: #000000;
}

/* Base transparency: let the article/card system define the readable area */
.site-content,
.content-area,
.entry-content,
.wp-block-cover,
.wp-block-columns,
.wp-block-column {
    background: transparent;
}

/* Main content panel */
.separate-containers .site-main {
    margin: 0;
}

.separate-containers .inside-article {
    background: var(--bg-content);
    box-shadow: var(--shadow-content);
    /*border-left: 6px solid var(--accent-tertiary);*/
    /*border-right: 1px solid rgba(0, 0, 0, .08);*/
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6,
.main-title,
.entry-title,
.wp-block-heading {
    color: var(--text-header);
    font-family: var(--font-header);
    font-weight: 400;
    font-style: normal;
    /*letter-spacing: .015em;*/

    display: flex;
    align-items: baseline;

    flex-wrap: wrap;
    gap: 0 .35em;
}

h1.entry-title {
    margin-bottom: .45rem;
    font-size: clamp(2.25rem, 5vw, 3.8rem);
    line-height: 1;
    color: var(--accent-primary);
    padding: 0;
    text-transform: uppercase;
}

.album-name {
    min-width: 0;
    overflow-wrap: break-word;
    /*display: inline-block;*/
}
.creator-name {
    white-space: nowrap;
    padding: 0;
    margin: 0;
    /*display: inline-block;*/
    font-size: clamp(1.25rem, 5vw, 2rem);
}

.entry-content h2.wp-block-heading {
    color: var(--accent-secondary);
    line-height: 1;
    margin: 2rem 0 .5rem 0;
}

.entry-content h3.wp-block-heading {
    color: var(--accent-tertiary);
    line-height: 1;
    margin: 2rem 0 .5rem 0;
}


.entry-content:not(:first-child),
.entry-summary:not(:first-child),
.page-content:not(:first-child) {
    margin: 0;
}

.entry-content p,
.entry-content .wp-block-list {
    color: var(--text-color);
    font-family: var(--font-body), Arial, sans-serif;
    font-weight: 300;
    margin-bottom: .65rem;
}

.entry-content > p:last-child {
    margin-bottom: 2rem;
}

/* Links */
.inside-article a,
a {
    color: var(--text-link);
    font-weight: 650;
    text-decoration-thickness: .08em;
    text-underline-offset: .16em;
}

.inside-article a:visited,
a:visited {
    color: var(--text-link-visited);
}

.inside-article a:hover,
a:hover {
    color: var(--text-link-hover);
}

/* Header / identity */
.site-header {
    background: var(--bg-header);
    border-bottom: 4px solid var(--accent-tertiary);
}

p.main-title > a,
.main-title a,
.site-branding a {
    font-family: var(--header-footer);
    font-size: clamp(1.75rem, 3vw, 3rem);
    line-height: 0.72;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-inverse);
}

p.main-title > a:hover,
.main-title a:hover,
.site-branding a:hover {
    color: var(--accent-secondary);
}

/* Spacing for header */
.inside-header {
    padding: 60px 40px 0 40px;
}


/* Header navigation menus */
.main-navigation,
.main-navigation ul ul {
    background: var(--bg-header);
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]) > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    font-family: var(--font-menu);
    color: var(--text-inverse);
    font-weight: 600;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a:hover {
    color: var(--accent-secondary);
}

.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: var(--accent-menu);
}

.main-navigation .main-nav ul li .sub-menu li > a {
    color: var(--text-inverse);
    font-weight: 600;
    font-family: var(--font-menu);
    background: var(--bg-header);
}

.main-navigation .main-nav ul li .sub-menu li > a:hover {
    color: var(--accent-primary);
}

.sub-menu {
    background: var(--bg-header);
    font-family: var(--font-menu);
    border-top: 2px solid var(--accent-secondary);
}

/* Images */
.size-auto,
.size-full,
.size-large,
.size-medium,
.size-thumbnail {
    width: 100%;
    height: auto;
    margin: auto auto 5px auto;
    display: block;
}

.wp-block-image {
    text-align: center;
}

/* Item masonry grid */
#items-grid-shortcode {
    column-count: 3;
    column-gap: 40px;
}

#items-grid-shortcode > .item-card {
    display: inline-block !important;
    width: 100% !important;
    margin: 0 0 1.5rem 0 !important;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    float: none !important;
    clear: none !important;
    max-width: none !important;
    min-width: 0 !important;
}

#items-grid-shortcode .item-image {
    display: block !important;
    line-height: 0;
}

#items-grid-shortcode .item-image img,
.item-image img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

/* Artist / band grids */
.artist-grid,
.band-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem;
    align-items: start;
}

.band-artists-grid,
.band-items-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem;
}

.artist-card,
.item-card,
.band-card {
    text-align: center;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 25px;
}

.artist-card,
.band-card,
#items-grid-shortcode > .item-card {
    background: rgba(255, 255, 255, .34);
    border-bottom: 3px solid transparent;
}

.artist-card:hover,
.band-card:hover,
#items-grid-shortcode > .item-card:hover {
    background: #ffffff;
    /*border-bottom-color: var(--accent-primary);*/
}

.artist-card h3,
.item-card h3 {
    font-size: clamp(1rem, 2.5vw, 1.2rem);
}

.item-card {
    display: flex;
    flex-direction: column;
}

/* Item tile metadata */
.item-meta > .item-title {
    font-family: var(--font-body);
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.25;
    margin: .1rem 0 0 0;
}

.item-meta > .item-creator {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.25;
    margin: .1rem 0 0 0;
    color: var(--text-muted);
}

.item-meta > .item-signed-by {
    font-family: var(--font-body);
    font-size: .9rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--accent-primary);
    margin: auto;
}

.item-title > a:link,
.item-title > a:visited,
.item-creator > a:link,
.item-creator > a:visited {
    text-decoration: none;
    color: var(--text-header);
    font-weight: 650;
    width: 100%;
}

.item-title > a:hover {
    text-decoration: underline;
    color: var(--accent-primary);
}

.item-meta > .item-artist {
    font-size: 1rem;
}

/* Single item meta display area */
.item-meta-display-area {
    margin-top: 1rem;
    margin-bottom: 1rem;
    /*color: var(--text-header);*/
    color: var(--accent-tertiary);
    font-size: 1rem;
    padding: .65rem .75rem;
    border: .12rem solid var(--accent-tertiary);
    background: rgba(255, 46, 136, .06);
}

.item-meta-display-area a {
    color: var(--text-link);
}

.item-meta-display-area a:hover {
    color: var(--text-link-hover);
}

.item-meta-display-area a:visited {
    color: var(--text-link-visited);
}

/* Single item slider track */
.single-item .swiper-wrapper {
    display: flex !important;
    align-items: center;
}

/* Band / artist pages */
.band-single {
    margin: 0 auto;
    padding: 20px;
}

.band-header {
    text-align: center;
    margin-bottom: 40px;
}

.band-section {
    margin-top: 40px;
}

/* Personal story call-out */
.wp-block-group {
    background: var(--bg-callout);
    border-radius: .15rem;
    width: 100%;
    max-width: 700px;
    margin: 2rem auto 1.5rem auto;
    border-left: 5px solid var(--accent-tertiary);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .12);
}

.site-main .wp-block-group__inner-container {
    padding: 1rem 4rem;
}

.site-main .wp-block-group__inner-container h2.wp-block-heading {
    font-size: 1.6rem;
    line-height: 1.5;
}

.site-main .wp-block-group__inner-container h3.wp-block-heading {
    font-size: 1.3rem;
    line-height: 1.5;
}

.story-block p {
    font-family: Georgia, serif;
    font-size: 1rem;
    line-height: 1.85;
    color: #342f29;
    margin-bottom: .5rem;
    padding: 0;
}

.story-block h2 {
    display: block;
    font-family: var(--font-body);
    color: var(--text-header);
    font-size: 1.2rem;
    opacity: .62;
    margin-bottom: 1.2rem;
}

.story-block p a {
    color: var(--accent-danger);
}

.story-block p a:hover {
    color: var(--accent-primary);
}

/* Related links/lists at end of bios */
.band-artists-section a,
.band-items-section a,
.band-urls-section a,
.artist-urls-section a,
.artist-items-section a,
.artist-bands-section a {
    color: var(--text-link);
}

.band-artists-section a:hover,
.band-items-section a:hover,
.band-urls-section a:hover,
.artist-urls-section a:hover,
.artist-items-section a:hover,
.artist-bands-section a:hover {
    color: var(--text-link-hover);
}

.band-artists-section a:visited,
.band-items-section a:visited,
.band-urls-section a:visited,
.artist-urls-section a:visited,
.artist-items-section a:visited,
.artist-bands-section a:visited {
    color: var(--text-link-visited);
}

/* Pagination */
.items-pagination {
    text-align: center;
    margin: 2rem 0 1rem 0;
}

span.page-numbers,
a.page-numbers {
    color: var(--text-header);
    font-weight: 400;
    padding: .25rem .45rem;
    text-decoration: none;
}

span.page-numbers.current,
a.page-numbers:hover {
    color: var(--accent-primary);
}

/* Footer */
.footer-bar {
    padding: 0;
    width: 100%;
}

.footer-widgets-container {
    padding: 5px 40px;
    background: var(--bg-footer);
}

.copyright-bar,
.site-footer {
    background: var(--bg-footer);
    color: var(--text-inverse);
}

.site-footer a,
.site-footer a:visited {
    color: var(--accent-secondary);
}

.site-footer a:hover {
    color: var(--accent-primary);
}

.inside-site-info {
    padding: 0 40px;
}

.site-footer {
    font-size: .8rem;
    font-weight: bold;
    border-top: 4px solid var(--accent-tertiary);
}

.site-info {
    text-align: center;
    font-size: .8rem;
}

.site-info .inside-site-info {
    justify-content: center;
}

/* Responsive adjustments */
@media (max-width: 900px) {
    #items-grid-shortcode {
        column-count: 3;
        column-gap: 28px;
    }

    .artist-grid,
    .band-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 2rem;
        align-items: start;
    }

    .site-main .wp-block-group__inner-container {
        padding: 1rem 2rem;
    }
}

@media (max-width: 600px) {
    body {
        font-size: 16px;
    }

    #items-grid-shortcode {
        column-count: 1;
    }

    .artist-grid,
    .band-grid {
        display: grid;
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 2rem;
        align-items: start;
    }

    .separate-containers .inside-article {
        border-left-width: 4px;
    }

    .site-main .wp-block-group__inner-container {
        padding: 1rem 1.25rem;
    }

    h1.entry-title {
        font-size: 2.35rem;
    }
}

/* begin featured image on artists page */-
/* floats in corner when viewed on desktop but scales to full width on mobile */
.artist-featured-image img,
.band-featured-image img {
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-card);
}

@media (max-width: 720px) {
    .artist-featured-image img,
    .band-featured-image img {
        float: none;
        margin: auto;
        width: 100%;
        margin-bottom: 2rem;
    }
}

@media (min-width: 721px) {
    .artist-featured-image img,
    .band-featured-image img {
        float: right;
        width: min(300px, 35%);
        max-width: 600px;
        margin-bottom: 2rem;
        margin-left: 2rem;
    }
}
/* end featured image */



/* latest acquisitions for homepage*/
.recent-items-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    /*margin: 32px 0;*/
}
.recent-item-thumb {
    width: 100%;
    height: auto;
    display: block;
}
.recent-item-title a {
    font-weight: bold;
    text-decoration: none;
}
.recent-item-artist {
    font-size: 0.9em;
    color: #666;
}
@media (max-width: 600px) {
    .recent-items-grid {
        grid-template-columns: 1fr;
    }
}
/* end latest acquisitions*/