/* St. Xavier's Technical Institute — Life of the Institute
   Step-by-step photo carousel: holds each photo, then moves ONE card forward · pause on hover · pause/play control
   Brand palette: Deep Burgundy #8B1E2D · Royal Red #C62828 · Burnt Orange #F57C00 · Warm Gold #F4B942
                  Charcoal #292929 · Soft White #FAFAFA · Light Grey #F1F3F5
   Fonts: Bebas Neue (headings) + Poppins (body) */
.xt-lf{
  --burgundy:#8B1E2D;--red:#C62828;--orange:#F57C00;--gold:#F4B942;--charcoal:#292929;--white:#FAFAFA;--grey:#F1F3F5;
  --gap:26px;--v:3;
  position:relative;width:100%;padding:clamp(48px,7vh,84px) 20px clamp(52px,8vh,92px);
  background:var(--grey);color:var(--charcoal);
  font:400 .95rem/1.65 'Poppins','Segoe UI',Arial,sans-serif;overflow:hidden;
}
.xt-lf,.xt-lf *,.xt-lf *::before,.xt-lf *::after{box-sizing:border-box}
:where(.xt-lf) :is(h2,p,ul,li,figure){margin:0;padding:0}
:where(.xt-lf) ul{list-style:none}
.xt-lf-in{max-width:1240px;margin:0 auto}

/* ---------- header ---------- */
.xt-lf-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:clamp(24px,4vh,40px)}
.xt-lf-eyebrow{display:inline-flex;align-items:center;gap:14px;color:var(--charcoal);font:500 .8rem/1 'Poppins',sans-serif;letter-spacing:.22em;text-transform:uppercase}
.xt-lf-eyebrow span{color:var(--red);font-weight:600;font-size:1.05rem;letter-spacing:0}
.xt-lf-title{margin-top:12px;color:var(--burgundy);font:400 clamp(2.4rem,4.8vw,3.6rem)/1 'Bebas Neue','Oswald',Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase}
.xt-lf-title::after{content:'';display:block;width:64px;height:4px;margin-top:12px;border-radius:4px;background:var(--gold)}
.xt-lf-sub{max-width:520px;margin-top:14px;color:#4b4b4b;font-size:.92rem}

.xt-lf-ctrl{display:flex;gap:12px;flex:none}
.xt-lf-btn{display:grid;place-items:center;width:50px;height:50px;padding:0;border:1.5px solid var(--charcoal);border-radius:50%;
  background:transparent;color:var(--charcoal);cursor:pointer;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .2s ease}
.xt-lf-btn:hover{background:var(--red);border-color:var(--red);color:#fff}
.xt-lf-btn:active{transform:scale(.95)}
.xt-lf-btn:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.xt-lf-btn .i-play{display:none}
.xt-lf-pp.is-paused .i-play{display:block}
.xt-lf-pp.is-paused .i-pause{display:none}

/* ---------- carousel ---------- */
.xt-lf-viewport{overflow-x:auto;padding:12px 0 60px;margin:-12px 0 -60px;touch-action:pan-y}   /* no-JS: simply scrolls */
.xt-lf--js .xt-lf-viewport{overflow:hidden;overflow-x:clip;overflow-y:visible}   /* clip sideways only, so shadows aren't cut off */
.xt-lf-track{display:flex;gap:var(--gap);will-change:transform;
  transition:transform .85s cubic-bezier(.65,0,.25,1)}
.xt-lf-slide{flex:0 0 calc((100% - (var(--v) - 1) * var(--gap)) / var(--v));min-width:0}

/* card = gold tab with vertical label + photo */
.xt-lf-card{display:flex;overflow:hidden;aspect-ratio:.93;border-radius:18px;background:#e3e6ea;
  box-shadow:0 8px 22px rgba(41,41,41,.12);transition:box-shadow .35s ease,transform .35s ease}
.xt-lf-card:hover{box-shadow:0 18px 38px rgba(41,41,41,.22);transform:translateY(-4px)}
.xt-lf-tab{flex:none;width:clamp(44px,4.2vw,56px);display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:22px 0 18px;background:var(--gold);color:var(--burgundy)}
.xt-lf-lbl{writing-mode:vertical-rl;transform:rotate(180deg);
  font:400 clamp(1.5rem,2.3vw,2rem)/1 'Bebas Neue','Oswald',Impact,sans-serif;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.xt-lf-no{font:600 .78rem/1 'Poppins',sans-serif;letter-spacing:.08em;color:var(--burgundy)}
.xt-lf-img{position:relative;flex:1;min-width:0;overflow:hidden}
.xt-lf-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.xt-lf-card:hover .xt-lf-img img{transform:scale(1.05)}

/* ---------- footer: counter + time-to-next-move bar ---------- */
.xt-lf-foot{display:flex;align-items:center;gap:20px;margin-top:clamp(22px,3.5vh,34px)}
.xt-lf-count{flex:none;color:var(--burgundy);font:400 1.5rem/1 'Bebas Neue','Oswald',Impact,sans-serif;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.xt-lf-bar{position:relative;flex:1;height:3px;border-radius:3px;background:rgba(41,41,41,.14);overflow:hidden}
.xt-lf-bar i{position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left}
.xt-lf:not(.xt-lf--js) .xt-lf-foot,.xt-lf:not(.xt-lf--js) .xt-lf-ctrl{display:none}

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

/* ---------- responsive ---------- */
@media (max-width:999px){ .xt-lf{--v:2;--gap:20px} }
@media (max-width:640px){
  .xt-lf{--v:1;--gap:16px;padding:44px 14px 50px}
  .xt-lf-head{flex-direction:column;align-items:flex-start;gap:20px}
  .xt-lf-btn{width:46px;height:46px}
  .xt-lf-card{aspect-ratio:.95}
}
@media (prefers-reduced-motion:reduce){
  .xt-lf *{animation:none!important;transition:none!important}
  .xt-lf--js .xt-lf-rv{opacity:1}
}
