/*
Reusable content components, consolidated from the 5 existing bsw- pages.

Where two pages had the exact same block under different class names, they
are merged onto one selector list below. Two real conflicts were found and
resolved (see notes inline):
  - .bsw-figure meant two different things (Press Room: small centered
    photo; Making Blood Star: full-width in-article photo with caption).
    Making Blood Star's markup needs updating to .bsw-article-figure.
  - .bsw-closing p lost its max-width/centering in Making Blood Star only —
    treated as a bug, fixed to match the other 3 pages.
*/

/* ===== Cards ===== */
.bsw-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:32px 34px;box-shadow:var(--bsw-shadow-card)}
.bsw-card-accent{border-left:3px solid var(--bsw-red)}
.bsw-contact-card{max-width:480px;margin:0 auto;text-align:center}
.bsw-contact-card .label{color:var(--bsw-text-faint);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 10px}
.bsw-contact-card .name{color:var(--bsw-text-bright);font-size:21px;font-weight:700;margin:0}
.bsw-contact-card .name span{color:var(--bsw-red);font-weight:400}
.bsw-contact-card a.email{color:var(--bsw-red);font-size:18px;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(235,33,44,.4);display:inline-block;margin-top:10px}

/* ===== Avatars / portraits ===== */
.bsw-avatar{width:96px !important;height:96px !important;max-width:96px;min-width:96px;border-radius:50% !important;object-fit:cover !important;display:block;flex-shrink:0;margin:0 0 16px;box-shadow:var(--bsw-shadow-avatar)}
.bsw-portrait{width:calc(100% + 68px);margin:-34px -34px 22px;height:220px;object-fit:cover;border-radius:var(--bsw-radius-lg) var(--bsw-radius-lg) 0 0;display:block}
.bsw-cast-card{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.bsw-cast-card .bsw-avatar{width:100% !important;max-width:100%;height:auto !important;aspect-ratio:1/1;border-radius:50% !important;margin:0 0 18px}
.bsw-cast-card h3{color:var(--bsw-text-bright);font-size:16px;margin:0 0 4px}
.bsw-cast-card p{color:var(--bsw-red);font-size:12px;margin:0}

/* ===== Bio cards (filmmaker/cast biographies) ===== */
.bsw-bio-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius-lg);padding:34px;box-shadow:var(--bsw-shadow-card)}
.bsw-bio-card h3{color:var(--bsw-text-bright);font-size:21px;margin:0}
.bsw-bio-card .bsw-avatar{width:88px !important;height:88px !important;max-width:88px;min-width:88px;margin-bottom:18px}
.bsw-bio-card .role{color:var(--bsw-red);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;margin:6px 0 16px}
.bsw-bio-card p.bio{color:var(--bsw-text-body);line-height:1.7;font-size:15px;margin:0 0 14px}
.bsw-bio-card p.bio:last-of-type{margin-bottom:0}
.bsw-note-card{max-width:760px;margin:44px auto 0;text-align:center;background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:26px 30px}
.bsw-note-card p{color:var(--bsw-text-muted);font-size:15px;margin:0 0 18px}

/* ===== Figures =====
   .bsw-figure = small centered photo (Press Room "making of"/director shot).
   .bsw-article-figure = full-width in-article photo + caption, used inside
   .bsw-article prose (was .bsw-figure in Making Blood Star's markup —
   rename that page's class to avoid colliding with the definition above). */
.bsw-figure{max-width:420px;margin:0 auto 34px}
.bsw-figure img{border-radius:var(--bsw-radius-lg);box-shadow:var(--bsw-shadow-figure)}
.bsw-article-figure{margin:44px 0}
.bsw-article-figure img{border-radius:var(--bsw-radius-lg);box-shadow:var(--bsw-shadow-figure)}
.bsw-article-figure figcaption{margin-top:.8em;font-size:.85rem;color:var(--bsw-text-dim);text-align:center}
.bsw-make-figure{border-radius:var(--bsw-radius-lg);overflow:hidden;margin-bottom:44px}

/* ===== Quotes ===== */
.bsw-quote{max-width:680px;margin:0 auto}
.bsw-quote-mark{color:var(--bsw-red);font-family:var(--bsw-font-serif);font-size:44px;line-height:.4;display:block;margin-bottom:16px}
.bsw-quote p{color:var(--bsw-text);font-size:18px;line-height:1.75;margin:0 0 20px}
.bsw-quote .sig{color:var(--bsw-red);font-weight:600;margin-top:6px}

.bsw-pull-quote{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-left:3px solid var(--bsw-red);border-radius:var(--bsw-radius);padding:30px 34px;margin:44px 0;box-shadow:var(--bsw-shadow-card)}
.bsw-pull-quote .mark{color:var(--bsw-red);font-family:var(--bsw-font-serif);font-size:44px;line-height:.4;display:block;margin-bottom:14px}
.bsw-pull-quote p{color:var(--bsw-text-bright);font-size:21px;font-weight:600;line-height:1.5;margin:0}

.bsw-quote-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-left:3px solid var(--bsw-red);border-radius:var(--bsw-radius);padding:26px 24px;box-shadow:var(--bsw-shadow-card-soft)}
.bsw-quote-card .mark{color:var(--bsw-red);font-family:var(--bsw-font-serif);font-size:36px;line-height:.5;display:block;margin-bottom:10px}
.bsw-quote-card p{color:var(--bsw-text-bright);font-size:15px;font-weight:600;line-height:1.5;margin:0}
.bsw-quote-card a{display:inline-block;margin-top:14px;color:var(--bsw-red);font-size:11px;font-weight:700;letter-spacing:1px;text-decoration:none;border-bottom:1px solid rgba(235,33,44,.4)}

.bsw-quote-list{list-style:none;margin:0 0 20px;padding:0}
.bsw-quote-list li{color:var(--bsw-text-bright);font-style:italic;font-size:15px;margin-bottom:12px;padding-left:20px;position:relative;line-height:1.5}
.bsw-quote-list li::before{content:"\201C";position:absolute;left:0;top:-2px;color:var(--bsw-red);font-weight:800;font-size:20px;font-style:normal}
.bsw-quote-list li span{display:block;color:var(--bsw-text-faint);font-style:normal;font-size:12px;margin-top:3px}

.bsw-cine-card{max-width:820px;margin:0 auto;background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius-lg);padding:32px 34px;box-shadow:var(--bsw-shadow-card)}
.bsw-cine-card .bsw-quote-list{columns:2;column-gap:30px}
.bsw-cine-card .bsw-quote-list li{break-inside:avoid}
.bsw-cine-card p{color:var(--bsw-text-body);font-size:15px;line-height:1.75;margin:0 0 14px}
.bsw-cine-card p:last-child{margin-bottom:0}

/* ===== Text blocks ===== */
.bsw-logline{max-width:820px;margin:0 auto 60px}
.bsw-logline p{color:var(--bsw-text-bright);font-size:24px;font-weight:500;line-height:1.5;margin:14px 0 0}

.bsw-full-synopsis,.bsw-synopsis{max-width:760px;margin:0 auto}
.bsw-full-synopsis p,.bsw-synopsis p{color:var(--bsw-text-body);font-size:17px;line-height:1.8;margin:0 0 20px}

.bsw-production-text,.bsw-production{max-width:720px;margin:0 auto;text-align:center}
.bsw-production-text p,.bsw-production p{color:var(--bsw-text-body);font-size:16px;line-height:1.75;margin:0 0 20px}
.bsw-production-note{max-width:700px;margin:40px auto 0;text-align:center;background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:28px 32px}
.bsw-production-note p{color:var(--bsw-text-muted);font-size:15px;line-height:1.7;margin:0 0 18px}

.bsw-article{max-width:760px;margin:0 auto}
.bsw-article p{color:var(--bsw-text-body);font-size:17px;line-height:1.85;margin:0 0 22px}
.bsw-article h2{text-align:left;color:var(--bsw-text-bright);font-size:27px;font-weight:800;letter-spacing:-.01em;margin:56px 0 24px;padding-top:28px;border-top:1px solid #262626}
.bsw-article h2:first-of-type{border-top:0;padding-top:0;margin-top:0}

.bsw-closing{text-align:center}
.bsw-closing p{color:#dcdcdc;font-size:16px;max-width:640px;margin:0 auto 26px}

/* ===== Stat / fact rows & boxes ===== */
.bsw-stat-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--bsw-border-soft)}
.bsw-stat-row:last-child{border-bottom:0}
.bsw-stat-row .k{color:var(--bsw-red);font-weight:700;letter-spacing:.5px;font-size:11px;text-transform:uppercase;white-space:nowrap}
.bsw-stat-row .v{color:var(--bsw-text-bright);text-align:right;font-weight:600;font-size:14px}
.bsw-stat-row .v a{color:var(--bsw-red);text-decoration:none;font-weight:700}

.bsw-stat-box{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:24px 14px;text-align:center;box-shadow:var(--bsw-shadow-card-soft)}
.bsw-stat-box .num{color:var(--bsw-red);font-size:26px;font-weight:800;margin:0}
.bsw-stat-box .lbl{color:var(--bsw-text-dim);font-size:13px;margin:6px 0 0}

.bsw-terr-box{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:24px 16px;text-align:center;box-shadow:var(--bsw-shadow-card-soft)}
.bsw-terr-box .kicker{color:var(--bsw-red);font-weight:700;letter-spacing:1px;font-size:12px;text-transform:uppercase}
.bsw-terr-box .val{color:var(--bsw-text-bright);margin:10px 0 0;font-weight:600}

/* ===== Festival rows ===== */
.bsw-fest-card{max-width:720px;margin:0 auto}
.bsw-fest-row{display:flex;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px solid var(--bsw-border-soft);text-align:left}
.bsw-fest-row:last-child{border-bottom:0}
.bsw-fest-row .yr{color:var(--bsw-red);font-weight:800;font-size:14px;min-width:44px}
.bsw-fest-row a{color:var(--bsw-text-bright);text-decoration:none;font-weight:700}
.bsw-fest-row .loc{color:var(--bsw-text-dim);font-style:italic}

/* ===== Lists ===== */
.bsw-list{list-style:none !important;margin:0 0 14px;padding:0}
.bsw-list li{list-style:none !important;position:relative;padding:8px 0 8px 20px;border-bottom:1px solid var(--bsw-border-soft);font-size:14px;color:#e2e2e2}
.bsw-list li::marker{content:""}
.bsw-list li:last-child{border-bottom:0}
.bsw-list li::before{content:"\203A";position:absolute;left:0;color:var(--bsw-red);font-weight:800}

/* ===== Themed content cards ===== */
.bsw-theme-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-left:3px solid var(--bsw-red);border-radius:var(--bsw-radius-lg);padding:28px 26px;box-shadow:var(--bsw-shadow-card)}
.bsw-theme-card h3{color:var(--bsw-red);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 14px}
.bsw-theme-card p{color:#e2e2e2;font-size:15px;line-height:1.7;margin:0}
.bsw-theme-sig{text-align:center;color:var(--bsw-text-dim);font-size:13px;margin-top:28px}

.bsw-credits-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius-lg);padding:30px 32px;text-align:center;box-shadow:var(--bsw-shadow-card)}
.bsw-credits-card h3{color:var(--bsw-text-bright);font-size:18px;margin:0 0 12px}
.bsw-credits-card p{color:var(--bsw-text-muted);font-size:14px;line-height:1.6;margin:0 0 18px}

.bsw-topic-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:20px 18px;box-shadow:var(--bsw-shadow-card-soft)}
.bsw-topic-card p{color:var(--bsw-text-bright);margin:0;font-size:14px}

.bsw-asset-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius-lg);padding:32px;box-shadow:var(--bsw-shadow-card);display:flex;flex-direction:column}
.bsw-asset-card h3{color:var(--bsw-text-bright);margin:0 0 16px;font-size:19px}
.bsw-asset-card .note{color:var(--bsw-text-faint);font-size:12px;margin:0 0 16px}
.bsw-asset-card .bsw-list{flex-grow:1}
.bsw-asset-card .cta,.bsw-review-card .cta{margin-top:auto}

/* ===== Review cards ===== */
.bsw-review-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-left:3px solid var(--bsw-red);border-radius:var(--bsw-radius-lg);padding:28px 30px;box-shadow:var(--bsw-shadow-card);display:flex;flex-direction:column}
.bsw-review-card .source{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.bsw-review-card h3{color:var(--bsw-text-bright);font-size:18px;margin:0}
.bsw-review-card .score{color:var(--bsw-red);font-weight:800;font-size:14px;white-space:nowrap}
.bsw-review-card blockquote{margin:0 0 12px;padding:0;color:var(--bsw-text-bright);font-size:16px;font-weight:600;line-height:1.5;font-style:italic}
.bsw-review-card blockquote + blockquote{margin-top:-4px}
.bsw-review-card p.desc{color:var(--bsw-text-muted);font-size:14px;line-height:1.65;margin:0 0 16px}
.bsw-review-card a.read{color:var(--bsw-red);font-size:12px;font-weight:700;letter-spacing:.5px;text-decoration:none;border-bottom:1px solid rgba(235,33,44,.4)}
.bsw-review-card .unlinked-note{color:var(--bsw-text-ghost);font-size:12px;font-style:italic}

.bsw-perf-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius-lg);padding:32px;box-shadow:var(--bsw-shadow-card)}
.bsw-perf-card h3{color:var(--bsw-text-bright);font-size:19px;margin:0 0 18px}
.bsw-perf-card p.bio{color:var(--bsw-text-body);font-size:15px;line-height:1.75;margin:0 0 14px}

.bsw-industry-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-left:3px solid var(--bsw-red);border-radius:var(--bsw-radius-lg);padding:26px 28px;box-shadow:var(--bsw-shadow-card-soft)}
.bsw-industry-card p.q{color:var(--bsw-text-bright);font-size:16px;font-style:italic;line-height:1.55;margin:0 0 12px}
.bsw-industry-card p.attr{color:var(--bsw-red);font-size:13px;font-weight:700;margin:0}
.bsw-industry-card p.attr a{color:var(--bsw-red);text-decoration:none}
.bsw-industry-note{max-width:760px;margin:0 auto;text-align:center;color:var(--bsw-text-dim);font-size:14px;line-height:1.7}

/* ===== Press lists ===== */
.bsw-press-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.bsw-press-card{background:var(--bsw-card-bg);border:1px solid var(--bsw-border);border-radius:var(--bsw-radius);padding:26px 28px;box-shadow:var(--bsw-shadow-card-soft)}
.bsw-press-card blockquote{margin:0 0 10px;color:var(--bsw-text-bright);font-size:15px;font-style:italic;font-weight:600}
.bsw-press-card h3{margin:0 0 8px;font-size:17px}
.bsw-press-card h3 a{color:var(--bsw-red);text-decoration:none}
.bsw-press-card h3 a:hover{text-decoration:underline}
.bsw-press-card h3 span.unlinked{color:var(--bsw-red)}
.bsw-press-card p.desc,.bsw-press-card p{color:var(--bsw-text-muted);font-size:14px;line-height:1.6;margin:0}

/* ===== Trailer card (clickable poster + play button, links out to YouTube) ===== */
.bsw-trailer-card{position:relative;max-width:780px;margin:0 auto;border-radius:var(--bsw-radius-lg);overflow:hidden;display:block;box-shadow:var(--bsw-shadow-card)}
.bsw-trailer-card img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .3s}
.bsw-trailer-card:hover img{transform:scale(1.03)}
.bsw-trailer-card::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.55))}
.bsw-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--bsw-red);display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:0 8px 24px rgba(0,0,0,.5);transition:transform .2s}
.bsw-trailer-card:hover .bsw-play-btn{transform:translate(-50%,-50%) scale(1.08)}
.bsw-play-btn::before{content:"";border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent #ffffff;margin-left:5px}

/* ===== Footer CTA (background image set inline per page, same as hero) ===== */
.bsw-footer-cta{position:relative;background-size:cover;background-position:center;padding:100px 0;text-align:center}
.bsw-footer-links{margin-top:36px;display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.bsw-footer-links a{color:var(--bsw-red);text-decoration:none;font-weight:700;letter-spacing:1px;font-size:15px}

@media (max-width:820px){
	.bsw-cine-card .bsw-quote-list{columns:1}
	.bsw-portrait{height:200px}
}
