.hdvvnb-page .site-main{max-width:none!important;padding:0!important}.hdvvnb-document{overflow:hidden}.hdvvnb-section{background:var(--hdvvnb-bg);padding-top:var(--hdvvnb-pt);padding-bottom:var(--hdvvnb-pb)}.hdvvnb-container{width:min(1180px,calc(100% - 40px));margin:auto}.hdvvnb-container--narrow{width:min(860px,calc(100% - 40px))}.hdvvnb-row{display:flex;gap:var(--hdvvnb-row-gap,28px);align-items:var(--hdvvnb-row-align,stretch)}.hdvvnb-column{width:var(--hdvvnb-width);background:var(--hdvvnb-box-bg);padding:var(--hdvvnb-box-pad);border-radius:var(--hdvvnb-radius);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--hdvvnb-element-gap,0px)}.hdvvnb-element{margin-top:var(--hdvvnb-mt,0);margin-bottom:var(--hdvvnb-mb,0)}.hdvvnb-heading{font-size:clamp(calc(var(--hdvvnb-font-size)*.65),5vw,var(--hdvvnb-font-size));line-height:1.05;margin:0}.hdvvnb-text{line-height:1.65;margin:0}.hdvvnb-text p:first-child{margin-top:0}.hdvvnb-text p:last-child{margin-bottom:0}.hdvvnb-image{margin:0}.hdvvnb-image img{max-width:100%;height:auto;border-radius:var(--hdvvnb-radius)}.hdvvnb-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:0}.hdvvnb-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;font-weight:750;text-decoration:none!important;transition:.2s}.hdvvnb-button--primary{background:#136f52;color:#fff!important}.hdvvnb-button--primary:hover{background:#0f5a43;transform:translateY(-1px)}.hdvvnb-button--outline{border:1px solid #b9c9c3;color:#123f34!important;background:#fff}.hdvvnb-button--text{color:#136f52!important;padding-inline:4px}.hdvvnb-badge-wrap{margin:0}.hdvvnb-badge-link{display:inline-block;text-decoration:none!important;color:inherit}.hdvvnb-badge{display:inline-block;border:1px solid #dce5e1;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:800;letter-spacing:.08em}.hdvvnb-jobs{display:grid;grid-template-columns:repeat(var(--hdvvnb-job-columns),minmax(0,1fr));gap:18px}.hdvvnb-job{border:1px solid #dce5e1;background:#fff;border-radius:18px;padding:22px;box-shadow:0 10px 30px #153a2e0d}.hdvvnb-job span{font-size:12px;color:#6c7c76}.hdvvnb-job h3{font-size:21px;line-height:1.25;margin:10px 0}.hdvvnb-job h3 a{color:#123f34;text-decoration:none}.hdvvnb-job strong{display:block;color:#136f52}.hdvvnb-job>a{font-weight:700;color:#136f52}.hdvvnb-notice{padding:16px;background:#fff4df;border-radius:10px}@media(min-width:783px){.hdvvnb-hide-desktop{display:none!important}}@media(max-width:782px) and (min-width:541px){.hdvvnb-hide-tablet{display:none!important}.hdvvnb-row{gap:18px}.hdvvnb-jobs{--hdvvnb-job-columns:2!important}}@media(max-width:540px){.hdvvnb-hide-mobile{display:none!important}.hdvvnb-container,.hdvvnb-container--narrow{width:min(100% - 28px,1180px)}.hdvvnb-row{display:block}.hdvvnb-column{width:100%;margin-bottom:18px}.hdvvnb-heading{font-size:clamp(30px,10vw,var(--hdvvnb-font-size))}.hdvvnb-jobs{grid-template-columns:1fr}.hdvvnb-buttons{flex-direction:column;align-items:stretch!important}.hdvvnb-button{width:100%;box-sizing:border-box}}


/* 1.3.0 - Ứng viên linh hoạt / nổi bật trên Trang chủ */
.hdvvnb-candidate-slider{position:relative;min-width:0}
.hdvvnb-candidate-slider-controls{display:flex;justify-content:flex-end;gap:8px;margin:-8px 0 12px}
.hdvvnb-candidate-slider-controls button{width:38px;height:38px;border:1px solid #cbd9d4;border-radius:999px;background:#fff;color:#123f34;font-size:25px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.18s}
.hdvvnb-candidate-slider-controls button:hover{border-color:#136f52;background:#f5faf8;transform:translateY(-1px)}
.hdvvnb-candidate-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:18px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-behavior:smooth;padding:2px 2px 12px;scrollbar-width:none}
.hdvvnb-candidate-per-2 .hdvvnb-candidate-track{grid-auto-columns:calc((100% - 18px)/2)}
.hdvvnb-candidate-per-3 .hdvvnb-candidate-track{grid-auto-columns:calc((100% - 36px)/3)}
.hdvvnb-candidate-per-4 .hdvvnb-candidate-track{grid-auto-columns:calc((100% - 54px)/4)}
.hdvvnb-candidate-per-5 .hdvvnb-candidate-track{grid-auto-columns:calc((100% - 72px)/5)}
.hdvvnb-candidate-track::-webkit-scrollbar{display:none}
.hdvvnb-candidate-card{scroll-snap-align:start;min-width:0;border:1px solid #dce5e1;border-radius:18px;background:#fff;padding:18px;box-shadow:0 8px 24px rgba(18,63,52,.055);display:flex;flex-direction:column;box-sizing:border-box}
.hdvvnb-candidate-card-head{display:flex;align-items:center;gap:13px;margin-bottom:13px;min-width:0}
.hdvvnb-candidate-avatar{width:68px;height:68px;flex:0 0 68px;border:2px solid #136f52;border-radius:50%;overflow:hidden;background:#f6faf8;display:flex;align-items:center;justify-content:center;text-decoration:none!important}
.hdvvnb-candidate-avatar img{width:100%!important;height:100%!important;object-fit:cover;display:block}
.hdvvnb-candidate-avatar span{font-size:28px}
.hdvvnb-candidate-identity{min-width:0}
.hdvvnb-candidate-identity h3{font-size:18px;line-height:1.25;margin:0 0 5px}
.hdvvnb-candidate-identity h3 a{color:#123f34!important;text-decoration:none!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.hdvvnb-candidate-role{font-size:13px;font-weight:700;line-height:1.35;color:#136f52;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.hdvvnb-candidate-summary,.hdvvnb-candidate-line{font-size:13px;line-height:1.55;color:#526a62;margin:0 0 7px;overflow-wrap:anywhere}
.hdvvnb-candidate-summary{color:#425b53}
.hdvvnb-candidate-specialties{margin-bottom:14px}
.hdvvnb-candidate-detail{display:inline-flex;align-items:center;align-self:flex-start;margin-top:auto;color:#136f52!important;font-weight:750;text-decoration:none!important}
.hdvvnb-candidates-empty{margin:0;padding:20px;border:1px dashed #d7e0dc;border-radius:14px;color:#60736c;background:#fff}
.hdvvnb-candidates-footer{display:flex;justify-content:center;margin-top:24px}
@media(max-width:782px) and (min-width:541px){.hdvvnb-candidate-track{grid-auto-columns:calc((100% - 18px)/2)!important}}
@media(max-width:540px){.hdvvnb-candidate-track{grid-auto-columns:100%!important;gap:14px}.hdvvnb-candidate-slider-controls{margin-top:0}.hdvvnb-candidates-footer .hdvvnb-button{width:auto;min-width:210px}.hdvvnb-candidate-card{padding:16px}.hdvvnb-candidate-avatar{width:62px;height:62px;flex-basis:62px}}

/* 1.3.5 - Khoảng cách Builder phải phản ánh đúng giá trị Admin nhập */
.hdvvnb-column{gap:var(--hdvvnb-element-gap,0px)!important}
.hdvvnb-element{margin-top:var(--hdvvnb-mt,0px)!important;margin-bottom:var(--hdvvnb-mb,0px)!important}
.hdvvnb-element>.hdvvnb-heading,
.hdvvnb-element>.hdvvnb-text,
.hdvvnb-element>.hdvvnb-image,
.hdvvnb-element>.hdvvnb-buttons,
.hdvvnb-element>.hdvvnb-badge-wrap,
.hdvvnb-element>.hdvvnb-jobs,
.hdvvnb-element>.hdvvnb-candidate-slider,
.hdvvnb-element>.hdvvnb-notice{margin-top:0!important;margin-bottom:0!important}

/* Nút slider nằm hai bên card, không chiếm thêm chiều cao giữa tiêu đề và danh sách ứng viên. */
.hdvvnb-candidate-slider{position:relative}
.hdvvnb-candidate-slider-controls{position:absolute;inset:0;margin:0!important;height:0;z-index:4;pointer-events:none}
.hdvvnb-candidate-slider-controls button{position:absolute;top:50%;margin:0;pointer-events:auto;transform:translateY(-50%)}
.hdvvnb-candidate-slider-controls .hdvvnb-candidate-prev{left:-19px}
.hdvvnb-candidate-slider-controls .hdvvnb-candidate-next{right:-19px}
.hdvvnb-candidate-slider-controls button:hover{transform:translateY(-50%) translateY(-1px)}
@media(max-width:540px){
  .hdvvnb-candidate-slider-controls .hdvvnb-candidate-prev{left:-9px}
  .hdvvnb-candidate-slider-controls .hdvvnb-candidate-next{right:-9px}
}


/* 1.5.2 - Card Việc làm nổi bật: 4 tin/hàng, gọn và tập trung nội dung */
.hdvvnb-jobs{
	gap:14px!important;
}
.hdvvnb-job{
	position:relative;
	min-width:0;
	display:flex;
	flex-direction:column;
	min-height:336px!important;
	padding:14px 14px 12px!important;
	border:1px solid #ead8c8!important;
	border-radius:16px!important;
	background:#fffdfa!important;
	box-shadow:none!important;
	overflow:hidden;
}
.hdvvnb-job.is-vip{
	border-color:#e7cdb4!important;
}
.hdvvnb-job-top{
	display:flex;
	align-items:center;
	gap:8px;
	min-height:23px;
	margin:0 0 10px!important;
}
.hdvvnb-job-vip{
	display:inline-flex;
	align-items:center;
	flex:0 0 auto;
	margin:0!important;
	padding:3px 7px!important;
	border:1px solid #efc9a4;
	border-radius:999px;
	background:#fff5ea;
	color:#a85f20!important;
	font-size:10px!important;
	font-weight:800;
	line-height:1.2;
}
.hdvvnb-job-date{
	margin-left:auto;
	color:#73837d!important;
	font-size:10.5px!important;
	line-height:1.2;
	white-space:nowrap;
}
.hdvvnb-job-brand{
	min-height:48px;
	margin:0 0 9px;
}
.hdvvnb-job-brand-link{
	display:flex;
	align-items:center;
	gap:8px;
	width:100%;
	min-width:0;
	color:inherit!important;
	text-decoration:none!important;
}
.hdvvnb-job-logo{
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	flex:0 0 42px;
	overflow:hidden;
	border:1px solid #e2e9e6;
	border-radius:8px;
	background:#fff;
}
.hdvvnb-job-logo-img{
	display:block;
	width:100%!important;
	height:100%!important;
	max-width:100%!important;
	max-height:100%!important;
	padding:3px;
	object-fit:contain!important;
	object-position:center center;
	box-sizing:border-box;
}
.hdvvnb-job-logo-placeholder{
	font-size:20px!important;
	line-height:1;
}
.hdvvnb-job-company{
	min-width:0;
	display:-webkit-box!important;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2;
	overflow:hidden;
	color:#123f34!important;
	font-size:11.5px!important;
	font-weight:800!important;
	line-height:1.28;
	text-transform:uppercase;
}
.hdvvnb-job h3{
	margin:0 0 8px!important;
	font-size:16px!important;
	line-height:1.3!important;
}
.hdvvnb-job h3 a{
	display:-webkit-box!important;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2!important;
	overflow:hidden;
	color:#123f34!important;
	text-decoration:none!important;
}
.hdvvnb-job-salary{
	margin:0 0 9px;
	color:#8a5b22!important;
	font-size:12px!important;
	font-weight:750;
	line-height:1.35;
}
.hdvvnb-job-excerpt{
	display:-webkit-box!important;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:3!important;
	overflow:hidden;
	min-height:58px;
	margin:0!important;
	color:#334d44!important;
	font-size:12px!important;
	line-height:1.58!important;
	flex:0 0 auto!important;
}
.hdvvnb-job-dots{
	height:22px;
	margin-top:1px;
	color:#687971;
	font-size:12px;
	line-height:22px;
}
.hdvvnb-job-detail{
	display:inline-flex!important;
	align-items:center;
	align-self:flex-start;
	min-height:24px!important;
	width:auto!important;
	margin-top:auto!important;
	padding:0!important;
	border:0!important;
	border-radius:0!important;
	background:transparent!important;
	color:#136f52!important;
	font-size:12.5px!important;
	font-weight:800!important;
	line-height:1.3;
	text-decoration:underline!important;
	text-underline-offset:2px;
	box-shadow:none!important;
}
.hdvvnb-job-detail:hover{
	background:transparent!important;
	color:#0f5c45!important;
	transform:none!important;
}
.hdvvnb-job-detail span{
	margin-left:3px;
	color:inherit!important;
	font-size:inherit!important;
}

/* Desktop: luôn 4 tin/hàng cho khối VIP Trang chủ. */
.hdvvnb-jobs[style*="--hdvvnb-job-columns:4"]{
	grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

/* Tablet 2 cột, mobile 1 cột để chữ vẫn dễ đọc. */
@media(max-width:782px) and (min-width:541px){
	.hdvvnb-jobs{grid-template-columns:repeat(2,minmax(0,1fr))!important}
	.hdvvnb-job{min-height:318px!important}
}
@media(max-width:540px){
	.hdvvnb-jobs{grid-template-columns:1fr!important;gap:12px!important}
	.hdvvnb-job{min-height:0!important;padding:15px!important}
	.hdvvnb-job-company{font-size:12px!important}
	.hdvvnb-job h3{font-size:17px!important}
	.hdvvnb-job-excerpt{min-height:0}
}


/* 1.5.3 - Mobile Trang chủ: mỗi hàng đúng 1 card, hiển thị tuần tự đủ 8 tin/8 ứng viên. */
@media(max-width:540px){
  /* Ghi đè selector desktop có độ ưu tiên cao của khối 4 cột. */
  .hdvvnb-jobs[style*="--hdvvnb-job-columns:4"]{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
  }
  .hdvvnb-job{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:15px!important;
  }
  .hdvvnb-jobs-footer{
    margin-top:20px!important;
    display:flex!important;
    justify-content:center!important;
  }
  .hdvvnb-jobs-footer .hdvvnb-button{
    width:auto!important;
    min-width:210px;
  }

  /* Ứng viên trên điện thoại không dùng carousel ngang: xếp dọc 1 card/lần. */
  .hdvvnb-candidate-slider-controls{
    display:none!important;
  }
  .hdvvnb-candidate-track,
  .hdvvnb-candidate-per-2 .hdvvnb-candidate-track,
  .hdvvnb-candidate-per-3 .hdvvnb-candidate-track,
  .hdvvnb-candidate-per-4 .hdvvnb-candidate-track,
  .hdvvnb-candidate-per-5 .hdvvnb-candidate-track{
    display:grid!important;
    grid-auto-flow:row!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-columns:unset!important;
    gap:14px!important;
    width:100%!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    scroll-snap-type:none!important;
    scroll-behavior:auto!important;
    padding:0!important;
  }
  .hdvvnb-candidate-card{
    width:100%!important;
    min-width:0!important;
    scroll-snap-align:none!important;
  }
  .hdvvnb-candidates-footer{
    margin-top:22px!important;
  }
}


/* 1.5.4 - MOBILE/TABLET UX: giảm khoảng trống hero đầu trang; desktop giữ nguyên. */
@media(max-width:782px){
  #trang-chu.hdvvnb-section{padding-top:60px!important}
}
@media(max-width:540px){
  #trang-chu.hdvvnb-section{padding-top:48px!important}
}

/* 1.5.7 - EMPTY SECTION CLEANUP + SECTION RHYTHM
 * Section rỗng vẫn không render. Theo feedback UI/UX, tăng đúng 5px khoảng thở
 * giữa section trước và section sau bằng cách cộng 5px vào padding-top của section kế tiếp.
 * Tổng khoảng nối: 37px desktop / 29px tablet / 25px mobile.
 */
.hdvvnb-section--compact-after{--hdvvnb-pb:16px!important}
.hdvvnb-section--compact-before{--hdvvnb-pt:21px!important}
@media(max-width:782px){
  .hdvvnb-section--compact-after{--hdvvnb-pb:12px!important}
  .hdvvnb-section--compact-before{--hdvvnb-pt:17px!important}
}
@media(max-width:540px){
  .hdvvnb-section--compact-after{--hdvvnb-pb:10px!important}
  .hdvvnb-section--compact-before{--hdvvnb-pt:15px!important}
}

/* Trang chủ: tăng 5px khoảng cách theo cùng nguyên tắc, không tạo vùng rỗng lớn. */
body.home .hdvvnb-document > .hdvvnb-section:not(:first-child){--hdvvnb-pt:21px!important}
body.home .hdvvnb-document > .hdvvnb-section:not(:last-child){--hdvvnb-pb:16px!important}
@media(max-width:782px){
  body.home .hdvvnb-document > .hdvvnb-section:not(:first-child){--hdvvnb-pt:17px!important}
  body.home .hdvvnb-document > .hdvvnb-section:not(:last-child){--hdvvnb-pb:12px!important}
}
@media(max-width:540px){
  body.home .hdvvnb-document > .hdvvnb-section:not(:first-child){--hdvvnb-pt:15px!important}
  body.home .hdvvnb-document > .hdvvnb-section:not(:last-child){--hdvvnb-pb:10px!important}
}

/* 1.5.6 - chỉ hiển thị hồ sơ public-ready và báo trạng thái tạm ngừng */
.hdvvnb-candidate-paused{display:inline-flex;width:max-content;max-width:100%;margin-top:4px;padding:3px 7px;border-radius:999px;border:1px solid #f2cf8c;background:#fff4df;color:#9a5a00;font-size:10.5px;font-weight:700;line-height:1.2}

/* 1.5.8 - JOB LIST CTA RHYTHM
 * Tách CTA “Xem tất cả việc làm” khỏi grid card để không bị dính sát card cuối.
 * Desktop/Tablet/Mobile dùng khoảng thở riêng, không làm thay đổi nhịp section toàn trang.
 */
.hdvvnb-jobs-footer{
  margin-top:22px;
  margin-bottom:0;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
@media(max-width:782px){
  .hdvvnb-jobs-footer{margin-top:20px}
}
@media(max-width:540px){
  .hdvvnb-jobs-footer{
    margin-top:18px!important;
    justify-content:flex-start!important;
  }
  .hdvvnb-jobs-footer .hdvvnb-button{
    width:auto!important;
    min-width:0!important;
  }
}


/* 1.5.9 - Tinh chỉnh nhịp khối Việc làm nổi bật theo kiểm tra UI/UX thực tế.
 * Tăng riêng khoảng thở phía trên khối Jobs thêm 10px và căn giữa CTA.
 */
body.home .hdvvnb-section--jobs{--hdvvnb-pt:31px!important}
.hdvvnb-jobs-footer{margin-top:27px!important;justify-content:center!important}
@media(max-width:782px){
  body.home .hdvvnb-section--jobs{--hdvvnb-pt:27px!important}
  .hdvvnb-jobs-footer{margin-top:25px!important;justify-content:center!important}
}
@media(max-width:540px){
  body.home .hdvvnb-section--jobs{--hdvvnb-pt:25px!important}
  .hdvvnb-jobs-footer{margin-top:23px!important;justify-content:center!important}
  .hdvvnb-jobs-footer .hdvvnb-button{width:auto!important;min-width:0!important}
}

.hdvvnb-section--custom-width>.hdvvnb-container{width:calc(100% - 40px);max-width:var(--hdvvnb-max-width);margin-inline:auto}
.hdvvnb-section--custom-width .hdvvnb-column{min-width:0;overflow-wrap:anywhere;flex-shrink:1}
@media(max-width:782px){.hdvvnb-section--custom-width .hdvvnb-row{flex-direction:column}.hdvvnb-section--custom-width .hdvvnb-column{width:100%;padding:min(var(--hdvvnb-box-pad),24px)}}
@media(max-width:540px){.hdvvnb-section--custom-width>.hdvvnb-container{width:calc(100% - 28px)}}


/* 1.6.6 - Dynamic directories stay in their native plugin layout. */
body.hdvvnb-page.hdvvn-job-directory-page .hdvvn-directory-intro{display:none!important}
