/* Featured Program Spotlight: scoped styles do not alter the main PIM theme. */
.pim-fs-section { padding: 30px 0 38px; background: #f4f8f9; }
.pim-fs-container { width: min(1260px, calc(100% - 48px)); margin: 0 auto; }
.pim-fs-card { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); min-height: 360px; background: linear-gradient(115deg, #1b3154 0%, #26446f 65%, #327052 110%); color:#fff; border-radius: 23px; box-shadow: 0 15px 44px rgba(12,36,62,.14); overflow: hidden; }
.pim-fs-card:before { content: ""; position: absolute; inset: -100px auto auto -130px; width: 460px; height: 460px; border:1px solid rgba(255,255,255,.12); border-radius: 50%; pointer-events: none; z-index: -1; }
.pim-fs-content { padding: clamp(30px,4.4vw,60px); display:flex; flex-direction:column; justify-content:center; align-items: flex-start; min-width:0; }
.pim-fs-kicker { display: inline-flex; align-items:center; gap:9px; font-size:12px; letter-spacing:.16em; font-weight:800; color:#b8f0ca; text-transform:uppercase; }
.pim-fs-pulse { display:inline-block; width:10px; height:10px; border-radius:50%; background:#81d8a0; flex:none; }
.pim-fs-title { font: 800 clamp(29px,3vw,44px)/1.17 'Plus Jakarta Sans', 'DM Sans', system-ui, sans-serif !important; color:#fff !important; letter-spacing:-.03em; margin:20px 0 13px !important; max-width: 660px; }
.pim-fs-description { font:400 clamp(15px,1.15vw,18px)/1.65 'DM Sans',system-ui,sans-serif; color:#e1ebf2 !important; margin:0 0 20px !important; max-width:610px; }
.pim-fs-facts { display:flex; flex-wrap:wrap; gap:9px; margin: 2px 0 26px; }
.pim-fs-facts span { display:inline-flex; align-items:center; color:#edf5fc; font:600 13px/1.4 'DM Sans',system-ui,sans-serif; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:7px 12px; white-space:nowrap; }
.pim-fs-buttons { display:flex; gap:12px; flex-wrap:wrap; }
.pim-fs-button { min-height: 45px; border:1px solid transparent; display:inline-flex; align-items:center; gap:16px; padding:12px 19px; border-radius:9px; font-weight:750; font-size:14px; line-height:1.3; text-decoration:none!important; transition:transform .15s ease,background .15s ease; }
.pim-fs-button:hover { transform:translateY(-2px); }
.pim-fs-button:focus-visible { outline:3px solid #ffdc6a; outline-offset:3px; }
.pim-fs-button-primary { background:#488c5c; color:#fff !important; }
.pim-fs-button-primary:hover { background:#36734d; }
.pim-fs-button-outline { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.60); color:#fff !important; }
.pim-fs-button-outline:hover { background:rgba(255,255,255,.14); }
.pim-fs-note { margin:14px 0 0 !important; font-size:12px; color:#d5e5ee; }
.pim-fs-media { min-width:0; min-height:300px; position:relative; display:grid; place-items:center; overflow:hidden; background:#253b59; }
/* A soft backdrop avoids harsh blank bands when a wide poster is fitted in its entirety. */
.pim-fs-image-backdrop { position:absolute !important; inset:-16% !important; width:132% !important; height:132% !important; object-fit:cover !important; filter:blur(24px) brightness(.47) saturate(.8); pointer-events:none; z-index:0; }
.pim-fs-image { display:block; width:100% !important; height:100% !important; position:absolute; inset:0; z-index:1; max-width:none !important; max-height:none !important; margin:0 !important; border:0 !important; }
.pim-fs-media--cover .pim-fs-image { object-fit:cover !important; }
.pim-fs-media--contain .pim-fs-image { object-fit:contain !important; }
.pim-fs-media--center .pim-fs-image { object-position:center center !important; }
.pim-fs-media--top .pim-fs-image { object-position:center top !important; }
.pim-fs-media--bottom .pim-fs-image { object-position:center bottom !important; }
.pim-fs-media--cover:after { content:""; position:absolute; inset:0; pointer-events:none; z-index:2; background:linear-gradient(0deg,rgba(18,42,68,.21),transparent 50%); }
.pim-fs-no-image { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:35px; color: #fff; }
.pim-fs-no-image span { font-size: clamp(60px,8vw,112px); line-height:1; font-weight:800; letter-spacing:-.05em; opacity:.55; }
.pim-fs-no-image small { font-size:16px; font-weight:600; opacity:.8; }
@media (max-width:850px) { .pim-fs-card { grid-template-columns: 1fr; } .pim-fs-media { grid-row:1; min-height:260px; } .pim-fs-image { position:absolute; } .pim-fs-content { grid-row:2; padding:28px; } }
@media (max-width:540px) { .pim-fs-section { padding:18px 0 24px; } .pim-fs-container { width:calc(100% - 28px); } .pim-fs-card { border-radius:18px; } .pim-fs-media { min-height:210px; } .pim-fs-content { padding:25px 22px 29px; } .pim-fs-facts { gap:7px; margin-bottom:22px; } .pim-fs-facts span { font-size:12px; padding:6px 9px; } .pim-fs-button { width:100%; justify-content:center; } }
@media (prefers-reduced-motion:reduce) { .pim-fs-button { transition:none; } .pim-fs-button:hover { transform:none; } }
