/* =============================================
   HERO STYLES — Canossa High School
   ============================================= */

/* HERO SECTION */
.hero-section {
  position: relative;
  background: linear-gradient(145deg, var(--teal-frost) 0%, #e8faf6 40%, #f0fdf9 70%, #f5fffe 100%);
  overflow: hidden;
  padding: 0;
}
.hero-section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: radial-gradient(circle, rgba(10,124,110,.09) 1px, transparent 1px);
  background-size: 34px 34px;
  pointer-events: none;
}
.hero-section::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: repeating-linear-gradient(-55deg, transparent, transparent 60px, rgba(10,124,110,.025) 60px, rgba(10,124,110,.025) 61px);
  pointer-events: none;
}
.hblob {
  position: absolute;
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}
.hblob.b1 {
  width: 500px;
  height: 500px;
  top: -140px;
  right: -80px;
  background: radial-gradient(circle, rgba(20,184,166,.1) 0%, transparent 70%);
}
.hblob.b2 {
  width: 360px;
  height: 360px;
  bottom: -80px;
  left: -60px;
  background: radial-gradient(circle, rgba(10,124,110,.08) 0%, transparent 70%);
}

/* HERO INNER */
.hero-inner {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 32px;
  padding: 28px 48px;
  align-items: start;
  max-width: 1400px;
  margin: 0 auto;
}

/* HERO LEFT */
.hero-left {
  display: flex;
  flex-direction: column;
  gap: 11px;
  animation: fadeUp .85s .1s cubic-bezier(.16,1,.3,1) both;
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* EYEBROW */
.slider-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ey-line {
  width: 36px;
  height: 1.5px;
  background: linear-gradient(90deg, var(--teal), transparent);
}
.ey-text {
  font-family: 'Syne', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--teal);
  letter-spacing: 3px;
  text-transform: uppercase;
}
.ey-badge {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 4px;
  background: rgba(10,124,110,.1);
  border: 1px solid rgba(10,124,110,.25);
  font-size: 9.5px;
  font-weight: 700;
  color: var(--teal);
  letter-spacing: 1px;
  text-transform: uppercase;
}
.live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  animation: livePulse 2s infinite;
}
@keyframes livePulse {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,.6); }
  70%  { box-shadow: 0 0 0 7px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

/* SLIDER SHELL */
.slider-shell {
  position: relative;
  width: 100%;
  height: 460px;
  border-radius: 18px;
  padding: 3px;
  background: linear-gradient(135deg, var(--teal), var(--teal-mid), var(--teal-light), var(--gold), var(--teal));
  background-size: 300% 300%;
  animation: shellAnim 7s ease infinite;
  box-shadow: 0 16px 52px rgba(10,124,110,.2), 0 4px 14px rgba(10,124,110,.1);
  flex-shrink: 0;
}
@keyframes shellAnim {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.slider-inner {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #0a2920;
}

/* PROGRESS BAR */
.slide-prog {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 20;
  background: rgba(255,255,255,.15);
}
.slide-prog-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gold), var(--gold-lt));
  width: 0%;
  transition: width .1s linear;
  box-shadow: 0 0 8px rgba(201,168,76,.8);
}

/* SLIDES */
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s ease;
  z-index: 1;
}
.hero-slide.active {
  opacity: 1;
  z-index: 2;
}
.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  display: block;
  transform: scale(1.05);
  transition: transform 9s ease;
}
.hero-slide.active img {
  transform: scale(1.0);
}
.slide-ov {
  position: absolute;
  inset: 0;
  z-index: 3;
  background: linear-gradient(180deg, rgba(5,30,25,.02) 0%, rgba(5,30,25,0) 45%, rgba(5,30,25,.55) 100%);
}

/* SLIDE LABELS */
.slide-lbl {
  position: absolute;
  bottom: 16px;
  left: 16px;
  z-index: 20;
}
.slide-lbl span {
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255,255,255,.9);
  background: rgba(0,0,0,.22);
  padding: 4px 10px;
  border-radius: 4px;
  backdrop-filter: blur(6px);
}

/* SLIDE DOTS */
.slide-dots {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 7px;
  z-index: 20;
}
.slide-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.35);
  border: 1.5px solid rgba(255,255,255,.65);
  cursor: pointer;
  transition: all .3s;
}
.slide-dot.active {
  background: var(--gold-lt);
  border-color: var(--gold);
  transform: scale(1.5);
  box-shadow: 0 0 8px rgba(201,168,76,.7);
}

/* SLIDE ARROWS */
.slide-arr {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
  border: 1.5px solid rgba(10,124,110,.25);
  color: var(--teal);
  font-size: 18px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 20;
  transition: all .2s;
  font-family: sans-serif;
}
.slide-arr:hover {
  background: var(--teal);
  color: #fff;
  transform: translateY(-50%) scale(1.08);
}
.slide-arr-l { left: 12px; }
.slide-arr-r { right: 12px; }

/* STATS BAR */
.hero-stats-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1.5px solid rgba(10,124,110,.15);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255,255,255,.85);
  box-shadow: 0 3px 14px rgba(10,124,110,.08);
  flex-shrink: 0;
}
.hero-stat {
  padding: 11px 6px;
  text-align: center;
  border-right: 1.5px solid rgba(10,124,110,.1);
  transition: background .2s;
}
.hero-stat:last-child { border-right: none; }
.hero-stat:hover { background: rgba(10,124,110,.05); }
.stat-n {
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--teal);
  line-height: 1.1;
}
.stat-l {
  font-size: 9px;
  color: var(--text-soft);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 3px;
  font-family: 'Outfit', sans-serif;
}

/* HERO RIGHT — TAB CARD */
.hero-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
  animation: fadeUp .85s .22s cubic-bezier(.16,1,.3,1) both;
}
.tab-card {
  background: #fff;
  border: 1.5px solid rgba(10,124,110,.14);
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(10,124,110,.09);
  overflow: hidden;
}
.tab-btn {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 15px 18px;
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(10,124,110,.07);
  cursor: pointer;
  text-align: left;
  position: relative;
  transition: background .25s;
  overflow: hidden;
}
.tab-btn:last-child { border-bottom: none; }
.tab-btn::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  transform: scaleY(0);
  transition: transform .25s cubic-bezier(.16,1,.3,1);
  border-radius: 0 2px 2px 0;
}
.tab-btn:nth-child(1)::before { background: linear-gradient(180deg, var(--teal), var(--teal-light)); }
.tab-btn:nth-child(2)::before { background: linear-gradient(180deg, #0891b2, #22d3ee); }
.tab-btn:nth-child(3)::before { background: linear-gradient(180deg, #059669, #34d399); }
.tab-btn:nth-child(4)::before { background: linear-gradient(180deg, #dc2626, #f87171); }
.tab-btn:nth-child(5)::before { background: linear-gradient(180deg, #7c3aed, #a78bfa); }
.tab-btn.active::before,
.tab-btn:hover::before { transform: scaleY(1); }
.tab-btn.active { background: linear-gradient(90deg, rgba(10,124,110,.06) 0%, transparent 100%); }
.tab-btn:hover:not(.active) { background: rgba(10,124,110,.03); }

/* TAB ICONS */
.tb-ico {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tb-ico video {
  width: 15px;
  height: 15px;
  object-fit: contain;
  display: block;
}

.ico1 { background: rgba(10,124,110,.1);  color: var(--teal); }
.ico2 { background: rgba(8,145,178,.1);   color: #0891b2; }
.ico3 { background: rgba(5,150,105,.1);   color: #059669; }
.ico4 { background: rgba(220,38,38,.1);   color: #dc2626; }
.ico5 { background: rgba(124,58,237,.1);  color: #7c3aed; }
.tab-btn.active .ico1, .tab-btn:hover .ico1 { background: var(--teal);  color: #fff; }
.tab-btn.active .ico2, .tab-btn:hover .ico2 { background: #0891b2;      color: #fff; }
.tab-btn.active .ico3, .tab-btn:hover .ico3 { background: #059669;      color: #fff; }
.tab-btn.active .ico4, .tab-btn:hover .ico4 { background: #dc2626;      color: #fff; }
.tab-btn.active .ico5, .tab-btn:hover .ico5 { background: #7c3aed;      color: #fff; }

/* TAB LABELS */
.tb-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  font-family: 'Syne', sans-serif;
  letter-spacing: .2px;
  display: block;
  line-height: 1.2;
  transition: color .2s;
}
.tb-sub {
  font-size: 9.5px;
  color: var(--text-soft);
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  margin-top: 2px;
  display: block;
}
.tab-btn.active .tb-label,
.tab-btn:hover .tb-label  { color: var(--teal); }
.tab-btn.active .tb-sub   { color: rgba(10,124,110,.7); }

.tb-arr {
  font-size: 10px;
  color: var(--text-soft);
  margin-left: auto;
  transition: transform .25s, color .25s;
  flex-shrink: 0;
}
.tab-btn.active .tb-arr,
.tab-btn:hover .tb-arr { transform: translateX(4px); color: var(--teal); }

/* =============================================
   VIDEO SLIDE
   ============================================= */

/* The slider-inner must be a positioned container */
.slider-inner {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #0a2920;
}

/* Video fills the slide exactly like <img> does */
.video-slide {
  background: #0a2920;
}

.video-slide video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  z-index: 1;
}

/* Overlay sits above video */
.video-slide .slide-ov {
  z-index: 4;
}

/* Play icon shown before video starts / if autoplay blocked */
.video-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: var(--teal);
  z-index: 15;
  pointer-events: none;
  transition: opacity 0.4s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

/* Hide play icon once video is actually playing */
.video-slide.video-playing .video-play-icon {
  opacity: 0;
}

/* Pulsing ring on the play icon */
.video-play-icon::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.5);
  animation: videoRing 2s ease infinite;
}

@keyframes videoRing {
  0%   { transform: scale(1);    opacity: 0.7; }
  50%  { transform: scale(1.15); opacity: 0.3; }
  100% { transform: scale(1);    opacity: 0.7; }
}


/* "Video" badge on the dot when video slide is active */
.slide-dot.video-dot.active {
  background: var(--gold-lt);
  border-color: var(--gold);
  width: 22px;
  border-radius: 4px;
  transform: none;
}

/* RESPONSIVE */
@media (max-width: 1200px) {
  .hero-inner   { grid-template-columns: 1fr 340px; gap: 24px; padding: 22px 28px; }
  .slider-shell { height: 430px; }
}
@media (max-width: 960px) {
  .hero-inner   { grid-template-columns: 1fr; padding: 16px 18px 22px; gap: 18px; align-items: stretch; }
  .slider-shell { height: auto; min-height: 55vw; max-height: 480px; }
  .hero-right   { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .hero-inner        { padding: 12px 14px 18px; gap: 14px; }
  .slider-shell      { min-height: 70vw; max-height: 360px; }
  .hero-stats-bar    { grid-template-columns: repeat(2, 1fr); }
  .hero-stat:nth-child(2) { border-right: none; }
  .hero-stat:nth-child(3),
  .hero-stat:nth-child(4) { border-top: 1.5px solid rgba(10,124,110,.1); }
} 