/* ==========================================
   SuperHi Theme Engine — Sistem Informasi Sekolah
   ========================================== */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300..800;1,300..800&display=swap');

:root {
  /* Colors */
  --color-electric-iris: #2727e6;
  --color-ink-black: #111118;
  --color-paper-white: #ffffff;
  --color-chalk-blue: #f0f6ff;
  --color-frost-blue: #e1edff;
  --color-carbon: #000000;
  --color-marker-red: #ff4141;
  --color-hi-yellow: #ffda00;
  --color-powder-sky: #91d8ec;
  --color-bubblegum-pink: #ffbac4;
  --color-jelly-green: #16ab59;
  --color-sunbeam: #ffe54d;

  /* Typography Fonts — Template Default (Plus Jakarta Sans) */
  --font-haas-grot-disp: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-haas-grot-text: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-martian-mono: 'Plus Jakarta Sans', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  /* Spacing */
  --page-max-width: 1200px;
  --section-gap: 80px;

  /* Border Radius */
  --radius-buttons: 48px;
  --radius-cards: 24px;
  --radius-small: 16px;
  --radius-inputs: 5000px;
  --radius-shapes: 0px;

  /* Elevation Shadows */
  --shadow-btn-primary: 0 4px 0 0 #111118;
  --shadow-btn-dark: 0 4px 0 0 #2727e6;
  --shadow-card: 0 2px 0 0 #111118;
  --shadow-card-hover: 0 5px 0 0 #111118;

  /* Surfaces */
  --surface-chalk-blue-canvas: #f0f6ff;
  --surface-paper-white-card: #ffffff;
  --surface-frost-blue-wash: #e1edff;
  --surface-bubblegum-section: #ffbac4;
  --surface-hi-yellow-section: #ffda00;
}

/* Base Body Styles — Enforce Template Default Font (Plus Jakarta Sans) */
body.superhi-body {
  background-color: var(--color-chalk-blue);
  color: var(--color-ink-black);
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
  font-weight: 400;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  line-height: 1.4;
}

body.superhi-body h1,
body.superhi-body h2,
body.superhi-body h3,
body.superhi-body h4,
body.superhi-body h5,
body.superhi-body h6,
body.superhi-body p,
body.superhi-body a,
body.superhi-body span,
body.superhi-body label,
body.superhi-body input,
body.superhi-body button {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
}

/* Announcement Ticker Bar */
.superhi-ticker {
  background-color: var(--color-ink-black);
  color: var(--color-paper-white);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 12px;
  letter-spacing: -0.156px;
  text-transform: uppercase;
  padding: 8px 0;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 1040;
}

.superhi-ticker::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 120px;
  height: 100%;
  background: linear-gradient(to right, var(--color-electric-iris), transparent);
  pointer-events: none;
  z-index: 2;
}

.superhi-ticker-track {
  display: inline-flex;
  animation: superhi-marquee 25s linear infinite;
}

@keyframes superhi-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.superhi-ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding-right: 32px;
}

.superhi-ticker-bullet {
  color: var(--color-hi-yellow);
  font-size: 14px;
}

/* SuperHi Navbar */
.superhi-nav {
  background-color: var(--color-paper-white);
  border-bottom: 1px solid var(--color-frost-blue);
  min-height: 64px;
  padding: 12px 0;
  transition: padding 0.2s ease, box-shadow 0.2s ease;
  z-index: 1030;
}

.superhi-nav.scrolled {
  padding: 8px 0;
  border-bottom: 1px solid var(--color-ink-black);
}

.superhi-nav .nav-link {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 18px;
  color: var(--color-ink-black);
  font-weight: 400;
  padding: 8px 16px;
  transition: opacity 0.15s ease;
}

.superhi-nav .nav-link:hover {
  opacity: 0.7;
  text-decoration: underline;
}

.superhi-logo-mark {
  width: 36px;
  height: 36px;
  background-color: var(--color-electric-iris);
  color: var(--color-paper-white);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 18px;
  margin-right: 12px;
}

/* SuperHi Buttons */
.btn-superhi-primary {
  background-color: var(--color-electric-iris);
  color: var(--color-paper-white) !important;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 18px;
  font-weight: 400;
  padding: 10px 24px;
  border-radius: var(--radius-buttons);
  border: none;
  box-shadow: var(--shadow-btn-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}

.btn-superhi-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 0 0 #111118;
  color: var(--color-paper-white) !important;
}

.btn-superhi-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 0 0 #111118;
}

.btn-superhi-dark {
  background-color: var(--color-carbon);
  color: var(--color-paper-white) !important;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 18px;
  font-weight: 400;
  padding: 10px 24px;
  border-radius: var(--radius-buttons);
  border: none;
  box-shadow: var(--shadow-btn-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}

.btn-superhi-dark:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 0 0 #2727e6;
  color: var(--color-paper-white) !important;
}

.btn-superhi-dark:active {
  transform: translateY(0);
  box-shadow: 0 2px 0 0 #2727e6;
}

.btn-superhi-ghost {
  background: transparent;
  color: var(--color-ink-black);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 18px;
  font-weight: 400;
  padding: 8px 16px;
  border: 1px solid transparent;
  border-radius: var(--radius-buttons);
  text-decoration: none;
  transition: text-decoration 0.15s ease;
}

.btn-superhi-ghost:hover {
  text-decoration: underline;
  color: var(--color-ink-black);
}

.btn-superhi-ghost-light {
  background: transparent;
  color: var(--color-paper-white);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 16px;
  font-weight: 400;
  padding: 8px 20px;
  border: 1px solid var(--color-paper-white);
  border-radius: var(--radius-buttons);
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.btn-superhi-ghost-light:hover {
  background-color: rgba(255,255,255,0.1);
  color: var(--color-paper-white);
}

/* SuperHi Form Inputs — Unified Seamless Pill Input Container */
.superhi-input-group {
  display: flex;
  align-items: center;
  background-color: var(--color-frost-blue);
  border: 1.5px solid var(--color-frost-blue);
  border-radius: var(--radius-inputs); /* 5000px */
  padding: 0 20px;
  height: 52px;
  transition: all 0.2s ease-in-out;
  width: 100%;
}

.superhi-input-group:focus-within {
  background-color: var(--color-paper-white);
  border-color: var(--color-electric-iris);
  box-shadow: 0 0 0 3px rgba(39, 39, 230, 0.15);
}

.superhi-input-group .input-icon {
  color: var(--color-ink-black);
  opacity: 0.55;
  font-size: 20px;
  margin-right: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.superhi-input-group:focus-within .input-icon {
  opacity: 1;
  color: var(--color-electric-iris);
}

.superhi-input-group input {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  width: 100%;
  height: 100%;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 16px;
  color: var(--color-ink-black) !important;
  padding: 0 !important;
}

.superhi-input-group input::placeholder {
  color: rgba(17, 17, 24, 0.45);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
}

/* SuperHi Cards & Safety Padding to prevent shadow clipping */
.superhi-card {
  background-color: var(--color-paper-white);
  border: 1px solid var(--color-frost-blue);
  border-radius: var(--radius-cards);
  padding: 24px;
  box-shadow: var(--shadow-card);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  height: calc(100% - 10px);
  margin-bottom: 10px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: visible !important;
}

.superhi-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.superhi-card-img-top {
  border-radius: var(--radius-small);
  width: 100%;
  height: 200px;
  object-fit: cover;
  margin-bottom: 16px;
  overflow: hidden;
}

.superhi-card-title {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 22px;
  font-weight: 400;
  color: var(--color-ink-black);
  margin-bottom: 12px;
  line-height: 1.25;
  letter-spacing: -0.176px;
}

.superhi-card-meta {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 12px;
  color: rgba(17, 17, 24, 0.7);
  letter-spacing: -0.156px;
  margin-bottom: 16px;
}

/* Ensure grid rows have enough bottom space for offset shadows */
.superhi-card-grid-row {
  margin-bottom: 16px;
  padding-bottom: 12px;
  overflow: visible !important;
}

/* Tag Pills */
.superhi-tag {
  display: inline-block;
  background-color: var(--color-frost-blue);
  color: var(--color-ink-black);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 14px;
  padding: 4px 14px;
  border-radius: var(--radius-inputs);
  font-weight: 400;
  text-decoration: none;
}

.superhi-tag.active {
  background-color: var(--color-electric-iris);
  color: var(--color-paper-white);
}

/* Decorative Paper Shapes */
.superhi-shape-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.paper-shape {
  position: absolute;
  border-radius: 0px;
  box-shadow: none;
  pointer-events: none;
}

/* Shape Primitives */
.shape-circle {
  border-radius: 50% !important;
}

.shape-pentagon {
  clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
}

.shape-triangle {
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

.shape-semicircle {
  clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%);
  border-radius: 200px 200px 0 0 !important;
}

.shape-star {
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

/* Typography Classes */
.display-mega {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 72px;
  line-height: 1.0;
  letter-spacing: -2.16px;
  font-weight: 400;
  color: var(--color-ink-black);
}

@media (max-width: 768px) {
  .display-mega {
    font-size: 42px;
    letter-spacing: -1.2px;
  }
}

.heading-section {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 42px;
  line-height: 1.1;
  letter-spacing: -0.378px;
  font-weight: 400;
  color: var(--color-ink-black);
}

@media (max-width: 768px) {
  .heading-section {
    font-size: 28px;
  }
}

.text-body-lead {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: -0.2px;
  font-weight: 400;
  color: var(--color-ink-black);
}

/* Icon Container 48px */
.icon-container-48 {
  width: 48px;
  height: 48px;
  background-color: var(--color-electric-iris);
  color: var(--color-paper-white);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 20px;
}

/* Section Wash */
.section-wash-bubblegum {
  background-color: var(--color-bubblegum-pink);
  padding: 80px 0;
  position: relative;
}

.section-wash-yellow {
  background-color: var(--color-hi-yellow);
  padding: 80px 0;
  position: relative;
}

/* Fixed Cookie Bar */
.superhi-cookie-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: var(--color-ink-black);
  color: var(--color-paper-white);
  padding: 16px 24px;
  z-index: 2000;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.15);
}

.superhi-cookie-bar.is-hidden {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.superhi-cookie-bar p {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 15px;
  margin: 0;
}

/* SuperHi Custom Pill Pagination */
.superhi-pagination {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.superhi-page-item {
  display: inline-block;
}

.superhi-page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: var(--radius-inputs); /* 5000px pill */
  background-color: var(--color-paper-white);
  color: var(--color-ink-black);
  border: 1.5px solid var(--color-frost-blue);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none !important;
  box-shadow: 0 2px 0 0 #111118;
  transition: transform 0.15s ease, background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.superhi-page-item:not(.active):not(.disabled) .superhi-page-link:hover {
  transform: translateY(-2px);
  background-color: var(--color-frost-blue);
  color: var(--color-electric-iris);
  box-shadow: 0 4px 0 0 #111118;
}

.superhi-page-item.active .superhi-page-link {
  background-color: var(--color-electric-iris);
  color: var(--color-paper-white) !important;
  border-color: var(--color-electric-iris);
  font-weight: 600;
  box-shadow: 0 2px 0 0 #111118;
}

.superhi-page-item.disabled .superhi-page-link {
  opacity: 0.45;
  cursor: not-allowed;
  background-color: var(--color-frost-blue);
  box-shadow: none;
}

/* SuperHi Footer Engine */
footer.superhi-footer {
  background-color: var(--color-ink-black);
  color: var(--color-paper-white);
  padding: 80px 0 40px 0;
  margin-top: 0;
  position: relative;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

footer.superhi-footer h5 {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  color: var(--color-paper-white) !important;
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 24px;
  letter-spacing: -0.2px;
}

footer.superhi-footer p,
footer.superhi-footer span,
footer.superhi-footer li {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 15px;
  line-height: 1.6;
}

footer.superhi-footer a {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important;
  color: rgba(255, 255, 255, 0.8) !important;
  text-decoration: none !important;
  font-size: 15px;
  transition: color 0.15s ease, opacity 0.15s ease;
}

footer.superhi-footer a:hover {
  color: var(--color-hi-yellow) !important;
  opacity: 1;
}

footer.superhi-footer .social-icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--color-paper-white) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: background-color 0.15s ease, transform 0.15s ease;
}

footer.superhi-footer .social-icon-btn:hover {
  background-color: var(--color-electric-iris);
  color: var(--color-paper-white) !important;
  transform: translateY(-2px);
}

footer.superhi-footer hr {
  border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Agenda & Related News Fit-Content & Auto Scroll Engine */
.superhi-card-fit {
  height: fit-content !important;
  align-self: flex-start;
  overflow: hidden;
}

.superhi-agenda-scroll-container {
  max-height: 440px;
  overflow-y: auto;
  padding-right: 6px;
  padding-bottom: 2px;
}

.superhi-agenda-scroll-container > div:last-child {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.superhi-agenda-scroll-container::-webkit-scrollbar {
  width: 5px;
}

.superhi-agenda-scroll-container::-webkit-scrollbar-track {
  background: var(--color-frost-blue);
  border-radius: 10px;
}

.superhi-agenda-scroll-container::-webkit-scrollbar-thumb {
  background: var(--color-electric-iris);
  border-radius: 10px;
}

/* CMS DataTables Responsive & Horizontal Scroll Engine */
.datatables .table-responsive,
.table-responsive {
  width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 1rem;
}

.table-responsive > .dataTables_wrapper,
.table-responsive > table,
.table-responsive > .dataTables_wrapper > table,
table.dataTable {
  width: 100% !important;
}

.table-responsive table.dataTable,
.table-responsive > table {
  min-width: 768px !important;
  white-space: nowrap !important;
}

/* Horizontal Scrollbar Only for CMS Tables */
.table-responsive::-webkit-scrollbar {
  height: 5px;
}

.table-responsive::-webkit-scrollbar:vertical {
  display: none !important;
  width: 0 !important;
}

.table-responsive::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.03);
  border-radius: 10px;
}

.table-responsive::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
  border-radius: 10px;
  transition: background 0.2s ease;
}

.table-responsive::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.3);
}

[data-bs-theme="dark"] .table-responsive::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
}

[data-bs-theme="dark"] .table-responsive::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
}

[data-bs-theme="dark"] .table-responsive::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* Mobile DataTables Controls Cleanup */
@media (max-width: 767.98px) {
  .dataTables_wrapper .dataTables_length,
  .dataTables_wrapper .dataTables_filter {
    float: none !important;
    text-align: left !important;
    margin-bottom: 0.75rem;
  }

  .dataTables_wrapper .dataTables_filter input {
    width: 100% !important;
    margin-left: 0 !important;
  }

  .dataTables_wrapper .dataTables_info,
  .dataTables_wrapper .dataTables_paginate {
    float: none !important;
    text-align: center !important;
    margin-top: 0.75rem;
  }
  
  .dataTables_wrapper .dataTables_paginate .pagination {
    justify-content: center !important;
    flex-wrap: wrap !important;
  }
}

/* ==========================================
   SuperHi Hero Slider Engine
   ========================================== */

.superhi-hero-slider {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
}

/* Individual Slide */
.superhi-hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s ease-in-out;
  z-index: 0;
}

.superhi-hero-slide.active {
  opacity: 1;
  pointer-events: auto;
  position: relative;
  z-index: 1;
}

/* Slide content inner animation */
.superhi-hero-slide .superhi-hero-text {
  transform: translateY(18px);
  opacity: 0;
  transition: transform 0.5s ease 0.15s, opacity 0.5s ease 0.15s;
}

.superhi-hero-slide.active .superhi-hero-text {
  transform: translateY(0);
  opacity: 1;
}

.superhi-hero-slide .superhi-hero-image-wrap {
  transform: translateY(14px) scale(0.97);
  opacity: 0;
  transition: transform 0.55s ease 0.25s, opacity 0.55s ease 0.25s;
}

.superhi-hero-slide.active .superhi-hero-image-wrap {
  transform: translateY(0) scale(1);
  opacity: 1;
}

/* Hero Image Card — SuperHi Hard Shadow */
.superhi-hero-image-card {
  border-radius: var(--radius-cards);
  overflow: hidden;
  border: 1px solid var(--color-frost-blue);
  box-shadow: var(--shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.superhi-hero-image-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.superhi-hero-image-card img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  display: block;
}

/* Dot Indicators — SuperHi Pill Dots */
.superhi-hero-dots {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}

.superhi-hero-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--color-frost-blue);
  border: 1.5px solid var(--color-ink-black);
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.2s ease, width 0.25s ease;
}

.superhi-hero-dot:hover {
  background-color: var(--color-powder-sky);
  transform: scale(1.15);
}

.superhi-hero-dot.active {
  background-color: var(--color-electric-iris);
  border-color: var(--color-electric-iris);
  width: 28px;
  border-radius: 12px;
}

/* Single slide — hide dots */
.superhi-hero-dots-hidden {
  display: none !important;
}

/* Mobile responsive */
@media (max-width: 991.98px) {
  .superhi-hero-slider {
    min-height: auto;
  }

  .superhi-hero-slide {
    position: absolute;
  }

  .superhi-hero-slide.active {
    position: relative;
  }

  .superhi-hero-image-card img {
    height: 260px;
  }

  .superhi-hero-dots {
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  .superhi-hero-image-card img {
    height: 200px;
  }
}
