.asfr-media-wrap{width:min(1200px,calc(100% - 32px));margin:32px auto 64px}.asfr-db-header{margin-bottom:24px}.asfr-db-header h1,.asfr-entry-header h1{margin-bottom:8px}.asfr-filter-form{padding:18px;border:1px solid rgba(127,127,127,.25);border-radius:10px;margin-bottom:20px}.asfr-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}.asfr-filter-grid label{display:block;font-weight:600;margin-bottom:5px}.asfr-filter-grid input,.asfr-filter-grid select{width:100%;min-height:40px}.asfr-filter-actions{display:flex;gap:10px;align-items:center}.asfr-filter-actions button,.asfr-button{display:inline-block;padding:10px 15px;border:0;border-radius:6px;text-decoration:none;cursor:pointer}.asfr-filter-actions button{background:#222;color:#fff}.asfr-results-count{margin:16px 0;font-weight:600}.asfr-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.asfr-media-card{border:1px solid rgba(127,127,127,.25);border-radius:10px;overflow:hidden;background:var(--wp--preset--color--base,#fff)}.asfr-card-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#eee}.asfr-card-image img{width:100%;height:100%;object-fit:cover;display:block}.asfr-no-image{height:100%;min-height:180px;display:grid;place-items:center;background:#eee;color:#666}.asfr-card-body{padding:16px}.asfr-card-body h2{font-size:1.25rem;margin:0 0 6px}.asfr-card-body h2 a{text-decoration:none}.asfr-card-meta,.asfr-entry-meta-line{opacity:.75;margin-bottom:10px}.asfr-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.asfr-tags span,.asfr-tags a{display:inline-block;padding:4px 8px;border-radius:999px;background:rgba(127,127,127,.14);font-size:.85em;text-decoration:none}.asfr-tags a:hover{text-decoration:underline}.asfr-tags-muted span{opacity:.8}.asfr-pagination ul{display:flex;gap:8px;list-style:none;padding:0;margin-top:28px}.asfr-pagination a,.asfr-pagination span{display:block;padding:8px 12px;border:1px solid rgba(127,127,127,.25);border-radius:6px;text-decoration:none}.asfr-entry-top-grid{display:grid;grid-template-columns:minmax(250px,38%) 1fr;gap:28px;margin:24px 0}.asfr-entry-image img{width:100%;height:auto;display:block;border-radius:10px}.asfr-entry-facts{border:1px solid rgba(127,127,127,.25);border-radius:10px;padding:18px}.asfr-entry-facts>div{padding:8px 0;border-bottom:1px solid rgba(127,127,127,.15)}.asfr-entry-facts>div:last-child{border-bottom:0}.asfr-entry-section{margin:32px 0}.asfr-entry-section h2{border-bottom:1px solid rgba(127,127,127,.25);padding-bottom:8px}.asfr-entry-links{display:flex;flex-wrap:wrap;gap:10px}.asfr-button{background:#222;color:#fff}.asfr-timestamps{white-space:normal;line-height:1.8}.asfr-no-results{padding:30px;border:1px dashed rgba(127,127,127,.35);border-radius:10px;text-align:center}@media(max-width:900px){.asfr-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asfr-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.asfr-filter-grid,.asfr-media-grid,.asfr-entry-top-grid{grid-template-columns:1fr}.asfr-media-wrap{width:min(100% - 20px,1200px)}}

/* 0.1.4: when a single entry is rendered inside the theme's normal Page template,
   let Pinnacle own the content width, sidebar and vertical rhythm. */
.asfr-media-single-embedded{width:100%;max-width:none;margin:0 0 40px;padding:0}
.asfr-media-single-embedded .asfr-entry-meta-line{margin:0 0 18px}
.asfr-media-page .asfr-media-single-embedded h2{margin-top:0}

/* 0.1.7: Match Pinnacle's normal tall page-title/header area.
   Important: the space belongs INSIDE #pageheader (the banner background),
   not above .contentclass. This keeps the menu, background and title together. */
body.single-asfr_media .contentclass,
body.asfr-media-page .contentclass {
    padding-top: 0 !important;
}

body.single-asfr_media #pageheader.titleclass,
body.asfr-media-page #pageheader.titleclass {
    min-height: 280px !important;
    box-sizing: border-box;
}

/* Pinnacle uses a transparent header over the title image. Push the actual
   page title down within that same banner so it sits below the navigation. */
body.single-asfr_media #pageheader .page-header,
body.asfr-media-page #pageheader .page-header {
    box-sizing: border-box;
    padding-top: 175px !important;
    padding-bottom: 35px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    body.single-asfr_media #pageheader.titleclass,
    body.asfr-media-page #pageheader.titleclass {
        min-height: 220px !important;
    }
    body.single-asfr_media #pageheader .page-header,
    body.asfr-media-page #pageheader .page-header {
        padding-top: 135px !important;
        padding-bottom: 25px !important;
    }
}

/* 0.1.9: Media Database landing page */
body.asfr-media-archive-page .contentclass{padding-top:0!important}
body.asfr-media-archive-page #pageheader.titleclass{min-height:280px!important;box-sizing:border-box}
body.asfr-media-archive-page #pageheader .page-header{box-sizing:border-box;padding-top:175px!important;padding-bottom:35px!important;margin-top:0!important;margin-bottom:0!important}
.asfr-media-archive-page .asfr-media-wrap{width:100%;max-width:none;margin:28px 0 60px}
.asfr-db-header{max-width:900px;margin-bottom:22px}
.asfr-db-header p{font-size:1.05em;margin:0}
.asfr-search-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:14px;margin-bottom:14px}
.asfr-search-row label,.asfr-filter-grid label{display:block;font-weight:600;margin-bottom:5px}
.asfr-search-row input,.asfr-search-row select,.asfr-filter-grid input,.asfr-filter-grid select{width:100%;min-height:42px;padding:7px 9px;box-sizing:border-box}
.asfr-filter-form{background:rgba(127,127,127,.035);padding:18px;border:1px solid rgba(127,127,127,.22);border-radius:10px;margin-bottom:18px}
.asfr-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.asfr-filter-actions{min-height:42px}
.asfr-filter-actions button{min-height:42px;padding:8px 16px}
.asfr-filter-actions a{display:inline-block;padding:9px 6px}
.asfr-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:16px 0}
.asfr-results-count{margin:0;font-weight:400}
.asfr-filter-status{font-size:.9em;opacity:.7}
.asfr-media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.asfr-media-card{display:flex;flex-direction:column;height:100%}
.asfr-card-body{display:flex;flex-direction:column;flex:1}
.asfr-card-body h2{font-size:1.2rem;line-height:1.25;margin-bottom:7px}
.asfr-card-characters{font-size:.92em;margin:4px 0 2px}
.asfr-card-taxonomies{margin:6px 0}
.asfr-card-taxonomies .asfr-tags{margin:5px 0}
.asfr-tags-primary span{font-weight:600}
.asfr-tags-character span{background:rgba(127,127,127,.09)}
.asfr-card-excerpt{margin:10px 0 14px}
.asfr-card-view{margin-top:auto;display:inline-block;align-self:flex-start;text-decoration:none;font-weight:600}
.asfr-no-results p{margin:8px 0 16px}
@media(max-width:900px){body.asfr-media-archive-page #pageheader.titleclass{min-height:220px!important}body.asfr-media-archive-page #pageheader .page-header{padding-top:135px!important;padding-bottom:25px!important}.asfr-search-row{grid-template-columns:1fr}.asfr-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asfr-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.asfr-filter-grid,.asfr-media-grid{grid-template-columns:1fr}.asfr-results-toolbar{align-items:flex-start;flex-direction:column}}


/* 0.2.0: Use Pinnacle's normal main/sidebar grid on the database archive. */
body.asfr-media-archive-page #content > .row > .main{float:left}
body.asfr-media-archive-page #content > .row > aside,
body.asfr-media-archive-page #content > .row > .sidebar{float:right}
.asfr-admin-hint{margin:14px auto;max-width:720px;padding:10px 12px;border-left:3px solid #d98000;background:rgba(217,128,0,.08);text-align:left}
@media(max-width:991px){body.asfr-media-archive-page #content > .row > .main,body.asfr-media-archive-page #content > .row > aside,body.asfr-media-archive-page #content > .row > .sidebar{float:none}}


/* 0.2.1: /media/ is now a genuine WordPress Page rendered entirely by Pinnacle.
   The shortcode owns only the database content inside the normal page column. */
body.asfr-media-database-page .asfr-media-shortcode{
    width:100%;
    max-width:none;
    margin:0 0 60px;
    padding:0;
}
body.asfr-media-database-page .asfr-media-shortcode .asfr-db-header{
    margin-top:0;
}

/* 0.2.2: Give the /media/ landing page the same tall Pinnacle page-header treatment
   as the individual media entries. Now that /media/ is a real WordPress Page,
   target its dedicated body class rather than the old archive class. */
body.asfr-media-database-page #pageheader.titleclass{
    min-height:280px !important;
    box-sizing:border-box;
}
body.asfr-media-database-page #pageheader .page-header{
    box-sizing:border-box;
    padding-top:175px !important;
    padding-bottom:35px !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
}
@media(max-width:900px){
    body.asfr-media-database-page #pageheader.titleclass{
        min-height:220px !important;
    }
    body.asfr-media-database-page #pageheader .page-header{
        padding-top:135px !important;
        padding-bottom:25px !important;
    }
}


/* 0.2.3: Repeatable external references */
.asfr-reference-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 14px}
.asfr-reference-link{display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid rgba(127,127,127,.22);border-radius:7px;text-decoration:none;background:rgba(127,127,127,.035)}
.asfr-reference-link:hover{border-color:rgba(127,127,127,.4);text-decoration:none}
.asfr-reference-label-public{font-weight:600}
.asfr-reference-domain{font-size:.84em;opacity:.68;overflow-wrap:anywhere}
.asfr-forum-link-wrap{margin-top:12px}
@media(max-width:650px){.asfr-reference-list{grid-template-columns:1fr}}

/* 0.2.4: Structured character pages */
body.asfr-character-page .contentclass{padding-top:0!important}
body.asfr-character-page #pageheader.titleclass{min-height:280px!important;box-sizing:border-box}
body.asfr-character-page #pageheader .page-header{box-sizing:border-box;padding-top:175px!important;padding-bottom:35px!important;margin-top:0!important;margin-bottom:0!important}
.asfr-character-single-embedded{width:100%;max-width:none;margin:0 0 40px;padding:0}
.asfr-character-top-grid{display:grid;grid-template-columns:minmax(220px,34%) 1fr;gap:28px;margin:24px 0}
.asfr-character-image img{width:100%;height:auto;display:block;border-radius:10px}
.asfr-character-appearances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.asfr-character-appearance-card{display:flex;align-items:center;gap:14px;border:1px solid rgba(127,127,127,.22);border-radius:8px;padding:10px;text-decoration:none}
.asfr-character-appearance-card:hover{text-decoration:none}
.asfr-character-appearance-thumb{width:92px;min-width:92px;aspect-ratio:16/10;overflow:hidden;border-radius:6px;background:#eee;display:block}
.asfr-character-appearance-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.asfr-character-appearance-thumb .asfr-no-image{min-height:100%;font-size:.8em;text-align:center}
.asfr-character-appearance-copy{display:flex;flex-direction:column;gap:3px}
.asfr-character-appearance-copy span{opacity:.72;font-size:.9em}
.asfr-card-characters a{text-decoration:none}
.asfr-card-characters a:hover{text-decoration:underline}
@media(max-width:900px){body.asfr-character-page #pageheader.titleclass{min-height:220px!important}body.asfr-character-page #pageheader .page-header{padding-top:135px!important;padding-bottom:25px!important}.asfr-character-appearances{grid-template-columns:1fr}}
@media(max-width:650px){.asfr-character-top-grid{grid-template-columns:1fr}}

/* 0.2.5: Expanded Character Profiles */
.asfr-entry-facts a{font-weight:500}
.asfr-character-notes{padding:0}
.asfr-character-profile p:last-child,.asfr-character-notes p:last-child{margin-bottom:0}

/* 0.2.6: Structured performers / cast */
body.asfr-performer-page .contentclass{padding-top:0!important}
body.asfr-performer-page #pageheader.titleclass{min-height:280px!important;box-sizing:border-box}
body.asfr-performer-page #pageheader .page-header{box-sizing:border-box;padding-top:175px!important;padding-bottom:35px!important;margin-top:0!important;margin-bottom:0!important}
.asfr-performer-single-embedded{width:100%;max-width:none;margin:0 0 40px;padding:0}
.asfr-performer-top-grid{display:grid;grid-template-columns:minmax(220px,34%) 1fr;gap:28px;margin:24px 0}
.asfr-performer-image img{width:100%;height:auto;display:block;border-radius:10px}
.asfr-performer-characters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.asfr-performer-character-card{display:flex;align-items:center;gap:14px;border:1px solid rgba(127,127,127,.22);border-radius:8px;padding:10px;text-decoration:none}
.asfr-performer-character-card:hover{text-decoration:none}
.asfr-performer-character-thumb{width:92px;min-width:92px;aspect-ratio:1/1;overflow:hidden;border-radius:6px;background:#eee;display:block}
.asfr-performer-character-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.asfr-performer-character-thumb .asfr-no-image{min-height:100%;font-size:.8em;text-align:center}
.asfr-performer-character-copy{display:flex;flex-direction:column;gap:3px}
.asfr-performer-character-copy span{opacity:.72;font-size:.9em}
.asfr-credit-note{opacity:.72;font-size:.92em}
.asfr-card-performers{font-size:.92em;margin:4px 0 2px}
.asfr-card-performers a{text-decoration:none}
.asfr-card-performers a:hover{text-decoration:underline}
@media(max-width:900px){body.asfr-performer-page #pageheader.titleclass{min-height:220px!important}body.asfr-performer-page #pageheader .page-header{padding-top:135px!important;padding-bottom:25px!important}.asfr-performer-characters{grid-template-columns:1fr}}
@media(max-width:650px){.asfr-performer-top-grid{grid-template-columns:1fr}}

/* 0.2.7: Detailed ASFR scene / timestamp system */
.asfr-scene-public-list{display:grid;gap:14px}
.asfr-scene-public-card{border:1px solid rgba(127,127,127,.24);border-radius:9px;padding:15px 16px;background:rgba(127,127,127,.025)}
.asfr-scene-public-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.asfr-scene-number{font-weight:600;margin-right:10px}
.asfr-scene-time-public{font-variant-numeric:tabular-nums;opacity:.78}
.asfr-scene-importance-badge{display:inline-block;padding:4px 8px;border-radius:999px;background:rgba(127,127,127,.14);font-size:.82em;white-space:nowrap}
.asfr-scene-public-card h3{margin:8px 0 7px;font-size:1.15rem}
.asfr-scene-description p{margin:0 0 8px}
.asfr-scene-description p:last-child{margin-bottom:0}
.asfr-scene-detail{margin-top:9px}
.asfr-scene-feature-tags{display:inline-flex;margin:0 0 0 6px;vertical-align:middle}
.asfr-scene-importance-key{border-width:2px}
.asfr-scene-importance-major{background:rgba(127,127,127,.045)}
@media(max-width:650px){.asfr-scene-public-head{align-items:flex-start;flex-direction:column}.asfr-scene-feature-tags{display:flex;margin:6px 0 0}}

/* 0.2.8: Scene-level search and the dedicated ASFR Scene Index. */
body.asfr-scene-database-page #pageheader.titleclass{
    min-height:280px !important;
    box-sizing:border-box;
}
body.asfr-scene-database-page #pageheader .page-header{
    box-sizing:border-box;
    padding-top:175px !important;
    padding-bottom:35px !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
}
.asfr-scene-index-wrap{width:100%;max-width:none;margin:0 0 60px;padding:0}
.asfr-scene-index-filter{margin-top:18px}
.asfr-scene-index-list{display:grid;gap:18px}
.asfr-scene-index-card{border:1px solid rgba(127,127,127,.24);border-radius:10px;padding:16px 18px;background:rgba(127,127,127,.025)}
.asfr-scene-index-media{display:flex;gap:13px;align-items:center;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid rgba(127,127,127,.16)}
.asfr-scene-index-thumb{width:92px;height:62px;flex:0 0 92px;overflow:hidden;border-radius:6px;background:#eee;display:grid;place-items:center;text-decoration:none;color:#666;font-size:.82em}
.asfr-scene-index-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.asfr-scene-index-production{min-width:0}
.asfr-scene-index-production-title{display:block;font-weight:700;font-size:1.05rem;line-height:1.25;text-decoration:none;margin-bottom:3px}
.asfr-scene-index-actions{margin-top:14px}
.asfr-scene-index-actions .asfr-button{padding:8px 12px}
.asfr-scene-index-card .asfr-scene-description p:last-child{margin-bottom:0}

/* Scene-specific controls make the main database filter grid larger, so allow
   it to wrap naturally without making fields too narrow. */
.asfr-media-database-page .asfr-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}

@media(max-width:900px){
    body.asfr-scene-database-page #pageheader.titleclass{min-height:220px!important}
    body.asfr-scene-database-page #pageheader .page-header{padding-top:135px!important;padding-bottom:25px!important}
    .asfr-media-database-page .asfr-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
    .asfr-scene-index-media{align-items:flex-start}
    .asfr-scene-index-thumb{width:78px;height:54px;flex-basis:78px}
    .asfr-media-database-page .asfr-filter-grid{grid-template-columns:1fr}
}

/* 0.3.0: Related/crossover media cards */
.asfr-related-public-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.asfr-related-public-card{display:grid;grid-template-columns:110px 1fr;gap:14px;border:1px solid rgba(127,127,127,.25);border-radius:10px;padding:12px;background:var(--wp--preset--color--base,#fff)}
.asfr-related-thumb{display:block;min-height:80px;background:#eee;border-radius:7px;overflow:hidden}
.asfr-related-thumb img{display:block;width:100%;height:100%;min-height:80px;object-fit:cover}
.asfr-related-no-image{display:grid;place-items:center;height:100%;min-height:80px;color:#666;font-size:.85em}
.asfr-related-public-body h3{font-size:1.05rem;line-height:1.25;margin:3px 0 5px}
.asfr-related-public-body h3 a{text-decoration:none}
.asfr-related-relation{display:inline-block;padding:3px 8px;border-radius:999px;background:rgba(127,127,127,.14);font-size:.8em;font-weight:600}
.asfr-related-meta{font-size:.9em;opacity:.75;margin-bottom:5px}
.asfr-related-public-body p{margin:6px 0 0}
@media(max-width:700px){.asfr-related-public-list{grid-template-columns:1fr}.asfr-related-public-card{grid-template-columns:90px 1fr}}
.asfr-scene-source{font-size:.82em;opacity:.72;margin-top:3px}

/* 0.3.1: Series Profile and Franchise / Universe pages use the same Pinnacle
   page-banner spacing and profile-card layout as Character/Performer pages. */
body.asfr-series-profile-page .contentclass,
body.asfr-franchise-page .contentclass{padding-top:0!important}
body.asfr-series-profile-page #pageheader.titleclass,
body.asfr-franchise-page #pageheader.titleclass{min-height:280px!important;box-sizing:border-box}
body.asfr-series-profile-page #pageheader .page-header,
body.asfr-franchise-page #pageheader .page-header{box-sizing:border-box;padding-top:175px!important;padding-bottom:35px!important;margin-top:0!important;margin-bottom:0!important}
.asfr-series-single-embedded,.asfr-franchise-single-embedded{width:100%;max-width:none;margin:0 0 40px;padding:0}
@media(max-width:900px){
 body.asfr-series-profile-page #pageheader.titleclass,
 body.asfr-franchise-page #pageheader.titleclass{min-height:220px!important}
 body.asfr-series-profile-page #pageheader .page-header,
 body.asfr-franchise-page #pageheader .page-header{padding-top:135px!important;padding-bottom:25px!important}
}

/* 0.3.9: Small curated Master List screenshot references + future gallery link. */
.asfr-master-screenshot-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin:14px 0 18px;
}
.asfr-master-screenshot{
    display:block;
    overflow:hidden;
    border:1px solid rgba(127,127,127,.25);
    border-radius:8px;
    background:#eee;
    aspect-ratio:16/10;
}
.asfr-master-screenshot img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.asfr-full-gallery-link-wrap{margin-top:14px}
.asfr-full-gallery-button{font-weight:600}
@media(max-width:650px){.asfr-master-screenshot-grid{grid-template-columns:1fr}}

/* 0.3.10: persistent route back to the ASFR Master List from all detail/profile pages. */
.asfr-master-list-back{
    margin:0 0 18px;
    padding:0 0 10px;
    border-bottom:1px solid rgba(127,127,127,.2);
    font-size:.95em;
}
.asfr-master-list-back a{
    display:inline-block;
    text-decoration:none;
    font-weight:600;
}
.asfr-master-list-back a:hover,
.asfr-master-list-back a:focus{
    text-decoration:underline;
}
