/* Capri Studio Films v41 — shared public-page polish and media system */
:root{
  --csf-ink:#0d1015;
  --csf-paper:#fbfaf7;
  --csf-gold:#dca531;
  --csf-gold-deep:#a97816;
  --csf-muted:#7c8492;
  --csf-line:rgba(13,16,21,.12);
  --csf-shadow:0 24px 60px rgba(16,22,31,.12);
  --csf-radius:22px;
}
html{scroll-behavior:smooth}
body.csf-subpage{background:var(--csf-paper);color:var(--csf-ink)}
body.csf-subpage main{overflow:hidden}
body.csf-subpage .mrf-nav,
body.marketplace-public-v41 .mrf-nav{position:fixed!important;inset:0 0 auto 0;z-index:1000}
body.csf-subpage .site-back-button,
body.marketplace-public-v41 .site-back-button{z-index:1001}
.csf-hero{position:relative;min-height:76vh;display:flex;align-items:flex-end;isolation:isolate;color:#fff;background:#0d1015;overflow:hidden}
.csf-hero-media{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.015);z-index:-3}
.csf-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,13,.96) 0%,rgba(7,9,13,.82) 42%,rgba(7,9,13,.28) 75%,rgba(7,9,13,.12) 100%);z-index:-2}
.csf-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 25%,rgba(220,165,49,.15),transparent 40%),linear-gradient(0deg,rgba(9,12,17,.82),transparent 38%);z-index:-1}
.csf-hero-services .csf-hero-media{background-image:url('../img/cinematic/banner-film-crew.png')}
.csf-hero-distribution .csf-hero-media{background-image:url('../img/about-v36/division-distribution.webp')}
.csf-hero-ai .csf-hero-media{background-image:url('../img/about-v36/division-ai-studio.webp')}
.csf-hero-line .csf-hero-media{background-image:url('../img/home-v30/line-production-us-global.webp')}
.csf-hero-contact .csf-hero-media{background-image:url('../img/cinematic/contact-bg.jpg')}
.csf-hero-work .csf-hero-media{background-image:url('../img/cinematic/hero-project.jpg')}
.csf-hero-content{padding:clamp(11rem,17vh,15rem) 0 clamp(5rem,10vh,8rem);max-width:760px;margin-left:0}
.csf-kicker{display:inline-flex;align-items:center;gap:.65rem;text-transform:uppercase;letter-spacing:.24em;font:700 .72rem/1.2 'IBM Plex Mono',monospace;color:var(--csf-gold)}
.csf-kicker::before{content:"";width:30px;height:1px;background:currentColor}
.csf-kicker.dark{color:var(--csf-gold-deep)}
.csf-hero h1{margin:.9rem 0 1.3rem;font-size:clamp(3.7rem,7.2vw,7rem);line-height:.88;letter-spacing:-.065em;color:#fff;max-width:950px}
.csf-hero h1 em{color:var(--csf-gold);font-weight:500}
.csf-hero p{max-width:700px;font-size:clamp(1.08rem,1.45vw,1.35rem);line-height:1.65;color:rgba(255,255,255,.76)}
.csf-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.csf-actions .btn-secondary{border-color:rgba(255,255,255,.45);color:#fff;background:transparent}
.csf-metric-strip{background:#fff;border-bottom:1px solid var(--csf-line)}
.csf-metric-strip>.container{display:grid;grid-template-columns:repeat(4,1fr)}
.csf-metric-strip .container>div{padding:1.55rem 1.1rem;border-right:1px solid var(--csf-line);text-align:center}
.csf-metric-strip .container>div:last-child{border-right:0}
.csf-metric-strip strong{display:block;font-size:clamp(1.6rem,2.7vw,2.65rem);letter-spacing:-.05em}
.csf-metric-strip span{display:block;margin-top:.35rem;color:var(--csf-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}
.csf-section{padding:clamp(4.75rem,8vw,8rem) 0;background:#fff}
.csf-section-soft{background:#f6f4ef}
.csf-section-warm{background:#f6efe2}
.csf-section-head{max-width:820px;margin:0 0 3rem}
.csf-section-head.light{color:#fff}
.csf-section-head h2{font-size:clamp(2.5rem,4.5vw,4.5rem);line-height:.96;letter-spacing:-.055em;margin:.75rem 0 1rem}
.csf-section-head p{font-size:1.08rem;line-height:1.75;color:var(--csf-muted)}
.csf-section-head.light p{color:rgba(255,255,255,.68)}
.csf-image-card-grid{display:grid;gap:1.4rem}
.csf-image-card-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.csf-image-card-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.csf-image-card{background:#fff;border:1px solid rgba(19,24,32,.1);border-radius:var(--csf-radius);overflow:hidden;box-shadow:0 14px 38px rgba(15,19,27,.08);transition:transform .35s ease,box-shadow .35s ease}
.csf-image-card:hover{transform:translateY(-7px);box-shadow:var(--csf-shadow)}
.csf-image-card>img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .55s ease}
.csf-image-card:hover>img{transform:scale(1.035)}
.csf-image-card>div{padding:1.4rem}
.csf-image-card span{font:700 .67rem/1.2 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--csf-gold-deep)}
.csf-image-card h3{font-size:1.55rem;line-height:1.05;letter-spacing:-.04em;margin:.55rem 0 .75rem}
.csf-image-card p,.csf-image-card li{color:#68717f;line-height:1.6;font-size:.95rem}
.csf-image-card ul{padding-left:1.1rem;margin:1rem 0 0}
.csf-image-card li+li{margin-top:.3rem}
.csf-text-link{display:inline-block;margin-top:1rem;color:#9b6a0b;font-weight:700}
.csf-media-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.csf-media-split.reverse{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.csf-media-split.reverse figure{order:2}
.csf-media-split figure{margin:0;border-radius:28px;overflow:hidden;box-shadow:var(--csf-shadow);min-height:420px;background:#111}
.csf-media-split figure>img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block}
.csf-media-split h2{font-size:clamp(2.5rem,4.4vw,4.4rem);line-height:.96;letter-spacing:-.055em;margin:.7rem 0 1.25rem}
.csf-media-split .lead{font-size:1.08rem;line-height:1.75;color:var(--csf-muted)}
.csf-step-list{display:grid;gap:.45rem;margin-top:1.7rem}
.csf-step-list article{display:grid;grid-template-columns:48px 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--csf-line)}
.csf-step-list b{color:var(--csf-gold-deep);font:700 .82rem/1.2 'IBM Plex Mono',monospace}
.csf-step-list h3{margin:0 0 .3rem;font-size:1.2rem}
.csf-step-list p{margin:0;color:var(--csf-muted);line-height:1.55}
.csf-step-list.light article{border-color:rgba(255,255,255,.15)}
.csf-step-list.light p{color:rgba(255,255,255,.65)}
.csf-check-list{list-style:none;padding:0;margin:1.5rem 0 2rem;display:grid;gap:.8rem}
.csf-check-list li{position:relative;padding-left:1.6rem;line-height:1.55;color:var(--csf-muted)}
.csf-check-list li::before{content:'✓';position:absolute;left:0;color:var(--csf-gold-deep);font-weight:800}
.csf-callout{border-left:3px solid var(--csf-gold);background:#f6efe2;padding:1.1rem 1.2rem;margin:1.5rem 0 1.7rem;line-height:1.65;color:#5e6571}
.csf-dark-panel{position:relative;background:#0d1015;color:#fff}
.csf-dark-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 15%,rgba(220,165,49,.13),transparent 38%),linear-gradient(135deg,rgba(255,255,255,.025),transparent 45%);pointer-events:none}
.csf-dark-panel>.container{position:relative}
.csf-dark-panel h2,.csf-dark-panel h3{color:#fff}
.csf-dark-panel p{color:rgba(255,255,255,.68);line-height:1.7}
.csf-dark-panel figure{box-shadow:0 25px 65px rgba(0,0,0,.35)}
.csf-form-card{background:#151a22;border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:2rem;box-shadow:0 20px 54px rgba(0,0,0,.24)}
.csf-form-card.light{background:#fff;color:#10141b;border-color:var(--csf-line);box-shadow:var(--csf-shadow)}
.csf-form-card h2{font-size:clamp(2rem,3vw,3rem);margin:.7rem 0 1.3rem}
.csf-form-card .field label{color:inherit}
.csf-form-card input,.csf-form-card select,.csf-form-card textarea{width:100%;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.csf-form-card.light input,.csf-form-card.light select,.csf-form-card.light textarea{background:#fff;color:#111;border-color:rgba(14,18,24,.18)}
.csf-form-card button{margin-top:1.2rem}
.csf-three-models{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.csf-three-models article{position:relative;min-height:450px;border-radius:24px;overflow:hidden;box-shadow:0 24px 55px rgba(0,0,0,.25)}
.csf-three-models img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.csf-three-models article::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,6,10,.95),rgba(3,6,10,.12) 75%)}
.csf-three-models article>div{position:absolute;z-index:2;left:1.4rem;right:1.4rem;bottom:1.4rem}
.csf-three-models h3{font-size:1.65rem;margin:0 0 .55rem}
.csf-ai-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.csf-ai-grid article{position:relative;min-height:460px;border-radius:24px;overflow:hidden;box-shadow:0 18px 42px rgba(9,13,20,.18);transition:transform .35s ease,box-shadow .35s ease}
.csf-ai-grid article:hover{transform:translateY(-8px);box-shadow:0 30px 68px rgba(9,13,20,.24)}
.csf-ai-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.csf-ai-grid article:hover img{transform:scale(1.045)}
.csf-ai-grid article::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,6,10,.97) 0%,rgba(3,6,10,.78) 38%,rgba(3,6,10,.08) 76%)}
.csf-ai-grid article>div{position:absolute;z-index:2;left:1.3rem;right:1.3rem;bottom:1.3rem;color:#fff}
.csf-ai-grid span{font:700 .67rem/1.2 'IBM Plex Mono',monospace;letter-spacing:.16em;color:var(--csf-gold)}
.csf-ai-grid h3{font-size:1.55rem;line-height:1.02;margin:.55rem 0 .55rem;color:#fff}
.csf-ai-grid p{color:rgba(255,255,255,.72);line-height:1.55;margin:0}
.csf-poster-collage{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;padding:1rem;background:#111;height:100%}
.csf-poster-collage img{width:100%;height:100%;min-height:390px;object-fit:cover;border-radius:12px}
.csf-dark-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;margin-top:2.2rem}
.csf-dark-gallery article{border-radius:18px;overflow:hidden;background:#171b22;box-shadow:0 18px 42px rgba(0,0,0,.25)}
.csf-dark-gallery img{width:100%;aspect-ratio:9/14;object-fit:cover;display:block}
.csf-dark-gallery h3{padding:1rem;margin:0;font-size:1.2rem}
.csf-location-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.csf-location-gallery figure{position:relative;margin:0;border-radius:20px;overflow:hidden;min-height:420px;box-shadow:var(--csf-shadow)}
.csf-location-gallery img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block}
.csf-location-gallery figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;padding:.75rem 1rem;border-radius:10px;color:#fff;background:rgba(5,8,12,.75);backdrop-filter:blur(10px);font-weight:700}
.csf-contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.csf-contact-grid aside figure{margin:1.4rem 0 0;border-radius:20px;overflow:hidden;box-shadow:var(--csf-shadow)}
.csf-contact-grid aside figure img{width:100%;height:280px;object-fit:cover;display:block}
.csf-contact-cards{display:grid;gap:.8rem;margin-top:1.5rem}
.csf-contact-cards a{display:block;padding:1.1rem 1.2rem;background:#fff;border:1px solid var(--csf-line);border-radius:14px;color:#111}
.csf-contact-cards span{display:block;color:var(--csf-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.14em}
.csf-contact-cards strong{display:block;margin-top:.35rem;font-size:1.25rem}
.csf-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.csf-route-grid>a{display:block;border-radius:22px;overflow:hidden;background:#fff;color:#111;border:1px solid var(--csf-line);box-shadow:0 14px 36px rgba(12,17,24,.08);transition:transform .35s ease}
.csf-route-grid>a:hover{transform:translateY(-6px)}
.csf-route-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.csf-route-grid a>div{padding:1.3rem}
.csf-route-grid span{font:.7rem 'IBM Plex Mono',monospace;letter-spacing:.15em;color:var(--csf-gold-deep)}
.csf-route-grid h3{margin:.55rem 0 .6rem;font-size:1.45rem}
.csf-route-grid p{color:var(--csf-muted);line-height:1.6}
.csf-cta{display:flex;align-items:center;justify-content:space-between;gap:2rem;background:#fff;border:1px solid rgba(18,24,31,.1);border-radius:24px;padding:clamp(1.5rem,4vw,3rem);box-shadow:var(--csf-shadow)}
.csf-cta h2{font-size:clamp(2rem,3.5vw,3.6rem);margin:.6rem 0 .75rem}
.csf-cta p{color:var(--csf-muted);line-height:1.65;max-width:650px}
.csf-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.csf-work-grid article{background:#fff;border-radius:22px;overflow:hidden;border:1px solid var(--csf-line);box-shadow:0 18px 44px rgba(13,18,26,.1)}
.csf-work-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.csf-work-grid article>span,.csf-work-grid h2,.csf-work-grid p{margin-left:1.25rem;margin-right:1.25rem}
.csf-work-grid article>span{display:block;margin-top:1.2rem;font:.68rem 'IBM Plex Mono',monospace;letter-spacing:.16em;color:var(--csf-gold-deep)}
.csf-work-grid h2{font-size:1.55rem;margin-top:.55rem;margin-bottom:.55rem}
.csf-work-grid p{color:var(--csf-muted);line-height:1.55;margin-bottom:1.35rem}
.csf-about-story{padding:clamp(4rem,8vw,8rem) 0;background:#fff}
.csf-story-signature{display:flex;flex-direction:column;border-left:3px solid var(--csf-gold);padding-left:1rem;margin-top:1.7rem}
.csf-story-signature strong{font-size:1.25rem}
.csf-story-signature span{color:var(--csf-muted);margin-top:.25rem}
/* Marketplace public-page enhancements */
body.marketplace-public-v41{background:#f7f5f0;color:#111}
body.marketplace-public-v41 .market-hero{padding-top:8rem;min-height:72vh;background-image:linear-gradient(90deg,rgba(5,8,13,.94),rgba(5,8,13,.62),rgba(5,8,13,.22)),url('../img/cinematic/hero-project.jpg');background-size:cover;background-position:center}
.marketplace-public-v41 .market-showcase{padding:4.5rem 0 2rem;background:#fff}
.marketplace-public-v41 .market-showcase-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.marketplace-public-v41 .market-showcase-card{display:block;color:#111}
.marketplace-public-v41 .market-showcase-card img{width:100%;aspect-ratio:9/14;object-fit:cover;border-radius:18px;box-shadow:0 17px 40px rgba(10,15,22,.13)}
.marketplace-public-v41 .market-showcase-card h3{margin:.8rem 0 .2rem;font-size:1.3rem}
.marketplace-public-v41 .market-showcase-card span{font:.65rem 'IBM Plex Mono',monospace;color:#a67618;letter-spacing:.16em;text-transform:uppercase}
.marketplace-public-v41 .market-main{padding-top:4rem}
.marketplace-public-v41 .market-footer{margin-top:5rem}
/* Buyer portal with public header */
body.portal-demo-page{padding-top:84px}
body.portal-demo-page .site-back-button{top:96px}
/* Keep all public heroes clear of the persistent header */
body.csf-subpage .site-back-button{top:92px}
@media(max-width:1200px){
  .csf-image-card-grid-4{grid-template-columns:repeat(2,1fr)}
  .csf-ai-grid{grid-template-columns:repeat(2,1fr)}
  .csf-location-gallery{grid-template-columns:repeat(2,1fr)}
  .csf-dark-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .csf-hero{min-height:680px}
  .csf-media-split,.csf-media-split.reverse,.csf-contact-grid{grid-template-columns:1fr}
  .csf-media-split.reverse figure{order:0}
  .csf-three-models,.csf-route-grid,.csf-work-grid{grid-template-columns:1fr}
  .csf-image-card-grid-3{grid-template-columns:1fr 1fr}
  .csf-poster-collage{grid-template-columns:repeat(2,1fr)}
  .marketplace-public-v41 .market-showcase-grid{grid-template-columns:repeat(2,1fr)}
  .csf-cta{align-items:flex-start;flex-direction:column}
}
@media(max-width:640px){
  .csf-hero{min-height:620px}
  .csf-hero-content{padding:9rem 0 4rem}
  .csf-hero h1{font-size:clamp(3rem,15vw,4.8rem)}
  .csf-metric-strip>.container{grid-template-columns:repeat(2,1fr)}
  .csf-metric-strip .container>div:nth-child(2){border-right:0}
  .csf-image-card-grid-4,.csf-image-card-grid-3,.csf-ai-grid,.csf-location-gallery,.csf-dark-gallery{grid-template-columns:1fr}
  .csf-media-split figure,.csf-media-split figure>img{min-height:300px}
  .csf-poster-collage img{min-height:300px}
  .marketplace-public-v41 .market-showcase-grid{grid-template-columns:1fr 1fr;gap:.75rem}
  .marketplace-public-v41 .market-showcase-card h3{font-size:1rem}
}
/* Static title profiles created for the studio catalog */
.distribution-title-v41{background:#fff}
.csf-title-hero{padding:clamp(9rem,14vw,13rem) 0 clamp(4rem,8vw,7rem);background:radial-gradient(circle at 85% 15%,rgba(220,165,49,.14),transparent 35%),#fff}
.csf-title-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:clamp(3rem,8vw,8rem);align-items:center}
.csf-title-copy h1{font-size:clamp(4rem,8vw,8rem);line-height:.88;letter-spacing:-.07em;margin:1rem 0 1.2rem}
.csf-title-meta{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.7rem}
.csf-title-meta span{padding:.55rem .8rem;border:1px solid rgba(14,18,24,.15);border-radius:999px;text-transform:uppercase;letter-spacing:.1em;font:700 .68rem 'IBM Plex Mono',monospace;color:#626b78}
.csf-title-logline{font-size:clamp(1.35rem,2vw,1.9rem);line-height:1.5;color:#343b45;max-width:820px}
.csf-title-copy>p:not(.csf-title-logline){font-size:1.05rem;line-height:1.8;color:var(--csf-muted);max-width:780px}
.csf-title-poster{margin:0;border-radius:28px;overflow:hidden;background:#111;box-shadow:0 28px 70px rgba(15,20,27,.18)}
.csf-title-poster img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block}
.csf-title-facts{border-top:1px solid var(--csf-line);border-bottom:1px solid var(--csf-line);background:#fff}
.csf-title-facts>.container{display:grid;grid-template-columns:repeat(5,1fr)}
.csf-title-facts .container>div{padding:1.5rem 1.1rem;border-right:1px solid var(--csf-line)}
.csf-title-facts .container>div:last-child{border-right:0}
.csf-title-facts span{display:block;text-transform:uppercase;letter-spacing:.14em;font:.62rem 'IBM Plex Mono',monospace;color:#98a0ab}
.csf-title-facts strong{display:block;margin-top:.55rem;font-size:1rem}
.btn-secondary.dark{color:#111;border-color:rgba(14,18,24,.3);background:transparent}
.footer-social-pending span{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.18);border-radius:50%;font-size:.65rem;color:rgba(255,255,255,.65)}
@media(max-width:850px){
  .csf-title-grid{grid-template-columns:1fr}
  .csf-title-poster{max-width:360px;margin-inline:auto}
  .csf-title-facts>.container{grid-template-columns:repeat(2,1fr)}
  .csf-title-facts .container>div:nth-child(2n){border-right:0}
}
