/* =============================================================================
   Distilled Art Co. — Public Site Styles
   Minimal, gallery-forward aesthetic. No external dependencies.
   ============================================================================= */


/* =============================================================================
   1. DESIGN TOKENS
   ============================================================================= */

:root {
    /* Surfaces */
    --color-bg:             #fafaf8;
    --color-surface:        #ffffff;
    --color-image-bg:       #f0f0e8;

    /* Text */
    --color-text:           #1c1c1a;
    --color-text-secondary: #5a5a54;
    --color-text-muted:     #9a9a92;

    /* Accent */
    --color-accent:         #2d5a3d;
    --color-accent-hover:   #234a31;

    /* Borders */
    --color-border:         #e4e4dc;
    --color-border-light:   #f0f0e8;

    /* Typography */
    --font-serif: Georgia, 'Times New Roman', Times, serif;
    --font-sans:  system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
                  Helvetica, Arial, sans-serif;

    /* Layout */
    --container-width:   1200px;
    --container-padding: clamp(1rem, 4vw, 2rem);
    --header-height:     64px;

    /* Misc */
    --radius-sm:  2px;
    --radius:     4px;
    --shadow-sm:  0 1px 4px rgba(0, 0, 0, .07);
    --shadow-md:  0 4px 16px rgba(0, 0, 0, .09);
    --transition: 0.2s ease;
}


/* =============================================================================
   2. RESET & BASE
   ============================================================================= */

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

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

body {
    font-family:            var(--font-sans);
    font-size:              1rem;
    line-height:            1.65;
    color:                  var(--color-text);
    background-color:       var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img  { display: block; max-width: 100%; height: auto; }
a    { color: inherit; text-decoration: none; }
ul,
ol   { list-style: none; }

h1, h2, h3, h4 {
    font-family:  var(--font-serif);
    font-weight:  400;
    line-height:  1.2;
    color:        var(--color-text);
}


/* =============================================================================
   3. LAYOUT
   ============================================================================= */

.site-container {
    width:         100%;
    max-width:     var(--container-width);
    margin-left:   auto;
    margin-right:  auto;
    padding-left:  var(--container-padding);
    padding-right: var(--container-padding);
}

.site-main {
    min-height: calc(100vh - var(--header-height) - 88px);
}

.section-pad {
    padding-top:    3.5rem;
    padding-bottom: 3.5rem;
}


/* =============================================================================
   4. SITE HEADER
   ============================================================================= */

.site-header {
    position:         sticky;
    top:              0;
    z-index:          100;
    height:           var(--header-height);
    background-color: var(--color-surface);
    border-bottom:    1px solid var(--color-border);
}

.site-header__inner {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    height:          100%;
}

.site-header__brand {
    display:    flex;
    align-items: center;
    flex-shrink: 0;
    transition: opacity var(--transition);
}

.site-header__brand:hover {
    opacity: 0.72;
}

.site-header__logo {
    display: block;
    height:  34px;
    width:   auto;
}


/* =============================================================================
   5. SITE NAV
   ============================================================================= */

.site-nav {
    display:     flex;
    align-items: center;
    gap:         2rem;
}

.site-nav__link {
    font-size:      0.8rem;
    font-weight:    500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color:          var(--color-text-secondary);
    padding-bottom: 2px;
    border-bottom:  1px solid transparent;
    transition:     color var(--transition), border-color var(--transition);
}

.site-nav__link:hover,
.site-nav__link.is-active {
    color:        var(--color-text);
    border-color: var(--color-text);
}


/* =============================================================================
   6. SITE FOOTER
   ============================================================================= */

.site-footer {
    border-top:  1px solid var(--color-border);
    padding:     2rem 0;
    margin-top:  5rem;
}

.site-footer__inner {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    flex-wrap:       wrap;
    gap:             1rem;
}

.site-footer__copy {
    font-size: 0.8125rem;
    color:     var(--color-text-muted);
}

.site-footer__nav {
    display: flex;
    gap:     1.5rem;
}

.site-footer__link {
    font-size:      0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--color-text-muted);
    transition:     color var(--transition);
}

.site-footer__link:hover {
    color: var(--color-text);
}


/* =============================================================================
   7. HOMEPAGE HERO
   ============================================================================= */

.site-hero {
    padding:    5.5rem 0 5rem;
    text-align: center;
}

.site-hero__eyebrow {
    font-size:      0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color:          var(--color-text-muted);
    margin-bottom:  1.25rem;
}

.site-hero__title {
    font-family:   var(--font-serif);
    font-size:     clamp(2.25rem, 6vw, 4rem);
    font-weight:   400;
    line-height:   1.1;
    color:         var(--color-text);
    margin-bottom: 1.25rem;
}

.site-hero__tagline {
    font-size:     1.0625rem;
    line-height:   1.6;
    color:         var(--color-text-secondary);
    max-width:     500px;
    margin:        0 auto 2.25rem;
}

.site-hero__cta {
    display:        inline-block;
    padding:        0.8rem 2.25rem;
    background:     var(--color-text);
    color:          #fff;
    font-size:      0.78rem;
    font-weight:    500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius:  var(--radius-sm);
    transition:     background var(--transition);
}

.site-hero__cta:hover {
    background: var(--color-accent);
}

/* HERO BACKGROUND MARK */

.site-hero {
    position: relative;
    padding: 120px 0;;
    text-align: center;
    overflow: hidden;
}

.site-hero::before {
    content: "";
    position: absolute;
    inset: 0;

    background-image: url("/assets/brand/brand-icon.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 65vh;

    opacity: 0.12;
    pointer-events: none;
}


/* =============================================================================
   8. SECTION HEADER
   ============================================================================= */

.section-header {
    display:         flex;
    align-items:     baseline;
    justify-content: space-between;
    margin-bottom:   2rem;
    padding-bottom:  0.875rem;
    border-bottom:   1px solid var(--color-border);
    gap:             1rem;
}

.section-header__title {
    font-family: var(--font-serif);
    font-size:   1.5rem;
    font-weight: 400;
    color:       var(--color-text);
}

.section-header__link {
    font-size:      0.75rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color:          var(--color-accent);
    white-space:    nowrap;
    border-bottom:  1px solid transparent;
    transition:     border-color var(--transition);
}

.section-header__link:hover {
    border-color: var(--color-accent);
}


/* =============================================================================
   9. ARTWORK GRID
   ============================================================================= */

.artwork-grid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   3rem 2rem;
}

@media (max-width: 1024px) {
    .artwork-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 520px) {
    .artwork-grid {
        grid-template-columns: 1fr;
        gap: 2.25rem;
    }
}


/* =============================================================================
   10. ARTWORK CARD
   ============================================================================= */

.artwork-card__link {
    display: block;
}

.artwork-card__image-wrap {
    position:         relative;
    width:            100%;
    aspect-ratio:     4 / 3;
    overflow:         hidden;
    background-color: var(--color-image-bg);
    border-radius:    var(--radius-sm);
    margin-bottom:    0.875rem;
}

.artwork-card__image {
    width:      100%;
    height:     100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.artwork-card__link:hover .artwork-card__image {
    transform: scale(1.04);
}

.artwork-card__no-image {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           100%;
    height:          100%;
    color:           var(--color-text-muted);
    font-size:       0.72rem;
    letter-spacing:  0.08em;
    text-transform:  uppercase;
}

.artwork-card__title {
    font-family:   var(--font-serif);
    font-size:     1rem;
    font-weight:   400;
    color:         var(--color-text);
    line-height:   1.3;
    margin-bottom: 0.2rem;
    transition:    color var(--transition);
}

.artwork-card__link:hover .artwork-card__title {
    color: var(--color-accent);
}

.artwork-card__artist {
    font-size: 0.8125rem;
    color:     var(--color-text-muted);
}


/* =============================================================================
   11. PAGE HERO (catalog / artist headings)
   ============================================================================= */

.page-hero {
    padding:       3.5rem 0 2.5rem;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 3rem;
}

.page-hero__title {
    font-family: var(--font-serif);
    font-size:   clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 400;
    color:       var(--color-text);
}

.page-hero__sub {
    margin-top: 0.5rem;
    font-size:  0.875rem;
    color:      var(--color-text-muted);
}


/* =============================================================================
   12. BREADCRUMB
   ============================================================================= */

.breadcrumb {
    font-size:   0.8125rem;
    color:       var(--color-text-muted);
    padding:     1.25rem 0;
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         0.35rem;
}

.breadcrumb a {
    color:      var(--color-text-secondary);
    transition: color var(--transition);
}

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

.breadcrumb__sep {
    color: var(--color-border);
}


/* =============================================================================
   13. ARTWORK DETAIL PAGE
   ============================================================================= */

.artwork-detail {
    padding: 2rem 0 4rem;
}

.artwork-detail__layout {
    display:               grid;
    grid-template-columns: 55fr 45fr;
    gap:                   4.5rem;
    align-items:           start;
}

@media (max-width: 800px) {
    .artwork-detail__layout {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
}

/* Image */
.artwork-detail__image-wrap {
    position:         relative;
    background-color: var(--color-image-bg);
    border-radius:    var(--radius-sm);
    overflow:         hidden;
    line-height:      0; /* Remove gap under inline image */
}

.artwork-detail__image {
    width:   100%;
    height:  auto;
    display: block;
}

.artwork-detail__image-wrap--empty {
    aspect-ratio:    4 / 3;
    display:         flex;
    align-items:     center;
    justify-content: center;
    color:           var(--color-text-muted);
    font-size:       0.8125rem;
    letter-spacing:  0.06em;
    text-transform:  uppercase;
}

/* Info panel */
.artwork-detail__info {
    position: sticky;
    top: calc(var(--header-height) + 2rem);
}

.artwork-detail__title {
    font-family:   var(--font-serif);
    font-size:     clamp(1.5rem, 3vw, 2.25rem);
    font-weight:   400;
    line-height:   1.2;
    margin-bottom: 0.5rem;
    color:         var(--color-text);
}

.artwork-detail__artist {
    font-size:     1rem;
    color:         var(--color-text-secondary);
    margin-bottom: 0.2rem;
}

.artwork-detail__artist a {
    color:        var(--color-accent);
    border-bottom: 1px solid transparent;
    transition:   border-color var(--transition);
}

.artwork-detail__artist a:hover {
    border-color: var(--color-accent);
}

.artwork-detail__year {
    font-size:     0.875rem;
    color:         var(--color-text-muted);
    margin-bottom: 2rem;
}

.artwork-detail__divider {
    border:     none;
    border-top: 1px solid var(--color-border);
    margin:     1.5rem 0;
}

/* Labels */
.artwork-detail__label {
    display:        block;
    font-size:      0.7rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color:          var(--color-text-muted);
    margin-bottom:  0.5rem;
}

/* Description & curator note */
.artwork-detail__text {
    font-size:     0.9375rem;
    line-height:   1.75;
    color:         var(--color-text-secondary);
    margin-bottom: 1.5rem;
}

.artwork-detail__curator-note {
    font-size:     0.9375rem;
    line-height:   1.75;
    color:         var(--color-text-secondary);
    font-style:    italic;
    margin-bottom: 1.5rem;
}

/* Tags */
.artwork-detail__tags {
    display:       flex;
    flex-wrap:     wrap;
    gap:           0.4rem;
    margin-bottom: 1.5rem;
}

.tag-chip {
    display:        inline-block;
    padding:        0.22rem 0.6rem;
    background:     var(--color-border-light);
    border:         1px solid var(--color-border);
    border-radius:  var(--radius-sm);
    font-size:      0.75rem;
    letter-spacing: 0.03em;
    color:          var(--color-text-secondary);
}

/* Color swatches */
.artwork-detail__swatches {
    display:       flex;
    flex-wrap:     wrap;
    gap:           0.75rem;
    margin-bottom: 1.5rem;
}

.color-swatch {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            0.35rem;
}

.color-swatch__dot {
    width:         26px;
    height:        26px;
    border-radius: 50%;
    border:        1px solid rgba(0, 0, 0, .12);
    flex-shrink:   0;
}

.color-swatch__name {
    font-size:     0.65rem;
    color:         var(--color-text-muted);
    text-align:    center;
    max-width:     60px;
    overflow:      hidden;
    text-overflow: ellipsis;
    white-space:   nowrap;
}

/* Collections */
.artwork-detail__collections {
    display:       flex;
    flex-wrap:     wrap;
    gap:           0.4rem;
    margin-bottom: 1.5rem;
}

.collection-chip {
    display:       inline-block;
    padding:       0.22rem 0.6rem;
    border:        1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size:     0.75rem;
    color:         var(--color-text-secondary);
}

/* Attribution */
.artwork-detail__attribution {
    padding-top: 1rem;
    border-top:  1px solid var(--color-border);
}

.artwork-detail__attribution p {
    font-size:     0.8rem;
    color:         var(--color-text-muted);
    margin-bottom: 0.3rem;
    line-height:   1.5;
}

.artwork-detail__attribution a {
    color:        var(--color-accent);
    border-bottom: 1px solid transparent;
    transition:   border-color var(--transition);
}

.artwork-detail__attribution a:hover {
    border-color: var(--color-accent);
}


/* =============================================================================
   14. ARTIST PAGE
   ============================================================================= */

.artist-hero {
    padding:       3.5rem 0 2.5rem;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 3rem;
}

.artist-hero__name {
    font-family:   var(--font-serif);
    font-size:     clamp(1.75rem, 4vw, 2.75rem);
    font-weight:   400;
    margin-bottom: 0.375rem;
}

.artist-hero__meta {
    font-size:     0.875rem;
    color:         var(--color-text-muted);
    margin-bottom: 1.5rem;
}

.artist-hero__bio {
    font-size:   0.9375rem;
    line-height: 1.8;
    color:       var(--color-text-secondary);
    max-width:   640px;
}


/* =============================================================================
   15. PAGINATION
   ============================================================================= */

.pagination {
    display:         flex;
    align-items:     center;
    justify-content: center;
    flex-wrap:       wrap;
    gap:             0.375rem;
    padding:         3.5rem 0 1rem;
}

.pagination__link,
.pagination__current {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    min-width:       2.25rem;
    height:          2.25rem;
    padding:         0 0.5rem;
    border:          1px solid var(--color-border);
    border-radius:   var(--radius-sm);
    font-size:       0.875rem;
    color:           var(--color-text-secondary);
    transition:      border-color var(--transition), color var(--transition);
}

.pagination__link:hover {
    border-color: var(--color-text);
    color:        var(--color-text);
}

.pagination__current {
    background:   var(--color-text);
    border-color: var(--color-text);
    color:        #fff;
    font-weight:  500;
}

.pagination__link[aria-disabled="true"] {
    opacity:        0.35;
    pointer-events: none;
    cursor:         default;
}

.pagination__info {
    font-size:   0.8125rem;
    color:       var(--color-text-muted);
    margin-left: 0.5rem;
}


/* =============================================================================
   16. NOT FOUND
   ============================================================================= */

.not-found {
    text-align: center;
    padding:    6rem var(--container-padding);
}

.not-found__code {
    font-family:   var(--font-serif);
    font-size:     6rem;
    font-weight:   400;
    color:         var(--color-border);
    line-height:   1;
    margin-bottom: 0.5rem;
}

.not-found__title {
    font-family:   var(--font-serif);
    font-size:     1.625rem;
    font-weight:   400;
    margin-bottom: 0.75rem;
}

.not-found__message {
    color:         var(--color-text-secondary);
    margin-bottom: 2rem;
    font-size:     0.9375rem;
}

.not-found__link {
    display:        inline-block;
    padding:        0.65rem 1.75rem;
    border:         1px solid var(--color-text);
    border-radius:  var(--radius-sm);
    font-size:      0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--color-text);
    transition:     background var(--transition), color var(--transition);
}

.not-found__link:hover {
    background: var(--color-text);
    color:      #fff;
}


/* =============================================================================
   17. EMPTY STATE
   ============================================================================= */

.empty-state {
    text-align: center;
    padding:    5rem var(--container-padding);
    color:      var(--color-text-muted);
}

.empty-state p {
    font-size:     0.9375rem;
    margin-bottom: 1.5rem;
}


/* =============================================================================
   18. BRAND ASSETS
   ============================================================================= */

/* ── Homepage hero mark ── */
.site-hero__mark {
    display:       block;
    height:        52px;
    width:         auto;
    margin:        0 auto 1.75rem;
}

/* ── Footer brand ── */
.site-footer__brand {
    display:         flex;
    justify-content: center;
    padding-bottom:  1.75rem;
    margin-bottom:   1.5rem;
    border-bottom:   1px solid var(--color-border-light);
}

.site-footer__brand-mark {
    display:    block;
    height:     40px;
    width:      auto;
    opacity:    0.45;
    transition: opacity var(--transition);
}

.site-footer__brand a:hover .site-footer__brand-mark {
    opacity: 0.7;
}

/* ── Responsive ── */
@media (max-width: 520px) {
    .site-header__logo  { height: 27px; }
    .site-hero__mark    { height: 44px; }
    .site-footer__brand-mark { height: 34px; }
}
