/*
Theme Name: HNUE 75
Theme URI: https://example.com/hnue75
Author: Khoa Vật lí - Trường Đại học Sư phạm Hà Nội
Description: Giao diện chuyên biệt cho website kỷ niệm 75 năm Khoa Vật lí, Trường Đại học Sư phạm Hà Nội (1951–2026).
Version: 1.11.2
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: hnue75
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --hnue75-navy: #003366;
  --hnue75-blue: #0b4f8a;
  --hnue75-gold: #ffc82e;
  --hnue75-cream: #fff7df;
  --hnue75-text: #172235;
  --hnue75-muted: #5d6877;
  --hnue75-border: #d9e1ea;
  --hnue75-white: #ffffff;
  --hnue75-radius: 18px;
  --hnue75-shadow: 0 14px 40px rgba(0, 38, 77, .10);
  --hnue75-container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--hnue75-text);
  background: #f7f9fc;
  font-family: "Be Vietnam Pro", "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  line-height: 1.65;
}
a { color: var(--hnue75-blue); text-decoration: none; }
a:hover { color: var(--hnue75-navy); }
img { max-width: 100%; height: auto; }
.container { width: min(calc(100% - 32px), var(--hnue75-container)); margin-inline: auto; }
.site-main { min-height: 60vh; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0,51,102,.08);
}
.header-inner {
  position: relative;
  min-height: 78px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.site-branding { display:flex; align-items:center; gap:14px; min-width:0; flex:0 1 300px; }
.site-branding .custom-logo-link { display:flex; align-items:center; flex:0 0 auto; }
.site-branding .custom-logo { width:auto; max-height:58px; }
.brand-copy { min-width:0; max-width:240px; }
.site-title { margin:0; font-size:1.06rem; line-height:1.25; font-weight:800; color:var(--hnue75-navy); }
.site-description { margin:3px 0 0; color:var(--hnue75-muted); font-size:.86rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.primary-nav { flex:1 1 auto; min-width:0; }
.primary-nav ul { display:flex; flex-wrap:nowrap; justify-content:center; gap:0; list-style:none; margin:0; padding:0; align-items:center; }
.primary-nav li { min-width:0; }
.primary-nav a { display:block; padding:9px 8px; font-size:.91rem; line-height:1.35; white-space:nowrap; font-weight:700; color:var(--hnue75-text); border-radius:10px; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { background:#eef4fa; color:var(--hnue75-navy); }
.menu-toggle { display:none; border:0; background:var(--hnue75-navy); color:#fff; border-radius:10px; padding:9px 12px; font-weight:700; }

.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 86% 20%, rgba(255,200,46,.34), transparent 30%),
    radial-gradient(circle at 6% 82%, rgba(76,183,255,.22), transparent 34%),
    linear-gradient(130deg, #002548 0%, #003f75 52%, #0b5f9b 100%);
}
.hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.18;
  background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px);
  background-size:42px 42px;
  transform:perspective(600px) rotateX(56deg) scale(1.6) translateY(28%);
  transform-origin:bottom;
}
.hero-inner { min-height:640px; padding:110px 0 90px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:64px; align-items:center; }
.hero-kicker { display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.32); background:rgba(255,255,255,.08); padding:7px 12px; border-radius:999px; text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:800; }
.hero-title { margin:20px 0 12px; font-size:clamp(2.5rem,6vw,5.5rem); line-height:.98; letter-spacing:-.04em; }
.hero-title span { color:var(--hnue75-gold); }
.hero-subtitle { max-width:760px; font-size:clamp(1.05rem,2vw,1.3rem); color:#dfefff; }
.hero-actions { margin-top:28px; display:flex; gap:12px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 20px; border-radius:12px; font-weight:800; border:1px solid transparent; transition:.2s ease; }
.btn-primary { background:var(--hnue75-gold); color:#18324d; }
.btn-primary:hover { transform:translateY(-2px); color:#18324d; box-shadow:0 10px 28px rgba(255,200,46,.28); }
.btn-ghost { border-color:rgba(255,255,255,.42); color:#fff; background:rgba(255,255,255,.06); }
.btn-ghost:hover { color:#fff; background:rgba(255,255,255,.14); }
.hero-panel { background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.24); border-radius:24px; padding:28px; box-shadow:0 24px 70px rgba(0,0,0,.18); backdrop-filter:blur(12px); }
.hero-panel h2 { margin:0 0 8px; font-size:1.2rem; }
.countdown { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px; }
.countdown-item { padding:15px 8px; text-align:center; border-radius:14px; background:rgba(255,255,255,.10); }
.countdown-number { display:block; font-size:clamp(1.6rem,4vw,2.6rem); font-weight:900; line-height:1; color:var(--hnue75-gold); }
.countdown-label { display:block; margin-top:7px; font-size:.78rem; color:#d8e8f8; text-transform:uppercase; letter-spacing:.08em; }
.event-mini { display:grid; gap:12px; margin-top:22px; }
.event-mini-item { display:grid; grid-template-columns:58px 1fr; gap:12px; align-items:center; padding:12px; border-radius:14px; background:rgba(0,0,0,.12); }
.event-mini-date { text-align:center; font-weight:900; color:var(--hnue75-gold); font-size:.92rem; line-height:1.15; }
.event-mini-title { font-weight:800; }
.event-mini-meta { color:#d8e8f8; font-size:.86rem; }

.section { padding:82px 0; }
.section-tight { padding:56px 0; }
.section-white { background:#fff; }
.section-blue { background:linear-gradient(135deg,#002b54,#004b84); color:#fff; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:30px; }
.section-heading h2 { margin:0; font-size:clamp(1.8rem,4vw,3rem); line-height:1.1; color:inherit; }
.section-heading p { margin:8px 0 0; color:var(--hnue75-muted); max-width:700px; }
.section-blue .section-heading p { color:#d9ebfb; }
.eyebrow { color:var(--hnue75-blue); font-weight:900; text-transform:uppercase; font-size:.78rem; letter-spacing:.12em; }
.section-blue .eyebrow { color:var(--hnue75-gold); }

.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.card { background:#fff; border:1px solid var(--hnue75-border); border-radius:var(--hnue75-radius); overflow:hidden; box-shadow:var(--hnue75-shadow); }
.card-body { padding:22px; }
.card h3 { margin:0 0 10px; font-size:1.15rem; line-height:1.35; }
.card-meta { color:var(--hnue75-muted); font-size:.9rem; }
.card-excerpt { color:#405064; }
.card-image { aspect-ratio:16/9; object-fit:cover; width:100%; display:block; background:#e7edf4; }

.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.stat { padding:26px; border-radius:18px; background:#fff; border:1px solid var(--hnue75-border); text-align:center; }
.stat strong { display:block; color:var(--hnue75-navy); font-size:2.2rem; line-height:1; }
.stat span { display:block; margin-top:9px; color:var(--hnue75-muted); }

.timeline-wrap { overflow-x:auto; padding-bottom:8px; }
.hnue75-timeline { display:grid; gap:18px; min-width:760px; }
.hnue75-timeline-item { display:grid; grid-template-columns:110px 22px 1fr; gap:16px; align-items:start; }
.hnue75-timeline-year { font-size:1.35rem; font-weight:900; color:var(--hnue75-gold); text-align:right; padding-top:16px; }
.hnue75-timeline-line { position:relative; height:100%; min-height:110px; }
.hnue75-timeline-line::before { content:""; position:absolute; top:0; bottom:-18px; left:10px; width:2px; background:rgba(255,255,255,.26); }
.hnue75-timeline-line::after { content:""; position:absolute; top:19px; left:4px; width:14px; height:14px; border-radius:50%; background:var(--hnue75-gold); box-shadow:0 0 0 6px rgba(255,200,46,.16); }
.hnue75-timeline-card { padding:20px 22px; border-radius:18px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.18); }
.hnue75-timeline-card h3 { margin:0 0 7px; color:#fff; }
.hnue75-timeline-card p { margin:0; color:#dcecff; }

.content-shell { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:34px; padding:64px 0; }
.content-area, .sidebar-card { background:#fff; border:1px solid var(--hnue75-border); border-radius:18px; box-shadow:var(--hnue75-shadow); }
.content-area { padding:clamp(22px,4vw,48px); }
.entry-title { margin-top:0; color:var(--hnue75-navy); line-height:1.15; }
.entry-content h2, .entry-content h3 { color:var(--hnue75-navy); }
.entry-content table { width:100%; border-collapse:collapse; }
.entry-content th, .entry-content td { border:1px solid var(--hnue75-border); padding:10px; }
.sidebar-card { padding:22px; align-self:start; }

.site-footer { background:#001f3d; color:#d8e7f4; padding:54px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:38px; }
.footer-title { color:#fff; margin:0 0 12px; }
.footer-links { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.footer-links a { color:#d8e7f4; }
.footer-bottom { margin-top:36px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; gap:20px; font-size:.88rem; color:#a9bfd2; }

.notice { padding:14px 16px; border-radius:12px; background:#fff8dc; border:1px solid #efd57a; color:#5f4b00; }
.empty-state { padding:26px; border:1px dashed var(--hnue75-border); border-radius:14px; background:#fff; color:var(--hnue75-muted); text-align:center; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width: 1380px) {
  .brand-copy { max-width: 190px; }
  .primary-nav a { padding: 8px 6px; font-size: .88rem; }
  .hnue75-login-button,
  .hnue75-member-summary { padding: 8px 12px; }
}

@media (max-width: 1280px) {
  .menu-toggle { display:block; }
  .primary-nav { display:none; position:absolute; top:calc(100% + 1px); left:0; right:0; background:#fff; border:1px solid var(--hnue75-border); border-top:0; border-radius:0 0 18px 18px; box-shadow:0 18px 30px rgba(0,30,60,.12); overflow:hidden; }
  .primary-nav.is-open { display:block; }
  .primary-nav ul { display:block; width:min(calc(100% - 32px),var(--hnue75-container)); margin:auto; padding:12px 0 18px; }
  .hero-inner { grid-template-columns:1fr; min-height:auto; padding:88px 0 70px; gap:34px; }
  .cards { grid-template-columns:repeat(2,1fr); }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .content-shell { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 640px) {
  .site-description { display:none; }
  .hero-title { font-size:2.6rem; }
  .countdown { gap:6px; }
  .countdown-item { padding:12px 5px; }
  .cards, .stats-grid, .footer-grid { grid-template-columns:1fr; }
  .section { padding:60px 0; }
  .section-heading { display:block; }
  .footer-bottom { display:block; }
}

.hnue75-sponsorship-box { margin:0 0 28px; padding:22px 24px; border:1px solid var(--hnue75-border); border-left:5px solid var(--hnue75-gold); border-radius:16px; background:linear-gradient(135deg,#fffdf5,#ffffff); }
.hnue75-sponsorship-box h2 { margin-top:0; }
.hnue75-sponsorship-contact { margin-top:16px; padding-top:14px; border-top:1px solid var(--hnue75-border); }


/* v1.2: banner, logo kỷ niệm, menu đa cấp, các thế hệ và lưu bút */
.home-banner { padding: 24px 0 0; background: linear-gradient(180deg, #f7f9fc 0%, #eef4fa 100%); }
.home-banner-inner { overflow: hidden; border-radius: 24px; box-shadow: 0 18px 48px rgba(0, 38, 77, .14); border: 1px solid rgba(0, 51, 102, .08); }
.home-banner-image { display: block; width: 100%; height: auto; max-height: 620px; object-fit: cover; }
.hero-copy { min-width: 0; }
.hero-anniversary-logo { margin: 0 0 18px; }
.hero-anniversary-logo img { display: block; width: auto; max-width: min(280px, 72vw); max-height: 180px; object-fit: contain; filter: drop-shadow(0 14px 26px rgba(0,0,0,.18)); }
.section-link-light { color: #fff; }
.section-link-light:hover { color: var(--hnue75-gold); }
.section-guestbook { background: linear-gradient(145deg, #fffaf0 0%, #f4f8fc 55%, #edf4fb 100%); }

.primary-nav .menu-item { position: relative; }
.primary-nav .menu-item-has-children > a::after { content: "▾"; margin-left: 6px; font-size: .72em; opacity: .7; }
.primary-nav .sub-menu { display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 225px; padding: 9px; margin: 0; background: #fff; border: 1px solid var(--hnue75-border); border-radius: 14px; box-shadow: 0 18px 42px rgba(0, 38, 77, .15); z-index: 50; }
.primary-nav .sub-menu::before { content: ""; position: absolute; top: -9px; left: 0; right: 0; height: 10px; }
.primary-nav .menu-item:hover > .sub-menu,
.primary-nav .menu-item:focus-within > .sub-menu { display: block; }
.primary-nav .sub-menu li { width: 100%; }
.primary-nav .sub-menu a { padding: 10px 12px; white-space: normal; font-size: .9rem; }

@media (max-width: 1220px) {
  .primary-nav .sub-menu { display: block; position: static; width:auto; margin:0; min-width: 0; padding: 0 0 0 18px; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
  .primary-nav .sub-menu a { font-weight: 600; color: var(--hnue75-muted); padding-top: 7px; padding-bottom: 7px; }
  .primary-nav .menu-item-has-children > a::after { display: none; }
}

@media (max-width: 640px) {
  .home-banner { padding-top: 14px; }
  .home-banner-inner { border-radius: 14px; }
  .hero-anniversary-logo img { max-width: 210px; max-height: 130px; }
}

/* v1.2.1: đồng bộ chiều rộng banner và khối mở đầu */
.home-intro {
  padding-bottom: 26px;
  background: linear-gradient(180deg, #f7f9fc 0%, #edf3f9 100%);
}
.home-banner {
  padding: 24px 0 0;
  background: transparent;
}
.home-banner-inner {
  width: 100%;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 18px 48px rgba(0, 38, 77, .14);
  border: 1px solid rgba(0, 51, 102, .08);
}
.home-banner-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}
.home-hero {
  padding: 24px 0 0;
}
.home-hero .hero {
  position: relative;
  isolation: isolate;
  width: 100%;
  overflow: hidden;
  border-radius: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 86% 20%, rgba(255,200,46,.28), transparent 30%),
    radial-gradient(circle at 6% 82%, rgba(76,183,255,.18), transparent 34%),
    linear-gradient(130deg, #002548 0%, #003f75 54%, #557f83 100%);
  box-shadow: 0 18px 48px rgba(0, 38, 77, .16);
}
.home-hero .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .13;
  background-image:
    linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px);
  background-size: 42px 42px;
  transform: perspective(600px) rotateX(56deg) scale(1.6) translateY(28%);
  transform-origin: bottom;
}
.home-hero .hero-inner {
  width: 100%;
  min-height: 430px;
  margin: 0;
  padding: 52px 56px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: 54px;
  align-items: center;
}
.home-intro.has-banner .hero-anniversary-logo {
  width: fit-content;
  margin: 0 0 18px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 28px rgba(0,0,0,.14);
}
.home-intro.has-banner .hero-anniversary-logo img {
  max-width: 170px;
  max-height: 112px;
  filter: none;
}
.home-hero .hero-panel h2,
.home-hero .hero-panel p {
  color: #fff;
}
.home-hero .hero-panel p {
  margin-top: 6px;
  color: #e4f0fa;
}

@media (max-width: 1220px) {
  .home-hero .hero-inner {
    min-height: auto;
    padding: 48px 42px;
    grid-template-columns: 1fr;
    gap: 34px;
  }
}

@media (max-width: 640px) {
  .home-intro { padding-bottom: 16px; }
  .home-banner, .home-hero { padding-top: 14px; }
  .home-banner-inner, .home-hero .hero { border-radius: 16px; }
  .home-hero .hero-inner { padding: 32px 22px; }
  .home-intro.has-banner .hero-anniversary-logo img {
    max-width: 145px;
    max-height: 92px;
  }
}

/* v1.3: Tin tức dạng tóm tắt + đọc toàn bộ */
.hnue75-news-page { margin-block:42px; padding:clamp(24px,4vw,42px); }
.hnue75-news-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:22px; align-items:stretch; }
.hnue75-news-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--hnue75-border); border-radius:20px; background:#fff; box-shadow:var(--hnue75-shadow); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.hnue75-news-card:hover { transform:translateY(-3px); border-color:#bfd1df; box-shadow:0 18px 42px rgba(0,38,77,.13); }
.hnue75-news-media { aspect-ratio:16/9; overflow:hidden; background:#e7edf4; }
.hnue75-news-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.hnue75-news-card:hover .hnue75-news-media img { transform:scale(1.025); }
.hnue75-news-body { display:flex; flex:1; flex-direction:column; padding:22px; }
.hnue75-news-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 14px; margin-bottom:11px; color:var(--hnue75-muted); font-size:.84rem; }
.hnue75-news-meta span { color:var(--hnue75-blue); font-weight:800; }
.hnue75-news-card h3 { margin:0 0 10px; color:var(--hnue75-navy); font-size:1.22rem; line-height:1.38; }
.hnue75-news-excerpt { display:-webkit-box; margin:0; overflow:hidden; color:#405064; line-height:1.72; -webkit-box-orient:vertical; -webkit-line-clamp:5; line-clamp:5; }
.hnue75-news-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:auto; padding-top:18px; border-top:1px solid #e4eaf0; }
.hnue75-news-author { min-width:0; overflow:hidden; color:#6b7280; font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; }
.hnue75-news-read { display:inline-flex; flex:0 0 auto; align-items:center; gap:7px; padding:0; border:0; background:transparent; color:var(--hnue75-blue); font:inherit; font-weight:800; cursor:pointer; }
.hnue75-news-read:hover, .hnue75-news-read:focus-visible { color:var(--hnue75-navy); text-decoration:underline; }
.hnue75-news-read:focus-visible { outline:3px solid rgba(11,79,138,.18); outline-offset:4px; border-radius:4px; }
.hnue75-news-dialog { width:min(820px,calc(100% - 28px)); max-height:min(88vh,920px); padding:0; border:0; border-radius:22px; background:#fff; color:#24364a; box-shadow:0 30px 90px rgba(0,25,50,.34); }
.hnue75-news-dialog::backdrop { background:rgba(0,25,50,.68); backdrop-filter:blur(3px); }
.hnue75-news-dialog-inner { position:relative; max-height:inherit; overflow:auto; padding:clamp(28px,5vw,46px); }
.hnue75-news-dialog-media { margin:0 0 24px; overflow:hidden; border-radius:16px; }
.hnue75-news-dialog-media img { display:block; width:100%; height:auto; }
.hnue75-news-dialog h2 { margin:12px 0 8px; color:var(--hnue75-navy); font-size:clamp(1.55rem,3vw,2.25rem); line-height:1.3; }
.hnue75-news-dialog-author { margin:0 0 24px; color:var(--hnue75-muted); font-size:.92rem; }
.hnue75-news-full-content { font-size:1.03rem; line-height:1.82; }
.hnue75-news-full-content > :first-child { margin-top:0; }
.hnue75-news-full-content > :last-child { margin-bottom:0; }
.hnue75-dialog-close { position:sticky; z-index:3; top:0; float:right; display:grid; place-items:center; width:42px; height:42px; margin:-10px -10px 4px 18px; border:1px solid #d7e0e8; border-radius:50%; background:#fff; color:var(--hnue75-navy); font-size:1.7rem; line-height:1; cursor:pointer; box-shadow:0 6px 20px rgba(0,38,77,.08); }
.hnue75-dialog-close:hover { background:#f3f7fb; }
@media (max-width:640px) {
  .hnue75-news-body { padding:19px; }
  .hnue75-news-footer { align-items:flex-start; flex-direction:column; }
}


/* v1.3.2: khu vực câu chuyện đã duyệt trên trang chủ */
.section-stories .hnue75-story-grid { margin-top: 6px; }
.section-stories .hnue75-story-card { height: 100%; }
.section-stories .hnue75-story-card .hnue75-summary-excerpt {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  line-clamp: 5;
}


/* v1.3.3: khóa kích thước ảnh đại diện câu chuyện trên trang chủ */
.section-stories .hnue75-story-card .hnue75-summary-card-media {
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 240px;
  overflow: hidden;
  background: #eef4fa;
}
.section-stories .hnue75-story-card .hnue75-summary-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  object-position: center;
}


/* v1.3.4: phân tách thao tác gửi bài và xem nội dung đã công bố */
.section-heading-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 16px; align-items:center; }
.section-heading-actions .section-action-secondary { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border:1px solid var(--hnue75-border); border-radius:10px; background:#fff; font-weight:800; }
.section-guestbook .section-heading-actions .section-action-secondary { background:rgba(255,255,255,.92); }
@media (max-width:800px) { .section-heading-actions { justify-content:flex-start; margin-top:14px; } }

/* v1.4.0: thầy cô, cựu người học và cơ cấu Khoa hiện nay */
.section-teachers { position:relative; overflow:hidden; }
.section-teachers::before { content:"75"; position:absolute; right:-20px; top:10px; color:rgba(0,51,102,.035); font-size:clamp(10rem,24vw,22rem); font-weight:900; line-height:1; pointer-events:none; }
.section-teachers .container { position:relative; }
.section-faculty-today { border-top:1px solid rgba(0,51,102,.06); border-bottom:1px solid rgba(0,51,102,.06); }
.hnue75-single-featured { display:block; width:100%; height:auto; margin-bottom:24px; border-radius:16px; }
.hnue75-teacher-featured { max-height:620px; object-fit:contain; object-position:center top; background:#eef4fa; }
.hnue75-profile-meta { display:flex; flex-wrap:wrap; gap:8px 12px; margin:0 0 24px; }
.hnue75-profile-meta span { display:inline-flex; padding:7px 11px; border-radius:999px; background:#eef4fa; color:var(--hnue75-navy); font-size:.9rem; font-weight:800; }
.footer-grid.footer-grid-two { grid-template-columns:1.4fr 1fr; }
@media (max-width:800px) { .footer-grid.footer-grid-two { grid-template-columns:1fr; } }


/* v1.4.1: nút đăng nhập và khu vực thành viên */
.header-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  margin-left:auto;
}
.hnue75-member-access {
  position:relative;
  flex:0 0 auto;
}
.hnue75-login-button,
.hnue75-member-summary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:8px 14px;
  border:1px solid var(--hnue75-navy);
  border-radius:12px;
  background:var(--hnue75-navy);
  color:#fff;
  font-size:.88rem;
  line-height:1.2;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,51,102,.12);
  transition:transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.hnue75-login-button:hover,
.hnue75-login-button:focus,
.hnue75-member-summary:hover,
.hnue75-member-summary:focus {
  color:#fff;
  background:var(--hnue75-blue);
  box-shadow:0 10px 22px rgba(0,51,102,.18);
  transform:translateY(-1px);
}
.hnue75-login-button:focus-visible,
.hnue75-member-summary:focus-visible,
.hnue75-member-dropdown a:focus-visible {
  outline:3px solid rgba(255,200,46,.8);
  outline-offset:2px;
}
.hnue75-login-icon {
  width:18px;
  height:18px;
  display:block;
  fill:currentColor;
  flex:0 0 auto;
}
.hnue75-member-menu {
  position:relative;
}
.hnue75-member-menu > summary {
  list-style:none;
}
.hnue75-member-menu > summary::-webkit-details-marker {
  display:none;
}
.hnue75-member-name { max-width: 92px; overflow: hidden; text-overflow: ellipsis; }
.hnue75-member-summary .avatar {
  width:26px;
  height:26px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.75);
}
.hnue75-member-caret {
  font-size:.7em;
  opacity:.82;
}
.hnue75-member-dropdown {
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  z-index:1100;
  min-width:250px;
  padding:10px;
  border:1px solid var(--hnue75-border);
  border-radius:14px;
  background:#fff;
  box-shadow:0 20px 48px rgba(0,38,77,.18);
}
.hnue75-member-dropdown::before {
  content:"";
  position:absolute;
  top:-10px;
  right:18px;
  width:18px;
  height:18px;
  background:#fff;
  border-top:1px solid var(--hnue75-border);
  border-left:1px solid var(--hnue75-border);
  transform:rotate(45deg);
}
.hnue75-member-identity {
  position:relative;
  z-index:1;
  padding:8px 10px 12px;
  margin-bottom:6px;
  border-bottom:1px solid var(--hnue75-border);
}
.hnue75-member-identity strong,
.hnue75-member-identity span {
  display:block;
}
.hnue75-member-identity strong {
  color:var(--hnue75-navy);
  line-height:1.3;
}
.hnue75-member-identity span {
  margin-top:3px;
  color:var(--hnue75-muted);
  font-size:.78rem;
  overflow-wrap:anywhere;
}
.hnue75-member-dropdown a {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 11px;
  border-radius:9px;
  color:var(--hnue75-text);
  font-size:.88rem;
  font-weight:700;
}
.hnue75-member-dropdown a:hover {
  color:var(--hnue75-navy);
  background:#eef4fa;
}
.hnue75-member-dropdown .hnue75-logout-link {
  margin-top:5px;
  border-top:1px solid var(--hnue75-border);
  border-radius:0 0 9px 9px;
  color:#9a2530;
}
.hnue75-member-dropdown .hnue75-logout-link:hover {
  color:#7d1721;
  background:#fff1f2;
}

@media (max-width:1280px) {
  .header-inner { gap:12px; }
  .header-actions { margin-left:auto; }
}
@media (max-width:900px) {
  .header-inner { min-height:72px; gap:8px; }
  .site-branding { flex:1 1 auto; min-width:0; }
  .brand-copy { max-width:180px; }
  .hnue75-login-button,
  .hnue75-member-summary { min-height:40px; padding:8px 11px; }
  .hnue75-member-name { display:none; }
  .hnue75-member-dropdown { position:fixed; top:76px; right:14px; left:14px; width:auto; min-width:0; }
  .hnue75-member-dropdown::before { display:none; }
}
@media (max-width:560px) {
  .brand-copy { max-width:145px; }
  .site-title { font-size:.92rem; }
  .menu-toggle { padding:8px 10px; }
  .hnue75-login-label { display:none; }
  .hnue75-login-button { width:40px; padding:8px; border-radius:10px; }
}


/* v1.5.0: professional header refinement */
.site-header { box-shadow: 0 8px 26px rgba(0,38,77,.06); }
.header-inner {
  position: relative;
  min-height: 84px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
}
.site-branding { flex: none; max-width: 340px; }
.brand-copy { max-width: 250px; }
.site-description {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  white-space: normal;
  overflow: hidden;
  text-overflow: unset;
  line-height: 1.32;
  max-height: 2.7em;
}
.primary-nav { justify-self: center; }
.primary-nav ul { justify-content: center; gap: 4px; }
.primary-nav a { padding: 9px 9px; }
.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: 0;
}
.header-register-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ffc82e 0%, #ffda66 100%);
  color: #17324d;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(255,200,46,.28);
}
.header-register-button:hover,
.header-register-button:focus { color: #17324d; transform: translateY(-1px); box-shadow: 0 12px 22px rgba(255,200,46,.34); }
.header-register-icon { width: 18px; height: 18px; fill: currentColor; flex: 0 0 auto; }
.hnue75-login-button,
.hnue75-member-summary {
  min-height: 42px;
  padding: 8px 13px;
  border-radius: 999px;
}
.hnue75-login-label { font-size: .86rem; }
.hnue75-member-name { max-width: 94px; overflow: hidden; text-overflow: ellipsis; }
.hnue75-member-role {
  display: inline-flex;
  margin-top: 5px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef4fa;
  color: var(--hnue75-blue);
  font-style: normal;
  font-size: .74rem;
  font-weight: 800;
}
.menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  padding: 8px 12px;
  border-radius: 999px;
}
.menu-toggle-icon { font-size: 1rem; line-height: 1; }
.primary-nav-mobile-head,
.primary-nav-close,
.site-header-overlay { display: none; }

@media (max-width: 1380px) {
  .site-branding { max-width: 300px; }
  .brand-copy { max-width: 215px; }
  .primary-nav a { padding: 8px 7px; font-size: .88rem; }
  .header-register-button,
  .hnue75-login-button,
  .hnue75-member-summary { padding-inline: 12px; }
}

@media (max-width: 1240px) {
  body.hnue75-nav-open { overflow: hidden; }
  .header-inner {
    grid-template-columns: minmax(0,1fr) auto auto auto;
    min-height: 76px;
    gap: 8px;
  }
  .site-branding { min-width: 0; max-width: none; }
  .brand-copy { max-width: 190px; }
  .primary-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(88vw, 360px);
    max-width: 100%;
    padding: 20px 18px 32px;
    background: #ffffff;
    border-left: 1px solid var(--hnue75-border);
    box-shadow: -24px 0 48px rgba(0,38,77,.14);
    transform: translateX(100%);
    transition: transform .28s ease;
    z-index: 1200;
    overflow-y: auto;
    display: block;
  }
  body.hnue75-nav-open .primary-nav,
  .primary-nav.is-open { transform: translateX(0); }
  .primary-nav ul {
    display: grid;
    justify-content: stretch;
    gap: 4px;
    width: 100%;
    margin: 12px 0 0;
    padding: 0;
  }
  .primary-nav a {
    padding: 10px 12px;
    font-size: .95rem;
    white-space: normal;
    border-radius: 12px;
  }
  .primary-nav .sub-menu {
    display: block;
    position: static;
    min-width: 0;
    margin: 2px 0 8px;
    padding: 0 0 0 12px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }
  .primary-nav .sub-menu::before { display: none; }
  .primary-nav .sub-menu a {
    padding: 8px 10px;
    font-size: .88rem;
    color: var(--hnue75-muted);
  }
  .primary-nav .menu-item-has-children > a::after {
    float: right;
    margin-left: 10px;
  }
  .primary-nav-mobile-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--hnue75-border);
    color: var(--hnue75-navy);
  }
  .primary-nav-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--hnue75-border);
    border-radius: 999px;
    background: #fff;
    color: var(--hnue75-navy);
    font-size: 1.5rem;
    line-height: 1;
  }
  .site-header-overlay {
    display: block;
    position: fixed;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(0,26,51,.36);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
    z-index: 1100;
  }
  body.hnue75-nav-open .site-header-overlay {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .menu-toggle { display: inline-flex; }
}

@media (max-width: 900px) {
  .brand-copy { max-width: 168px; }
  .header-register-button,
  .hnue75-login-button,
  .hnue75-member-summary,
  .menu-toggle { min-height: 40px; }
  .hnue75-member-name { display: none; }
  .hnue75-member-dropdown {
    position: fixed;
    top: 78px;
    right: 14px;
    left: 14px;
    width: auto;
    min-width: 0;
  }
  .hnue75-member-dropdown::before { display: none; }
}

@media (max-width: 640px) {
  .header-inner { grid-template-columns: minmax(0,1fr) auto auto auto; }
  .brand-copy { max-width: 145px; }
  .site-title { font-size: .95rem; }
  .site-description { font-size: .78rem; }
  .header-register-label,
  .hnue75-login-label,
  .menu-toggle-label { display: none; }
  .header-register-button,
  .hnue75-login-button,
  .menu-toggle { width: 40px; padding: 8px; }
}


/* v1.5.1: two-row header layout to eliminate menu overlap */
.site-header {
  position: sticky;
  top: 0;
  z-index: 90;
  background: rgba(255,255,255,.98);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0,38,77,.08);
}
.site-header-shell {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
}
.header-top {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
}
.header-bottom {
  border-top: 1px solid rgba(7,52,96,.08);
  padding-top: 8px;
}
.site-branding {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.site-branding .custom-logo { max-height: 62px; }
.brand-copy {
  min-width: 0;
  max-width: 360px;
}
.site-title {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.18;
  font-weight: 800;
  color: var(--hnue75-navy);
}
.site-title a { color: inherit; }
.site-description {
  margin: 5px 0 0;
  color: var(--hnue75-muted);
  font-size: .84rem;
  line-height: 1.28;
  white-space: normal;
  overflow: visible;
  display: block;
}
.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
}
.header-register-button,
.hnue75-login-button,
.hnue75-member-summary,
.menu-toggle {
  min-height: 42px;
}
.header-register-button {
  padding: 8px 14px;
  font-size: .88rem;
}
.hnue75-login-button,
.hnue75-member-summary {
  padding: 8px 13px;
}
.primary-nav {
  position: relative;
}
.primary-nav ul {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.primary-nav li { position: relative; }
.primary-nav a {
  display: block;
  padding: 9px 10px;
  border-radius: 10px;
  font-size: .95rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--hnue75-text);
}
.primary-nav a:hover,
.primary-nav .current-menu-item > a,
.primary-nav .current-menu-ancestor > a {
  background: #eef4fa;
  color: var(--hnue75-navy);
}
.primary-nav .sub-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  display: none;
  min-width: 220px;
  padding: 8px;
  margin: 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--hnue75-border);
  border-radius: 14px;
  box-shadow: 0 18px 36px rgba(0,38,77,.12);
  z-index: 50;
}
.primary-nav .menu-item-has-children:hover > .sub-menu,
.primary-nav .menu-item-has-children:focus-within > .sub-menu {
  display: block;
}
.primary-nav .sub-menu a {
  padding: 9px 10px;
  border-radius: 10px;
  white-space: normal;
}
.primary-nav .menu-item-has-children > a::after {
  content: '▾';
  font-size: .72em;
  margin-left: 6px;
  color: #6f7e8d;
}
.primary-nav-mobile-head,
.primary-nav-close,
.site-header-overlay,
.menu-toggle { display: none; }

@media (max-width: 1440px) {
  .brand-copy { max-width: 310px; }
  .primary-nav a { padding: 9px 9px; font-size: .92rem; }
}

@media (max-width: 1320px) {
  .site-title { font-size: 1.08rem; }
  .brand-copy { max-width: 270px; }
  .header-register-button { padding-inline: 12px; font-size: .84rem; }
  .primary-nav a { padding: 8px 8px; font-size: .89rem; }
}

@media (max-width: 1180px) {
  body.hnue75-nav-open { overflow: hidden; }
  .site-header-shell { gap: 0; padding-top: 8px; padding-bottom: 8px; }
  .header-top {
    grid-template-columns: minmax(0,1fr) auto auto auto;
    gap: 8px;
  }
  .header-bottom { border-top: 0; padding-top: 0; }
  .brand-copy { max-width: 190px; }
  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 0;
    background: var(--hnue75-navy);
    color: #fff;
    border-radius: 999px;
    padding: 8px 12px;
  }
  .primary-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(88vw, 360px);
    max-width: 100%;
    padding: 20px 18px 32px;
    background: #fff;
    border-left: 1px solid var(--hnue75-border);
    box-shadow: -24px 0 48px rgba(0,38,77,.14);
    transform: translateX(100%);
    transition: transform .28s ease;
    z-index: 1200;
    overflow-y: auto;
  }
  .primary-nav.is-open,
  body.hnue75-nav-open .primary-nav { transform: translateX(0); }
  .primary-nav-mobile-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--hnue75-border);
    color: var(--hnue75-navy);
  }
  .primary-nav-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--hnue75-border);
    border-radius: 999px;
    background: #fff;
    color: var(--hnue75-navy);
    font-size: 1.5rem;
    line-height: 1;
  }
  .primary-nav ul {
    display: grid;
    justify-content: stretch;
    gap: 4px;
    width: 100%;
    margin-top: 12px;
  }
  .primary-nav li { min-width: 0; }
  .primary-nav a {
    padding: 10px 12px;
    font-size: .95rem;
    white-space: normal;
  }
  .primary-nav .sub-menu {
    position: static;
    display: block;
    min-width: 0;
    padding: 0 0 0 12px;
    margin: 2px 0 8px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }
  .primary-nav .sub-menu a {
    padding: 8px 10px;
    font-size: .88rem;
    color: var(--hnue75-muted);
  }
  .site-header-overlay {
    display: block;
    position: fixed;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(0,26,51,.36);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
    z-index: 1100;
  }
  body.hnue75-nav-open .site-header-overlay {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

@media (max-width: 900px) {
  .brand-copy { max-width: 165px; }
  .site-title { font-size: .98rem; }
  .site-description { font-size: .78rem; }
  .header-register-button,
  .hnue75-login-button,
  .hnue75-member-summary,
  .menu-toggle { min-height: 40px; }
  .hnue75-member-name { display: none; }
  .hnue75-member-dropdown {
    position: fixed;
    top: 76px;
    right: 14px;
    left: 14px;
    width: auto;
    min-width: 0;
  }
  .hnue75-member-dropdown::before { display: none; }
}

@media (max-width: 640px) {
  .site-branding { gap: 10px; }
  .site-branding .custom-logo { max-height: 56px; }
  .brand-copy { max-width: 140px; }
  .site-title { font-size: .93rem; }
  .site-description { font-size: .76rem; }
  .header-register-label,
  .hnue75-login-label,
  .menu-toggle-label { display: none; }
  .header-register-button,
  .hnue75-login-button,
  .menu-toggle { width: 40px; padding: 8px; }
}


/* v1.6.2: definitive mobile menu visibility and people directory layout */
.content-shell.is-directory-page {
  grid-template-columns: minmax(0, 1fr);
}
.content-shell.is-directory-page .content-area {
  width: 100%;
}
.content-shell.is-directory-page .hnue75-teacher-memory-intro {
  margin-top: 18px;
}
.section-teachers .hnue75-home-teachers-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.content-shell.is-directory-page .hnue75-teacher-directory-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1180px) {
  .site-header .primary-nav {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .site-header .primary-nav #primary-menu,
  .site-header .primary-nav > ul {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
  }
  .site-header .primary-nav #primary-menu > li,
  .site-header .primary-nav > ul > li {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .site-header .primary-nav #primary-menu a,
  .site-header .primary-nav > ul a {
    display: block !important;
  }
  .site-header .primary-nav .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

@media (max-width: 1020px) {
  .section-teachers .hnue75-home-teachers-grid,
  .content-shell.is-directory-page .hnue75-teacher-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .section-teachers .hnue75-home-teachers-grid,
  .content-shell.is-directory-page .hnue75-teacher-directory-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.6.3: isolated mobile navigation — independent from desktop menu rules */
.mobile-site-menu,
.mobile-site-menu * {
  box-sizing: border-box;
}
.mobile-site-menu {
  display: none;
}

@media (max-width: 1180px) {
  body.hnue75-mobile-menu-open {
    overflow: hidden !important;
    touch-action: none;
  }

  .site-header .header-bottom {
    display: none !important;
  }

  .site-header .menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
  }

  .mobile-site-menu {
    display: flex !important;
    flex-direction: column;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(88vw, 380px) !important;
    max-width: 100% !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-left: 1px solid var(--hnue75-border) !important;
    border-radius: 24px 0 0 24px !important;
    box-shadow: -24px 0 52px rgba(0,38,77,.20) !important;
    overflow: hidden !important;
    visibility: hidden !important;
    opacity: 0 !important;
    transform: translate3d(105%,0,0) !important;
    transition: transform .28s ease, opacity .22s ease, visibility .22s ease !important;
    z-index: 2147483000 !important;
  }

  body.hnue75-mobile-menu-open .mobile-site-menu,
  .mobile-site-menu.is-open {
    visibility: visible !important;
    opacity: 1 !important;
    transform: translate3d(0,0,0) !important;
  }

  .mobile-site-menu-head {
    display: flex !important;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 88px;
    padding: 20px 22px 16px !important;
    border-bottom: 1px solid var(--hnue75-border) !important;
    background: #fff !important;
    color: var(--hnue75-navy) !important;
  }

  .mobile-site-menu-head strong {
    display: block !important;
    margin: 0 !important;
    font-size: 1.28rem !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: var(--hnue75-navy) !important;
  }

  .mobile-site-menu-close {
    display: inline-flex !important;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--hnue75-border);
    border-radius: 999px;
    background: #fff;
    color: var(--hnue75-navy);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
  }

  .mobile-site-menu-nav {
    display: block !important;
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px 14px 32px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    background: #fff !important;
  }

  .mobile-site-menu-nav .mobile-primary-menu,
  .mobile-site-menu-nav > ul,
  .mobile-site-menu-nav ul.menu {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    transform: none !important;
  }

  .mobile-site-menu-nav li,
  .mobile-site-menu-nav .menu-item {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    float: none !important;
  }

  .mobile-site-menu-nav > ul > li,
  .mobile-site-menu-nav .mobile-primary-menu > li {
    border-bottom: 1px solid rgba(0,51,102,.08) !important;
  }

  .mobile-site-menu-nav a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    min-height: 48px;
    margin: 0 !important;
    padding: 11px 12px !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: transparent !important;
    color: var(--hnue75-text) !important;
    font-size: .98rem !important;
    line-height: 1.4 !important;
    font-weight: 750 !important;
    white-space: normal !important;
    text-align: left !important;
    text-decoration: none !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .mobile-site-menu-nav a:hover,
  .mobile-site-menu-nav a:focus,
  .mobile-site-menu-nav .current-menu-item > a,
  .mobile-site-menu-nav .current-menu-ancestor > a {
    background: #eef4fa !important;
    color: var(--hnue75-navy) !important;
  }

  .mobile-site-menu-nav .menu-item-has-children > a::after {
    content: '▾' !important;
    display: inline-block !important;
    flex: 0 0 auto;
    margin-left: 10px;
    color: #6f7e8d;
    font-size: .72em;
  }

  .mobile-site-menu-nav .sub-menu {
    display: block !important;
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 0 8px !important;
    padding: 0 0 0 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    list-style: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    transform: none !important;
  }

  .mobile-site-menu-nav .sub-menu::before {
    display: none !important;
  }

  .mobile-site-menu-nav .sub-menu li {
    border: 0 !important;
  }

  .mobile-site-menu-nav .sub-menu a {
    min-height: 42px;
    padding: 8px 11px !important;
    color: var(--hnue75-muted) !important;
    font-size: .9rem !important;
    font-weight: 650 !important;
  }

  .site-header .site-header-overlay {
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: rgba(0,26,51,.42) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .22s ease, visibility .22s ease !important;
    z-index: 2147482000 !important;
  }

  body.hnue75-mobile-menu-open .site-header-overlay {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

@media (min-width: 1181px) {
  .mobile-site-menu,
  .site-header-overlay {
    display: none !important;
  }
  .site-header .header-bottom {
    display: block !important;
  }
}


/* v1.6.5: prevent horizontal drift on mobile and remove the closed drawer from layout */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
}
body,
.site-header,
.site-main,
.site-footer,
.site-header-shell,
.header-top,
.header-bottom,
.content-shell,
.container {
  max-width: 100%;
}
img,
svg,
iframe,
video,
canvas,
table {
  max-width: 100%;
}
.mobile-site-menu[hidden] {
  display: none !important;
}
@media (max-width: 1180px) {
  .mobile-site-menu {
    width: min(88%, 380px) !important;
    max-width: calc(100% - 12px) !important;
    transform: none !important;
  }
  .mobile-site-menu:not(.is-open) {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .mobile-site-menu.is-open {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  body:not(.hnue75-mobile-menu-open) .site-header-overlay {
    display: none !important;
  }
}


/* v1.7.1: notable alumni homepage section */
.section-notable-alumni {
  background: linear-gradient(180deg, #f4f8fc 0%, #eef4fa 100%);
}
.section-notable-alumni .hnue75-alumni-directory {
  margin-top: 24px;
}
.section-notable-alumni .hnue75-alumni-card {
  height: 100%;
}

/* v1.7.2: trang Tài liệu dùng toàn chiều rộng để danh sách dễ đọc */
.page-slug-tai-lieu .content-shell, body.page .content-shell.is-directory-page { align-items:start; }


/* v1.8.0: Kỷ yếu 75 năm */
.hnue75-yearbook-page-intro {
  max-width: 880px;
  font-size: 1.05rem;
  color: var(--hnue75-muted);
}
.hnue75-yearbook { margin-top: 26px; }
.hnue75-yearbook-status {
  margin: 0 0 30px;
  padding: 14px 18px;
  border: 1px solid var(--hnue75-border);
  border-radius: 14px;
  background: #f7fafc;
  color: var(--hnue75-muted);
}
.hnue75-yearbook-status strong { color: var(--hnue75-navy); }
.hnue75-yearbook-section { margin: 0 0 44px; }
.hnue75-yearbook-section > h2 {
  margin: 0 0 8px;
  color: var(--hnue75-navy);
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
}
.hnue75-yearbook-section-desc { margin: 0 0 18px; color: var(--hnue75-muted); }
.hnue75-yearbook-toc { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--hnue75-border); }
.hnue75-yearbook-toc-item {
  display: grid;
  grid-template-columns: 56px minmax(0,1fr);
  gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid var(--hnue75-border);
}
.hnue75-yearbook-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--hnue75-cream);
  color: var(--hnue75-navy);
  font-weight: 800;
}
.hnue75-yearbook-toc-body h3 { margin: 0 0 7px; font-size: 1.15rem; line-height: 1.35; }
.hnue75-yearbook-toc-body h3 a { color: var(--hnue75-navy); text-decoration: none; }
.hnue75-yearbook-toc-body h3 a:hover { text-decoration: underline; }
.hnue75-yearbook-author { margin: 0 0 8px; font-weight: 650; color: #3d4e61; }
.hnue75-yearbook-summary { margin: 0 0 10px; color: var(--hnue75-muted); line-height: 1.65; }
.hnue75-yearbook-read { font-weight: 700; text-decoration: none; }
.hnue75-yearbook-article { max-width: 900px; margin: 0 auto; }
.hnue75-yearbook-article-header { padding-bottom: 24px; border-bottom: 1px solid var(--hnue75-border); margin-bottom: 28px; }
.hnue75-yearbook-article-kicker { margin: 0 0 10px; color: var(--hnue75-blue); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.hnue75-yearbook-article-header h1 { margin: 0 0 14px; color: var(--hnue75-navy); font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.12; }
.hnue75-yearbook-article-author { margin: 0 0 14px; font-weight: 700; color: #35475a; }
.hnue75-yearbook-article-lead { margin: 0; font-size: 1.12rem; line-height: 1.7; color: var(--hnue75-muted); }
.hnue75-yearbook-print-page { margin: 12px 0 0; font-size: .9rem; color: var(--hnue75-muted); }
.hnue75-yearbook-featured { width: 100%; height: auto; border-radius: 16px; margin: 0 0 30px; }
.hnue75-yearbook-article-content { font-size: 1.05rem; line-height: 1.78; }
.hnue75-yearbook-article-content img { max-width: 100%; height: auto; }
.hnue75-yearbook-article-content figure { max-width: 100%; }
.hnue75-yearbook-article-footer { margin-top: 42px; padding-top: 22px; border-top: 1px solid var(--hnue75-border); }
.hnue75-yearbook-article-footer a { font-weight: 700; text-decoration: none; }
@media (max-width: 640px) {
  .hnue75-yearbook-toc-item { grid-template-columns: 42px minmax(0,1fr); gap: 12px; padding: 18px 0; }
  .hnue75-yearbook-number { width: 36px; height: 36px; font-size: .82rem; }
  .hnue75-yearbook-summary { font-size: .96rem; }
}


/* v1.9.1: normal-page reading flow; feature images stay on summary cards only. */
.hnue75-news-media { display:block; color:inherit; }
.hnue75-news-card h3 a,
.hnue75-summary-card h3 a,
.hnue75-cohort-card h3 a,
.hnue75-guestbook-title a,
.hnue75-document-row h3 a { color:inherit; text-decoration:none; }
.hnue75-news-card h3 a:hover,
.hnue75-summary-card h3 a:hover,
.hnue75-cohort-card h3 a:hover,
.hnue75-guestbook-title a:hover,
.hnue75-document-row h3 a:hover { color:var(--hnue75-blue); }
.hnue75-single-meta { margin:-4px 0 24px; color:var(--hnue75-muted); font-size:.94rem; }
.hnue75-single-meta-list { display:flex; flex-wrap:wrap; gap:8px 18px; }
.hnue75-single-meta-list span,
.hnue75-single-meta-list time { display:inline-flex; align-items:center; }
.hnue75-single-lead { margin:0 0 28px; color:#42556b; font-size:1.08rem; line-height:1.8; }
.hnue75-single-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.hnue75-single-quote { margin:0 0 -10px; color:var(--hnue75-gold); font-family:Georgia,serif; font-size:5rem; line-height:.8; }
.hnue75-guestbook-title { margin:4px 0 12px; font-size:1.25rem; line-height:1.35; }
.hnue75-summary-card-media { display:block; overflow:hidden; }
.hnue75-summary-card-media img { transition:transform .25s ease; }
.hnue75-summary-card-media:hover img { transform:scale(1.015); }
.hnue75-yearbook-toc-item { align-items:start; }
.hnue75-yearbook-toc-thumb { grid-column:2; display:block; width:min(220px,100%); aspect-ratio:16/10; overflow:hidden; border-radius:12px; background:#eef4fa; }
.hnue75-yearbook-toc-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.hnue75-yearbook-toc-body { grid-column:2; }
@media (max-width:700px) {
  .hnue75-yearbook-toc-thumb { width:100%; max-width:220px; }
}

/* v1.9.2: definitive responsive shell fix.
 * Keep the site root full viewport even when WordPress global styles use a
 * constrained contentSize. The inner .container remains the only width cap.
 */
html,
body {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow-x: clip !important;
}

body > .site-header,
body > .site-main,
body > .site-footer,
body.is-layout-constrained > .site-header,
body.is-layout-constrained > .site-main,
body.is-layout-constrained > .site-footer {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.site-header,
.site-main,
.site-footer,
.home-intro,
.home-banner,
.home-hero,
.section {
  min-width: 0 !important;
  max-width: none !important;
}

.container,
.site-header-shell {
  width: min(calc(100% - 40px), var(--hnue75-container)) !important;
  max-width: var(--hnue75-container) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Desktop: the primary navigation is one line. If the viewport can no longer
 * fit it comfortably, the dedicated mobile/tablet drawer takes over. */
@media (min-width: 1181px) {
  .site-header .header-bottom {
    display: block !important;
    width: 100% !important;
  }
  .site-header .desktop-primary-nav,
  .site-header .desktop-primary-nav #primary-menu,
  .site-header .desktop-primary-nav > ul {
    width: 100% !important;
    max-width: 100% !important;
  }
  .site-header .desktop-primary-nav #primary-menu,
  .site-header .desktop-primary-nav > ul {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(2px, .45vw, 8px) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .site-header .desktop-primary-nav #primary-menu > li,
  .site-header .desktop-primary-nav > ul > li {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .site-header .desktop-primary-nav #primary-menu > li > a,
  .site-header .desktop-primary-nav > ul > li > a {
    padding: 8px clamp(7px, .65vw, 11px) !important;
    font-size: clamp(.86rem, .75vw, .95rem) !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }
}

/* Tablet: use the drawer before the desktop menu has any chance to wrap. */
@media (max-width: 1180px) {
  .container,
  .site-header-shell {
    width: min(calc(100% - 28px), var(--hnue75-container)) !important;
  }
  .site-header .header-bottom {
    display: none !important;
  }
  .site-header .menu-toggle {
    display: inline-flex !important;
  }
  .header-top {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
  .site-branding {
    min-width: 0 !important;
    max-width: min(100%, 520px) !important;
  }
  .header-actions {
    min-width: 0;
    flex: 0 0 auto;
  }
  .home-banner-inner,
  .hero,
  .content-area,
  .sidebar-card,
  .card,
  .hnue75-news-card,
  .hnue75-summary-card,
  .hnue75-album-card {
    min-width: 0;
    max-width: 100%;
  }
}

/* Small tablets / phones: preserve usable header width and avoid any element
 * increasing the document width. */
@media (max-width: 760px) {
  .container,
  .site-header-shell {
    width: min(calc(100% - 20px), var(--hnue75-container)) !important;
  }
  .site-header-shell {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
  .site-branding {
    gap: 9px !important;
  }
  .site-branding .custom-logo {
    max-height: 54px !important;
    max-width: 74px !important;
  }
  .brand-copy {
    max-width: min(44vw, 190px) !important;
  }
  .site-title {
    font-size: clamp(.86rem, 3.4vw, .98rem) !important;
  }
  .site-description {
    font-size: clamp(.68rem, 2.7vw, .78rem) !important;
    line-height: 1.25 !important;
  }
  .header-actions {
    gap: 7px !important;
  }
  .header-register-button,
  .hnue75-login-button,
  .hnue75-member-summary,
  .menu-toggle {
    flex: 0 0 40px !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 8px !important;
  }
  .header-register-label,
  .hnue75-login-label,
  .hnue75-member-name,
  .menu-toggle-label {
    display: none !important;
  }
  .section {
    padding-top: 54px;
    padding-bottom: 54px;
  }
  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 420px) {
  .container,
  .site-header-shell {
    width: min(calc(100% - 16px), var(--hnue75-container)) !important;
  }
  .brand-copy {
    max-width: min(39vw, 150px) !important;
  }
  .site-branding .custom-logo {
    max-height: 48px !important;
    max-width: 64px !important;
  }
  .header-actions {
    gap: 5px !important;
  }
}

/* v1.9.3 compatibility hotfix: paired with HNUE75 Core 1.13.3; preserves responsive layout and normal-page reading flow. */

/* ==========================================================
   HNUE75 1.10.0 — Search + visitor stats
   ========================================================== */
.header-search-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  padding:0;
  border:1px solid var(--hnue75-border);
  border-radius:50%;
  background:#fff;
  color:var(--hnue75-navy);
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,38,77,.07);
}
.header-search-toggle:hover,
.header-search-toggle:focus-visible { background:#eef4fa; outline:none; }
.header-search-toggle svg { width:20px; height:20px; }
.header-search-panel[hidden] { display:none !important; }
.header-search-panel {
  width:100%;
  padding:0 0 12px;
}
.header-search-panel-inner {
  position:relative;
  padding:18px;
  border:1px solid var(--hnue75-border);
  border-radius:16px;
  background:#f7fafc;
  box-shadow:0 12px 30px rgba(0,38,77,.08);
}
.header-search-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
  color:var(--hnue75-navy);
}
.header-search-close {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid var(--hnue75-border);
  border-radius:50%;
  background:#fff;
  color:var(--hnue75-navy);
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
}
.hnue75-search-form {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,230px) auto;
  gap:10px;
  align-items:center;
  width:100%;
}
.hnue75-search-field-wrap { position:relative; display:block; min-width:0; }
.hnue75-search-field-icon {
  position:absolute;
  left:14px;
  top:50%;
  width:19px;
  height:19px;
  transform:translateY(-50%);
  color:#64748b;
  pointer-events:none;
}
.hnue75-search-field,
.hnue75-search-type {
  width:100%;
  min-height:46px;
  border:1px solid #cbd5e1;
  border-radius:11px;
  background:#fff;
  color:var(--hnue75-text);
  font:inherit;
}
.hnue75-search-field { padding:10px 14px 10px 43px; }
.hnue75-search-type { padding:9px 34px 9px 12px; }
.hnue75-search-field:focus,
.hnue75-search-type:focus { border-color:var(--hnue75-blue); outline:2px solid rgba(11,79,138,.14); outline-offset:0; }
.hnue75-search-submit {
  min-height:46px;
  padding:10px 19px;
  border:0;
  border-radius:11px;
  background:var(--hnue75-navy);
  color:#fff;
  font:inherit;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.hnue75-search-submit:hover,
.hnue75-search-submit:focus-visible { background:var(--hnue75-blue); }

.hnue75-search-page { padding-top:42px; padding-bottom:64px; }
.hnue75-search-page-header {
  margin-bottom:28px;
  padding:28px;
  border:1px solid var(--hnue75-border);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--hnue75-shadow);
}
.hnue75-search-kicker {
  margin:0 0 8px;
  color:var(--hnue75-blue);
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.hnue75-search-page-header .entry-title { margin:0; color:var(--hnue75-navy); }
.hnue75-search-summary { margin:10px 0 18px; color:var(--hnue75-muted); }
.hnue75-search-page-form { margin-top:18px; }
.hnue75-search-results { display:grid; gap:14px; }
.hnue75-search-result {
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:20px;
  overflow:hidden;
  padding:16px;
  border:1px solid var(--hnue75-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,38,77,.05);
}
.hnue75-search-result.no-media { grid-template-columns:1fr; }
.hnue75-search-result-media {
  display:block;
  overflow:hidden;
  min-height:135px;
  border-radius:12px;
  background:#eef4fa;
}
.hnue75-search-result-media img { display:block; width:100%; height:100%; min-height:135px; object-fit:cover; }
.hnue75-search-result-body { min-width:0; align-self:center; }
.hnue75-search-result-type {
  display:inline-flex;
  margin-bottom:7px;
  padding:5px 9px;
  border-radius:999px;
  background:#eef4fa;
  color:var(--hnue75-blue);
  font-size:.74rem;
  font-weight:850;
}
.hnue75-search-result h2 { margin:0 0 8px; font-size:clamp(1.15rem,2vw,1.45rem); line-height:1.35; }
.hnue75-search-result h2 a { color:var(--hnue75-navy); text-decoration:none; }
.hnue75-search-result h2 a:hover { text-decoration:underline; }
.hnue75-search-result p { margin:0 0 10px; color:var(--hnue75-muted); line-height:1.65; }
.hnue75-search-result-link { font-weight:800; text-decoration:none; }
.hnue75-search-pagination { margin-top:26px; }
.hnue75-search-empty { padding:28px; }
.hnue75-search-empty h2 { margin-top:0; color:var(--hnue75-navy); }

.footer-visitor-stats {
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  color:#d8e7f4;
  white-space:nowrap;
}
.footer-visitor-stats strong { color:#fff; font-variant-numeric:tabular-nums; }
.footer-stat-separator { opacity:.5; }

@media (max-width: 900px) {
  .hnue75-search-form { grid-template-columns:minmax(0,1fr) 180px auto; }
  .hnue75-search-result { grid-template-columns:170px minmax(0,1fr); }
}

@media (max-width: 640px) {
  .header-search-toggle { width:40px; height:40px; flex-basis:40px; }
  .header-search-panel-inner { padding:14px; border-radius:13px; }
  .hnue75-search-form { grid-template-columns:1fr; }
  .hnue75-search-submit { width:100%; }
  .hnue75-search-page { padding-top:24px; padding-bottom:44px; }
  .hnue75-search-page-header { padding:20px 16px; }
  .hnue75-search-result { grid-template-columns:1fr; gap:13px; padding:13px; }
  .hnue75-search-result-media { aspect-ratio:16/9; min-height:0; }
  .hnue75-search-result-media img { min-height:0; }
  .footer-visitor-stats { margin-top:8px; white-space:normal; }
}

@media (max-width: 480px) {
  .site-header-shell { width:min(calc(100% - 20px), var(--hnue75-container)) !important; }
  .header-top { gap:8px !important; }
  .site-branding { gap:7px !important; }
  .site-branding .custom-logo { max-width:44px !important; max-height:48px !important; }
  .brand-copy { max-width:96px !important; }
  .site-title { font-size:.82rem !important; line-height:1.15 !important; }
  .site-description { display:none !important; }
  .header-actions { gap:5px !important; }
  .header-search-toggle,
  .header-register-button,
  .hnue75-login-button,
  .hnue75-member-summary,
  .menu-toggle { width:38px !important; min-width:38px !important; height:38px; min-height:38px !important; padding:6px !important; border-radius:10px; }
  .hnue75-member-summary .avatar { width:24px; height:24px; }
}


/* v1.11.0: Dấu ấn và thành tựu 75 năm */
.hnue75-achievements { margin-top: 24px; }
.hnue75-achievement-highlights {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:0 0 28px;
}
.hnue75-achievement-highlight {
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:132px;
  padding:20px 22px;
  border:1px solid var(--hnue75-border);
  border-radius:16px;
  background:linear-gradient(145deg,#fff 0%,#f4f8fc 100%);
  box-shadow:0 8px 24px rgba(0,51,102,.07);
  color:var(--hnue75-text);
}
.hnue75-achievement-highlight strong {
  display:block;
  color:var(--hnue75-navy);
  font-size:clamp(1.85rem,3.2vw,2.8rem);
  line-height:1.05;
  font-weight:900;
}
.hnue75-achievement-highlight span { margin-top:8px; color:var(--hnue75-muted); font-weight:650; line-height:1.45; }
.hnue75-achievement-highlight:hover { transform:translateY(-2px); border-color:#bfd1e3; box-shadow:0 12px 30px rgba(0,51,102,.10); }
.hnue75-achievement-filters {
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
  padding:16px;
  margin:0 0 16px;
  border:1px solid var(--hnue75-border);
  border-radius:14px;
  background:#fff;
}
.hnue75-achievement-filters label { display:flex; flex-direction:column; gap:5px; min-width:min(100%,340px); }
.hnue75-achievement-filters label span { font-size:.82rem; font-weight:800; color:var(--hnue75-navy); }
.hnue75-achievement-filters select { width:100%; min-height:42px; padding:7px 36px 7px 11px; border:1px solid #cbd6e2; border-radius:9px; background:#fff; color:var(--hnue75-text); }
.hnue75-achievement-filter-reset { min-height:42px; display:inline-flex; align-items:center; font-weight:700; }
.hnue75-achievement-count { margin:0 0 26px; color:var(--hnue75-muted); font-size:.92rem; }
.hnue75-achievement-section { margin:0 0 42px; }
.hnue75-achievement-section-header { margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid var(--hnue75-border); }
.hnue75-achievement-section-header h2 { margin:0; color:var(--hnue75-navy); font-size:clamp(1.35rem,2.3vw,1.9rem); }
.hnue75-achievement-section-header p { margin:7px 0 0; max-width:900px; color:var(--hnue75-muted); }
.hnue75-achievement-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.hnue75-achievement-card { overflow:hidden; display:flex; flex-direction:column; min-width:0; border:1px solid var(--hnue75-border); border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(0,51,102,.06); }
.hnue75-achievement-card-media { display:block; aspect-ratio:16/10; overflow:hidden; background:#eef4fa; }
.hnue75-achievement-card-media img { display:block; width:100%; height:100%; object-fit:cover; }
.hnue75-achievement-card-body { display:flex; flex-direction:column; flex:1; padding:18px; }
.hnue75-achievement-card-meta { margin:0 0 10px; color:var(--hnue75-blue); font-size:.79rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.hnue75-achievement-card-number { display:flex; align-items:baseline; gap:8px; margin:0 0 10px; flex-wrap:wrap; }
.hnue75-achievement-card-number strong { color:var(--hnue75-navy); font-size:1.65rem; line-height:1; }
.hnue75-achievement-card-number span { color:var(--hnue75-muted); font-size:.86rem; font-weight:650; }
.hnue75-achievement-card h3 { margin:0 0 10px; font-size:1.08rem; line-height:1.42; }
.hnue75-achievement-card h3 a { color:var(--hnue75-navy); }
.hnue75-achievement-card-body > p:not(.hnue75-achievement-card-meta) { margin:0 0 14px; color:var(--hnue75-muted); line-height:1.62; }
.hnue75-achievement-card-link { margin-top:auto; font-weight:800; }
.hnue75-achievement-pagination { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:30px 0 8px; }
.hnue75-achievement-pagination a,.hnue75-achievement-pagination .current { min-width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--hnue75-border); border-radius:9px; background:#fff; font-weight:750; }
.hnue75-achievement-pagination .current { background:var(--hnue75-navy); color:#fff; border-color:var(--hnue75-navy); }
.hnue75-achievement-single { max-width:900px; margin:0 auto; }
.hnue75-achievement-single-header { padding-bottom:22px; margin-bottom:24px; border-bottom:1px solid var(--hnue75-border); }
.hnue75-achievement-single-kicker { margin:0 0 8px; color:var(--hnue75-blue); font-size:.82rem; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.hnue75-achievement-single-header h1 { margin:0 0 14px; color:var(--hnue75-navy); font-size:clamp(2rem,4vw,3.05rem); line-height:1.13; }
.hnue75-achievement-single-lead { margin:0; color:var(--hnue75-muted); font-size:1.08rem; line-height:1.72; }
.hnue75-achievement-info { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 28px; }
.hnue75-achievement-info > div { padding:14px 16px; border:1px solid var(--hnue75-border); border-radius:12px; background:#f8fbfe; }
.hnue75-achievement-info dt { margin:0 0 4px; color:var(--hnue75-muted); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.hnue75-achievement-info dd { margin:0; color:var(--hnue75-navy); font-weight:750; }
.hnue75-achievement-info .is-highlight dd { display:flex; flex-direction:column; gap:4px; }
.hnue75-achievement-info .is-highlight dd strong { font-size:1.9rem; line-height:1; }
.hnue75-achievement-info .is-highlight dd span { color:var(--hnue75-muted); font-size:.88rem; }
.hnue75-achievement-content { font-size:1.04rem; line-height:1.8; }
.hnue75-achievement-content img,.hnue75-achievement-content figure { max-width:100%; height:auto; }
.hnue75-achievement-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin:28px 0 0; padding-top:22px; border-top:1px solid var(--hnue75-border); }
.hnue75-achievement-source { margin-top:22px; padding:14px 16px; border-left:4px solid var(--hnue75-blue); background:#f5f9fd; color:#46566a; line-height:1.65; }
.hnue75-achievement-single-footer { margin-top:34px; padding-top:20px; border-top:1px solid var(--hnue75-border); }
.hnue75-achievement-single-footer a { font-weight:800; }
@media (max-width: 980px) {
  .hnue75-achievement-highlights,.hnue75-achievement-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .hnue75-achievement-highlights,.hnue75-achievement-grid,.hnue75-achievement-info { grid-template-columns:1fr; }
  .hnue75-achievement-filters { align-items:stretch; }
  .hnue75-achievement-filters label { min-width:100%; }
  .hnue75-achievement-filters .btn,.hnue75-achievement-filter-reset { justify-content:center; width:100%; }
  .hnue75-achievement-card-body { padding:16px; }
}


/* v1.11.1: Featured Image của hnue75_cohort chỉ hiển thị ở card/danh sách, không lặp lại trên trang chi tiết. */


/* v1.11.2: directory pagination compatibility; no structural/theme template changes. */
.hnue75-cohort-directory, .hnue75-faculty-directory { min-width:0; max-width:100%; }
.hnue75-cohort-directory .hnue75-people-pagination,
.hnue75-faculty-directory .hnue75-people-pagination { clear:both; width:100%; }
