/* =========================================================
   Dinao Korea: khối du học (trường, học bổng, thành phố, thanh lọc)
   Dùng chung token màu trong dnk.css; thanh lọc dùng lại kiểu .dnk-gfilter của golf tour.
   ========================================================= */

/* ---------- Đầu khối: tiêu đề + link "Xem tất cả" ---------- */
.dnk-shead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 32px; margin-bottom: 40px; }
.dnk-shead .dnk-heading { margin-bottom: 0; }
.dnk-shead > .dnk-btn--link { flex: none; margin-bottom: 6px; }

/* ---------- Danh sách có "Xem thêm" và bộ lọc ---------- */
html:not(.dnk-filtering-study) .dnk-slist:not(.is-expanded) > [data-extra] { display: none; }
.dnk-filtering-study .dnk-slist__more-wrap { display: none; }
/* Đang lọc: ẩn khối thẻ thành phố (không lọc được) để kết quả hiện ngay dưới ô tìm kiếm */
.dnk-filtering-study .dnk-cities { display: none; }
.dnk-slist > [hidden], .dnk-study-section[hidden], .dnk-posts-section[hidden] { display: none; }
.dnk-slist__more-wrap { display: flex; justify-content: center; margin-top: 32px; }
.dnk-slist__more-wrap[hidden] { display: none; }
.dnk-slist__more { margin: 0; text-transform: none; letter-spacing: 0; }

/* ---------- Thanh lọc: nằm ngay dưới hero thì nổi lên đè mép hero ---------- */
.dnk-sfilter { padding: 40px 0 0; }
.dnk-sfilter .dnk-gfilter { margin-bottom: 0; }
.dnk-js .dnk-hero + .dnk-sfilter { padding-top: 0; display: flow-root; background: transparent; }
.dnk-js .dnk-hero + .dnk-sfilter .dnk-gfilter { margin-top: -72px; }
.dnk-js .dnk-hero:has(+ .dnk-sfilter) .dnk-hero__inner { padding-bottom: 136px; }
/* Thanh lọc du học: [ô tìm kiếm | chọn loại] / Thành phố: chip / N kết quả ... Xóa bộ lọc.
   Các hàng có chiều cao cố định nên đổi bộ lọc không làm khung nhảy. */
.dnk-sform__top { display: flex; gap: 12px; }
.dnk-sform__top .dnk-gfilter__search { flex: 1; min-width: 0; }
.dnk-seg { display: flex; flex: none; gap: 2px; padding: 4px; border: 1px solid var(--dnk-line); border-radius: 8px; background: var(--dnk-surface); }
.dnk-seg__opt { position: relative; display: flex; margin: 0; cursor: pointer; }
.dnk-seg__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.dnk-seg__opt span { display: inline-flex; align-items: center; gap: 6px; padding: 0 14px; border-radius: 6px; font-size: 14px; font-weight: 600; line-height: 1; color: var(--dnk-muted); white-space: nowrap; transition: background-color .2s var(--dnk-ease), color .2s var(--dnk-ease), box-shadow .2s var(--dnk-ease); }
.dnk-seg__opt span .dnk-ico { flex: none; }
.dnk-seg__opt:hover span { color: var(--dnk-ink); }
.dnk-seg__opt input:checked + span { background: #fff; color: var(--dnk-forest); box-shadow: 0 1px 2px rgba(12, 58, 35, .12), 0 0 0 1px var(--dnk-line); }
.dnk-seg__opt input:focus-visible + span { outline: 2px solid var(--dnk-green); outline-offset: 1px; }
.dnk-sform__cities { display: flex; align-items: flex-start; gap: 8px 16px; margin-top: 16px; }
.dnk-sform__label { display: inline-flex; flex: none; align-items: center; gap: 6px; min-height: 36px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-sform__label .dnk-ico { color: var(--dnk-green); }
.dnk-sform__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 22px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--dnk-line); }
.dnk-sform__foot .dnk-gfilter__count { font-variant-numeric: tabular-nums; }
.dnk-sfilter__nomatch { margin-top: 40px; }

/* Khung không có kết quả */
.dnk-snomatch { max-width: 720px; margin: 40px auto 0; padding: 40px 40px 36px; border: 1px solid var(--dnk-line); border-radius: 12px; background: #fff; box-shadow: 0 24px 48px -36px rgba(12, 58, 35, .45); text-align: center; }
.dnk-snomatch[hidden] { display: none; }
.dnk-snomatch__icon { display: inline-flex; align-items: center; justify-content: center; width: 80px; height: 80px; margin-bottom: 18px; border-radius: 50%; background: #e6f2ea; color: var(--dnk-green); }
.dnk-snomatch__title { margin: 0; font-size: 22px; line-height: 1.35; overflow-wrap: anywhere; text-wrap: balance; }
.dnk-snomatch__text { max-width: 520px; margin: 10px auto 0; font-size: 15px; line-height: 1.65; color: var(--dnk-muted); }
.dnk-snomatch__row { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 24px; }
.dnk-snomatch__row[hidden] { display: none; }
.dnk-snomatch__row + .dnk-snomatch__row { margin-top: 18px; }
.dnk-snomatch__label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-snomatch__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.dnk-snomatch__chip { margin: 0; min-height: 36px; padding: 0 16px; border: 1px solid var(--dnk-forest); border-radius: 999px; background: var(--dnk-forest); color: #fff; font-size: 14px; font-weight: 600; line-height: 1; letter-spacing: 0; text-transform: none; cursor: pointer; transition: background-color .2s var(--dnk-ease), border-color .2s var(--dnk-ease), color .2s var(--dnk-ease); }
.dnk-snomatch__chip.is-quiet { border-color: var(--dnk-line); background: #fff; color: var(--dnk-ink); font-weight: 500; }
.dnk-snomatch__chip:hover { border-color: var(--dnk-green); background: var(--dnk-green); color: #fff; }
.dnk-snomatch__chip:focus-visible { outline: 2px solid var(--dnk-green); outline-offset: 2px; }
.dnk-snomatch__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px; padding-top: 24px; border-top: 1px dashed var(--dnk-line); }
.dnk-snomatch__actions .dnk-btn { margin: 0; text-transform: none; letter-spacing: 0; }
/* Đang lọc mà thanh lọc nằm ngay trên một khối: bớt khoảng trống phía trên khối đầu tiên */
.dnk-sfilter + .dnk-section.dnk-pad-normal { padding-top: 64px; }

/* ---------- Thẻ thành phố ---------- */
.dnk-cities__grid { display: grid; gap: 16px; }
.dnk-cities__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dnk-cities__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dnk-city { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--dnk-radius); background: var(--dnk-forest); color: #fff; text-decoration: none; isolation: isolate; }
.dnk-city__media { position: absolute; inset: 0; z-index: -2; display: block; background: linear-gradient(160deg, #1d5a3a, var(--dnk-forest)); }
.dnk-city__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--dnk-ease), opacity .6s var(--dnk-ease); }
.dnk-city::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8, 32, 20, 0) 35%, rgba(8, 32, 20, .82) 100%); }
.dnk-city__body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 2px; padding: 20px; }
.dnk-city__ko { font-size: 13px; font-weight: 500; letter-spacing: .08em; color: var(--dnk-gold); }
.dnk-city__name { font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; }
.dnk-city__facts { margin-top: 4px; font-size: 13px; color: #d5e2d9; }
.dnk-city:focus-visible { outline: 3px solid var(--dnk-gold); outline-offset: 3px; }
/* Flatsome đổi màu chữ mọi link khi rê chuột (a:hover): giữ chữ trắng trên ảnh */
.dnk-city:hover, .dnk-city:focus, .dnk-city:visited { color: #fff; opacity: 1; }
@media (hover: hover) {
  .dnk-city:hover .dnk-city__media img { transform: scale(1.06); }
  .dnk-city__name::after { content: " \2192"; display: inline-block; opacity: 0; transform: translateX(-6px); transition: opacity .3s var(--dnk-ease), transform .3s var(--dnk-ease); }
  .dnk-city:hover .dnk-city__name::after { opacity: 1; transform: none; }
}

/* ---------- Thẻ trường ---------- */
.dnk-schools__grid { display: grid; gap: 24px; }
.dnk-schools__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dnk-schools__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dnk-schools__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dnk-school { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--dnk-line); border-radius: var(--dnk-radius); background: #fff; transition: border-color .3s var(--dnk-ease), box-shadow .4s var(--dnk-ease), transform .4s var(--dnk-ease); }
.dnk-school__media { position: relative; display: block; overflow: hidden; background: var(--dnk-surface); }
.dnk-school__media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .8s var(--dnk-ease), opacity .6s var(--dnk-ease); }
.dnk-school__placeholder { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 2; color: #a9b8ae; }
.dnk-school__city { position: absolute; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px 5px 8px; border-radius: var(--dnk-radius); background: rgba(12, 58, 35, .88); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.4; }
.dnk-school__body { position: relative; display: flex; flex: 1; flex-direction: column; padding: 20px; }
/* Logo trường: khung trắng chữ nhật đè lên mép dưới ảnh (logo thường là chữ nằm ngang) */
.dnk-school__logo { position: absolute; top: -20px; left: 20px; display: flex; align-items: center; justify-content: center; height: 40px; max-width: calc(100% - 40px); padding: 6px 10px; border: 1px solid var(--dnk-line); border-radius: 8px; background: #fff; box-shadow: 0 8px 18px -10px rgba(12, 58, 35, .4); }
.dnk-school__logo img { display: block; width: auto; height: 100%; max-width: 110px; object-fit: contain; }
.dnk-school.has-logo .dnk-school__body { padding-top: 34px; }
.dnk-school__type { margin: 0 0 6px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dnk-green); }
.dnk-school__title { margin: 0; font-size: 19px; line-height: 1.35; }
.dnk-school__title a { color: var(--dnk-ink); text-decoration: none; }
.dnk-school__alt { margin: 4px 0 0; font-size: 14px; color: var(--dnk-muted); }
.dnk-school__tags, .dnk-schol__levels { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.dnk-school__tags li, .dnk-schol__levels li { margin: 0; padding: 3px 10px; border-radius: 999px; background: var(--dnk-surface); font-size: 13px; font-weight: 500; line-height: 1.5; color: var(--dnk-ink); }
.dnk-school__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--dnk-line); }
.dnk-school__body > :nth-last-child(2) { margin-bottom: 16px; }
.dnk-school__flags { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; font-size: 13px; font-weight: 600; color: var(--dnk-muted); }
.dnk-school__flags:empty { display: none; }
.dnk-school__flags span { display: inline-flex; align-items: center; gap: 5px; }
.dnk-school__flags .dnk-ico { color: var(--dnk-green); }
.dnk-school .dnk-link-arrow { margin-left: auto; font-size: 14px; }
.dnk-school[hidden] { display: none; }
@media (hover: hover) {
  .dnk-school:hover { border-color: #c5d0c9; box-shadow: 0 28px 48px -28px rgba(12, 58, 35, .5); transform: translateY(-6px); }
  .dnk-school:hover .dnk-school__media img { transform: scale(1.06); }
  .dnk-school:hover .dnk-link-arrow::after { transform: translateX(4px); }
  .dnk-school__title a:hover { color: var(--dnk-green); }
}

/* ---------- Thẻ học bổng ---------- */
.dnk-schols__list { display: grid; gap: 16px; }
.dnk-schols__list--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dnk-schol { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 16px 20px; align-items: start; padding: 22px 22px 22px 20px; border: 1px solid var(--dnk-line); border-left: 4px solid var(--dnk-gold); border-radius: var(--dnk-radius); background: #fff; transition: border-color .3s var(--dnk-ease), box-shadow .4s var(--dnk-ease); }
.dnk-schol[hidden] { display: none; }
.dnk-schol__icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #e6f2ea; color: var(--dnk-green); }
.dnk-schol__from { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--dnk-green); }
.dnk-schol__from a { color: inherit; text-decoration: none; }
.dnk-schol__from a:hover { text-decoration: underline; }
.dnk-schol__title { margin: 0; font-size: 18px; line-height: 1.4; }
.dnk-schol__title a { color: var(--dnk-ink); text-decoration: none; }
/* Cả thẻ bấm được (link trường bên trong vẫn bấm riêng) */
.dnk-schol__title a::after { content: ""; position: absolute; inset: 0; }
.dnk-schol__from a { position: relative; z-index: 1; }
.dnk-schol__value { margin: 8px 0 0; font-size: 15px; line-height: 1.55; color: var(--dnk-ink); }
.dnk-schol__levels { margin-top: 12px; }
.dnk-schol__side { min-width: 120px; text-align: right; }
.dnk-schol__deadline { margin: 0; }
.dnk-schol__deadline span { display: block; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-schol__deadline strong { display: block; font-size: 17px; line-height: 1.4; color: var(--dnk-forest); font-variant-numeric: tabular-nums; }
.dnk-schol__badge { display: inline-block; margin-top: 6px; padding: 2px 8px; border-radius: 999px; background: #fff1c2; color: #6b4f00; font-size: 12px; font-weight: 700; font-style: normal; }
.dnk-schol__updated { margin: 10px 0 0; font-size: 12px; color: var(--dnk-muted); }
.dnk-schol.is-soon { border-left-color: #e08a00; }
.dnk-schol.is-expired { border-left-color: var(--dnk-line); background: var(--dnk-surface); }
.dnk-schol.is-expired .dnk-schol__title a, .dnk-schol.is-expired .dnk-schol__value, .dnk-schol.is-expired .dnk-schol__deadline strong { color: var(--dnk-muted); }
.dnk-schol.is-expired .dnk-schol__icon { background: #e8ede9; color: var(--dnk-muted); }
.dnk-schol.is-expired .dnk-schol__badge { background: #e8ede9; color: var(--dnk-muted); }
.dnk-bg-muted .dnk-schol.is-expired { background: #f9fbfa; }
@media (hover: hover) {
  .dnk-schol:hover { border-color: #c5d0c9; border-left-color: var(--dnk-gold); box-shadow: 0 20px 40px -28px rgba(12, 58, 35, .45); }
  .dnk-schol.is-soon:hover { border-left-color: #e08a00; }
  .dnk-schol:hover .dnk-schol__title a { color: var(--dnk-green); }
}

/* ---------- Thẻ học bổng có ảnh ---------- */
.dnk-scards { display: grid; gap: 24px; }
.dnk-scards--1 { grid-template-columns: 1fr; }
.dnk-scards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dnk-scards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dnk-scard { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--dnk-line); border-radius: var(--dnk-radius); background: #fff; transition: border-color .3s var(--dnk-ease), box-shadow .4s var(--dnk-ease), transform .4s var(--dnk-ease); }
.dnk-scard[hidden] { display: none; }
.dnk-scard__media { position: relative; display: block; overflow: hidden; background: var(--dnk-surface); }
.dnk-scard__media img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .8s var(--dnk-ease), opacity .6s var(--dnk-ease); }
.dnk-scard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 32, 20, 0) 45%, rgba(8, 32, 20, .55) 100%); pointer-events: none; }
.dnk-scard__placeholder { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; background: linear-gradient(150deg, #1d5a3a, var(--dnk-forest)); color: var(--dnk-gold); }
.dnk-scard__from { position: absolute; z-index: 1; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; max-width: calc(100% - 24px); padding: 5px 10px 5px 8px; border-radius: var(--dnk-radius); background: rgba(255, 255, 255, .94); color: var(--dnk-forest); font-size: 12px; font-weight: 600; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dnk-scard__from .dnk-ico { flex: none; color: var(--dnk-green); }
.dnk-scard__badge { position: absolute; z-index: 1; top: 12px; right: 12px; padding: 4px 10px; border-radius: 999px; background: var(--dnk-gold); color: var(--dnk-ink); font-size: 12px; font-weight: 700; line-height: 1.4; }
.dnk-scard__badge.is-muted { background: rgba(255, 255, 255, .92); color: var(--dnk-muted); }
.dnk-scard__body { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 20px; }
.dnk-scard__levels { margin: 0 0 6px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--dnk-green); }
.dnk-scard__title { display: -webkit-box; margin: 0; overflow: hidden; font-size: 18px; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.dnk-scard__title a { color: var(--dnk-ink); text-decoration: none; }
.dnk-scard__title a::after { content: ""; position: absolute; inset: 0; } /* cả thẻ bấm được */
.dnk-scard { position: relative; }
.dnk-scard__value { display: flex; gap: 8px; margin: 10px 0 0; font-size: 14px; line-height: 1.55; color: var(--dnk-muted); }
.dnk-scard__value .dnk-ico { flex: none; margin-top: 2px; color: var(--dnk-green); }
.dnk-scard__value span { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.dnk-scard__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--dnk-line); }
.dnk-scard__body > :nth-last-child(2) { margin-bottom: 16px; }
.dnk-scard__deadline { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--dnk-muted); }
.dnk-scard__deadline .dnk-ico { color: var(--dnk-green); }
.dnk-scard__deadline strong { color: var(--dnk-forest); font-weight: 700; }
.dnk-scard .dnk-link-arrow { position: relative; z-index: 1; font-size: 14px; }
.dnk-scard.is-expired .dnk-scard__media img { filter: grayscale(.7); opacity: .75; }
.dnk-scard.is-expired .dnk-scard__title a, .dnk-scard.is-expired .dnk-scard__deadline strong { color: var(--dnk-muted); }
@media (hover: hover) {
  .dnk-scard:hover { border-color: #c5d0c9; box-shadow: 0 28px 48px -28px rgba(12, 58, 35, .5); transform: translateY(-6px); }
  .dnk-scard:hover .dnk-scard__media img { transform: scale(1.06); }
  .dnk-scard:hover .dnk-scard__title a { color: var(--dnk-green); }
  .dnk-scard:hover .dnk-link-arrow::after { transform: translateX(4px); }
}

/* ---------- Skeleton ảnh (JS gắn .is-loaded) ---------- */
.dnk-js .dnk-school__media:not(.is-loaded),
.dnk-js .dnk-scard__media:not(.is-loaded) {
  background-color: #e8ede9;
  background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, .65) 50%, rgba(255, 255, 255, 0) 80%);
  background-size: 200% 100%;
  animation: dnk-shimmer 1.4s ease-in-out infinite;
}
.dnk-js .dnk-city__media:not(.is-loaded) {
  background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, 0) 80%), linear-gradient(160deg, #1d5a3a, var(--dnk-forest));
  background-size: 200% 100%, 100% 100%;
  animation: dnk-shimmer 1.4s ease-in-out infinite;
}
.dnk-js .dnk-school__media img, .dnk-js .dnk-city__media img, .dnk-js .dnk-scard__media img { opacity: 0; }
.dnk-js .dnk-school__media.is-loaded img, .dnk-js .dnk-city__media.is-loaded img, .dnk-js .dnk-scard__media.is-loaded img { opacity: 1; }
.dnk-js .dnk-scard.is-expired .dnk-scard__media.is-loaded img { opacity: .75; }

/* ---------- Skeleton: logo, bộ ảnh trường, ảnh đầu bài ---------- */
/* Khung logo giữ kích thước trong lúc chờ ảnh (ảnh chưa tải thì rộng 0, khung bị co lại) */
.dnk-school__logo { min-width: 72px; }
.dnk-facts__logo { min-width: 96px; }
.dnk-js .dnk-school__logo:not(.is-loaded),
.dnk-js .dnk-facts__logo:not(.is-loaded),
.dnk-js .dnk-sgallery__item:not(.is-loaded) {
  background-color: #eef2ef;
  background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, .8) 50%, rgba(255, 255, 255, 0) 80%);
  background-size: 200% 100%;
  animation: dnk-shimmer 1.4s ease-in-out infinite;
}
.dnk-js .dnk-single-head__media:not(.is-loaded) {
  background-color: var(--dnk-forest);
  background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, .08) 50%, rgba(255, 255, 255, 0) 80%);
  background-size: 200% 100%;
  animation: dnk-shimmer 1.4s ease-in-out infinite;
}
.dnk-js .dnk-school__logo img, .dnk-js .dnk-facts__logo img, .dnk-js .dnk-sgallery__item img, .dnk-js .dnk-single-head__media img { opacity: 0; transition: opacity .5s var(--dnk-ease), transform .8s var(--dnk-ease); }
.dnk-js .dnk-school__logo.is-loaded img, .dnk-js .dnk-facts__logo.is-loaded img, .dnk-js .dnk-sgallery__item.is-loaded img, .dnk-js .dnk-single-head__media.is-loaded img { opacity: 1; }

/* ---------- Hover và focus bàn phím ---------- */
.dnk-school__logo, .dnk-school__city, .dnk-scard__from, .dnk-scard__badge { transition: transform .4s var(--dnk-ease), box-shadow .4s var(--dnk-ease); }
.dnk-school__tags li, .dnk-schol__levels li { transition: background-color .3s var(--dnk-ease), color .3s var(--dnk-ease); }
.dnk-scard__media::after { transition: background .4s var(--dnk-ease); }
.dnk-sgallery__item::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 0 transparent; background: rgba(8, 32, 20, 0); transition: background .3s var(--dnk-ease), box-shadow .3s var(--dnk-ease); pointer-events: none; }
.dnk-seg__opt span { transition: background-color .2s var(--dnk-ease), color .2s var(--dnk-ease), box-shadow .2s var(--dnk-ease); }
/* Thẻ bấm được: viền khi chọn bằng phím Tab (không hiện khi bấm chuột) */
.dnk-school:has(a:focus-visible), .dnk-scard:has(a:focus-visible) { outline: 2px solid var(--dnk-green); outline-offset: 3px; }
.dnk-school a:focus-visible, .dnk-scard a:focus-visible { outline: none; }
@media (hover: hover) {
  .dnk-school:hover .dnk-school__logo { transform: translateY(-3px); box-shadow: 0 14px 26px -12px rgba(12, 58, 35, .5); }
  .dnk-school:hover .dnk-school__city, .dnk-scard:hover .dnk-scard__from, .dnk-scard:hover .dnk-scard__badge { transform: translateY(-3px); }
  .dnk-school:hover .dnk-school__tags li, .dnk-schol:hover .dnk-schol__levels li { background: #e6f2ea; color: var(--dnk-forest); }
  .dnk-scard:hover .dnk-scard__media::after { background: linear-gradient(180deg, rgba(8, 32, 20, .05) 30%, rgba(8, 32, 20, .65) 100%); }
  .dnk-sgallery__item:hover::after { background: rgba(8, 32, 20, .12); box-shadow: inset 0 0 0 2px var(--dnk-gold); }
  .dnk-seg__opt:hover input:not(:checked) + span { background: rgba(255, 255, 255, .7); }
  .dnk-facts__row dd a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--dnk-ease); }
  .dnk-facts__row dd a:hover { background-size: 100% 1px; }
  .dnk-city-others__list .dnk-link-arrow:hover::after { transform: translateX(4px); }
}

/* ---------- Màn hình vừa và nhỏ ---------- */
@media (max-width: 1024px) {
  .dnk-sform__top { flex-direction: column; }
  .dnk-seg__opt { flex: 1; }
  .dnk-seg__opt span { flex: 1; justify-content: center; min-height: 38px; }
  .dnk-schools__grid--3, .dnk-schools__grid--4, .dnk-cities__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dnk-cities__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dnk-schols__list--2 { grid-template-columns: 1fr; }
  .dnk-scards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .dnk-shead { margin-bottom: 28px; }
  .dnk-schools__grid--2, .dnk-schools__grid--3, .dnk-schools__grid--4 { grid-template-columns: 1fr; }
  .dnk-cities__grid--3, .dnk-cities__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .dnk-city { aspect-ratio: 1 / 1; }
  .dnk-city__body { padding: 14px; }
  .dnk-city__name { font-size: 18px; }
  .dnk-city__facts { font-size: 12px; }
  .dnk-scards--2, .dnk-scards--3 { grid-template-columns: 1fr; }
  .dnk-schol { grid-template-columns: 40px minmax(0, 1fr); padding: 18px 16px; gap: 12px 14px; }
  .dnk-schol__icon { width: 40px; height: 40px; }
  .dnk-schol__side { grid-column: 2; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; min-width: 0; padding-top: 12px; border-top: 1px dashed var(--dnk-line); text-align: left; }
  .dnk-schol__deadline span { display: inline; margin-right: 6px; }
  .dnk-schol__deadline strong { display: inline; font-size: 15px; }
  .dnk-schol__badge { margin: 0 0 0 6px; }
  .dnk-schol__updated { margin: 0; }
  .dnk-js .dnk-hero + .dnk-sfilter .dnk-gfilter { margin-top: -40px; }
  .dnk-js .dnk-hero:has(+ .dnk-sfilter) .dnk-hero__inner { padding-bottom: 88px; }
  /* Chip thành phố cuộn ngang thay vì xuống nhiều dòng */
  .dnk-sform__cities .dnk-chips { flex-wrap: nowrap; margin: 0 -14px; padding: 0 14px 4px; overflow-x: auto; scrollbar-width: none; }
  .dnk-sform__cities .dnk-chips::-webkit-scrollbar { display: none; }
  .dnk-sfilter + .dnk-section.dnk-pad-normal { padding-top: 48px; }
  .dnk-seg__opt { flex: 1 1 0; min-width: 0; }
  .dnk-seg__opt span { padding: 0 4px; font-size: 13px; }
  .dnk-seg__opt span .dnk-ico { display: none; }
  .dnk-sform__cities { flex-direction: column; gap: 4px; margin-top: 14px; }
  .dnk-sform__label { min-height: 0; }
  .dnk-sform__cities .dnk-chips { align-self: stretch; }
  .dnk-snomatch { margin-top: 28px; padding: 28px 18px 24px; }
  .dnk-snomatch__icon { width: 64px; height: 64px; }
  .dnk-snomatch__title { font-size: 19px; }
  .dnk-snomatch__actions .dnk-btn { flex: 1 1 140px; }
}
@media (prefers-reduced-motion: reduce) {
  .dnk-school, .dnk-school__media img, .dnk-city__media img, .dnk-schol, .dnk-scard, .dnk-scard__media img { transition: none; }
  .dnk-scard:hover { transform: none; }
  .dnk-school:hover .dnk-school__logo, .dnk-school:hover .dnk-school__city, .dnk-scard:hover .dnk-scard__from, .dnk-scard:hover .dnk-scard__badge { transform: none; }
  .dnk-js .dnk-school__logo:not(.is-loaded), .dnk-js .dnk-facts__logo:not(.is-loaded), .dnk-js .dnk-sgallery__item:not(.is-loaded), .dnk-js .dnk-single-head__media:not(.is-loaded) { animation: none; }
  .dnk-school:hover { transform: none; }
}

/* =========================================================
   Bài trường / học bổng / ký túc xá: khung thông tin nhanh, bộ ảnh
   ========================================================= */
.dnk-facts { max-width: 700px; margin: 0 0 40px; padding: 24px 28px; border: 1px solid var(--dnk-line); border-top: 4px solid var(--dnk-green); border-radius: var(--dnk-radius); background: #fff; box-shadow: 0 20px 40px -32px rgba(12, 58, 35, .45); }
.dnk-facts--scholarship { border-top-color: var(--dnk-gold); }
.dnk-facts--scholarship.is-soon { border-top-color: #e08a00; }
.dnk-facts--scholarship.is-expired { border-top-color: var(--dnk-line); background: var(--dnk-surface); }
.dnk-facts__head { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.dnk-facts__logo { flex: none; display: flex; align-items: center; justify-content: center; height: 48px; max-width: 160px; padding: 8px 12px; border: 1px solid var(--dnk-line); border-radius: 8px; background: #fff; }
.dnk-facts__logo img { display: block; width: auto; height: 100%; max-width: 136px; object-fit: contain; }
.dnk-facts__icon { flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #e6f2ea; color: var(--dnk-green); }
.dnk-facts__eyebrow { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--dnk-green); }
.dnk-facts__names { margin: 4px 0 0; font-size: 17px; font-weight: 600; line-height: 1.4; color: var(--dnk-ink); }
.dnk-facts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0; text-transform: none; letter-spacing: normal; font-size: inherit; } /* Flatsome viết hoa mọi <dl> */
.dnk-facts__row { display: grid; gap: 2px; padding: 12px 0; border-top: 1px solid var(--dnk-line); }
.dnk-facts__row dt { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-facts__row dt .dnk-ico { color: var(--dnk-green); }
.dnk-facts__row dd { margin: 0; font-size: 16px; line-height: 1.55; color: var(--dnk-ink); overflow-wrap: anywhere; }
.dnk-facts__row dd a { font-weight: 600; }
.dnk-facts__row dd .dnk-schol__badge { margin: 0 0 0 6px; vertical-align: 1px; }
.dnk-facts__note { margin: 16px 0 0; padding-top: 14px; border-top: 1px dashed var(--dnk-line); font-size: 13px; line-height: 1.6; color: var(--dnk-muted); }
.dnk-facts__note strong { color: var(--dnk-ink); }

.dnk-sgallery { max-width: 700px; margin: 0 0 40px; }
.dnk-sgallery__title, .dnk-study-related__title { margin: 0 0 16px; font-size: 22px; }
.dnk-sgallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dnk-sgallery__item:first-child { grid-column: span 2; grid-row: span 2; }
.dnk-sgallery__item.is-hidden { display: none; }
.dnk-sgallery__img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dnk-sgallery__more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(12, 58, 35, .62); color: #fff; font-size: 18px; font-weight: 600; }

.dnk-study-related { max-width: 700px; margin-top: 48px; }

/* =========================================================
   Trang thành phố
   ========================================================= */
.dnk-city-head .dnk-blog-head__inner { padding-top: 72px; padding-bottom: 80px; }
.dnk-city-head .dnk-eyebrow { margin: 24px 0 8px; }
.dnk-city-head__facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
.dnk-city-head__facts li { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; background: rgba(255, 255, 255, .1); font-size: 14px; color: #fff; backdrop-filter: blur(6px); }
.dnk-city-head__facts .dnk-ico { color: var(--dnk-gold); }
.dnk-city-others { border-top: 1px solid var(--dnk-line); }
.dnk-city-others__title { margin: 0 0 16px; font-size: 18px; }
.dnk-city-others__list { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0; padding: 0; list-style: none; }
.dnk-city-others__list li { margin: 0; }
.dnk-chip-link { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 0 16px 0 12px; border: 1px solid var(--dnk-line); border-radius: 999px; background: #fff; font-size: 15px; font-weight: 500; color: var(--dnk-ink); text-decoration: none; transition: border-color .2s var(--dnk-ease), color .2s var(--dnk-ease); }
.dnk-chip-link .dnk-ico { color: var(--dnk-green); }
.dnk-chip-link:hover { border-color: var(--dnk-green); color: var(--dnk-green); }
.dnk-city-others__list .dnk-link-arrow { margin-left: 8px; }

@media (max-width: 767px) {
  .dnk-facts { margin-bottom: 32px; padding: 20px 18px; }
  .dnk-facts__list { grid-template-columns: 1fr; }
  .dnk-facts__head { flex-direction: column; align-items: flex-start; }
  .dnk-sgallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dnk-sgallery__item:first-child { grid-column: span 2; grid-row: auto; }
  .dnk-city-head .dnk-blog-head__inner { padding-top: 32px; padding-bottom: 48px; }
}
