/* ===========================
   SERVICES
   =========================== */
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.75rem; }
.services-grid--4col { grid-template-columns: repeat(4,1fr); gap: .75rem; }
@media (max-width:1100px) { .services-grid--4col { grid-template-columns: 1fr 1fr; } }
@media (max-width:768px) { .services-grid--4col { grid-template-columns: 1fr; } }
.service-card {
  background: var(--bg-light-card); border-radius: var(--radius); padding: 2rem 1.5rem; cursor: pointer;
  box-shadow: var(--shadow); border: 1px solid var(--border); transition: all .4s cubic-bezier(.15,.85,.3,1.1);
  position:relative; overflow:hidden;
}
.service-card::before { content:''; position:absolute; top:0; right:0; width:100%; height:4px; background:linear-gradient(90deg,transparent,var(--sc,var(--red)),transparent); opacity:0; transition:opacity .4s,height .4s; }
.service-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,transparent,var(--sc,var(--red)),transparent); transform:translateX(-100%); transition:transform .6s cubic-bezier(.15,.85,.3,1.1); }
.service-card:hover { transform: translateY(-7px); box-shadow: 0 20px 50px rgba(0,0,0,.1); border-color: rgba(var(--red-rgb),.15); }
.service-card:hover::before { opacity:1; height:4px; }
.service-card:hover::after { transform:translateX(100%); }
.service-card:hover .srv-icon { transform:scale(1.1) rotate(-5deg); box-shadow:0 6px 24px rgba(var(--red-rgb),.35); }
.service-card:hover h3 { color:var(--red); }
.srv-icon {
  width: 60px; height: 60px; background: linear-gradient(135deg, var(--sc,var(--red)), var(--dark));
  border-radius: 1rem; display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem; margin-bottom: 1.25rem;
  box-shadow: 0 4px 14px rgba(var(--red-rgb),.25);
  transition:transform .4s cubic-bezier(.68,-.55,.27,1.55),box-shadow .4s;
}
.service-card h3 { font-size: 1.05rem; font-weight: 800; margin-bottom: .65rem; }
.service-card p  { font-size: .87rem; color: var(--gray-dark); margin-bottom: 1rem; }
.srv-list { display: flex; flex-direction: column; gap: .4rem; }
.srv-list li { font-size: .83rem; color: var(--gray-dark); display: flex; align-items: center; gap: .35rem; }

/* ===========================
   EGA LINKS (Quality Assurance)
   =========================== */
.ega-links { display:flex; flex-direction:column; gap:.5rem; }
.ega-links a {
  display:flex; align-items:center; gap:.5rem; padding:.55rem .75rem;
  border-radius:var(--radius-sm); background:var(--gray-light);
  font-size:.85rem; font-weight:600; transition:var(--transition);
}
.ega-links a:hover { background:var(--red); color:#fff; transform:translateX(-4px); }
.ega-links a span { font-size:1rem; }

.qa-page-title { font-size:1.6rem; font-weight:900; text-align:center; margin-bottom:2rem; display:flex; align-items:center; justify-content:center; gap:.75rem; }
.qa-page-title i { color:var(--red); font-size:1.8rem; }

/* QA nav style */
.qa-nav-container { display:flex; flex-direction:column; gap:.5rem; }

/* QA nav inside institute embed section: horizontal grid, 4 per row, extra rows centered */
.qa-section-embed .qa-nav-container { display:flex; flex-direction:row; flex-wrap:wrap; justify-content:center; gap:.75rem; align-items:flex-start; }
.qa-section-embed .qa-nav-container > details { flex:0 1 calc(25% - 1rem); min-width:230px; box-shadow:0 8px 25px rgba(0,0,0,.10) !important; }

/* QA nav on department page: single expanded card, full width */
.qa-dept-page .qa-nav-container { display:block; }
.qa-dept-page .qa-nav-container > details { flex:none; min-width:0; }
.qa-dept-page .qa-nav-container > details > .submenu { max-height:none; overflow-y:visible; }
/* Department page: about + admission */
.dept-faculty-bar { display:flex; justify-content:center; margin-bottom:2.5rem; }
.dept-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; max-width:1100px; margin:0 auto; }
.dept-info-card { background:var(--bg-light-card); border:1px solid var(--border); border-radius:var(--radius); padding:2rem 1.75rem; box-shadow:0 8px 25px rgba(0,0,0,.08) !important; display:flex; flex-direction:column; }
.dept-info-head { display:flex; align-items:center; gap:.7rem; margin-bottom:1rem; }
.dept-info-head i { color:var(--red); font-size:1.4rem; }
.dept-info-head h3 { font-size:1.15rem; font-weight:800; }
.dept-info-card p { font-size:.92rem; line-height:2; color:var(--text-secondary); margin-bottom:1.25rem; flex:1 1 auto; }
[data-theme="dark"] .dept-info-card { background:var(--bg-alt); border-color:rgba(255,255,255,.08); }
[data-theme="dark"] .dept-info-card p { color:var(--text-secondary); }
[data-theme="light"] .dept-info-card { background:#fff; }
@media (max-width:768px) {
  .dept-info-grid { grid-template-columns:1fr; }
}
.qa-section-embed .qa-nav-container > details > .submenu {
  position:static; background:transparent; border:none; box-shadow:none;
  border-radius:0; max-height:400px; overflow-y:auto; border-top:1px solid var(--border);
  border-radius:0 0 var(--radius) var(--radius); padding-bottom:1rem;
}
[data-theme="dark"] .qa-section-embed .qa-nav-container > details > .submenu { background:transparent; border-top-color:rgba(255,255,255,.08); }
[data-theme="light"] .qa-section-embed .qa-nav-container > details > .submenu { background:transparent; box-shadow:none; }
@media (max-width:900px) {
  .qa-section-embed .qa-nav-container > details { flex-basis:calc(50% - 1rem); }
}
@media (max-width:480px) {
  .qa-section-embed .qa-nav-container > details { flex-basis:100%; }
}
.qa-nav-container details { background:var(--bg-light-card); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--border); }
.qa-nav-container summary {
  cursor:pointer; padding:.85rem 1.25rem; font-weight:550; font-size:1.1rem;
  font-family:'Cairo','Roboto',sans-serif;
  display:flex; align-items:center; gap:.65rem; transition:var(--transition);
  user-select:none; list-style:none; word-break:break-word;
}
.qa-nav-container summary::marker { display:none; content:''; }
.qa-nav-container summary:hover { background:rgba(var(--red-rgb),.04); }
.qa-nav-container details[open] > summary { background:var(--red); color:#fff; border-radius:var(--radius) var(--radius) 0 0; }
.qa-nav-container details[open] > summary i { color:#fff; }
.qa-nav-container summary i { color:var(--red); font-size:1rem; width:1.4rem; text-align:center; }
.qa-nav-container summary::before { font-family: "Font Awesome 6 Free" !important; font-weight:900 !important; }
.qa-nav-container details[open] > .submenu { max-height:400px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(var(--red-rgb),.4) transparent; }
.qa-nav-container details[open] > .submenu::-webkit-scrollbar { width:8px; }
.qa-nav-container details[open] > .submenu::-webkit-scrollbar-track { background:transparent; }
.qa-nav-container details[open] > .submenu::-webkit-scrollbar-thumb { background:rgba(var(--red-rgb),.4); border-radius:4px; }
.qa-nav-container > details[open] > .submenu::after {
  content:''; position:sticky; bottom:0; display:block; height:2.25rem;
  margin-top:-2.25rem; margin-right:-1.5rem; margin-left:-.75rem;
  background:linear-gradient(to top, var(--bg-light-card), rgba(255,255,255,0));
  pointer-events:none; flex-shrink:0;
}
[data-theme="dark"] .qa-nav-container > details[open] > .submenu::after { background:linear-gradient(to top, var(--bg-alt), rgba(255,255,255,0)); }
[data-theme="light"] .qa-nav-container > details[open] > .submenu::after { background:linear-gradient(to top, #e2e2e2, rgba(255,255,255,0)); }
.qa-dept-page .qa-nav-container > details[open] > .submenu::after { display:none; }
/* Mobile: down-arrow in scrollable QA accordion lists (scrolls to bottom) */
.qa-nav-container > details { position:relative; }
.qa-nav-container .qa-scroll-down {
  display:none; position:absolute; left:.6rem;
  bottom:.55rem; width:2.2rem; height:2.2rem; border-radius:50%;
  background:var(--red); color:#fff; border:none; cursor:pointer;
  font-size:.95rem; line-height:1; padding:0;
  box-shadow:0 4px 14px rgba(var(--red-rgb),.45);
  align-items:center; justify-content:center; z-index:6;
  transition:background .25s ease, transform .25s ease;
}
.qa-nav-container .qa-scroll-down:hover { background:var(--red-dark); transform:scale(1.1); }
.qa-nav-container .qa-scroll-down i { pointer-events:none; }
@media (max-width:768px) {
  .qa-nav-container > details[open] > .qa-scroll-down.has-scroll { display:flex; }
}
.qa-nav-container .submenu { padding:.5rem 1.5rem .75rem .75rem; display:flex; flex-direction:column; gap:.25rem; direction:rtl; }
.qa-nav-container .submenu a {
  display:flex; align-items:center; gap:.6rem; padding:.45rem .65rem;
  border-radius:var(--radius-sm); font-size:.85rem; font-weight:600;
  transition:var(--transition); text-decoration:none; direction:rtl; text-align:right;
  word-break:break-word; hyphens:auto;
}
.qa-nav-container .submenu a:hover { background:rgba(var(--red-rgb),.06); transform:translateX(3px); }
.qa-nav-container .submenu a i { color:var(--red); font-size:.95rem; width:1.2rem; text-align:center; }
.qa-nav-container .submenu .pdf-icon { margin-left:auto; font-size:.8rem; opacity:.6; }
.qa-nav-container .submenu details { background:transparent; border:none; box-shadow:none; border-radius:0; overflow:visible; flex-shrink:0; }
.qa-nav-container .submenu details summary {
  padding:.45rem .65rem; font-size:1rem; font-weight:500;
  background:rgba(var(--red-rgb),.04); border-radius:var(--radius-sm); margin-bottom:.15rem;
}
.qa-nav-container .submenu details[open] > summary { background:var(--red-dark); color:#fff; }
.qa-nav-container .submenu details .submenu { padding:.15rem 0 1rem 1.25rem; max-height:none; overflow-y:visible; }
.qa-nav-container .submenu details summary { word-break:break-word; }

[data-theme="dark"] .qa-nav-container details { background:var(--bg-alt); border-color:rgba(255,255,255,.08); }[data-theme="dark"] .qa-nav-container summary { color:var(--text-primary); }
[data-theme="dark"] .qa-nav-container summary:hover { background:rgba(255,255,255,.04); }
[data-theme="dark"] .qa-nav-container .submenu a { color:var(--text-secondary); }
[data-theme="dark"] .qa-nav-container .submenu a:hover { background:rgba(var(--red-rgb),.15); color:var(--text-on-red); }
[data-theme="dark"] .qa-nav-container .submenu details summary { background:rgba(255,255,255,.04); color:var(--text-primary); }
[data-theme="dark"] .qa-nav-container .submenu details[open] > summary { background:var(--red-dark); color:var(--text-on-red); }
[data-theme="dark"] .qa-page-title { color:var(--text-primary); }

[data-theme="light"] .qa-nav-container details { background:#e2e2e2; box-shadow:var(--shadow); }
[data-theme="light"] .qa-nav-container summary { color:var(--text-primary); }
[data-theme="light"] .qa-nav-container .submenu a { color:var(--text-secondary); }
[data-theme="light"] .qa-nav-container .submenu a:hover { background:rgba(var(--red-rgb),.06); color:var(--text-primary); }
[data-theme="light"] .qa-nav-container .submenu details summary { background:rgba(0,0,0,.03); color:var(--text-secondary); }
[data-theme="light"] .qa-nav-container .submenu details[open] > summary { background:var(--red-dark); color:var(--text-on-red); }

.ega-sub { border-radius:var(--radius-sm); overflow:hidden; }
.ega-sub summary {
  cursor:pointer; padding:.55rem .75rem; border-radius:var(--radius-sm);
  background:var(--gray-light); font-size:.85rem; font-weight:700;
  display:flex; align-items:center; gap:.5rem; transition:var(--transition);
}
.ega-sub summary:hover { background:rgba(var(--red-rgb),.1); }
.ega-sub[open] summary { background:var(--red); color:#fff; }
.ega-sub-links { padding:.5rem 0 .5rem 1rem; display:flex; flex-direction:column; gap:.35rem; }
.ega-sub-links a {
  display:flex; align-items:center; gap:.5rem; padding:.4rem .6rem;
  border-radius:var(--radius-sm); font-size:.8rem; font-weight:600;
  transition:var(--transition);
}
.ega-sub-links a:hover { background:rgba(var(--red-rgb),.08); transform:translateX(-3px); }
.ega-sub-links a span { font-size:.85rem; }
.ega-sub p { padding:.75rem .75rem .25rem; font-size:.82rem; color:var(--gray); line-height:1.6; }
.ega-sub .subj-chips { padding:.25rem .75rem .75rem; display:flex; flex-wrap:wrap; gap:.35rem; }
.ega-sub .subj-chips span { font-size:.78rem; padding:.2rem .5rem; background:rgba(var(--red-rgb),.06); border-radius:4px; color:var(--gray-dark); }

[data-theme="dark"] .ega-links a { background:rgba(255,255,255,.06); color:var(--text-secondary); }
[data-theme="dark"] .ega-links a:hover { background:var(--red); color:var(--text-on-red); }
[data-theme="dark"] .ega-sub summary { background:rgba(255,255,255,.06); color:var(--text-secondary); }
[data-theme="dark"] .ega-sub summary:hover { background:rgba(var(--red-rgb),.2); }
[data-theme="dark"] .ega-sub[open] summary { background:var(--red); color:var(--text-on-red); }
[data-theme="dark"] .ega-sub-links a { color:var(--text-secondary); }
[data-theme="dark"] .ega-sub-links a:hover { background:rgba(var(--red-rgb),.15); color:var(--text-on-red); }

[data-theme="light"] .ega-links a { background:rgba(0,0,0,.03); color:var(--text-secondary); }
[data-theme="light"] .ega-links a:hover { background:var(--red); color:var(--text-on-red); }
[data-theme="light"] .ega-sub summary { background:rgba(0,0,0,.03); color:var(--text-secondary); }
[data-theme="light"] .ega-sub summary:hover { background:rgba(var(--red-rgb),.08); }
[data-theme="light"] .ega-sub[open] summary { background:var(--red); color:var(--text-on-red); }
[data-theme="light"] .ega-sub-links a { color:var(--text-secondary); }
[data-theme="light"] .ega-sub-links a:hover { background:rgba(var(--red-rgb),.08); color:var(--text-primary); }

/* MEU unit image lightbox (once per session) */
.qa-img-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.78); z-index:2200;
  display:flex; align-items:center; justify-content:center; padding:1.5rem;
  opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
}
.qa-img-overlay.open { opacity:1; visibility:visible; }
.qa-img-modal {
  position:relative; max-width:min(920px,94vw); max-height:88vh;
  background:var(--bg-light-card); border-radius:var(--radius); padding:1rem;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.qa-img-modal img {
  display:block; max-width:100%; max-height:80vh;
  border-radius:calc(var(--radius) - 4px);
}
.qa-img-close {
  position:absolute; top:.35rem; inset-inline-end:.5rem; z-index:2;
  background:var(--red); color:#fff; border:none; cursor:pointer;
  width:2.1rem; height:2.1rem; border-radius:50%;
  font-size:1.25rem; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:var(--transition);
}
.qa-img-close:hover { background:var(--red-dark); }
.qa-img-lock { overflow:hidden; }
[data-theme="dark"] .qa-img-modal { background:var(--bg-alt); }
[data-theme="light"] .qa-img-modal { background:#fff; }
