/* Campus Placements — single-row logo slider
   Fonts: Bebas Neue (heading) + Poppins (body) */
.xt-pl{
  --burgundy:#8B1E2D;--deep:#6d1522;--red:#C62828;--gold:#F4B942;--ink:#1f1f1f;--bg:#F6F1EA;
  --gap:20px;--v:5;
  position:relative;width:100%;background:var(--bg);border-top:10px solid var(--burgundy);color:var(--ink);
  font:400 .95rem/1.6 'Poppins','Segoe UI',Arial,sans-serif;overflow:hidden;
}
.xt-pl,.xt-pl *,.xt-pl *::before,.xt-pl *::after{box-sizing:border-box}
:where(.xt-pl) :is(h2,p,ul,li,figure,span,i){margin:0;padding:0}
:where(.xt-pl) ul{list-style:none}

/* panel */
.xt-pl-panel{position:relative;background:var(--bg);border-top:6px solid var(--gold);
  padding:clamp(48px,7vh,80px) 20px clamp(56px,8vh,92px);overflow:hidden}
/* background decorations (dots, ring, glow) */
.xt-pl-deco{position:absolute;inset:0;pointer-events:none}
.xt-pl-ring{position:absolute;left:-90px;bottom:-110px;width:300px;height:300px;border-radius:50%;border:34px solid rgba(139,30,45,.07)}
.xt-pl-blob{position:absolute;right:-70px;bottom:-80px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(244,185,66,.55),rgba(244,185,66,0) 70%)}
.xt-pl-dots{position:absolute;left:clamp(10px,3vw,50px);top:clamp(40px,8vh,80px);width:96px;height:96px;
  background-image:radial-gradient(var(--burgundy) 1.6px,transparent 1.8px);background-size:16px 16px;opacity:.28}
.xt-pl-plus{display:none}

.xt-pl-in{position:relative;z-index:1;max-width:1240px;margin:0 auto}

/* header */
.xt-pl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(28px,4.5vh,46px)}
.xt-pl-eyebrow{display:flex;align-items:center;gap:10px;font:500 .78rem/1 'Poppins',sans-serif;letter-spacing:.24em;text-transform:uppercase}
.xt-pl-eyebrow span{color:var(--burgundy);font-weight:600;font-size:1.05rem;letter-spacing:0}
.xt-pl-cap-ic{flex:none;width:34px;height:34px;padding:7px;border-radius:50%;background:var(--burgundy);color:#fff;margin-right:6px}
/* heading: one colour */
.xt-pl-title{margin-top:14px;font:400 clamp(2.4rem,4.8vw,3.6rem)/1 'Bebas Neue','Oswald',Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase;color:var(--burgundy)}
.xt-pl-title::after{content:'';display:block;width:72px;height:4px;margin-top:14px;background:var(--burgundy)}

.xt-pl-ctrl{display:flex;gap:10px;flex:none}
.xt-pl-btn{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1.5px solid var(--burgundy);border-radius:50%;
  background:#fff;color:var(--burgundy);cursor:pointer;box-shadow:0 6px 14px rgba(139,30,45,.15);
  transition:background-color .25s,color .25s,transform .2s,box-shadow .25s}
.xt-pl-btn:hover{background:linear-gradient(135deg,var(--burgundy),var(--red));color:#fff;box-shadow:0 8px 18px rgba(198,40,40,.35)}
.xt-pl-btn:active{transform:scale(.93)}
.xt-pl-btn:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.xt-pl:not(.xt-pl--js) .xt-pl-ctrl{display:none}

/* single logo row */
.xt-pl-row{min-width:0}
.xt-pl-viewport{overflow-x:auto;padding:14px 0 30px;margin:-14px 0 -30px}
.xt-pl--js .xt-pl-viewport{overflow:hidden;overflow-x:clip;overflow-y:visible}
.xt-pl-track{display:flex;gap:var(--gap);will-change:transform;transition:transform .6s cubic-bezier(.65,0,.25,1)}
.xt-pl-slide{flex:0 0 calc((100% - (var(--v) - 1) * var(--gap)) / var(--v));min-width:0}

/* card: gradient border, corner brackets, shine sweep */
.xt-pl-tile{position:relative;display:grid;place-items:center;aspect-ratio:1.55;overflow:hidden;
  border:2px solid transparent;border-radius:20px 20px 20px 5px;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,var(--burgundy),var(--gold) 55%,var(--burgundy)) border-box;
  box-shadow:0 8px 20px rgba(31,31,31,.07);
  transition:transform .35s ease,box-shadow .35s ease}
.xt-pl-tile::before,.xt-pl-tile::after{content:'';position:absolute;width:18px;height:18px;border:2px solid var(--burgundy);opacity:.55;transition:all .3s ease;z-index:2}
.xt-pl-tile::before{top:10px;left:10px;border-right:0;border-bottom:0;border-radius:6px 0 0 0}
.xt-pl-tile::after{right:10px;bottom:10px;border-left:0;border-top:0;border-radius:0 0 6px 0}
.xt-pl-tile:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(139,30,45,.22)}
.xt-pl-tile:hover::before,.xt-pl-tile:hover::after{width:30px;height:30px;opacity:1;border-color:var(--gold)}
.xt-pl-logo{position:absolute;inset:0;display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:15% 13%;
  background:radial-gradient(circle at 50% 120%,rgba(244,185,66,.18),transparent 60%);transition:transform .35s ease}
.xt-pl-logo::after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);
  transform:skewX(-20deg);transition:left .7s ease}
.xt-pl-tile:hover .xt-pl-logo{transform:scale(1.04)}
.xt-pl-tile:hover .xt-pl-logo::after{left:130%}
.xt-pl-logo img{display:block;width:100%;height:100%;object-fit:contain}

/* empty slot until the logo file is added */
.xt-pl-fallback{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:#8a847d}
.xt-pl-fallback svg{width:30px;height:30px;stroke:var(--burgundy);opacity:.5}
.xt-pl-fallback b{font:500 clamp(.72rem,1vw,.84rem)/1.25 'Poppins',sans-serif}

/* entrance (once) */
.xt-pl--js .xt-pl-rv{opacity:0}
.xt-pl--js.is-in .xt-pl-rv{opacity:1;animation:xt-pl-in .8s cubic-bezier(.2,.7,.2,1) var(--d,0s) backwards}
@keyframes xt-pl-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

@media (max-width:1099px){ .xt-pl{--v:4} }
@media (max-width:899px){  .xt-pl{--v:3;--gap:16px} }
@media (max-width:640px){
  .xt-pl{--v:2;--gap:12px}
  .xt-pl-panel{padding:44px 14px 50px}
  .xt-pl-btn{width:42px;height:42px}
  .xt-pl-dots{width:64px;height:64px}
  .xt-pl-tile{border-radius:14px 14px 14px 4px}
  .xt-pl-tile::before,.xt-pl-tile::after{width:12px;height:12px;top:7px;left:7px}
  .xt-pl-tile::after{top:auto;left:auto;right:7px;bottom:7px}
}
@media (prefers-reduced-motion:reduce){
  .xt-pl *{animation:none!important;transition:none!important}
  .xt-pl--js .xt-pl-rv{opacity:1}
}