/*==================================
POSTER ARCHIVE + POSTER RECORD
Used by archive-poster.php and single-poster.php
Colours / fonts follow the Artists + Artwork pages.
==================================*/

.ds-pa,
.ds-ps{
    --dp-gold:#b8924a;
    --dp-ink:#1a1a1a;
    --dp-muted:#777;
    --dp-line:#e4dfd2;
    --dp-paper:#f7f5f0;
    /*--dp-sand:#d9d4c8;*/
    --dp-label:'Century Gothic Paneuropean','Century Gothic',CenturyGothic,sans-serif;
    --dp-serif:'PT Serif',Georgia,serif;
    background:var(--dp-paper);
}

/*==================================
ARCHIVE
==================================*/
.ds-pa{padding:48px 0 70px}

.ds-pa .container{
    width:100%;
    max-width:1320px;
    padding-left:24px;
    padding-right:24px;
}

/* Header */
.ds-pa-header{margin-bottom:22px;max-width:780px}
.ds-pa-eyebrow{
    display:block;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:#555;
    margin-bottom:6px;
}
.ds-pa-header h2{
    margin:0 0 10px;
    font-family:var(--dp-serif);
    font-size:42px;
    font-weight:400;
    line-height:1.05;
    color:var(--dp-ink);
}
.ds-pa-header p{margin:0;font-size:16px;line-height:1.7;color:#000}

/* Filter bar */
.ds-pa-filter{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin:0 0 22px;
    padding:12px 0;
    border-top:1px solid var(--dp-line);
    border-bottom:1px solid var(--dp-line);
}
.ds-pa-filter input[type="text"]{
    flex:1 1 280px;
    min-width:0;
    height:44px;
    padding:0 14px;
    font-size:16px;
    color:var(--dp-ink);
    background:#fff;
    border:1px solid #d9d4c8;
    border-radius:var(--ds-radius);
    outline:none;
    box-shadow:none;
    transition:border-color .2s;
}
.ds-pa-filter select{
    flex:0 0 160px;
    height:44px;
    padding:0 10px;
    font-size:16px;
    color:var(--dp-ink);
    background:#fff;
    border:1px solid #d9d4c8;
    border-radius:var(--ds-radius);
    outline:none;
    box-shadow:none;
}
.ds-pa-filter input[type="text"]:focus,
.ds-pa-filter select:focus{border-color:var(--dp-gold)}
.ds-pa-clear{
    flex:0 0 auto;
    display:inline-block;
    padding:0 6px;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#444;
    text-decoration:none;
    border-bottom:1.5px solid transparent;
    transition:color .2s,border-color .2s;
}
.ds-pa-clear:hover{color:var(--dp-gold);border-bottom-color:var(--dp-gold);text-decoration:none}

/* Loading state while AJAX runs */
#ds-pa-target{transition:opacity .25s ease;min-height:200px}
#ds-pa-target.is-loading{opacity:.35;pointer-events:none}

.ds-pa-count{
    margin:0 0 16px;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--dp-muted);
}
.ds-pa-empty{padding:50px 0;text-align:center;color:var(--dp-muted);font-size:16px}

/* Grid: 3 columns on desktop */
.ds-pa-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
.ds-pa-card{margin:0;background:#fff;border:1px solid var(--dp-line);border-radius:var(--ds-radius);overflow:hidden;transition:box-shadow .3s ease,transform .3s ease}
.ds-pa-card:hover{box-shadow:0 10px 28px rgba(0,0,0,.09);transform:translateY(-2px)}
.ds-pa-link{display:block;color:inherit;text-decoration:none}
.ds-pa-link:hover,
.ds-pa-link:focus{color:inherit;text-decoration:none}

/* Posters come in every shape, so show the WHOLE poster (no cropping) */
.ds-pa-image{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    height:340px;
    padding:16px;
    overflow:hidden;
    background:var(--dp-sand);
}
.ds-pa-image img{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:0 4px 14px rgba(0,0,0,.18);
    transition:transform .5s ease;
}
.ds-pa-card:hover .ds-pa-image img{transform:scale(1.03)}
.ds-pa-noimage{
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.12em;
    text-transform:uppercase;
    text-align:center;
    line-height:1.7;
    color:#766e64;
}
.ds-pa-hover{
    position:absolute;
    left:50%;
    bottom:16px;
    transform:translate(-50%,10px);
    padding:9px 18px;
    background:#fff;
    border-radius:var(--ds-radius);
    color:var(--dp-ink);
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.14em;
    text-transform:uppercase;
    opacity:0;
    transition:opacity .3s ease,transform .3s ease;
    white-space:nowrap;
}
.ds-pa-card:hover .ds-pa-hover{opacity:1;transform:translate(-50%,0)}

.ds-pa-body{padding:16px 18px 18px}
.ds-pa-title{
    margin:0 0 4px;
    font-family:var(--dp-serif);
    font-size:18px;
    font-weight:400;
    line-height:1.25;
    color:var(--dp-ink);
}
.ds-pa-meta{font-size:14px;line-height:1.5;color:var(--dp-muted)}
.ds-pa-tag{
    display:inline-block;
    margin:10px 6px 0 0;
    padding:4px 9px;
    border-radius:var(--ds-radius);
    background:#eee6db;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#5b5246;
}
.ds-pa-tag-status{background:#f6e9c9;color:#7a5a14}

/* Pager */
.ds-pa-pager{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:44px;
}
.ds-pa-page{
    min-width:40px;
    height:40px;
    padding:0 10px;
    background:#fff;
    border:1px solid #d9d4c8;
    border-radius:var(--ds-radius);
    color:#444;
    font-size:14px;
    cursor:pointer;
    transition:all .2s;
}
.ds-pa-page:hover{border-color:var(--dp-gold);color:var(--dp-gold)}
.ds-pa-page.is-active{background:var(--dp-ink);border-color:var(--dp-ink);color:#fff;cursor:default}
.ds-pa-page-gap{padding:0 4px;color:var(--dp-muted)}


/*==================================
SINGLE RECORD
==================================*/
.ds-ps{padding:56px 0 70px}
.ds-ps .container{max-width:1240px}

.ds-ps-record{
    background:#fff;
    border:1px solid var(--dp-line);
    border-radius:var(--ds-radius);
    padding:38px;
}

/* Scan */
.ds-ps-scan{
    position:sticky;
    top:110px;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    min-height:520px;
    padding:28px;
    border-radius:var(--ds-radius);
    background:var(--dp-sand);
}
.ds-ps-zoom{position:relative;display:block;cursor:zoom-in;line-height:0}
.ds-ps-image{
    display:block;
    max-width:100%;
    max-height:720px;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:none;
}
.ds-ps-zoom-hint{
    position:absolute;
    right:10px;
    bottom:10px;
    padding:6px 12px;
    border-radius:var(--ds-radius);
    background:rgba(0,0,0,.72);
    color:#fff;
    font-family:var(--dp-label);
    font-size:14px;
    line-height:1.4;
    letter-spacing:.12em;
    text-transform:uppercase;
    opacity:0;
    transition:opacity .25s ease;
}
.ds-ps-zoom:hover .ds-ps-zoom-hint{opacity:1}
.ds-ps-noimage{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:460px;
    text-align:center;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#766e64;
}

/* Record text */
.ds-ps-eyebrow{
    display:block;
    margin-bottom:6px;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:700;
    color:var(--dp-gold);
}
.ds-ps-title{
    margin:0 0 14px;
    font-family:var(--dp-serif);
    font-size:34px;
    font-weight:400;
    line-height:1.15;
    color:var(--dp-ink);
}
.ds-ps-status{
    display:inline-block;
    margin:0 0 14px;
    padding:5px 11px;
    border-radius:var(--ds-radius);
    background:#f6e9c9;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#7a5a14;
}

.ds-ps-table{width:100%;border-collapse:collapse;margin:6px 0 0}
.ds-ps-table th,
.ds-ps-table td{
    padding:10px 0;
    border-bottom:1px solid #ece7dd;
    vertical-align:top;
    text-align:left;
}
.ds-ps-table th{
    width:36%;
    padding-right:14px;
    font-family:var(--dp-label);
    font-size:14px;
    font-weight:700;
    letter-spacing:.09em;
    text-transform:uppercase;
    color:var(--dp-muted);
}
.ds-ps-table td{
    font-family:var(--dp-serif);
    font-size:18px;
    line-height:1.5;
    color:var(--dp-ink);
}

.ds-ps-note{
    margin:24px 0 0;
    padding:16px 18px;
    border-radius:0 var(--ds-radius) var(--ds-radius) 0;
    background:#f1ece1;
    border-left:4px solid var(--dp-gold);
    font-size:14px;
    line-height:1.6;
    color:#4b4338;
}

.ds-ps-heading{
    margin:30px 0 10px;
    font-family:var(--dp-serif);
    font-size:21px;
    font-weight:400;
    color:var(--dp-ink);
}
.ds-ps-description{font-size:16px;line-height:1.75;color:#444}
.ds-ps-description p{margin:0 0 14px;color:#000;}

.ds-ps-pills{display:flex;flex-wrap:wrap;gap:8px}
.ds-ps-pill{
    display:inline-block;
    padding:7px 13px;
    border-radius:var(--ds-radius);
    background:#faf8f4;
    border:1px solid var(--dp-line);
    font-size:14px;
    line-height:1.3;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#444;
    text-decoration:none;
    transition:all .2s;
}
a.ds-ps-pill-link:hover{border-color:var(--dp-gold);color:var(--dp-gold);text-decoration:none}

.ds-ps-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px 14px;
    margin-top:34px;
    padding-top:26px;
    border-top:1px solid #ece7dd;
}
.ds-ps-btn{
    display:inline-block;
    padding:13px 24px;
    border-radius:var(--ds-radius);
    border:1.5px solid var(--dp-ink);
    background:transparent;
    color:var(--dp-ink);
    font-family:var(--dp-label);
    font-size:14px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    text-decoration:none;
    transition:all .25s ease;
}
.ds-ps-btn:hover{background:var(--dp-ink);color:#fff;text-decoration:none}
.ds-ps-btn-solid{background:var(--dp-ink);color:#fff}
.ds-ps-btn-solid:hover{background:var(--dp-gold);border-color:var(--dp-gold);color:#fff}
.ds-ps-btn-text{border-color:transparent;padding-left:4px;padding-right:4px}
.ds-ps-btn-text:hover{background:transparent;color:var(--dp-gold)}

/* Related blocks under the record */
.ds-ps-related{margin-top:56px}
.ds-ps-related-head{margin-bottom:22px}
.ds-ps-related-head h2{
    margin:0;
    font-family:var(--dp-serif);
    font-size:30px;
    font-weight:400;
    color:var(--dp-ink);
}
.ds-ps-related-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
}
.ds-ps-related-card{display:block;text-decoration:none;color:inherit}
.ds-ps-related-card:hover{text-decoration:none;color:inherit}
.ds-ps-related-img{
    display:flex;
    align-items:center;
    justify-content:center;
    height:260px;
    padding:12px;
    border-radius:var(--ds-radius);
    background:var(--dp-sand);
    overflow:hidden;
}
.ds-ps-related-img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.ds-ps-related-name{
    display:block;
    margin-top:10px;
    font-family:var(--dp-serif);
    font-size:18px;
    color:var(--dp-ink);
}
.ds-ps-related-card:hover .ds-ps-related-name{color:var(--dp-gold)}

/* Lightbox */
.ds-ps-lightbox{
    position:fixed;
    top:0;right:0;bottom:0;left:0;
    z-index:99999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:30px;
    background:#fff;
    cursor:zoom-out;
}
.ds-ps-lightbox.is-open{display:flex}
.ds-ps-lightbox img{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:none;
}
.ds-ps-lightbox-close{
    position:absolute;
    top:15px;
    right:25px;
    background:none;
    border:0;
    color:#000;
    font-size:40px;
    line-height:1;
    cursor:pointer;
}
body.ds-ps-lightbox-open{overflow:hidden}


/*==================================
RESPONSIVE
==================================*/
@media (max-width:1199px){
    .ds-ps-related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width:991px){
    .ds-ps-record{padding:26px}
    .ds-ps-scan{position:static;min-height:0;margin-bottom:30px}
    .ds-pa-grid,
    .ds-ps-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:575px){
    .ds-pa{padding:34px 0 50px}
    .ds-pa .container{padding-left:18px;padding-right:18px}
    .ds-pa-header h2{font-size:34px}
    .ds-pa-filter select{flex:1 1 100%}
    .ds-pa-grid,
    .ds-ps-related-grid{grid-template-columns:1fr}
    .ds-pa-image{height:380px}
    .ds-ps{padding:34px 0 50px}
    .ds-ps-record{padding:18px}
    .ds-ps-title{font-size:28px}
    .ds-ps-table th{width:42%}
    .ds-ps-actions .ds-ps-btn{width:100%;text-align:center}
}

/*==================================
SINGLE ARTWORK (single-artwork.php)
Uses the record layout above; these are the few extras.
==================================*/
.ds-ps-related-sub{
    margin:6px 0 0;
    font-size:16px;
    color:#000;
}
.ds-ps-related-meta{
    display:block;
    margin-top:2px;
    font-family:var(--dp-label);
    font-size:14px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--dp-muted);
}

/* Share button: same look as the other record buttons */
.ds-ps-actions .artwork-share{
    display:inline-block;
    position:relative;
    min-height:0;
    margin:0;
}
.ds-ps-actions .share-toggle{
    padding:13px 24px;
    border-radius:var(--ds-radius);
    border:1.5px solid var(--dp-ink);
    background:transparent;
    color:var(--dp-ink);
    font-family:var(--dp-label);
    font-size:14px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    transition:all .25s ease;
}
.ds-ps-actions .share-toggle:hover{background:var(--dp-ink);color:#fff}
.ds-ps-actions .share-toggle i{margin-right:8px}
.ds-ps-actions .share-panel{top:50%;margin-top:-21px}

/* ==================================
SINGLE ARTWORK: courtesy / source line under the image
(scoped to .ds-ps-artwork so the other poster pages are unaffected)
==================================*/
.ds-ps-artwork .ds-ps-scan-artwork{
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
}
.ds-ps-artwork .ds-ps-figure{
    display:flex;
    flex-direction:column;
    align-items:center;
    max-width:100%;
    margin:0;
}
.ds-ps-artwork .ds-ps-courtesy{
    /* width:0 + min-width:100% keeps the caption exactly as wide as the image */
    width:0;
    min-width:100%;
    box-sizing:border-box;
    margin:18px 0 0;
    padding:12px 4px 0;
    border-top:1px solid rgba(0,0,0,.14);
    font-size:14px;
    line-height:1.5;
    text-align:center;
    color:#555;
}
.ds-ps-artwork .ds-ps-courtesy-label{
    margin-right:6px;
    font-family:var(--dp-label);
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#766e64;
}
.ds-ps-artwork .ds-ps-courtesy-text{
    font-style:italic;
    color:#444;
}
.ds-ps-artwork .ds-ps-courtesy a{
    color:inherit;
    text-decoration:underline;
}

/*==================================
SINGLE ARTWORK: related works carousel
Cards reuse .ds-artist-card (artwork-grid.css); this only lays them in a sliding row.
==================================*/
.ds-ps-related-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
}
.ds-ps-carousel-nav{display:flex;gap:10px;flex:0 0 auto}
.ds-ps-carousel-btn{
    width:44px;
    height:44px;
    padding:0 0 4px;
    border:1.5px solid var(--dp-ink);
    border-radius:50%;
    background:transparent;
    color:var(--dp-ink);
    font-size:28px;
    line-height:1;
    cursor:pointer;
    transition:background .2s,color .2s,opacity .2s;
}
.ds-ps-carousel-btn:hover{background:var(--dp-ink);color:#fff}
.ds-ps-carousel-btn:disabled{opacity:.3;cursor:default;background:transparent;color:var(--dp-ink)}

.ds-ps-carousel-track.ds-artist-grid{
    display:flex;
    gap:24px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:6px 0 18px;
}
.ds-ps-carousel-track.ds-artist-grid::-webkit-scrollbar{display:none}
.ds-ps-carousel-slide{
    flex:0 0 calc((100% - 48px) / 3);
    min-width:0;
    scroll-snap-align:start;
}

@media (max-width:991px){
    .ds-ps-carousel-slide{flex-basis:calc((100% - 24px) / 2)}
}
@media (max-width:575px){
    .ds-ps-carousel-slide{flex-basis:100%}
    .ds-ps-related-head{align-items:flex-start;flex-direction:column}
}

/*==================================
RECORD PHOTO VIEWER (several photos per archive record)
Large image + arrows + scrollable thumbnail strip, and arrows in the full-screen view.
==================================*/
.ds-ps-gallery{width:100%;min-width:0}
.ds-ps-gallery-stage{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
}
.ds-ps-gallery-arrow,
.ds-ps-lightbox-arrow{
    position:absolute;
    top:50%;
    z-index:2;
    width:44px;
    height:44px;
    margin-top:-22px;
    padding:0 0 4px;
    border:1.5px solid #000;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:#000;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    transition:background .2s,color .2s;
}
.ds-ps-gallery-arrow:hover,
.ds-ps-lightbox-arrow:hover{background:#000;color:#fff}
.ds-ps-gallery-arrow.is-prev{left:6px}
.ds-ps-gallery-arrow.is-next{right:6px}
.ds-ps-gallery-count{
    position:absolute;
    left:10px;
    bottom:10px;
    padding:5px 12px;
    border-radius:var(--ds-radius);
    background:rgba(0,0,0,.72);
    color:#fff;
    font-size:14px;
    line-height:1.4;
    letter-spacing:.08em;
}

.ds-ps-gallery-thumbs{
    display:flex;
    gap:10px;
    margin-top:18px;
    padding:2px 2px 10px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
}
.ds-ps-gallery-thumb{
    flex:0 0 auto;
    width:76px;
    height:96px;
    padding:0;
    border:2px solid transparent;
    background:#fff;
    opacity:.6;
    cursor:pointer;
    scroll-snap-align:start;
    transition:opacity .2s,border-color .2s;
}
.ds-ps-gallery-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.ds-ps-gallery-thumb:hover{opacity:1}
.ds-ps-gallery-thumb.is-active{opacity:1;border-color:var(--dp-gold,#B8924A)}

/* Full-screen view */
.ds-ps-lightbox-arrow{width:52px;height:52px;margin-top:-26px;font-size:34px}
.ds-ps-lightbox-arrow.is-prev{left:22px}
.ds-ps-lightbox-arrow.is-next{right:22px}
.ds-ps-lightbox-count{
    position:absolute;
    bottom:18px;
    left:50%;
    transform:translateX(-50%);
    color:#000;
    font-size:15px;
    letter-spacing:.1em;
}

@media (max-width:575px){
    .ds-ps-gallery-thumb{width:62px;height:80px}
    .ds-ps-lightbox-arrow{width:42px;height:42px;margin-top:-21px;font-size:28px}
    .ds-ps-lightbox-arrow.is-prev{left:8px}
    .ds-ps-lightbox-arrow.is-next{right:8px}
}


/*==================================
PER-PHOTO DETAILS ("About this photo") - changes with the photo on screen
==================================*/
.ds-ps-photo-details{margin:22px 0 4px}
.ds-ps-photo-detail{display:none}
.ds-ps-photo-detail.is-active{
    display:block;
    padding:18px 20px;
    background:#fff;
    border:1px solid var(--dp-line);
    border-left:4px solid var(--dp-gold);
    border-radius:0 var(--ds-radius) var(--ds-radius) 0;
    animation:dsPhotoDetailIn .35s ease;
}
.ds-ps-photo-detail.is-empty.is-active{display:none}
.ds-ps-photo-detail-eyebrow{
    display:block;
    margin-bottom:10px;
    font-family:var(--dp-label);
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--dp-gold);
}
.ds-ps-photo-caption{
    margin:0 0 12px;
    font-family:var(--dp-serif);
    font-size:18px;
    line-height:1.5;
    color:#000;
}
.ds-ps-photo-facts{
    display:grid;
    grid-template-columns:max-content 1fr;
    gap:6px 18px;
    margin:0;
}
.ds-ps-photo-facts dt{
    font-family:var(--dp-label);
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--dp-muted);
    padding-top:3px;
}
.ds-ps-photo-facts dd{margin:0;font-size:16px;line-height:1.55;color:#000}
.ds-ps-photo-notes{margin:12px 0 0;font-size:15px;line-height:1.65;color:#000}
@keyframes dsPhotoDetailIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:575px){
    .ds-ps-photo-facts{grid-template-columns:1fr;gap:2px}
    .ds-ps-photo-facts dd{margin-bottom:8px}
}
