/* ==========================================================================
   Base & Resets
   ========================================================================== */
html{font-size:14px;position:relative;min-height:100%}
@media (min-width:768px){html{font-size:16px}}
body{margin:0}

.btn:focus,.btn:active:focus,.btn-link.nav-link:focus,.form-control:focus,.form-check-input:focus{
  box-shadow:0 0 0 .1rem #fff,0 0 0 .25rem #258cfb
}
/* === Layout safeguard: prevent accidental horizontal scrolling === */
html, body { max-width: 100%; overflow-x: clip; }
@supports not (overflow: clip){ html, body { overflow-x: hidden; } }

/* === Disable distracting hero animations globally === */
/* Stop all floating/rotating badges and hero rings */
.floating-icon{ animation: none !important; transform: none !important; }
.floating-card{ animation: none !important; }
.kenburns{ animation: none !important; }
.tech-ring{ animation: none !important; }

/* === User Menu Optimization === */
.user-menu {
    max-height: 70vh;
    overflow-y: auto;
    min-width: 200px;
}

.user-menu .dropdown-item {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    white-space: nowrap;
}

.user-menu .dropdown-item i {
    width: 16px;
    text-align: center;
}

.user-menu .dropdown-divider {
    margin: 0.25rem 0;
}

.user-menu .px-3 {
    padding: 0.25rem 1rem !important;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Scrollbar styling for user menu */
.user-menu::-webkit-scrollbar {
    width: 4px;
}

.user-menu::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 2px;
}

.user-menu::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 2px;
}

.user-menu::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

/* === Modal Backdrop Removal === */
/* Loại bỏ hiệu ứng tối màn hình cho tất cả modal */
.modal-backdrop {
    display: none !important;
}

.modal.show .modal-backdrop {
    display: none !important;
}

/* Đảm bảo modal không có backdrop */
.modal[data-bs-backdrop="false"] {
    background: transparent !important;
}

.modal[data-bs-backdrop="false"] .modal-dialog {
    background: transparent !important;
}

/* Floating placeholder keep */
.form-floating>.form-control-plaintext::placeholder,
.form-floating>.form-control::placeholder{color:var(--bs-secondary-color);text-align:end}
.form-floating>.form-control-plaintext:focus::placeholder,
.form-floating>.form-control:focus::placeholder{text-align:start}

/* khoảng hở giữa vòm & dải thẻ ngay sau hero */
:root{
  --hero-curve-gap: clamp(18px, 2.8vw, 40px);
  --primary-color: #f97316; /* brand primary (orange) */
  
  /* Unified Color Scheme */

  --secondary-color: #f8fafc;
  --success-color: #10b981;
  --dark-color: #1e293b;
  --text-muted: #64748b;
  --nav-gap: clamp(.75rem, 3vw, 2.25rem);
 /* giãn thưa menu */
}

/* ==========================================================================
   HEADER (BRANDBAR + NAVSTRIP)
   ========================================================================== */
/* Hàng trên: logo + tên + liên hệ */
.brandbar{background:#fff;border-bottom:1px solid #eef2f7}
.brand-link{color:inherit}
.brand-logo{height:48px;width:auto;max-width:48px;border-radius:10px;object-fit:contain;display:block}
@media (max-width:575.98px){ .brand-logo{height:40px} }

/* Compact logo inside sticky navbar */
.brand-logo-sm{height:32px;width:auto;max-width:32px;border-radius:8px;object-fit:contain;display:block}
/* ?n logo nh? theo m?c d?nh; ch? hi?n khi nav d� d�nh */
.navstrip .navbar-brand{padding-top:.35rem;padding-bottom:.35rem;margin-right:.75rem; display:none !important;}
/* Ch? hi?n logo nh? khi thanh nav d� d�nh (dang cu?n) */
.navstrip.is-stuck .navbar-brand{ display:flex !important; }

.brand-title{font-size:1rem;font-weight:600;letter-spacing:.02em;color:#1f2937;line-height:1.2}
.brand-sub{font-size:1.15rem;font-weight:800;letter-spacing:.02em;color:#1f2937;line-height:1.2;margin-bottom:.2rem}
.brand-slogan{font-size:.72rem;color:#6b7280;line-height:1;margin-top:.25rem}

.contact-box .vr{height:18px;opacity:.25}
.contact-item{display:flex;align-items:center;color:#3b82f6;font-weight:600}

/* === Brandbar contact icon blue squares (restored) === */
.brandbar .contact-item-header .contact-icon{
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  color: #fff;
  box-shadow: 0 6px 18px rgba(37,99,235,.35);
  margin-right: .5rem;
  font-size: 1rem; /* kích thước biểu tượng */
}

/* Cách xa nhau giữa phone & email */
.brandbar .contact-right{ gap: 1.25rem; }

/* Text đậm & màu tối trong brandbar */
.brandbar .contact-text{ color:#1f2937; font-weight:700; }

/* Hàng dưới: thanh menu */
/* Sticky navigation bar */
.navstrip{
  background:#f8fafc;
  border-bottom:1px solid #eef2f7;
  position: sticky !important; 
  top: 0 !important; 
  z-index: 1050 !important;
  box-shadow: 0 2px 12px rgba(2,6,23,.06);
}

/* Enhanced sticky behavior when scrolled */
.navstrip.is-stuck {
  background: rgba(248, 250, 252, 0.95) !important;
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 20px rgba(2,6,23,.12) !important;
}
.navstrip .navbar-nav .nav-link{
  white-space:nowrap;font-weight:500;
  padding:.9rem 0.75rem;        /* tăng chiều cao để “bằng” logo (cảm giác) */
}
.navstrip .navbar-nav .nav-link.active{color:#f97316;font-weight:700}

/* menu ở giữa + giãn thưa */
.nav-left{gap:var(--nav-gap)}
.navbar .navbar-collapse{align-items:center}

/* ===== Auth / Avatar ở HÀNG DƯỚI (bên phải) ===== */
.header-auth .btn{ padding:.35rem .9rem }
.header-auth .btn span:first-child {
    font-size: 0.9rem;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
    vertical-align: baseline;
    margin-top: 0.1rem;
    display: inline-block;
}
.avatar-chip{
  background:#ffffff;border:1px solid #e2e8f0;
  box-shadow:0 2px 8px rgba(2,6,23,.06);
  transition: none !important;
  transform: none !important;
  scale: 1 !important;
}

.avatar-chip:hover,
.avatar-chip:active,
.avatar-chip:focus,
.avatar-chip.show {
  transform: none !important;
  scale: 1 !important;
  box-shadow:0 2px 8px rgba(2,6,23,.06) !important;
}
.avatar-img{
  width:28px;height:28px;border-radius:50%;
  object-fit:cover;display:block;
  box-shadow:0 1px 2px rgba(2,6,23,.06);
}
.avatar-circle{
  width:28px;height:28px;border-radius:50%;
  background:#0d6efd;color:#fff;display:grid;place-items:center;
  font-weight:700;font-size:.8rem;letter-spacing:.01em;
  box-shadow:0 2px 10px rgba(13,110,253,.25);
}

/* ===================== ENHANCED DROPDOWN MENUS (MINIMAL) ===================== */
/* Giữ nguyên giao diện Bootstrap cơ bản, chỉ thêm hiệu ứng nhẹ */

/* Dropdown menu container - chỉ thêm shadow nhẹ */
.nav-item.dropdown .dropdown-menu {
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.1);
    animation: dropdownFadeIn 0.2s ease-out;
}

@keyframes dropdownFadeIn {
    0% {
        opacity: 0;
        transform: translateY(-5px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Dropdown items - giữ nguyên padding Bootstrap, chỉ thêm hover effect */
.nav-item.dropdown .dropdown-item {
    transition: all 0.2s ease;
    border-radius: 4px;
    margin: 2px 4px;
}

/* Hover effect nhẹ nhàng */
.nav-item.dropdown .dropdown-item:hover {
    background: #f8f9fa;
    color: #667eea;
    transform: translateX(3px);
}

/* Active state */
.nav-item.dropdown .dropdown-item.active {
    background: #667eea;
    color: white;
}

/* Dropdown toggle - chỉ thêm hover effect nhẹ */
.nav-item.dropdown .dropdown-toggle {
    transition: color 0.2s ease;
}

.nav-item.dropdown .dropdown-toggle:hover {
    color: #667eea !important;
}

/* Arrow animation */
.nav-item.dropdown .dropdown-toggle::after {
    transition: transform 0.2s ease;
}

.nav-item.dropdown.show .dropdown-toggle::after {
    transform: rotate(180deg);
}

/* ==========================================================================
   Sections – helpers
   ========================================================================== */
.section{padding:3rem 0; position:relative; z-index:3;}
.section-title{font-weight:700;letter-spacing:-.02em}
.section-subtitle{color:#6c757d;margin-bottom:1.5rem}

/* Cards / tiles */
.glass-strip{ margin-top: var(--hero-curve-gap) !important; position:relative; z-index:3; }
.glass-card{backdrop-filter:blur(8px);background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 40px rgba(2,6,23,.08);transition:.18s}
.glass-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(2,6,23,.12)}
.icon-badge{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#eff4ff}
.service-card{border:1px solid #eef2f7}
.service-card h5{font-weight:700}
.service-card .lead{font-size:.95rem;color:#6b7280}
.about-mosaic img{border-radius:14px}
.project-card{overflow:hidden;border-radius:16px;border:1px solid #eef2f7;transition:.18s}
.project-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(2,6,23,.12)}
.project-card img{transition:.25s}
.project-card:hover img{transform:scale(1.03)}

/* Logo đối tác – MẶC ĐỊNH có màu */
.partner-logo{
  max-height:60px;
  transition:transform .2s ease;
  filter:none;
  opacity:1;
}
.partner-logo:hover{ transform:scale(1.03) }

.cta-bar{border:1px solid #eef2f7;border-radius:18px;background:linear-gradient(180deg,#f9fbff,#fff);box-shadow:0 12px 40px rgba(2,6,23,.06)}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero-wrap{position:relative;z-index:0;overflow:visible;background:#fff;--arc-height:170px}
@media (min-width:1200px){.hero-wrap{--arc-height:190px}}
.hero-wrap.full-bleed{
  position:relative;
  left:50%; right:50%;
  width:100dvw;
  margin-left:-50dvw; margin-right:-50dvw;
  overflow-x: clip;
}
@supports not (width:100dvw){
  .hero-wrap.full-bleed{
    width:100vw;
    margin-left:-50vw; margin-right:-50vw;
  }
}


#mainHero{position:relative}
#mainHero .carousel-item{min-height:78vh;position:relative;overflow:hidden}
@media (min-width:1400px){#mainHero .carousel-item{min-height:86vh}}
@media (max-width:575.98px){#mainHero .carousel-item{min-height:72vh}}
#mainHero .carousel-inner{padding-bottom:0 !important}
.slide-bg{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;filter:saturate(1.12) contrast(1.06) brightness(1.1);z-index:0}
.slide-overlay{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;z-index:0;background:
  radial-gradient(1100px 600px at 85% 15%, rgba(120,200,255,.35), transparent 60%),
  radial-gradient(900px 520px at 12% 8%, rgba(180,140,255,.22), transparent 60%),
  linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.12));}
.kenburns{animation:kenburnsZoom 14s ease-in-out infinite alternate;transform-origin:center}
@keyframes kenburnsZoom{
  0%{transform:scale(1.05) translate3d(0,0,0)}
  100%{transform:scale(1.16) translate3d(-1.5%,-1.5%,0)}
}
.city-lights{position:absolute;inset:0;pointer-events:none;opacity:.6;mix-blend-mode:screen;z-index:0;background:
  repeating-linear-gradient(to right, rgba(55,155,255,.10) 0 2px, transparent 2px 6px),
  repeating-linear-gradient(to bottom, rgba(0,150,255,.07) 0 3px, transparent 3px 12px);animation:skylineSweep 16s linear infinite}
@keyframes skylineSweep{0%{background-position:0 0,0 0}100%{background-position:-600px 0,0 -320px}}
.tech-ring{position:absolute;filter:drop-shadow(0 12px 32px rgba(0,0,0,.35));opacity:.65;mix-blend-mode:screen;pointer-events:none;z-index:0}
.ring-1{width:520px;right:6%;top:10%;animation:ringSpin 40s linear infinite, ringFloat 8s ease-in-out infinite}
.ring-2{width:380px;right:18%;bottom:14%;animation:ringSpinReverse 32s linear infinite, ringFloat 7s ease-in-out infinite}
.ring-3{width:440px;left:10%;top:12%;animation:ringSpin 36s linear infinite, ringFloat 9s ease-in-out infinite}
.ring-4{width:400px;left:16%;bottom:10%;animation:ringSpinReverse 30s linear infinite, ringFloat 7.5s ease-in-out infinite}
@keyframes ringSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes ringSpinReverse{from{transform:rotate(360)}to{transform:rotate(0)}}
@keyframes ringFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
#mainHero .carousel-indicators [data-bs-target]{width:10px;height:10px;border-radius:50%;background:#cfe3ff;opacity:.8}
#mainHero .carousel-indicators .active{background:#0d6efd;opacity:1}
/* bóng nhẹ cho icon (giữ lại) */
#mainHero .carousel-control-prev-icon,#mainHero .carousel-control-next-icon{filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}

/* ===== FIX: mũi tên chuyển slide luôn hiện + nằm trên mọi overlay ===== */
#mainHero .carousel-control-prev,
#mainHero .carousel-control-next{
  width: clamp(48px, 6vw, 72px);
  opacity: 1 !important;
  z-index: 30;
}
#mainHero .carousel-control-prev-icon,
#mainHero .carousel-control-next-icon{
  display:inline-block;
  width:2.75rem;
  height:2.75rem;
  background-repeat:no-repeat;
  background-position:center;
  background-size:58% 58%;
  background-color:rgba(0,0,0,.28);
  border-radius:999px;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.35));
}
/* SVG riêng để không phụ thuộc background-image mặc định của Bootstrap */
#mainHero .carousel-control-prev-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3e%3cpath d='M10.5 2L4 8l6.5 6' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
}
#mainHero .carousel-control-next-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3e%3cpath d='M5.5 2L12 8l-6.5 6' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
}
/* đảm bảo tất cả lớp “trang trí” không chặn click */
.hero-wrap .slide-overlay,
.hero-wrap .city-lights,
.hero-wrap .tech-ring,
.hero-curve{
  pointer-events:none;
}

/* ===== Dots dưới vòm trắng (giống ảnh) ===== */
#mainHero .carousel-indicators{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
                   /* đẩy ra ngoài, nằm dưới vòm */
  gap:.35rem;
  margin:0;
  z-index:5;                    /* nổi trên vòm */
}
#mainHero .carousel-indicators [data-bs-target]{
  width:8px;
  height:8px;
  border-radius:50%;
  border:0;
  background:#555;             /* chấm xám */
  opacity:.9;
  box-shadow:0 1px 2px rgba(0,0,0,.15);
}
#mainHero .carousel-indicators .active{
  background:#1e6fff;          /* chấm active xanh */
  opacity:1;
  box-shadow:0 0 0 3px #fff, 0 1px 3px rgba(0,0,0,.2); /* viền trắng nổi bật */
}
@media (max-width:575.98px){
  #mainHero .carousel-indicators{ bottom:-20px; }
}

/* Vòm cong phía dưới hero */
.hero-curve{position:absolute;left:0;right:0;bottom:-1px;height:var(--arc-height);background:transparent;overflow:hidden;pointer-events:none;z-index:2}
.hero-curve svg{display:block;width:100%;height:100%;animation:curveBob 6s ease-in-out infinite;filter:drop-shadow(0 -8px 14px rgba(0,0,0,.18))}
@keyframes curveBob{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}

/* Waves (nếu dùng) */
.waves-anim{position:relative;height:var(--arc-height);margin-top:-1px;overflow:hidden;z-index:1;pointer-events:none}
.waves-anim .wave{position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);width:200%;height:100%;display:block}
.waves-anim .w1{animation:waveX 22s linear infinite, waveBob 6s ease-in-out infinite}
.waves-anim .w2{animation:waveX 32s linear infinite reverse, waveBob 7s ease-in-out infinite .2s}
.waves-anim .w3{animation:waveX 44s linear infinite, waveBob 8s ease-in-out infinite .4s}
@keyframes waveX{from{transform:translate(-50%,0)}to{transform:translate(-60%,0)}}
@keyframes waveBob{0%,100%{bottom:-1px}50%{bottom:2px}}

/* === Hiệu ứng động trên ĐƯỜNG CONG hero (shine + dash + sparkles) === */
.heroCurveSvg{ display:block; width:100%; height:100%; }
.curve-dash{
  stroke:rgba(255,255,255,.9);
  stroke-width:2;
  stroke-dasharray:60 420;
  animation:curveDash 7s linear infinite;
  opacity:.8;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.7));
}
@keyframes curveDash{ to{ stroke-dashoffset:-480; } }
/* Tôn trọng reduce-motion */
@media (prefers-reduced-motion:reduce){
  .curve-dash{ animation:none }
}

/* ==========================================================================
   FOOTER (mới)
   ========================================================================== */
.site-footer .footer-top{
  position:relative;
  color:#fff;
  background:#26495B;
  background-image:
    radial-gradient(1200px 600px at 70% -10%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.06));
}
.site-footer .footer-mini{background:#102733;color:#fff;border-top:1px solid rgba(255,255,255,.08)}

.footer-logo{
  width:72px;height:72px;border-radius:14px;object-fit:contain;
  background:#fff;padding:6px;box-shadow:0 6px 24px rgba(0,0,0,.18);
}
.site-footer .brand-title{font-weight:800;letter-spacing:.02em;line-height:1;color:#fff}
.site-footer .brand-sub{font-weight:800;letter-spacing:.02em;line-height:1;color:#fff}
.site-footer .brand-slogan{font-size:.78rem;color:rgba(255,255,255,.75);margin-top:.2rem}

/* Info list (địa chỉ/điện thoại/email) */
.footer-info .fi{
  width:24px;
  min-width:24px;
  height:24px;
  margin-right:0.75rem;
  margin-top:0.1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,0.15);
  border:1px solid rgba(255,255,255,0.2);
  transition:all 0.3s ease;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
}

.footer-info .fi::before{
  content:"";
  display:block;
  width:12px;
  height:12px;
  border-radius:2px;
  background:#fff;
  transition:all 0.3s ease;
  z-index:2;
  position:relative;
}

.footer-info .fi::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:linear-gradient(135deg, rgba(255,255,255,0.2), rgba(255,255,255,0.1));
  opacity:0;
  transition:opacity 0.3s ease;
  border-radius:50%;
}

.footer-info .fi:hover{
  transform:scale(1.1);
  background:rgba(255,255,255,0.25);
  box-shadow:0 2px 8px rgba(0,0,0,0.2);
  border-color:rgba(255,255,255,0.4);
}

.footer-info .fi:hover::before{
  transform:scale(1.1);
}

.footer-info .fi:hover::after{
  opacity:1;
}

.footer-info .fi.fi-pin::before{
  clip-path:polygon(50% 0,60% 20%,80% 40%,50% 100%,20% 40%,40% 20%);
  background:#fff;
}

.footer-info .fi.fi-phone::before{
  clip-path:polygon(15% 35%,25% 25%,45% 35%,60% 50%,70% 70%,60% 75%,50% 60%,40% 50%,25% 45%);
  background:#fff;
}

.footer-info .fi.fi-mail::before{
  clip-path:polygon(10% 25%,90% 25%,90% 75%,10% 75%,10% 25%,50% 55%,90% 25%);
  background:#fff;
}

.footer-info p{
  color:rgba(255,255,255,0.9);
  transition:color 0.3s ease;
}

.footer-info li:hover p{
  color:#fff;
}

/* Heading có gạch màu cam */
.footer-heading{
  position:relative;padding-top:.25rem;margin-bottom:.75rem;font-weight:800;
}
.footer-heading::after{
  content:"";display:block;width:72px;height:4px;margin-top:.35rem;
  background:#f97316;border-radius:2px;
}

/* Link list cột dịch vụ */
.footer-list{list-style:none;margin:0;padding:0}
.footer-list li{padding:.55rem 0;border-bottom:1px dashed rgba(255,255,255,.15)}
.footer-list li:last-child{border-bottom:none}
.footer-list a{color:rgba(255,255,255,.9);text-decoration:none}
.footer-list a:hover{color:#fff;text-decoration:underline}

/* Subscribe */
.footer-subscribe .input-group-text{
  background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2);
}
.footer-subscribe .form-control{
  background:rgba(255,255,255,.06); color:#fff; border:1px solid rgba(255,255,255,.2);
}
.footer-subscribe .form-control::placeholder{color:rgba(255,255,255,.8)}
.btn-send{
  background:#f97316;border-color:#f97316;color:#fff;
}
.btn-send:hover{filter:brightness(.95);color:#fff}

/* Social */
.footer-social{
  display:flex;
  gap:0.75rem;
  align-items:center;
}

.footer-social .social-btn{
  width:40px;
  height:40px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:2px solid transparent;
  transition:all 0.3s ease;
  font-size:1rem;
  position:relative;
  overflow:hidden;
  font-weight:600;
}

.footer-social .social-btn::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:linear-gradient(135deg, rgba(255,255,255,0.2), rgba(255,255,255,0.1));
  opacity:0;
  transition:all 0.3s ease;
  border-radius:50%;
}

.footer-social .social-btn::after{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  background:rgba(255,255,255,0.3);
  border-radius:50%;
  transform:translate(-50%, -50%);
  transition:all 0.6s ease;
}

.footer-social .social-btn:hover::before{
  opacity:1;
}

.footer-social .social-btn:hover::after{
  width:100%;
  height:100%;
  border-radius:50%;
}

.footer-social .social-btn:hover{
  transform:translateY(-2px) scale(1.1);
  box-shadow:0 4px 15px rgba(0,0,0,0.2);
  color:#fff;
  border-color:rgba(255,255,255,0.4);
}

.footer-social .social-btn:active{
  transform:translateY(-1px) scale(1.02);
  transition:all 0.1s ease;
}

.footer-social .social-btn i{
  position:relative;
  z-index:2;
  transition:all 0.3s ease;
}

.footer-social .social-btn:hover i{
  transform:scale(1.1);
  animation:pulse 0.6s ease-in-out;
}

.footer-social .fb{
  background:linear-gradient(135deg, #1877F2, #42a5f5);
  color:#fff;
  box-shadow:0 4px 15px rgba(24, 119, 242, 0.4);
  border-color:rgba(255,255,255,0.2);
}

.footer-social .yt{
  background:linear-gradient(135deg, #FF0000, #ff4444);
  color:#fff;
  box-shadow:0 4px 15px rgba(255, 0, 0, 0.4);
  border-color:rgba(255,255,255,0.2);
}

.footer-social .in{
  background:linear-gradient(135deg, #0A66C2, #42a5f5);
  color:#fff;
  box-shadow:0 4px 15px rgba(10, 102, 194, 0.4);
  border-color:rgba(255,255,255,0.2);
}

/* Special hover effects for footer social */
.footer-social .fb:hover{
  background:linear-gradient(135deg, #1877F2, #42a5f5, #64b5f6);
  animation:facebookGlow 2s ease-in-out infinite;
}

.footer-social .yt:hover{
  background:linear-gradient(135deg, #FF0000, #ff4444, #ff6666);
  animation:youtubeGlow 2s ease-in-out infinite;
}

.footer-social .in:hover{
  background:linear-gradient(135deg, #0A66C2, #42a5f5, #64b5f6);
  animation:linkedinGlow 2s ease-in-out infinite;
}

@keyframes youtubeGlow {
  0%, 100% { box-shadow: 0 8px 25px rgba(255, 0, 0, 0.3); }
  50% { box-shadow: 0 8px 25px rgba(255, 0, 0, 0.6); }
}

/* Links & text ở mini bar */
.site-footer .footer-link{color:rgba(255,255,255,.85);text-decoration:none}
.site-footer .footer-link:hover{color:#fff;text-decoration:underline}

/* ===== Contact Info Layout ===== */
.contact-item-header {
    display: flex;
    align-items: baseline;
    gap: 0.2rem;
}



.contact-text {
    font-size: 0.95rem;
    font-weight: 600;
    color: #2c3e50;
    line-height: 1.2;
}

.contact-link {
    text-decoration: none;
    color: #2c3e50;
    font-weight: 600;
}

.contact-link:hover {
    color: #007bff;
    text-decoration: none;
}

/* Footer contact alignment */
.footer-info li {
    display: flex;
    align-items: center;
    margin-bottom: 0.5rem;
}

.footer-info li .fi {
    margin-right: 0.75rem;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.footer-info li p {
    margin-bottom: 0;
    line-height: 1.4;
    vertical-align: middle;
}

/* ===== Floating Hotline ===== */
.hotline-float{
  position:fixed; left:18px; bottom:18px; z-index:900;
  display:flex; align-items:center; gap:.7rem;
  text-decoration:none; color:#fff;
  background:linear-gradient(180deg,#e11d2e,#b20d16);
  border-radius:999px; padding:.45rem .9rem .45rem .45rem;
  box-shadow:0 10px 28px rgba(176,13,22,.35), inset 0 1px 0 rgba(255,255,255,.15);
}
.hotline-float:hover{ filter:brightness(.98) }

/* icon tròn + hiệu ứng ripple */
.hl-icon{
  position:relative; width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center; background:linear-gradient(180deg,#ff4d5e,#e11d2e);
  box-shadow:0 6px 18px rgba(225,29,46,.45);
}
.hl-icon svg{ color:#fff; animation:hl-wiggle 1.2s ease-in-out infinite; transform-origin:50% 50% }

/* 2 vòng ripple */
.hl-icon::before, .hl-icon::after{
  content:""; position:absolute; inset:-6px; border-radius:50%;
  border:2px solid rgba(255,255,255,.55); opacity:.8;
  animation:hl-ring 1.8s ease-out infinite;
}
.hl-icon::after{ inset:-12px; opacity:.5; animation-delay:.6s }

/* text */
.hl-text{ display:flex; flex-direction:column; line-height:1.05 }
.hl-label{ font-weight:700; font-size:.9rem; opacity:.95 }
.hl-number{ font-weight:800; font-size:1.05rem; letter-spacing:.02em }

/* mobile: chỉ hiện icon để gọn */
@media (max-width:575.98px){
  .hotline-float{ padding:.45rem; }
  .hl-text{ display:none; }
}

/* tôn trọng người dùng giảm chuyển động */
@media (prefers-reduced-motion:reduce){
  .hl-icon::before,.hl-icon::after,.hl-icon svg{ animation:none }
}

/* animations */
@keyframes hl-ring{
  0%{ transform:scale(.6); opacity:.85 }
  70%{ transform:scale(1.15); opacity:.0 }
  100%{ transform:scale(1.25); opacity:0 }
}
@keyframes hl-wiggle{
  0%,100%{ transform:rotate(0) }
  20%{ transform:rotate(18deg) }
  40%{ transform:rotate(-14deg) }
  60%{ transform:rotate(10deg) }
  80%{ transform:rotate(-6deg) }
}

/* ===== Partners grid (final) ===== */
#partners{
  padding-top:4.5rem;            /* khoảng cách trên */
  padding-bottom:4.5rem;         /* khoảng cách dưới */
}
#partners .section-title{
  font-size:clamp(2.6rem, 6vw, 3.8rem);
  line-height:1.05;
  margin-bottom:2.25rem;
  font-weight:800;
}
#partners .col{
  display:flex;
  justify-content:center;
  align-items:center;
}
#partners .partner-logo{
  max-height:84px;
  height:auto;
  filter:none !important;
  opacity:1 !important;
  transition:transform .2s ease;
}
#partners .partner-logo:hover{ transform:scale(1.03); }
@media (max-width:575.98px){
  #partners .section-title{ font-size:2.2rem; }
  #partners .partner-logo{ max-height:64px; }
}
@media (min-width:992px){
  #partners .partner-logo{ max-height:96px; }
}

/* ===== News: đẹp & đồng nhất ảnh ===== */
:root{
  --news-thumb-sm: 190px;
  --news-thumb-md: 210px;
  --news-thumb-lg: 230px;
}
.news-card{
  border-radius:16px;
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
  background:#fff;
}
.news-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 48px rgba(2,6,23,.12);
}
.news-card .news-thumb{
  display:block;
  width:100%;
  height:var(--news-thumb-sm);
  object-fit:cover;
}
@media (min-width:768px){
  .news-card .news-thumb{ height:var(--news-thumb-md); }
}
@media (min-width:1200px){
  .news-card .news-thumb{ height:var(--news-thumb-lg); }
}
.news-title{ font-weight:700; line-height:1.25; margin-bottom:.35rem; }
.news-desc{ color:#6b7280; margin-bottom:.75rem; }
.clamp-2{ display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.clamp-3{ display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.news-meta{ display:flex; flex-wrap:wrap; gap:.35rem; color:#64748b; }
.news-meta .chip{
  background:#f1f5f9; color:#334155;
  border:1px solid #e2e8f0;
  padding:.15rem .5rem; border-radius:999px;
}

/* Fix curve dash fill = none để không bị mảng đen */
.hero-curve .curve-dash{
  fill: none !important;
  stroke: rgba(255,255,255,.9);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  stroke-dasharray: 60 420;
  animation: curveDash 7s linear infinite;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.55));
}
/* Đảm bảo phần nền cong vẫn trắng */
.hero-curve .curve-fill{ fill:#fff !important; }

/* ===== About page ===== */
.page-hero{
  background: radial-gradient(1200px 420px at 60% -10%, rgba(255,255,255,.08), transparent 60%),
              linear-gradient(180deg,#0b3a5b,#103e63 60%, #0b3a5b);
  color:#fff;
  padding: 2.25rem 0;
  border-bottom: 4px solid #0d3a58;
}
.page-hero-title{
  font-weight:800;
  letter-spacing:.01em;
  font-size: clamp(1.4rem, 3vw, 1.85rem);
  margin: .25rem 0 0 0;
}

.about-list{ margin: .25rem 0 1rem 0; }
.about-list li{ margin-bottom:.35rem; }

.about-card{
  overflow:hidden;
  border-radius:14px;
  box-shadow:0 8px 28px rgba(2,6,23,.08);
  background:#fff;
}
.about-card-thumb{
  width:100%;
  height:210px;
  object-fit:cover;
}
@media (min-width:768px){
  .about-card-thumb{ height:230px; }
}

.about-figure img{ border-radius:12px; }

/* ===== Org Chart (simple & responsive) ===== */
.org-row{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem;
  margin-bottom:.6rem;
}
.org-node{
  background:linear-gradient(180deg,#0ea5e9,#0284c7);
  color:#fff; border-radius:14px; padding:.55rem .9rem; font-weight:700;
  box-shadow:0 10px 24px rgba(2,132,199,.25);
}
.org-node.org-head{
  background:linear-gradient(180deg,#2563eb,#1d4ed8);
}
.org-node.sm{ font-weight:600; background:linear-gradient(180deg,#22c55e,#16a34a); }
.org-node.xs{ font-weight:600; background:linear-gradient(180deg,#60a5fa,#3b82f6); }

.org-connector{
  height:16px; width:100%;
  background: radial-gradient(circle at 50% 50%, rgba(2,6,23,.08), transparent 50%);
  margin: 4px 0 6px 0;
}

/* ===== ABOUT: mosaic 2 trái + 1 dọc phải ===== */
.mosaic-3{
  --gap: 14px;
  --left-ratio: 16/10;   /* hai ảnh ngang bên trái */
  --right-ratio: 9/16;   /* ảnh dọc bên phải */
  display: grid;
  gap: var(--gap);
}
.mosaic-3 .tile{
  width: 100%;
  display: block;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
  background: #f3f6f9; /* tránh nháy trắng */
  object-fit: cover;
}
.mosaic-3 .h{ aspect-ratio: var(--left-ratio); }
.mosaic-3 .v{ aspect-ratio: var(--right-ratio); }

/* Desktop: chia 2 cột (7/5), ảnh phải cao bằng 2 ảnh trái */
@media (min-width: 992px){
  .mosaic-3{
    grid-template-columns: 7fr 5fr;
    grid-template-rows: auto auto;
    align-items: stretch;
  }
  .mosaic-3 .h-top   { grid-column: 1; grid-row: 1; height: 100%; }
  .mosaic-3 .h-bottom{ grid-column: 1; grid-row: 2; height: 100%; }
  .mosaic-3 .v       { grid-column: 2; grid-row: 1 / span 2; height: 100%; }
}

/* ============== Layout giữ nguyên ============== */
.carousel .carousel-item{ position:relative; overflow:hidden; }
.wheel-split{
  position:absolute; inset:0;
  display:grid; grid-template-columns:1fr 1fr; align-items:center; justify-items:center;
  gap:clamp(25px,4vw,50px); pointer-events:none;
}
.wu-core{
  position:relative;
  --size: clamp(480px, 42vw, 620px);
  width:var(--size); aspect-ratio:1/1; transform-style:preserve-3d;
  filter: drop-shadow(0 0 24px rgba(110,231,255,.12));
  transform: perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition: transform .35s cubic-bezier(.2,.7,.2,1);
  animation: wheelFloat 8s ease-in-out infinite, wheelGlow 6s ease-in-out infinite alternate;
}

/* Thêm hiệu ứng bên ngoài wheel */
.wu-core::before,
.wu-core::after{
  content: "";
  position: absolute;
  inset: -15px;
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
}

.wu-core::before{
  background: 
    radial-gradient(circle at 30% 30%, rgba(167,139,250,.25), transparent 60%),
    radial-gradient(circle at 70% 70%, rgba(110,231,255,.25), transparent 60%);
  filter: blur(20px);
  animation: outer-glow 10s ease-in-out infinite alternate;
}

.wu-core::after{
  border: 4px solid rgba(110,231,255,.2);
  animation: outer-ring 8s ease-in-out infinite;
}

@keyframes wheelFloat {
  0%, 100% { transform: perspective(1100px) rotateX(0deg) rotateY(0deg) translateY(0px); }
  50% { transform: perspective(1100px) rotateX(2deg) rotateY(1deg) translateY(-8px); }
}

@keyframes wheelGlow {
  0% { filter: drop-shadow(0 0 24px rgba(110,231,255,.12)) drop-shadow(0 0 40px rgba(167,139,250,.08)); }
  100% { filter: drop-shadow(0 0 32px rgba(110,231,255,.18)) drop-shadow(0 0 56px rgba(167,139,250,.15)); }
}

@keyframes outer-glow {
  0% { 
    opacity: 0.5; 
    transform: scale(1) rotate(0deg);
    background: 
      radial-gradient(circle at 30% 30%, rgba(167,139,250,.25), transparent 60%),
      radial-gradient(circle at 70% 70%, rgba(110,231,255,.25), transparent 60%);
  }
  100% { 
    opacity: 1; 
    transform: scale(1.08) rotate(180deg);
    background: 
      radial-gradient(circle at 70% 70%, rgba(167,139,250,.3), transparent 60%),
      radial-gradient(circle at 30% 30%, rgba(110,231,255,.3), transparent 60%);
  }
}

@keyframes outer-ring {
  0%, 100% { 
    transform: scale(1); 
    border-color: rgba(110,231,255,.2);
    opacity: 0.7;
  }
  50% { 
    transform: scale(1.1); 
    border-color: rgba(167,139,250,.3);
    opacity: 1;
  }
}

/* ============== Nền & aurora (rất nhẹ, không che chữ) ============== */
.slide-overlay::after{
  content:""; position:absolute; inset:-8%; pointer-events:none;
  background:
    radial-gradient(70% 35% at 25% 22%, rgba(110,231,255,.08), transparent 60%),
    radial-gradient(60% 40% at 75% 68%, rgba(167,139,250,.08), transparent 58%),
    radial-gradient(50% 30% at 10% 80%, rgba(236,72,153,.05), transparent 70%),
    radial-gradient(40% 35% at 90% 15%, rgba(34,197,94,.04), transparent 65%);
  animation: bg-float 18s ease-in-out infinite alternate, bg-pulse 12s ease-in-out infinite;
  filter: blur(1.2px);
}

@keyframes bg-float{ 
  0%{transform:translate3d(-16px,-4px,0) scale(1)} 
  100%{transform:translate3d(16px,4px,0) scale(1.02)} 
}

@keyframes bg-pulse{
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1.2; }
}

.wu-aurora{
  position:absolute; inset:-6%; border-radius:50%;
  background:
    radial-gradient(70% 60% at 40% 38%, rgba(167,139,250,.15), transparent 60%),
    radial-gradient(60% 60% at 60% 62%, rgba(110,231,255,.15), transparent 58%),
    radial-gradient(50% 50% at 20% 80%, rgba(236,72,153,.08), transparent 70%),
    radial-gradient(40% 40% at 80% 20%, rgba(34,197,94,.06), transparent 65%);
  filter: blur(16px);
  animation: aur-move 12s ease-in-out infinite alternate, aur-pulse 8s ease-in-out infinite;
}

@keyframes aur-move{ 
  0%{transform:translate3d(-6px,-4px,0) scale(1)} 
  100%{transform:translate3d(6px,4px,0) scale(1.05)} 
}

@keyframes aur-pulse{
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1.2; }
}

/* ============== Vòng sáng ============== */
.wheel-ultra{ width:100%; height:100% }
.ring-title{
  font: 900 12px/1 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial;
  letter-spacing:.1em; fill:rgba(255,255,255,.96);
  stroke:rgba(15,22,32,.55); stroke-width:.8; paint-order:stroke fill; text-transform:uppercase;
}
.ring-sheen{
  animation: ring-dash 12s linear infinite, ring-pulse 4s ease-in-out infinite;
  opacity:.85; stroke-linecap:round; stroke-dasharray:80 920;
  filter: drop-shadow(0 0 8px rgba(110,231,255,.3));
}

@keyframes ring-dash{ from{ stroke-dashoffset:0 } to{ stroke-dashoffset:-1000 } }

@keyframes ring-pulse{
  0%, 100% { stroke-width: 26; opacity: 0.85; }
  50% { stroke-width: 28; opacity: 1; }
}

/* ============== Logo & pulse (mềm) ============== */
.wu-logo{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width: calc(var(--size)*.24); height: calc(var(--size)*.24); border-radius:50%;
  background: 
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.15), rgba(255,255,255,0) 60%), 
    radial-gradient(circle at 30% 30%, rgba(167,139,250,.1), transparent 50%),
    radial-gradient(circle at 70% 70%, rgba(110,231,255,.1), transparent 50%),
    rgba(7,12,20,.55);
  padding: clamp(12px,1.6vw,20px);
  box-shadow: 
    0 16px 36px rgba(0,0,0,.34), 
    0 0 0 12px rgba(0,0,0,.16) inset,
    0 0 40px rgba(167,139,250,.26), 
    0 0 34px rgba(110,231,255,.18),
    0 0 60px rgba(236,72,153,.12);
  animation: logo-glow 6s ease-in-out infinite alternate;
  pointer-events:auto;
}

@keyframes logo-glow{
  0%  { 
    filter: brightness(1) drop-shadow(0 0 6px rgba(110,231,255,.22)) drop-shadow(0 0 12px rgba(167,139,250,.15)); 
  }
  100%{ 
    filter: brightness(1.08) drop-shadow(0 0 10px rgba(167,139,250,.24)) drop-shadow(0 0 18px rgba(110,231,255,.18)); 
  }
}


.wu-pulse{
  position:absolute; left:50%; top:50%; translate:-50% -50%;
  width: calc(var(--size)*.32); aspect-ratio:1/1; border-radius:50%;
  border:2px solid rgba(110,231,255,.22); filter: blur(.6px);
  animation: pulse 3.2s ease-out infinite, pulse-color 4s ease-in-out infinite;
}

.wu-pulse::before{
  content: "";
  position: absolute;
  inset: -4px;
  border: 1px solid rgba(167,139,250,.3);
  border-radius: 50%;
  animation: pulse-outer 4.5s ease-out infinite;
}

@keyframes pulse{ 
  0%{opacity:.35; transform:scale(.82)} 
  80%,100%{opacity:0; transform:scale(1.12)} 
}

@keyframes pulse-color{
  0%, 100% { border-color: rgba(110,231,255,.22); }
  25% { border-color: rgba(167,139,250,.25); }
  50% { border-color: rgba(236,72,153,.2); }
  75% { border-color: rgba(34,197,94,.18); }
}

@keyframes pulse-outer{
  0%{opacity:.6; transform:scale(.8)}
  100%{opacity:0; transform:scale(1.3)}
}

/* ============== Twinkles (rất nhẹ) ============== */
.wu-twinkles{ position:absolute; inset:0; pointer-events:none }
.wu-twinkles i{
  position:absolute; width:4px; height:4px; border-radius:50%;
  background: radial-gradient(circle, #fff 0 40%, #6ee7ff 45% 70%, transparent 75%);
  box-shadow: 0 0 6px rgba(110,231,255,.4);
  left:var(--x); top:var(--y); opacity:.6;
  animation: twinkle var(--d,4s) cubic-bezier(.3,.7,.3,1) infinite alternate, twinkle-color 6s ease-in-out infinite;
}

.wu-twinkles i::before{
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(167,139,250,.3), transparent 70%);
  animation: twinkle-halo 3s ease-in-out infinite;
}

@keyframes twinkle{ 
  0%{ transform:scale(.6); opacity:.25 } 
  100%{ transform:scale(1.0); opacity:.7 } 
}

@keyframes twinkle-color{
  0%, 100% { background: radial-gradient(circle, #fff 0 40%, #6ee7ff 45% 70%, transparent 75%); }
  33% { background: radial-gradient(circle, #fff 0 40%, #a78bfa 45% 70%, transparent 75%); }
  66% { background: radial-gradient(circle, #fff 0 40%, #ec4899 45% 70%, transparent 75%); }
}

@keyframes twinkle-halo{
  0%, 100% { opacity: 0; transform: scale(0.8); }
  50% { opacity: 0.6; transform: scale(1.2); }
}

/* ============== CHIP – ƯU TIÊN ĐỌC RÕ ============== */
.ring-chips{ position:absolute; inset:0; list-style:none; margin:0; padding:0; pointer-events:none; }
.ring-chips li{ position:absolute; left:50%; top:50%; translate:-50% -50%; }
.ring-chips .chip{
  display:inline-block; text-align:center;
  font-weight:700; line-height:1.3; font-size:.9rem; letter-spacing:.01em;
  color:#0f1620; 
  background: linear-gradient(135deg, #fffffff8 0%, #f8fafc 100%);
  border:1px solid #e6eef5; border-radius:12px;
  padding:.5rem .7rem;
  box-shadow: 
    0 4px 14px rgba(15,23,42,.14), 
    0 0 0 1px rgba(15,23,42,.03) inset,
    0 0 20px rgba(110,231,255,.08);
  white-space:normal; word-break:break-word; hyphens:auto; pointer-events:auto;
  position:relative; overflow:hidden;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  max-width: var(--chip-width, 140px);
  backdrop-filter: blur(8px);
  cursor: pointer;
  animation: chip-float 6s ease-in-out infinite;
}
/* halo cực mỏng phía sau để nổi card trên nền sáng */
.ring-chips .chip::after{
  content:""; position:absolute; inset:-8px; border-radius:inherit; z-index:-1;
  box-shadow: 0 14px 24px rgba(15,23,42,.20);
  opacity:.0; transition:opacity .25s ease;
}

@keyframes chip-float{
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-2px); }
}
/* sheen nhỏ trên mặt chip khi hover (nhưng không chói) */
.ring-chips .chip::before{
  content:""; position:absolute; inset:-25%;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.6) 50%, transparent 60%);
  transform: translateX(-140%) rotate(8deg);
  transition: transform .7s ease; pointer-events:none;
}
.ring-chips .chip:hover::before{ transform: translateX(140%) rotate(8deg); }
.ring-chips .chip:hover{
  transform: translateY(-3px) scale(1.02);
  box-shadow: 
    0 12px 22px rgba(15,23,42,.20), 
    0 0 0 1px rgba(15,23,42,.06) inset,
    0 0 30px rgba(110,231,255,.15),
    0 0 40px rgba(167,139,250,.1);
  background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
  border-color: rgba(110,231,255,.3);
}
.ring-chips .chip:hover::after{ opacity:.22 }

/* Đặt quanh vòng – chữ luôn đứng thẳng và không bị chồng */
.ring-chips li{
  transform:
    rotate(calc(var(--start,0deg) + (var(--k) * 360deg / var(--N))))
    translate(calc(var(--size)/2 - 45px))
    rotate(calc(-1 * (var(--start,0deg) + (var(--k) * 360deg / var(--N)))));
}

/* Kích thước theo nhóm nội dung - tối ưu để không bị chồng */
.wheel-left  .ring-chips.short .chip{ 
  --chip-width: 100px; 
  font-size: .65rem;
  padding: .25rem .4rem;
  line-height: 1.1;
}
.wheel-right .ring-chips.long  .chip{ 
  --chip-width: 140px; 
  font-size: .62rem;
  padding: .2rem .35rem;
  line-height: 1.15;
}

/* Tối ưu khoảng cách cho từng wheel - xen kẽ để tránh chồng */
.wheel-left .ring-chips.short li:nth-child(odd) {
  transform:
    rotate(calc(var(--start,0deg) + (var(--k) * 360deg / var(--N))))
    translate(calc(var(--size)/2 - 42px))
    rotate(calc(-1 * (var(--start,0deg) + (var(--k) * 360deg / var(--N)))));
}

.wheel-left .ring-chips.short li:nth-child(even) {
  transform:
    rotate(calc(var(--start,0deg) + (var(--k) * 360deg / var(--N))))
    translate(calc(var(--size)/2 - 48px))
    rotate(calc(-1 * (var(--start,0deg) + (var(--k) * 360deg / var(--N)))));
}

.wheel-right .ring-chips.long li:nth-child(odd) {
  transform:
    rotate(calc(var(--start,0deg) + (var(--k) * 360deg / var(--N))))
    translate(calc(var(--size)/2 - 40px))
    rotate(calc(-1 * (var(--start,0deg) + (var(--k) * 360deg / var(--N)))));
}

.wheel-right .ring-chips.long li:nth-child(even) {
  transform:
    rotate(calc(var(--start,0deg) + (var(--k) * 360deg / var(--N))))
    translate(calc(var(--size)/2 - 46px))
    rotate(calc(-1 * (var(--start,0deg) + (var(--k) * 360deg / var(--N)))));
}

/* Thêm hiệu ứng hover đẹp hơn */
.ring-chips .chip{
  position: relative;
  overflow: hidden;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  transform-origin: center;
}

.ring-chips .chip::before{
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  transition: left .6s ease;
}

.ring-chips .chip:hover::before{
  left: 100%;
}

.ring-chips .chip:hover{
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 8px 25px rgba(15,23,42,.25), 0 0 0 1px rgba(15,23,42,.08) inset;
  filter: brightness(1.1);
}

/* Hiệu ứng ripple khi click */
.ring-chips .chip:active{
  transform: translateY(-2px) scale(1.02);
  transition: all .1s ease;
}

/* Tôn trọng người dùng muốn giảm chuyển động */
@media (prefers-reduced-motion: reduce) {
  .ring-sheen, .wu-aurora, .wu-pulse, .wu-twinkles i,
  .ring-chips .chip::before, .wu-logo, .wu-core, .ring-chips .chip { animation: none !important }
}

/* Thêm hiệu ứng particle floating */
.wheel-split::before{
  content: "";
  position: absolute;
  inset: -10%;
  background-image: 
    radial-gradient(2px 2px at 20% 30%, rgba(110,231,255,.6), transparent 50%),
    radial-gradient(2px 2px at 80% 70%, rgba(167,139,250,.6), transparent 50%),
    radial-gradient(1px 1px at 40% 80%, rgba(236,72,153,.4), transparent 50%),
    radial-gradient(1px 1px at 60% 20%, rgba(34,197,94,.4), transparent 50%);
  background-repeat: no-repeat;
  animation: particle-float 20s linear infinite;
  pointer-events: none;
}

@keyframes particle-float{
  0% { background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%; }
  100% { background-position: 100% 100%, -100% -100%, 50% -50%, -50% 50%; }
}

/* Ẩn hai bánh ở màn nhỏ (tuỳ bạn giữ/ẩn) */
@media (max-width: 991.98px){
  .wheel-split{ display:none; }
}

/* Responsive cho màn hình trung bình */
@media (max-width: 1200px) {
  .wu-core {
    --size: clamp(340px, 32vw, 440px);
  }
  .ring-chips .chip {
    font-size: .65rem;
    padding: .25rem .4rem;
  }
  .wheel-left .ring-chips.short .chip { --chip-width: 100px; }
  .wheel-right .ring-chips.long .chip { --chip-width: 130px; }
}

/* Responsive cho màn hình nhỏ */
@media (max-width: 1400px) {
  .wheel-split {
    gap: clamp(20px, 3vw, 35px);
  }
  .wu-core {
    --size: clamp(360px, 34vw, 460px);
  }
}

/* Responsive cho màn hình rất nhỏ */
@media (max-width: 1600px) {
  .wheel-split {
    gap: clamp(18px, 2.5vw, 30px);
  }
  .wu-core {
    --size: clamp(380px, 36vw, 480px);
  }
}

/* Responsive cho transition cards */
@media (max-width: 768px) {
    .transition-card {
        padding: 1.5rem;
    }
    
    .transition-icon {
        width: 60px;
        height: 60px;
    }
    
    .transition-card h4 {
        font-size: 1.1rem;
    }
    
    .transition-card p {
        font-size: 0.9rem;
    }
}

/* ===================== DEVICE CARDS ===================== */
.device-card {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.device-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}

.device-image {
    position: relative;
    height: 200px;
    overflow: hidden;
}

.device-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.device-card:hover .device-image img {
    transform: scale(1.05);
}

.device-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(0,0,0,0.1), transparent);
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 1rem;
}

.device-badge {
    background: linear-gradient(45deg, #667eea, #764ba2);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
}

.device-content {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.device-actions {
    margin-top: auto;
    padding-top: 1rem;
}

.device-content h4 {
    margin-bottom: 0.75rem;
    color: #333;
}

.device-specs {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.device-specs li {
    padding: 0.25rem 0;
    font-size: 0.9rem;
}

.device-status {
    font-size: 0.75rem;
}

/* ===================== JOB CARDS ===================== */
/* Job card layout - Force stable 2x2 grid */
.job-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid #e9ecef;
    border-left: 4px solid #667eea;
    border-radius: 15px;
    padding: 1.75rem;
    background: white;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    min-height: 500px;
}

/* Full width job cards layout */
.job-cards-full-width {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.job-card-full {
    width: 100%;
}

.job-card {
    min-height: 500px;
}

.job-card .card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.job-actions {
    margin-top: auto;
}

/* Requirements Section Styling */
.requirements-section {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    padding: 1.25rem;
    border-left: 4px solid #007bff;
    margin-top: 1rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.requirements-header {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #dee2e6;
}

.requirements-content {
    color: #495057;
    line-height: 1.6;
    font-size: 0.95rem;
}

.requirements-content ul {
    margin: 0;
    padding-left: 1.2rem;
}

.requirements-content li {
    margin-bottom: 0.5rem;
    position: relative;
}

.requirements-content li::marker {
    color: #007bff;
    font-weight: bold;
}

/* Job Meta Badges Enhancement */
.job-meta .badge {
    font-size: 0.85rem;
    font-weight: 500;
    border-radius: 20px;
    transition: all 0.3s ease;
}

.job-meta .badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Job Title Enhancement */
.job-title {
    background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 700;
    letter-spacing: -0.5px;
}

/* Job Summary Enhancement */
.job-summary {
    background: linear-gradient(135deg, #6c757d 0%, #495057 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 400;
    line-height: 1.5;
}

.job-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}

.job-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.job-type {
    font-size: 0.75rem;
}

.job-location {
    font-size: 0.875rem;
}

.job-title {
    color: #333;
    margin-bottom: 0.75rem;
}

.job-summary {
    color: #666;
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.requirements-list {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 1.5rem 0;
}

.requirements-list li {
    padding: 0.25rem 0;
    color: #666;
    font-size: 0.9rem;
    position: relative;
    padding-left: 1rem;
}

.requirements-list li:before {
    content: "\2022";
    position: absolute;
    left: 0;
    color: #667eea;
    font-weight: bold;
}

.benefits-tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin: 0.5rem 0 1.5rem 0;
}

.benefit-tag {
    background: #f8f9fa;
    color: #667eea;
    padding: 0.25rem 0.75rem;
    border-radius: 15px;
    font-size: 0.8rem;
    font-weight: 500;
}

.job-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.job-description {
    flex-grow: 1;
    margin-bottom: 1.5rem;
}

.job-actions {
    margin-top: auto;
    display: flex;
    gap: 1rem;
    padding-top: 1rem;
}

.job-actions .btn {
    flex: 1;
}

/* ===================== PRICING CARDS ===================== */
.pricing-card {
    background: white;
    border-radius: 16px;
    padding: 1.75rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    height: 100%;
    position: relative;
    border: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.pricing-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}

.pricing-card.featured {
    border-color: #3b82f6;
    border-width: 2px;
    box-shadow: 0 10px 40px rgba(59, 130, 246, 0.15);
}

.pricing-card.featured:hover {
    transform: scale(1.05) translateY(-5px);
}

/* Enhanced pricing card structure */
.pricing-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.pricing-features {
    flex-grow: 1;
    margin: 1.5rem 0;
}

.pricing-features ul, 
.pricing-features .features-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pricing-features li {
    padding: 0.625rem 0;
    color: #475569;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    line-height: 1.4;
}

.pricing-features li i {
    width: 18px;
    text-align: center;
    margin-right: 0.5rem;
    flex-shrink: 0;
}

.pricing-features li i.fa-check {
    color: #10b981;
}

.pricing-features li i.fa-times {
    color: #94a3b8;
}

.pricing-action {
    margin-top: auto;
    padding-top: 1.5rem;
}

/* Enhanced pricing badge */
.pricing-badge {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, #3b82f6, #6366f1);
    color: white;
    padding: 0.4rem 1.2rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
    z-index: 10;
    white-space: nowrap;
}

.pricing-header {
    text-align: center;
    margin-bottom: 1.5rem;
    padding-top: 0.5rem;
}

.pricing-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1e293b;
    margin-bottom: 1rem;
}

.pricing-price {
    margin-bottom: 0;
}

.price-amount {
    font-size: 2rem;
    font-weight: 700;
    color: #3b82f6;
    display: block;
    line-height: 1;
}

.price-period {
    font-size: 0.875rem;
    color: #64748b;
    font-weight: 500;
}

.pricing-badge {
    background: #f8f9fa;
    color: #667eea;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    display: inline-block;
    margin-bottom: 1rem;
}

.featured-badge {
    background: linear-gradient(45deg, #667eea, #764ba2);
    color: white;
}

.pricing-title {
    color: #333;
    margin-bottom: 1rem;
}

.pricing-price {
    margin-bottom: 1.5rem;
}

.price-amount {
    font-size: 2.5rem;
    font-weight: bold;
    color: #667eea;
    display: block;
}

.price-period {
    font-size: 0.9rem;
    color: #666;
}

.features-list {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem 0;
}

.features-list li {
    padding: 0.75rem 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.9rem;
}

.features-list li:last-child {
    border-bottom: none;
}

.pricing-action .btn {
    font-weight: 600;
    transition: all 0.3s ease;
}

.pricing-action .btn:hover {
    transform: translateY(-2px);
}

/* ===================== CONTACT SECTION ===================== */
.contact-map iframe {
    width: 100%;
    height: 400px;
    border-radius: 12px;
}

.contact-card {
    background: white;
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    margin-bottom: 1.5rem;
}

.contact-title {
    color: #333;
    font-size: 1.25rem;
}

.contact-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #f0f0f0;
}

.contact-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}


.contact-details h6 {
    color: #333;
    margin-bottom: 0.25rem;
    font-weight: 600;
}

.contact-details p {
    color: #666;
    margin: 0;
    line-height: 1.5;
}

.contact-form {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 1.5rem;
}

.contact-form .form-control {
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    padding: 0.75rem 1rem;
}

.contact-form .form-control:focus {
    border-color: #667eea;
    box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
}

/* ===================== RESPONSIVE STYLES ===================== */
@media (max-width: 768px) {
    .device-card, .job-card, .pricing-card {
        margin-bottom: 1.5rem;
    }
    
    .job-actions {
        flex-direction: column;
    }
    
    .pricing-card.featured {
        transform: none;
    }
    
    .pricing-card.featured:hover {
        transform: translateY(-5px);
    }
    
    .contact-item {
        align-items: center;
    }
    
    .contact-details h6 {
        font-size: 0.9rem;
    }
    
    .contact-details p {
        font-size: 0.85rem;
    }
}

/* ===================== HERO SECTIONS FOR PAGES ===================== */
.devices-hero, .careers-hero, .pricing-hero, .contact-hero, .news-hero {
    position: relative;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    overflow: hidden;
}

/* Specific hero backgrounds for each page */
.devices-hero {
    background-color: #667eea;
    background-image: linear-gradient(135deg, rgba(102, 126, 234, 0.85), rgba(118, 75, 162, 0.85)), 
                      url('../img/about/datacenter.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.careers-hero {
    background-color: #3498db;
    background-image: linear-gradient(135deg, rgba(52, 152, 219, 0.85), rgba(155, 89, 182, 0.85)),
                      url('../img/about/smart-city.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.pricing-hero {
    background-color: #2ecc71;
    background-image: linear-gradient(135deg, rgba(46, 204, 113, 0.85), rgba(39, 174, 96, 0.85)),
                      url('../img/about/gis-network.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.contact-hero {
    background-color: #e67e22;
    background-image: linear-gradient(135deg, rgba(230, 126, 34, 0.75), rgba(231, 76, 60, 0.75)),
                      url('../media/quoc_huy.jpg');
    background-size: cover;
    background-position: center 45%;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.news-hero {
    background-color: #8e44ad;
    background-image: linear-gradient(135deg, rgba(142, 68, 173, 0.85), rgba(74, 144, 226, 0.85)),
                      url('../img/hero/hero-1.jpg');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.devices-bg, .careers-bg, .pricing-bg, .contact-bg, .news-bg {
    position: relative;
    min-height: 25vh;
    display: flex;
    align-items: center;
    padding: 3.5rem 0;
}

.devices-overlay, .careers-overlay, .pricing-overlay, .contact-overlay, .news-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.3);
    z-index: 1;
}

.devices-content, .careers-content, .pricing-content, .contact-content, .news-content {
    animation: fadeInUp 1s ease-out;
}

/* Floating elements for hero sections */
.floating-elements {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.floating-icon {
    position: absolute;
    color: rgba(255, 255, 255, 0.1);
    animation: float 6s ease-in-out infinite;
}

.floating-icon:nth-child(1) { top: 20%; left: 10%; animation-delay: 0s; }
.floating-icon:nth-child(2) { top: 30%; right: 15%; animation-delay: 1s; }
.floating-icon:nth-child(3) { bottom: 25%; left: 20%; animation-delay: 2s; }
.floating-icon:nth-child(4) { bottom: 35%; right: 10%; animation-delay: 3s; }
.floating-icon:nth-child(5) { top: 60%; left: 50%; animation-delay: 4s; }

@keyframes float {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    33% { transform: translateY(-20px) rotate(5deg); }
    66% { transform: translateY(-10px) rotate(-5deg); }
}

/* Stats overlay */
.stats-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(10px);
    padding: 1.25rem 0;
    z-index: 1;
}

.stat-item {
    text-align: center;
    color: white;
}

.stat-number {
    font-size: 2rem;
    font-weight: bold;
    display: block;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}

.stat-label {
    font-size: 0.85rem;
    opacity: 0.9;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Hero buttons styling */
.hero-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.hero-buttons .btn {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 50px;
    padding: 0.875rem 2rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.hero-buttons .btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

.hero-buttons .btn-light:hover {
    background: rgba(255,255,255,0.95);
    color: #333;
}

.hero-buttons .btn-outline-light:hover {
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.5);
}

/* Enhanced eyebrow styling */
.eyebrow {
    display: inline-flex;
    align-items: center;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 0.5rem 1.5rem;
    background: rgba(255,255,255,0.15);
    border-radius: 25px;
    backdrop-filter: blur(15px);
    border: 1px solid rgba(255,255,255,0.3);
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
}

/* Page frame improvements */
.section {
    position: relative;
    overflow: hidden;
}

.section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 0;
    background: transparent;
}

/* Card enhancements */
.device-card, .job-card, .pricing-card, .contact-info, .news-card {
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    background: white;
    position: relative;

}

.device-card::before, .job-card::before, .pricing-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #667eea, #764ba2);
}

.device-card:hover, .job-card:hover, .pricing-card:hover, .news-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}

/* Content wrapper improvements */
.container {
    position: relative;
    z-index: 5;
}

/* Hero content depth */
.devices-content, .careers-content, .pricing-content, .contact-content, .news-content {
    position: relative;
    z-index: 10;
    text-shadow: 2px 4px 8px rgba(0,0,0,0.3);
}

/* Hero styling with more space */
.devices-content h1, .careers-content h1, .pricing-content h1, 
.contact-content h1, .news-content h1 {
    font-size: 2.75rem !important;
    line-height: 1.2;
    margin-bottom: 1.25rem !important;
}

.devices-content p, .careers-content p, .pricing-content p, 
.contact-content p, .news-content p {
    font-size: 1.1rem !important;
    margin-bottom: 2rem !important;
    line-height: 1.6;
}

.hero-buttons {
    margin-top: 1.25rem !important;
    position: relative;
    z-index: 15;
}

.hero-buttons .btn {
    padding: 0.95rem 1.65rem; /* slightly taller across pages */
    font-size: 1rem;
    margin: 0.25rem;
    border-radius: 999px;
}

/* Background blur effect */
.devices-bg, .careers-bg, .pricing-bg, .contact-bg, .news-bg {
    backdrop-filter: blur(2px);
}

.devices-title, .careers-title, .pricing-title, .contact-title {
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}

/* Government/Official styling themes */
.government-section {
    background: linear-gradient(135deg, #f8f9ff, #e8f2ff);
    border-top: 4px solid #1e3a8a;
    position: relative;
}

.government-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, #dc2626, #fbbf24, #16a34a, #2563eb);
}

.official-badge {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(45deg, #1e3a8a, #3b82f6);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 12px rgba(30, 58, 138, 0.3);
    margin-bottom: 1rem;
}

.official-badge::before {
    content: '🏛️';
    margin-right: 0.5rem;
}

/* Technology section styling */
.tech-section {
    background: linear-gradient(135deg, #0f172a, #1e293b);
    color: white;
    position: relative;
    overflow: hidden;
}

.tech-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="1" fill="rgba(59,130,246,0.1)"/><circle cx="80" cy="20" r="1" fill="rgba(59,130,246,0.1)"/><circle cx="20" cy="80" r="1" fill="rgba(59,130,246,0.1)"/><circle cx="80" cy="80" r="1" fill="rgba(59,130,246,0.1)"/><circle cx="50" cy="50" r="1" fill="rgba(59,130,246,0.1)"/></svg>');
    background-size: 80px 80px;
    z-index: 1;
}

.tech-section .container {
    position: relative;
    z-index: 2;
}

/* Enhanced section transitions */
.section-transition {
    height: 100px;
    background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.02));
    position: relative;
}

.section-transition::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 4px;
    background: linear-gradient(90deg, #667eea, #764ba2);
    border-radius: 2px;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

/* Professional content blocks */
.content-block {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    margin: 2rem 0;
    box-shadow: 0 8px 30px rgba(0,0,0,0.08);
    border-left: 4px solid #3b82f6;
    position: relative;
}

.content-block::before {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    background: linear-gradient(45deg, #3b82f6, #8b5cf6);
    border-radius: 12px;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.content-block:hover::before {
    opacity: 0.1;
}

/* ===================== DEVICE PRICING CARDS ===================== */
.device-pricing-card {
    background: white;
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    height: 100%;
}

.device-pricing-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}

.device-pricing-header h4 {
    color: #333;
    margin-bottom: 0.5rem;
}

.device-pricing-content {
    margin: 1.5rem 0;
}

.pricing-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.pricing-option:last-child {
    border-bottom: none;
}

.pricing-option .period {
    color: #666;
    font-weight: 500;
}

.pricing-option .price {
    color: #667eea;
    font-weight: bold;
    font-size: 1.1rem;
}

.included-items {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #f0f0f0;
}

/* ===================== TECH ITEMS ===================== */
.tech-item {
    text-align: center;
    padding: 2rem 1rem;
}

.tech-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(45deg, #667eea, #764ba2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 2rem;
    margin: 0 auto 1.5rem auto;
}

/* ===================== PROCESS STEPS ===================== */
.process-step {
    margin-bottom: 2rem;
}

.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(45deg, #667eea, #764ba2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
    font-weight: bold;
    margin: 0 auto 1rem auto;
}

/* ===================== CONTACT INFO ICONS ===================== */
.contact-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    border-left: 4px solid #667eea;
    transition: all 0.3s ease;
}

.contact-item:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: translateX(5px);
}

.contact-icon {

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;
 

    transition: all 0.3s ease;
}

.contact-icon:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}

.contact-icon i {
    color: white;
    font-size: 1.2rem;
}

.contact-details h6 {
    margin-bottom: 0.5rem;
    color: #333;
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.contact-details p {
    margin-bottom: 0;
    color: #666;
    line-height: 1.5;
}

/* Specific icon colors */
.contact-item:nth-child(1) .contact-icon {
    background: linear-gradient(135deg, #e74c3c, #c0392b);
}

.contact-item:nth-child(2) .contact-icon {
    background: linear-gradient(135deg, #f39c12, #e67e22);
}

.contact-item:nth-child(3) .contact-icon {
    background: linear-gradient(135deg, #27ae60, #2ecc71);
}

.contact-item:nth-child(4) .contact-icon {
    background: linear-gradient(135deg, #3498db, #2980b9);
}

.contact-item:nth-child(5) .contact-icon {
    background: linear-gradient(135deg, #9b59b6, #8e44ad);
}

/* ===================== CONTACT METHODS ===================== */
.contact-method {
    padding: 2rem 1rem;
    margin-bottom: 2rem;
}

.method-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 2rem;
    margin: 0 auto 1.5rem auto;
    transition: all 0.3s ease;
    border: 3px solid rgba(255,255,255,0.2);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.method-icon:hover {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

/* Icon backgrounds with local images */
.method-icon.phone-icon {
    background: linear-gradient(135deg, #667eea, #764ba2);
    position: relative;
}

.method-icon.phone-icon::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    background: url('/img/icon/PHONE.webp') no-repeat center;
    background-size: contain;
    transform: translate(-50%, -50%);
}

.method-icon.email-icon {
    background: linear-gradient(135deg, #f093fb, #f5576c);
    position: relative;
}

.method-icon.email-icon::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    background: url('/img/icon/MAIL.webp') no-repeat center;
    background-size: contain;
    transform: translate(-50%, -50%);
}

.method-icon.messenger-icon {
    background: linear-gradient(135deg, #0084ff, #00c6ff);
    position: relative;
}

.method-icon.messenger-icon::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    background: url('/img/icon/MES.webp') no-repeat center;
    background-size: contain;
    transform: translate(-50%, -50%);
}

.method-icon.whatsapp-icon {
    background: linear-gradient(135deg, #25d366, #128c7e);
    position: relative;
}

.method-icon.whatsapp-icon::before {
    content: '??';
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 32px;
    transform: translate(-50%, -50%);
}

/* ===================== BENEFIT ITEMS ===================== */
.benefit-item {
    padding: 2rem 1rem;
    margin-bottom: 2rem;
}

.benefit-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(45deg, #667eea, #764ba2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 2rem;
    margin: 0 auto 1.5rem auto;
}

/* ===================== CONTACT FORM WRAPPER ===================== */
.contact-form-wrapper {
    background: white;
    border-radius: 20px;
    padding: 3rem;
    box-shadow: 0 4px 30px rgba(0,0,0,0.1);
}

.contact-form .form-label {
    font-weight: 600;
    color: #333;
    margin-bottom: 0.5rem;
}

.contact-form .form-control,
.contact-form .form-select {
    border-radius: 10px;
    border: 2px solid #e0e0e0;
    padding: 0.75rem 1rem;
    transition: all 0.3s ease;
}

.contact-form .form-control:focus,
.contact-form .form-select:focus {
    border-color: #667eea;
    box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
}

/* ===================== RESPONSIVE FOR NEW PAGES ===================== */
@media (max-width: 768px) {
    .device-pricing-card, .contact-method, .benefit-item {
        margin-bottom: 1.5rem;
    }
    
    .contact-form-wrapper {
        padding: 2rem 1.5rem;
    }
    
    .step-number, .method-icon, .benefit-icon, .tech-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }
    
    .devices-title, .careers-title, .pricing-title, .contact-title, .news-title {
        font-size: 2rem;
    }
}

/* ===================== NEWS PAGE STYLES ===================== */
.news-sidebar {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    margin-bottom: 2rem;
}

.sidebar-title {
    color: #333;
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #667eea;
}

.filter-group {
    margin-bottom: 2rem;
}

.filter-group h6 {
    color: #666;
    margin-bottom: 1rem;
    font-weight: 600;
}

.filter-options .form-check {
    margin-bottom: 0.5rem;
}

.search-box {
    position: relative;
}

.search-box .btn {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
}

/* Featured Post */
.featured-post {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 30px rgba(0,0,0,0.1);
}

.featured-image {
    position: relative;
    height: 300px;
    overflow: hidden;
}

.featured-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.featured-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: linear-gradient(45deg, #667eea, #764ba2);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
}

.featured-content {
    padding: 2rem;
}

.post-meta {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
}

.post-meta .category {
    background: #f8f9fa;
    color: #667eea;
    padding: 0.25rem 0.75rem;
    border-radius: 15px;
    font-size: 0.875rem;
    font-weight: 500;
}

.post-meta .date {
    color: #666;
    font-size: 0.875rem;
}

.featured-title {
    color: #333;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.featured-title a {
    color: inherit;
    text-decoration: none;
}

.featured-title a:hover {
    color: #667eea;
}

.featured-excerpt {
    color: #666;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

/* News Cards */
.news-card {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.news-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}

.news-image {
    position: relative;
    height: 220px;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-image::before {
    content: "??";
    font-size: 3rem;
    color: white;
    position: absolute;
    z-index: 1;
}

.news-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    position: relative;
    z-index: 2;
}

.news-card:hover .news-image img {
    transform: scale(1.05);
}

.news-category {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: rgba(102, 126, 234, 0.9);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 15px;
    font-size: 0.8rem;
    font-weight: 500;
}

.news-content {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.news-meta {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    color: #666;
}

.news-title {
    margin-bottom: 1rem;
}

.news-title a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s ease;
}

.news-title a:hover {
    color: #667eea;
}

.news-excerpt {
    color: #666;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.read-more {
    color: #667eea;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: auto;
}

.read-more:hover {
    color: #764ba2;
}

.news-tags {
    display: flex;
    gap: 0.5rem;
}

.tag {
    background: #f8f9fa;
    color: #667eea;
    padding: 0.25rem 0.5rem;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 500;
}

/* Newsletter Section */
.newsletter-section {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.newsletter-title {
    color: white;
    margin-bottom: 1rem;
}

.newsletter-desc {
    color: rgba(255,255,255,0.8);
    margin-bottom: 2rem;
}

.newsletter-form .input-group {
    max-width: 500px;
    margin: 0 auto;
}

.newsletter-form .form-control {
    border: none;
    border-radius: 50px 0 0 50px;
    padding: 1rem 1.5rem;
}

.newsletter-form .btn {
    border-radius: 0 50px 50px 0;
    padding: 1rem 2rem;
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.3);
}

.newsletter-form .btn:hover {
    background: rgba(255,255,255,0.3);
}

/* Article Detail Styles */
.article-hero {
    padding: 2rem 0;
    background: #f8f9fa;
}

.breadcrumb {
    background: none;
    padding: 0;
}

.breadcrumb-item a {
    color: #667eea;
    text-decoration: none;
}

.article-header {
    text-align: center;
}

.article-meta {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.article-title {
    color: #333;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.article-lead {
    font-size: 1.2rem;
    color: #666;
    line-height: 1.6;
    margin-bottom: 2rem;
}

.social-share {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.share-label {
    color: #666;
    font-weight: 500;
}

.share-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
}

.share-btn.facebook { background: #3b5998; }
.share-btn.twitter { background: #1da1f2; }
.share-btn.linkedin { background: #0077b5; }
.share-btn.copy { background: #666; }

.share-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.article-body {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #333;
}

.article-body p {
    margin-bottom: 1.5rem;
}

.article-body h2, .article-body h3, .article-body h4 {
    color: #333;
    margin: 2rem 0 1rem 0;
}

/* Fix images inside article body */
.article-body img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1.5rem auto;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.article-body figure {
    margin: 1.5rem 0;
    text-align: center;
}

.article-body figure img {
    margin: 0 auto;
}

.article-body figure figcaption {
    font-size: 0.9rem;
    color: #6c757d;
    margin-top: 0.5rem;
    font-style: italic;
}

/* Fix floating images */
.article-body img[style*="float"] {
    float: none !important;
    display: block !important;
    margin: 1.5rem auto !important;
}

/* Fix images with inline styles */
.article-body img[style*="margin"] {
    margin: 1.5rem auto !important;
}

.article-body img[style*="float: left"],
.article-body img[style*="float:right"] {
    float: none !important;
    display: block !important;
    margin: 1.5rem auto !important;
}

/* Ensure all images are responsive */
.article-body img {
    max-width: 100% !important;
    height: auto !important;
    width: auto !important;
}

.article-tags .tags-list {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Sidebar Styles */
.article-sidebar {
    position: sticky;
    top: 0;              /* ? b? offset d? kh�ng b? t?t xu?ng so v?i c?t tr�i */
    z-index: 100;
}

/* Khi d?t "B�i vi?t li�n quan" trong sidebar th� b? margin tr�n d? th?ng h�ng */
.article-sidebar .related-posts-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Stats Card Styles */
.stats-card .display-5 { 
    line-height: 1; 
}

.stats-card hr { 
    opacity: .15; 
}

/* ========== Website Links Widget ========== */
.widget-website-links {
  background: linear-gradient(135deg, #ffffff, #f8f9fa);
  border: 1px solid #e3e6f0;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
}

.widget-website-links::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #007bff, #0056b3, #007bff);
  background-size: 200% 100%;
  animation: shimmer 3s ease-in-out infinite;
}

.widget-website-links .widget-header {
  font-weight: 700;
  letter-spacing: .5px;
  color: #2c3e50;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e6ebf1;
  font-size: 14px;
  text-transform: uppercase;
}

.widget-website-links .stack {
  display: grid;
  gap: 14px;
}

.link-card {
  position: relative;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 3px 12px rgba(0,0,0,.1);
  transition: all 0.3s ease;
  text-decoration: none;
  border: none;
}

.link-card img {
  width: 100%;
  object-fit: contain;
  display: block;
  filter: saturate(1.1) contrast(1.1) brightness(1.05);
  transition: all 0.3s ease;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.link-card:hover { 
  transform: translateY(-3px); 
  box-shadow: 0 8px 25px rgba(0,0,0,.15);
}

.link-card:hover img {
  filter: saturate(1.2) contrast(1.2) brightness(1.1);
  transform: scale(1.02);
}

/* Animation keyframes */
@keyframes shimmer {
  0%, 100% { background-position: 200% 0; }
  50% { background-position: -200% 0; }
}

/* ========== L?ch c�ng t�c ========== */
.schedule-wrapper { 
  background: #fff; 
  border: 1px solid #e3e6f0;
}

.schedule-table thead th {
  background: #eef4fb !important;
  font-weight: 700;
  border-bottom: 2px solid #dee2e6;
  position: sticky;
  top: 0;
  z-index: 10;
}

.schedule-table td, .schedule-table th { 
  vertical-align: top; 
  padding: 12px 8px;
}

.schedule-table .day-row.is-today { 
  background: #f9fbff; 
  border-left: 4px solid #007bff;
}

.schedule-table .time-chip{
  display: inline-block;
  padding: 4px 10px;
  margin: 0 6px 6px 0;
  border-radius: 999px;
  background: #e9f2ff;
  font-weight: 600;
  font-size: .85rem;
  color: #0d6efd;
  border: 1px solid #b3d9ff;
}

.schedule-table .time-chip:hover {
  background: #d1e7ff;
  transform: translateY(-1px);
  transition: all 0.2s ease;
}

.schedule-table tbody tr:hover {
  background: #f8f9fa;
}

.schedule-table .day-row.is-today:hover {
  background: #e3f2fd;
}

@media (max-width: 768px){
  .schedule-table th:nth-child(4),
  .schedule-table td:nth-child(4),
  .schedule-table th:nth-child(5),
  .schedule-table td:nth-child(5),
  .schedule-table th:nth-child(6),
  .schedule-table td:nth-child(6),
  .schedule-table th:nth-child(7),
  .schedule-table td:nth-child(7) { 
    display: none; 
  }
  
  .schedule-table th:nth-child(8),
  .schedule-table td:nth-child(8) { 
    display: none; 
  }
  
  .schedule-table th, .schedule-table td {
    font-size: 0.9rem;
    padding: 8px 4px;
  }
  
  .schedule-table .time-chip {
    font-size: 0.8rem;
    padding: 3px 8px;
  }
}

/* Ensure proper spacing between columns */
.article-content .col-lg-8,
.article-content .col-xl-7 {
    margin-bottom: 2rem;
}

/* ===== Auth Buttons: minimal, no icons ===== */
.auth-compact{
  display: inline-flex;
  align-items: center;
  gap: 6px;                 /* kho?ng c�ch gi?a 2 n�t */
}

.auth-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;      /* lu�n 1 d�ng */
  text-decoration: none;
  padding: .15rem .3rem;    /* K�CH THU?C C?C NH? */
  border-radius: 999px;     /* pill */
  font-size: .7rem;         /* ch? c?c nh? */
  font-weight: 400;         /* font weight r?t nh? */
  line-height: 1;
  transition: .18s ease;
}

/* �ang nh?p: vi?n xanh, n?n tr?ng */
.auth-btn.login{
  border: 1.5px solid #2f6feb;
  color: #2f6feb;
  background: #fff;
}
.auth-btn.login:hover{
  background: #eef4ff;
}

/* �ang k�: n?n cam ph?ng, kh�ng gradient */
.auth-btn.register{
  border: 0;
  color: #fff;
  background: #ff7a18;
}
.auth-btn.register:hover{
  filter: brightness(.97);
}

/* Thu g?n th�m ch�t ? m�n h�nh h?p */
@media (max-width: 1200px){
  .auth-btn{ padding: .1rem .25rem; font-size: .65rem; }
}

@media (min-width: 992px) {
    .article-content .col-lg-8 {
        margin-bottom: 0;
    }
}

/* Article Content Layout */
.article-content {
    padding: 2rem 0;
}

.article-content .container {
    max-width: 1200px;
}

.article-content .row {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
}

.article-content .row.g-4 {
    --bs-gutter-x: 2rem;
    --bs-gutter-y: 0;
}

.article-content .row.g-4 > * {
    padding-right: calc(var(--bs-gutter-x) * 0.5);
    padding-left: calc(var(--bs-gutter-x) * 0.5);
    margin-top: var(--bs-gutter-y);
}

/* Main content column */
.article-content .col-lg-8 {
    flex: 0 0 auto;
    width: 66.666667%;
    position: relative;
    z-index: 1;
}

/* Sidebar column */
.article-content .col-lg-4 {
    flex: 0 0 auto;
    width: 33.333333%;
    position: relative;
    z-index: 2;
}

/* Breadcrumb Section */
.breadcrumb-section {
    border-bottom: 1px solid #e9ecef;
}

.breadcrumb {
    background: none;
    padding: 0;
    margin: 0;
}

.breadcrumb-item + .breadcrumb-item::before {
    content: " / ";
    color: #6c757d;
}

.breadcrumb-item a {
    color: #667eea;
    text-decoration: none;
}

.breadcrumb-item a:hover {
    color: #5a6fd8;
    text-decoration: underline;
}

.main-article {
    background: white;
    border-radius: 16px;
    padding: 2.5rem;
    box-shadow: 0 2px 20px rgba(0,0,0,0.08);
    margin-bottom: 2rem;
    position: relative;
    z-index: 1;
    border: 1px solid #f0f0f0;
}

/* Article Header */
.article-header {
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 1.5rem;
}

.article-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.article-title {
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.3;
    color: #2d3748;
    margin-bottom: 1rem;
}

.article-lead {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #6c757d;
}

.social-share {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    text-decoration: none;
    transition: all 0.3s ease;
}

.share-btn.facebook {
    background: #1877f2;
    color: white;
}

.share-btn.twitter {
    background: #1da1f2;
    color: white;
}

.share-btn.linkedin {
    background: #0077b5;
    color: white;
}

.share-btn.copy {
    background: #6c757d;
    color: white;
}

.share-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    color: white;
}

.article-image {
    position: relative;
    z-index: 1;
}

.article-image img {
    width: 100%;
    height: auto;
    display: block;
}

.sidebar-widget {
    background: white;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 15px rgba(0,0,0,0.08);
    margin-bottom: 1.5rem;
    border: 1px solid #f0f0f0;
    transition: all 0.3s ease;
}

.sidebar-widget:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}

.widget-title {
    color: #2d3748;
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #667eea;
    position: relative;
}

.widget-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 30px;
    height: 2px;
    background: #667eea;
}

.related-post {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.3s ease;
}

.related-post:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.related-post:hover {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1rem;
    margin: 0 -1rem 1.5rem -1rem;
}

.related-image {
    width: 80px;
    height: 60px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.related-image::before {
    content: "??";
    font-size: 24px;
    color: white;
}

.related-image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

.related-content h6 {
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    line-height: 1.4;
    font-weight: 600;
}

.related-content a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s ease;
}

.related-content a:hover {
    color: #667eea;
}

.related-content small {
    color: #6c757d;
    font-size: 0.8rem;
}

.contact-sidebar .contact-item {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}

/* Responsive News Styles */
@media (max-width: 768px) {
    .featured-post .row {
        flex-direction: column;
    }
    
    .featured-image {
        height: 200px;
    }
    
    .news-card {
        margin-bottom: 1.5rem;
    }
    
    .article-meta {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .social-share {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    /* Article Detail Responsive */
    .article-content .row {
        flex-direction: column;
    }
    
    .article-content .col-lg-8,
    .article-content .col-lg-4 {
        width: 100% !important;
        flex: none !important;
    }
    
    .main-article {
        padding: 1.5rem;
        margin-bottom: 1rem;
    }
    
    .article-sidebar {
        position: static;
        margin-top: 2rem;
        z-index: auto;
    }
    
    .article-title {
        font-size: 1.8rem;
    }
    
    .article-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .social-share {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    
    .related-post {
        flex-direction: column;
        text-align: center;
    }
    
    .related-image {
        width: 100%;
        height: 150px;
        margin-bottom: 1rem;
    }
    
    /* Fix article body images on mobile */
    .article-body img {
        margin: 1rem auto !important;
        max-width: 100% !important;
        height: auto !important;
    }
    
    .article-body figure {
        margin: 1rem 0 !important;
    }
}

/* ========== ARTICLE RATING ========== */

.article-rating {
    background: #ffffff;
    border-radius: 16px;
    padding: 2.5rem;
    border: 1px solid #e5e7eb;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    max-width: 600px;
    margin: 0 auto;
}

.rating-section {
    margin-bottom: 1.5rem;
}

.rating-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.rating-title {
    color: #1f2937;
    font-weight: 700;
    font-size: 1.25rem;
    margin: 0;
    letter-spacing: -0.025em;
}

.rating-stars {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.star-btn {
    background: none;
    border: none;
    padding: 0.25rem;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 1.75rem;
    color: #d1d5db;
    border-radius: 4px;
}

.star-btn:hover {
    transform: scale(1.1);
    color: #fbbf24;
}

.star-btn.active i,
.star-btn:hover i {
    color: #fbbf24;
}

.star-btn i {
    transition: all 0.2s ease;
    display: block;
}

.rating-stats {
    text-align: left;
}

.rating-count {
    color: #6b7280;
    font-size: 0.95rem;
    font-weight: 500;
}

.divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, #e5e7eb, transparent);
    margin: 1.5rem 0;
}

.social-share {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.share-label {
    font-weight: 700;
    color: #1f2937;
    font-size: 1.1rem;
    white-space: nowrap;
}

.share-buttons {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 0.5rem;
    background: rgba(255,255,255,0.05);
    border-radius: 16px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1);
}

.share-btn {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    font-size: 1.2rem;
    position: relative;
    overflow: hidden;
    border: 2px solid transparent;
    font-weight: 600;
}

.share-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.2), rgba(255,255,255,0.1));
    opacity: 0;
    transition: all 0.3s ease;
    border-radius: 10px;
}

.share-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255,255,255,0.3);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.6s ease;
}

.share-btn:hover::before {
    opacity: 1;
}

.share-btn:hover::after {
    width: 100%;
    height: 100%;
    border-radius: 10px;
}

.share-btn.facebook {
    background: linear-gradient(135deg, #1877f2, #42a5f5);
    color: white;
    box-shadow: 0 4px 15px rgba(24, 119, 242, 0.4);
    border-color: rgba(255,255,255,0.2);
}

.share-btn.twitter {
    background: linear-gradient(135deg, #1da1f2, #42a5f5);
    color: white;
    box-shadow: 0 4px 15px rgba(29, 161, 242, 0.4);
    border-color: rgba(255,255,255,0.2);
}

.share-btn.linkedin {
    background: linear-gradient(135deg, #0077b5, #42a5f5);
    color: white;
    box-shadow: 0 4px 15px rgba(0, 119, 181, 0.4);
    border-color: rgba(255,255,255,0.2);
}

.share-btn.copy {
    background: linear-gradient(135deg, #6b7280, #9ca3af);
    color: white;
    box-shadow: 0 4px 15px rgba(107, 114, 128, 0.4);
    border-color: rgba(255,255,255,0.2);
}

.share-btn:hover {
    transform: translateY(-4px) scale(1.08);
    box-shadow: 0 12px 30px rgba(0,0,0,0.2);
    color: white;
    border-color: rgba(255,255,255,0.4);
}

.share-btn:active {
    transform: translateY(-2px) scale(1.02);
    transition: all 0.1s ease;
}

.share-btn i {
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
}

.share-btn:hover i {
    transform: scale(1.1);
    animation: pulse 0.6s ease-in-out;
}

@keyframes pulse {
    0% {
        transform: scale(1.1);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1.1);
    }
}

/* Special hover effects for each platform */
.share-btn.facebook:hover {
    background: linear-gradient(135deg, #1877f2, #42a5f5, #64b5f6);
    animation: facebookGlow 2s ease-in-out infinite;
}

.share-btn.twitter:hover {
    background: linear-gradient(135deg, #1da1f2, #42a5f5, #64b5f6);
    animation: twitterGlow 2s ease-in-out infinite;
}

.share-btn.linkedin:hover {
    background: linear-gradient(135deg, #0077b5, #42a5f5, #64b5f6);
    animation: linkedinGlow 2s ease-in-out infinite;
}

.share-btn.copy:hover {
    background: linear-gradient(135deg, #6b7280, #9ca3af, #d1d5db);
    animation: copyGlow 2s ease-in-out infinite;
}

@keyframes facebookGlow {
    0%, 100% { box-shadow: 0 12px 30px rgba(24, 119, 242, 0.3); }
    50% { box-shadow: 0 12px 30px rgba(24, 119, 242, 0.6); }
}

@keyframes twitterGlow {
    0%, 100% { box-shadow: 0 12px 30px rgba(29, 161, 242, 0.3); }
    50% { box-shadow: 0 12px 30px rgba(29, 161, 242, 0.6); }
}

@keyframes linkedinGlow {
    0%, 100% { box-shadow: 0 12px 30px rgba(0, 119, 181, 0.3); }
    50% { box-shadow: 0 12px 30px rgba(0, 119, 181, 0.6); }
}

@keyframes copyGlow {
    0%, 100% { box-shadow: 0 12px 30px rgba(107, 114, 128, 0.3); }
    50% { box-shadow: 0 12px 30px rgba(107, 114, 128, 0.6); }
}

/* Responsive */
@media (max-width: 768px) {
    .article-rating {
        padding: 2rem;
        margin: 0 1rem;
    }
    
    .rating-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .rating-stars {
        align-self: center;
    }
    
    .star-btn {
        font-size: 1.5rem;
    }
    
    .social-share {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .share-buttons {
        align-self: center;
    }
    
    .share-btn {
        width: 44px;
        height: 44px;
        font-size: 1.1rem;
    }
}

@media (max-width: 480px) {
    .article-rating {
        padding: 1.5rem;
    }
    
    .rating-title {
        font-size: 1.1rem;
    }
    
    .star-btn {
        font-size: 1.25rem;
    }
    
    .share-btn {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* ========== NEWS SLIDER ========== */

.news-slider-container {
    position: relative;
    margin: 2rem 0;
    overflow: hidden; /* Ngan slide l�i ra ngo�i */
}

.news-slider-wrapper {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    margin: 0 -15px; /* B� tr? padding c?a container */
    padding: 0 15px; /* T?o kho?ng c�ch an to�n */
}

.news-slider {
    display: flex;
    transition: transform 0.5s ease-in-out;
    gap: 1.5rem;
    width: 100%;
    cursor: grab;
    user-select: none;
    padding: 0 0.5rem; /* Padding b�n trong d? tr�nh c?t */
}

.news-slider:active {
    cursor: grabbing;
}

.news-slide {
    flex: 0 0 calc(33.333% - 1rem);
    min-width: 0;
    padding: 0 0.5rem;
    box-sizing: border-box; /* �?m b?o padding du?c t�nh trong width */
}

.news-slide .news-card {
    height: 100%;
    margin: 0;
}

/* Navigation Buttons */
.slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: #333;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    z-index: 10;
}

.slider-btn:hover {
    background: white;
    color: #007bff;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

.slider-btn-prev {
    left: -25px;
}

.slider-btn-next {
    right: -25px;
}

/* Dots Indicator */
.slider-dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 2rem;
    position: relative;
    z-index: 20;
}

/* �?m b?o dots gi? nguy�n v? tr� cao */
.about-hero .slider-dots {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin-top: 0;
    z-index: 25;
}

.slider-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: none;
    background: #ddd;
    cursor: pointer;
    transition: all 0.3s ease;
}

.slider-dot.active {
    background: #007bff;
    transform: scale(1.2);
}

.slider-dot:hover {
    background: #007bff;
    opacity: 0.7;
}

/* Responsive */
@media (max-width: 768px) {
    .news-slide {
        flex: 0 0 calc(100% - 1rem);
        padding: 0 0.5rem;
    }
    
    .slider-btn {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
    
    .news-slider {
        gap: 1rem;
        padding: 0 0.25rem; /* Gi?m padding tr�n mobile */
    }
    
    .news-slider-wrapper {
        margin: 0 -10px; /* Gi?m margin tr�n mobile */
        padding: 0 10px;
    }
    
    .slider-btn-prev {
        left: 10px;
    }
    
    .slider-btn-next {
        right: 10px;
    }
    
    .news-slider {
        gap: 1rem;
    }
}

@media (max-width: 576px) {
    .slider-btn {
        width: 35px;
        height: 35px;
        font-size: 0.9rem;
    }
    
    .news-slider-wrapper {
        margin: 0 -5px; /* Gi?m margin tr�n mobile nh? */
        padding: 0 5px;
    }
    
    .news-slider {
        padding: 0 0.125rem; /* Gi?m padding tr�n mobile nh? */
    }
    
    .slider-btn-prev {
        left: 5px;
    }
    
    .slider-btn-next {
        right: 5px;
    }
}

/* ========== SIMPLE PAGE EFFECTS ========== */

/* Simple body transitions */
body {
    transition: opacity 0.4s ease-in-out;
}

body.loaded {
    opacity: 1;
}

/* Smooth page transitions */
.page-container {
    animation: fadeInUp 0.6s ease-out;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Navigation link hover effects */
.navbar-nav .nav-link {
    position: relative;
    transition: color 0.3s ease;
}

.navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 50%;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #667eea, #764ba2);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {
    width: 100%;
}

/* Enhanced button click effects */
.btn {
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

/* ch? �p cho n�t CTA thay v� to�n b? .btn */
.btn-cta::before,
.btn-orange::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  background: rgba(255,255,255,.2);
  border-radius: 50%;
  transition: all .6s ease;
  transform: translate(-50%, -50%);
}
.btn-cta:hover::before,
.btn-orange:hover::before {
  width: 300px;
  height: 300px;
}

/* Enhanced card hover animations */
.device-card, .job-card, .pricing-card, .news-card {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.device-card:hover, .job-card:hover, .pricing-card:hover, .news-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

/* Scroll animations */
.fade-in-section {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out;
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Link transition effects */
a {
    transition: all 0.3s ease;
}

/* Form input focus effects */
.form-control:focus {
    border-color: #667eea;
    box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
    transform: translateY(-2px);
    transition: all 0.3s ease;
}

/* Ripple effect for buttons */
.ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    transform: scale(0);
    animation: ripple-animation 0.6s linear;
    pointer-events: none;
}

@keyframes ripple-animation {
    to {
        transform: scale(1);
        opacity: 0;
    }
}

/* Enhanced navigation underline animation */

/* ===================== GLOBAL ADD-ONS (effects) ===================== */
/* Back-to-top floating button */
#backToTop.back-to-top{
  position: fixed;
  right: 18px;
  bottom: 12px;
  width: 42px;
  height: 42px;
  border: none;
  border-radius: 12px;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 10px 25px rgba(29,78,216,.35);
  opacity: 0;
  transform: translateY(12px) scale(.9);
  transition: opacity .25s ease, transform .25s ease;
  z-index: 1050;
}
#backToTop.back-to-top.show{ opacity:1; transform: translateY(0) scale(1); }
#backToTop.back-to-top:hover{ filter: brightness(1.07); }

/* Reveal-on-scroll utility (works with JS observer) */
.reveal-on-scroll{ opacity: 0; transform: translateY(18px); transition: all .6s ease; }
.reveal-on-scroll.is-visible{ opacity: 1; transform: translateY(0); }

/* Subtle 3D tilt card hover (progressively enhanced in JS) */
.tilt-ready{ will-change: transform; transition: transform .12s ease-out, box-shadow .2s ease; }
.tilt-hover{ box-shadow: 0 14px 30px rgba(0,0,0,.15); }

/* Small glow when hovering interactive cards */
.glow-hover:hover{ box-shadow: 0 10px 30px rgba(59,130,246,.25); }

/* Make pricing/device cards opt-in for reveal + tilt by default */
.pricing-card, .device-pricing-card{ contain: layout paint; }
.navbar-nav .nav-link:hover {
    color: #667eea !important;
}

/* Page transition improvements */
.page-container {
    will-change: transform, opacity;
}

/* Smooth transform for better performance */
* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
/* Ensure Font Awesome icons line up in header */
.contact-item-header .contact-icon { display:inline-block; line-height:1; }

/* ===================== AUTH PAGES STYLING ===================== */
.auth-container {
    min-height: 100vh;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.auth-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="20" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="20" cy="80" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="80" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="50" r="1" fill="rgba(255,255,255,0.1)"/></svg>');
    background-size: 50px 50px;
    z-index: 1;
}

.auth-card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(20px);
    border-radius: 20px;
    padding: 3rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    max-width: 480px;
    width: 100%;
    margin: 2rem;
    position: relative;
    z-index: 2;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.auth-header {
    text-align: center;
    margin-bottom: 2.5rem;
}

.auth-title {
    color: #333;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    letter-spacing: -0.02em;
}

.auth-subtitle {
    color: #666;
    font-size: 1rem;
    font-weight: 400;
}

.auth-form-group {
    margin-bottom: 1.5rem;
}

.auth-label {
    display: block;
    color: #333;
    font-weight: 600;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.auth-input {
    width: 100%;
    padding: 1rem 1.2rem;
    border: 2px solid #e1e5e9;
    border-radius: 12px;
    font-size: 1rem;
    transition: all 0.3s ease;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(10px);
}

.auth-input:focus {
    outline: none;
    border-color: #667eea;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
    transform: translateY(-2px);
}

.auth-checkbox-group {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.auth-checkbox {
    width: 18px;
    height: 18px;
    accent-color: #667eea;
}

.auth-checkbox-label {
    color: #666;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
}

.auth-btn {
    width: 100%;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: none;
    border-radius: 12px;
    color: white;
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.auth-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4);
}

.auth-btn:active {
    transform: translateY(0);
}

.auth-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.auth-btn:hover::before {
    left: 100%;
}

.auth-footer {
    text-align: center;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.auth-link {
    color: #667eea;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
    position: relative;
}

.auth-link:hover {
    color: #764ba2;
    text-decoration: none;
}

.auth-link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #667eea, #764ba2);
    transition: width 0.3s ease;
}

.auth-link:hover::after {
    width: 100%;
}

.auth-error {
    color: #e74c3c;
    font-size: 0.875rem;
    margin-top: 0.5rem;
    font-weight: 500;
}

.auth-floating-elements {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.auth-floating-icon {
    position: absolute;
    color: rgba(255, 255, 255, 0.1);
    font-size: 2rem;
    animation: float 6s ease-in-out infinite;
}

.auth-floating-icon:nth-child(1) { top: 20%; left: 10%; animation-delay: 0s; }
.auth-floating-icon:nth-child(2) { top: 30%; right: 15%; animation-delay: 1s; }
.auth-floating-icon:nth-child(3) { bottom: 25%; left: 20%; animation-delay: 2s; }
.auth-floating-icon:nth-child(4) { bottom: 35%; right: 10%; animation-delay: 3s; }
.auth-floating-icon:nth-child(5) { top: 60%; left: 50%; animation-delay: 4s; }

/* Auth page responsive */
@media (max-width: 576px) {
    .auth-card {
        padding: 2rem 1.5rem;
        margin: 1rem;
        border-radius: 16px;
    }
    
    .auth-title {
        font-size: 1.5rem;
    }
    
    .auth-input, .auth-btn {
        padding: 0.875rem 1rem;
    }
}

/* ===================== INTERACTIVE SERVICES SECTION ===================== */
#interactive-services {
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 50%, #f1f5f9 100%);
    position: relative;
    overflow: hidden;
}

#interactive-services::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(800px 400px at 20% 10%, rgba(59, 130, 246, 0.03), transparent 50%),
        radial-gradient(600px 300px at 80% 90%, rgba(168, 85, 247, 0.03), transparent 50%);
    pointer-events: none;
}

.interactive-image-container {
    position: relative;
    max-width: 480px;
    margin: 0 auto;
}

.service-image-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea, #764ba2);
    padding: 8px;
    box-shadow: 
        0 25px 50px rgba(102, 126, 234, 0.25),
        0 0 0 1px rgba(255, 255, 255, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 5; /* �?m b?o wrapper ? tr�n thanh n?i */
}

.service-image-wrapper:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 
        0 35px 70px rgba(102, 126, 234, 0.35),
        0 0 0 1px rgba(255, 255, 255, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.service-main-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    transition: all 0.6s ease;
    position: relative;
    z-index: 10; /* Tang z-index d? h�nh ?nh lu�n ? tr�n thanh n?i */
}



.services-list {
    padding: 0;
}

.service-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.15rem 1.15rem;
    margin-bottom: .9rem;
    min-height: 0;
    background: rgba(255, 255, 255, 0.78); /* khung s�ng v?a ph?i*/
    backdrop-filter: blur(4px);
    border-radius: 16px;
    border: 1px solid rgba(2, 6, 23, 0.06); /* vi?n m?nh */
    cursor: pointer;
    transition: all 0.25s ease;
    position: relative;
    overflow: visible;
    box-shadow: 0 6px 18px rgba(2, 6, 23, 0.06); /* b�ng nh? */
}

/* b? hi?u ?ng l�e tr?ng d? khung g?n hon */
.service-item::before { display: none; }

.service-item:hover::before {
    left: 100%;
}

.service-item:hover {
    transform: translateX(6px);
}

/* T?t hi?u ?ng hover cho thanh n?i */
.service-item:hover .service-dot::after {
    opacity: 1;
    transform: translateY(-50%) rotate(var(--line-rot, 0deg));
}

.service-item.active {
    background: linear-gradient(135deg, rgba(102,126,234,0.10), rgba(255,255,255,0.95));
    border-color: rgba(102,126,234,0.25);
    transform: translateX(10px);
}

.service-item.active .service-title {
    color: #667eea;
}

.service-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 0.3rem;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.service-dot::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    padding: 4px;
    background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.3));
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* Static connection lines from dots to image (pointing LEFT to the image center) */
.service-dot::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 100%;
    width: var(--line-len, 200px);
    height: 1px;
    background: linear-gradient(270deg,
        transparent 0%,
        rgba(102,126,234,0.4) 30%,
        rgba(102,126,234,0.7) 100%);
    transform-origin: right center;
    transform: translateY(-50%) rotate(var(--line-rot, 0deg));
    z-index: 1; /* Gi?m z-index d? kh�ng ch?c v�o h�nh */
    pointer-events: none;
    opacity: 1;
    transition: none; /* T?t transition d? thanh n?i kh�ng b? ?nh hu?ng */
}

/* Fallback angles/lengths (will be overridden by JS for perfect alignment) */
.service-item:nth-child(1) .service-dot{ --line-rot:-28deg; --line-len:320px; }
.service-item:nth-child(2) .service-dot{ --line-rot:-14deg; --line-len:220px; }
.service-item:nth-child(3) .service-dot{ --line-rot:0deg;   --line-len:210px; }
.service-item:nth-child(4) .service-dot{ --line-rot:14deg;  --line-len:220px; }
.service-item:nth-child(5) .service-dot{ --line-rot:28deg;  --line-len:280px; }

.dot-blue {
    background: linear-gradient(135deg, #3b82f6, #1d4ed8);
}

.dot-orange {
    background: linear-gradient(135deg, #f97316, #ea580c);
}

.dot-orange::after {
    background: linear-gradient(270deg, 
        transparent 0%,
        rgba(249, 115, 22, 0.3) 30%, 
        rgba(249, 115, 22, 0.8) 100%) !important;
    transition: none !important; /* T?t transition cho thanh n?i cam */
}

.service-item.active .service-dot {
    transform: scale(1.4);
    box-shadow: 
        0 0 0 4px rgba(102, 126, 234, 0.2),
        0 4px 12px rgba(0, 0, 0, 0.2);
}

.service-item.active .service-dot::before {
    opacity: 1;
}

/* �?m b?o thanh n?i lu�n ?n d?nh */
.service-item:hover .service-dot::after,
.service-item.active .service-dot::after {
    opacity: 1 !important;
    transform: translateY(-50%) rotate(var(--line-rot, 0deg)) !important;
    transition: none !important;
}

.service-item.active .service-dot::after {
    opacity: 1 !important;
    background: linear-gradient(270deg, 
        transparent 0%,
        rgba(102, 126, 234, 0.5) 30%, 
        rgba(102, 126, 234, 1) 100%);
    height: 2px;
    box-shadow: 0 0 6px rgba(102, 126, 234, 0.4);
    transform: translateY(-50%) rotate(var(--line-rot, 0deg)) !important;
    transition: none !important;
}

.service-item.active .dot-orange {
    box-shadow: 
        0 0 0 4px rgba(249, 115, 22, 0.2),
        0 4px 12px rgba(0, 0, 0, 0.2);
}

.service-item.active .dot-orange::after {
    background: linear-gradient(270deg, 
        transparent 0%,
        rgba(249, 115, 22, 0.5) 30%, 
        rgba(249, 115, 22, 1) 100%) !important;
    height: 2px;
    box-shadow: 0 0 6px rgba(249, 115, 22, 0.4);
    transform: translateY(-50%) rotate(var(--line-rot, 0deg)) !important;
    transition: none !important;
}

/* Clean connection lines - no complex animations */

.service-content {
    flex: 1;
}

.service-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 0.75rem;
    line-height: 1.3;
    transition: all 0.3s ease;
}

.service-desc {
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
    font-weight: 400;
}

/* Responsive adjustments */
@media (max-width: 991px) {
    .interactive-image-container {
        margin-bottom: 4rem;
    }
    
    .service-item {
        padding: 1.5rem 1.2rem;
        margin-bottom: 0.8rem;
        border-radius: 16px;
    }
    
    .services-list {
        padding: 0;
    }
    
    .service-image-wrapper {
        max-width: 400px;
    }
}

@media (max-width: 768px) {
    #interactive-services {
        padding: 3rem 0;
    }
    
    .service-image-wrapper {
        max-width: 320px;
        margin: 0 auto;
    }
    
    .service-item {
        padding: 1.25rem 1rem;
        min-height: 180px;
        gap: 1rem;
        border-radius: 16px;
    }
    
    .service-item:hover {
        transform: translateY(-2px) translateX(4px);
    }
    
    .service-item.active {
        transform: translateY(-1px) translateX(6px);
    }
    
    /* Hide connection lines on mobile for better performance */
    .service-dot::after {
        display: none;
    }
}

@media (max-width: 576px) {
    .service-image-wrapper {
        max-width: 280px;
        padding: 6px;
    }
    
    
    .service-item {
        padding: 1rem 0.8rem;
        min-height: 160px;
        gap: 0.8rem;
        margin-bottom: 0.6rem;
        border-radius: 14px;
    }
    
    .service-title {
        font-size: 1rem;
        margin-bottom: 0.5rem;
    }
    
    .service-desc {
        font-size: 0.9rem;
        line-height: 1.5;
    }
    
    .service-dot {
        width: 14px;
        height: 14px;
        margin-top: 0.25rem;
    }
    
    .service-item.active .service-dot {
        transform: scale(1.3);
    }
}
/* Utility whites for readability over images */
.text-white-75{ color: rgba(255,255,255,.78) !important; }
.text-white-85{ color: rgba(255,255,255,.85) !important; }

/* ===== Slide 4 custom styles (typewriter + layout + overlay + CTA) ===== */
#mainHero .carousel-item.slide-4 .caption-wrap{
  min-height: 75vh;
  display:flex; align-items:center; justify-content:center;
  transform: translateY(6vh);
}
@media (max-width: 991.98px){
  #mainHero .carousel-item.slide-4 .caption-wrap{ transform: translateY(2vh); }
}
#mainHero .carousel-item.slide-4 .headline{
  font-size: clamp(2rem, 2.4vw + 0.6rem, 3.2rem);
  line-height: 1.15;
  letter-spacing: .5px;
  max-width: 1200px;
  margin: 0 auto;
  text-align:center;
}
/* Purple overlay tint */
#mainHero .carousel-item.slide-4 .overlay-purple{
  background: linear-gradient(180deg, rgba(81,33,165,.55) 0%, rgba(124,58,237,.35) 40%, rgba(49,46,129,.45) 100%);
  mix-blend-mode: multiply;
  opacity: 1;
}
/* Typewriter caret */
.tw-cursor{ display:inline-block; margin-left:2px; animation: twBlink 1s step-end infinite; }
@keyframes twBlink { 50% { opacity: 0; } }
/* CTA: default white, on hover/active blue */
.btn-cta{
  --cta-blue: var(--primary-color, #2f6bff);
  background:#fff; color: var(--cta-blue);
  border: 2px solid var(--cta-blue);
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  padding:.9rem 1.6rem; font-weight:700; border-radius:999px;
  opacity:0; transform:translateY(8px);
  transition: opacity .25s ease, transform .25s ease,
             background-color .2s, color .2s, border-color .2s, box-shadow .2s;
}
.btn-cta.show{ opacity:1; transform:none; }
.btn-cta:hover, .btn-cta:focus, .btn-cta:active,
.btn-cta:focus-visible{
  background: var(--cta-blue);
  color:#fff; border-color: var(--cta-blue);
  box-shadow: 0 10px 32px rgba(47,107,255,.35);
}

/* ===== Override: make CTA more visible on busy background ===== */
/* ===== Consolidated CTA for Slide 4 (scoped & clean) ===== */
/* === CTA: Modern gradient button v?i hi?u ?ng d?p === */
#mainHero .carousel-item.slide-4 .btn-cta{
  --cta-orange: #ff6600;          /* xanh t�m gradient */
  --cta-orange-medium: #ff8533;
  --cta-orange-light: #ffaa66;     /* t�m gradient */
  --cta-orange-active: #e55a00;   /* xanh d?m khi nh?n */
  background: linear-gradient(135deg, var(--cta-orange) 0%, var(--cta-orange-medium) 50%, var(--cta-orange-light) 100%);
  color: #fff;
  border: none;
  font-weight: 700;
  font-size: clamp(1rem, 1vw + 0.5rem, 1.25rem);
  padding: 1rem 2.5rem;
  border-radius: 50px;
  box-shadow: 
    0 8px 32px rgba(255, 102, 0, 0.4),
    0 4px 16px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(10px) saturate(150%);
  backdrop-filter: blur(10px) saturate(150%);
  mix-blend-mode: normal;
  z-index: 10;
  position: relative;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Hi?u ?ng ripple v� glow */
#mainHero .carousel-item.slide-4 .btn-cta::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.6s ease;
  z-index: 1;
}

#mainHero .carousel-item.slide-4 .btn-cta:hover::before {
  width: 300px;
  height: 300px;
}

#mainHero .carousel-item.slide-4 .btn-cta::after {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(135deg, var(--cta-orange) 0%, var(--cta-orange-medium) 50%, var(--cta-orange-light) 100%);
  border-radius: 50px;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
}

#mainHero .carousel-item.slide-4 .btn-cta:hover::after {
  opacity: 0.7;
}

/* Hover/focus: Gradient d?o ngu?c + hi?u ?ng n?i */
#mainHero .carousel-item.slide-4 .btn-cta:hover,
#mainHero .carousel-item.slide-4 .btn-cta:focus,
#mainHero .carousel-item.slide-4 .btn-cta:focus-visible{
  background: linear-gradient(135deg, var(--cta-orange-light) 0%, var(--cta-orange-medium) 50%, var(--cta-orange) 100%);
  transform: translateY(-3px) scale(1.05);
  box-shadow: 
    0 20px 40px rgba(255, 102, 0, 0.6),
    0 8px 24px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: #fff;
}

/* Active: Hi?u ?ng ?n xu?ng */
#mainHero .carousel-item.slide-4 .btn-cta:active{
  background: linear-gradient(135deg, var(--cta-orange-active) 0%, var(--cta-orange) 50%, var(--cta-orange-medium) 100%);
  transform: translateY(1px) scale(0.98);
  box-shadow: 
    0 4px 16px rgba(255, 102, 0, 0.5),
    0 2px 8px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  color: #fff;
}
/* === CTA XEM CHI TI?T: style gi?ng H�nh 1 (d?m, kh�ng glossy, kh�ng blur) === */
.btn-orange{
  /* m�u cam */
  --orange: #ff7a00;        /* m?t n�t */
  --orange-dark: #b56a00;   /* vi?n d�y/�k?� */
  --orange-press: #e06000;  /* khi ?n */
  --press-depth: 7px;

  position: relative;
  background: linear-gradient(180deg, var(--orange) 0%, var(--orange) 100%); /* ph?ng, kh�ng b�ng */
  color:#fff !important;
  border:0;
  border-radius:999px;

  /* ch? g?n nhu H�nh 1 */
  font-weight: 800;
  font-size: .90rem;
  letter-spacing: .1px;     /* g?n hon */
  font-stretch: 95%;
  text-transform: uppercase;
  text-shadow: none;        /* b? b�ng ch? */

  padding:.52rem 1.05rem;

  /* ch? gi? �vi?n d�y� d?c, KH�NG blur */
  box-shadow: 0 var(--press-depth) 0 var(--orange-dark);
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
  user-select:none; -webkit-tap-highlight-color:transparent;
}

/* t?t l?p b�ng glossy cu */
.btn-orange::before{ display:none; }

/* Hover = ?n xu?ng: vi?n d�y ng?n l?i, kh�ng blur */
.btn-orange:hover,
.btn-orange:focus{
  transform: translateY(var(--press-depth));
  box-shadow: 0 2px 0 color-mix(in srgb, var(--orange-dark) 92%, #000 8%); /* vi?n d�y ng?n */
  filter: none;
  color:#fff !important;
}

/* Active = l�n th�m 1px, m�u m?t hoi tr?m */
.btn-orange:active{
  background: linear-gradient(180deg, var(--orange-press) 0%, var(--orange-press) 100%);
  transform: translateY(calc(var(--press-depth) + 1px));
  box-shadow: 0 1px 0 color-mix(in srgb, var(--orange-dark) 95%, #000 5%);
  color:#fff !important;
}

/* gi? pill */
.btn-pill{ border-radius:999px; }


/* ================== ABOUT SECTION (final) ================== */

/* Can d?nh c?t ch? ngang m�p tr�n c?m h�nh (desktop) */
@media (min-width: 992px){
  #about{ padding-top: 0; }
  #about .row{ align-items: flex-start; }
  #about .row > [class*="col-"]:first-child{ margin-top: -8px; } /* ch?nh l�n/ xu?ng n?u c?n */
}

/* Badge GI?I THI?U r� hon */
#about .eyebrow{
  background:#fff;
  color:#0f2f59;
  font-weight:700;
  border:1px solid rgba(15,47,89,.10);
  box-shadow: 0 16px 40px rgba(15,47,89,.12);
}

/* Ti�u d? + g?ch cam d�i */
#about .section-title{
  color:#0f2f59;
  font-weight: 800;
  letter-spacing:-0.02em;
  text-transform:none;
  margin-bottom:.75rem;
  position:relative;
}
#about .section-title::after{
  content:"";
  display:block;
  width: clamp(220px, 28vw, 520px);               /* ? d? d�i g?ch (tang/gi?m t?i d�y) */
  height:3.5px;
  background:#ff7a00;
  border-radius:999px;
  margin-top: .45rem; 
  box-shadow:0 4px 12px rgba(255,122,0,.22);
}

/* Bong b�ng xanh c?nh ti�u d? � d?m hon 1 ch�t */
#about .section-title-wrap{ position:relative; }
#about .section-title-wrap::after{
  content:"";
  position:absolute;
  left:220px; top:20px;
  width:16px; height:16px;
  background:rgba(56,189,248,.55);
  border-radius:999px;
  filter:blur(.3px);
}

/* �o?n m� t? */
#about .section-subtitle{
  color:#6b7280;
  font-size:clamp(1rem,.95rem + .25vw,1.125rem);
  line-height:1.8;
  max-width:70ch;
}

.content-card .border.rounded-3 img { transition: transform .2s ease; }
.content-card .border.rounded-3:hover img { transform: scale(1.03); }

/* ===== HOTFIX: Restore bottom separator & stable active underline ===== */
.navstrip{
  background: var(--secondary-color, #f8fafc);
  border-bottom: 1px solid #e5e7eb;   /* kh�i ph?c du?ng k? du?i navbar */
  box-shadow: none;                    /* b? shadow g�y ?n line trong 1 s? case */
}

.navstrip .navbar-nav .nav-link{
  color:#6b7280;                       /* x�m nh? nhu ?nh m?u */
  font-weight:500;
  letter-spacing:.1px;
}
.navstrip .navbar-nav .nav-link:hover{ color:#111827; }

/* Active: d�ng inset box-shadow l�m g?ch cam (?n d?nh, kh�ng s? overflow) */
.navstrip .navbar-nav .nav-link.active{
  color:#f97316;
  font-weight:700;
  box-shadow: inset 0 -3px 0 0 #f97316;
  padding-bottom: calc(.9rem - 3px);   /* gi? chi?u cao t?ng nhu cu */
}

/* T?t b?t k? ::after underline cu n�o (n?u c�n) */
.navstrip .navbar-nav .nav-link.active::after{ content: none !important; }

/* ===== NAV: Dropdown UX (hover d? m? tr�n desktop) ===== */
@media (min-width: 992px){
  .navstrip .dropdown:hover > .dropdown-menu,
  .navstrip .dropdown:focus-within > .dropdown-menu{
    display:block;
  }
}

/* ?n caret m?c d?nh c?a Bootstrap d? kh?i tr�ng v?i SVG */
.navstrip .dropdown-toggle::after{ display:none; }

/* H?p dropdown */
.navstrip .dropdown-menu{
  border-radius: 12px;
  border:1px solid #e5e7eb;
  padding:.5rem 0;
  box-shadow: 0 12px 24px rgba(2,6,23,.12);
}

/* Caret SVG c?nh ch? �D?ch v?� */
.navstrip .nav-link .chev{
  margin-left:.25rem;
  vertical-align:-1px;
  transition: transform .2s ease, color .2s ease;
  color: currentColor;     /* t? nh?n m�u nhu ch? */
  opacity:.85;
}
/* Xoay caret khi m? (Bootstrap th�m .show v�o .dropdown) */
.navstrip .dropdown.show .chev{ transform: rotate(180deg); }
/* Xoay khi hover tr�n desktop */
@media (min-width: 992px){
  .navstrip .dropdown:hover .chev{ transform: rotate(180deg); }
}

/* M�u: x�m thu?ng, cam khi hover (gi?ng tab active) */
.navstrip .dropdown .nav-link{ color:#6b7280; }
.navstrip .dropdown:hover > .nav-link,
.navstrip .dropdown .nav-link:focus{ color:#f97316; }

/* ============================
   ADMIN BUTTON ICON FIX
   ============================ */

/* Fix cho admin button - override any conflicting styles */
.admin-button {
  position: relative !important;
  overflow: visible !important;
}

/* Ngan ch?n m?i hi?u ?ng th?t ra th?t v�o cho admin button */
.admin-button:hover,
.admin-button:active,
.admin-button:focus,
.admin-button.show,
.admin-button:not(:disabled):not(.disabled):active,
.admin-button:not(:disabled):not(.disabled).active {
  transform: none !important;
  scale: 1 !important;
  box-shadow: 0 2px 8px rgba(2,6,23,.06) !important;
  outline: none !important;
  border: 1px solid #e2e8f0 !important;
  padding: .35rem .9rem !important;
}

.admin-button * {
  position: relative !important;
  z-index: 1 !important;
}

.admin-button::before,
.admin-button::after {
  content: none !important;
  display: none !important;
}

/* �?m b?o icon trong admin button kh�ng b? ?nh hu?ng */
.admin-button i,
.admin-button .fas,
.admin-button .fa-solid,
.admin-button .fa-brands {
  display: inline-block !important;
  font-style: normal !important;
  font-variant: normal !important;
  text-rendering: auto !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  z-index: 2 !important;
}

/* Fix cho avatar image */
.avatar-img {
 
  border-radius: 50% !important;
  object-fit: cover !important;
  display: block !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  z-index: 2 !important;
}

/* Kh�a ho�n to�n hi?u ?ng khi dropdown avatar m?/active/focus */
.header-auth .btn.dropdown-toggle,
.header-auth .btn.dropdown-toggle.show,
.header-auth .btn.dropdown-toggle:active,
.header-auth .btn.dropdown-toggle:focus,
.header-auth .btn.dropdown-toggle:hover {
  /* GI? C? �?NH k�ch thu?c � d�ng d�ng padding b?n dang x�i ? header */
  padding: .35rem .9rem !important;
  border-width: 0 !important;
  transform: none !important;
  scale: 1 !important;
  box-shadow: none !important;
  outline: none !important;
  overflow: hidden !important; /* ch?n pseudo-element tr�n */
  width: auto !important;
  height: auto !important;
  min-width: auto !important;
  min-height: auto !important;
  max-width: none !important;
  max-height: none !important;
}

/* N?u c�n ripple (::before/::after) ? noi kh�c, tri?t h?n t?i d�y */
.header-auth .btn.dropdown-toggle::before,
.header-auth .btn.dropdown-toggle.show::before,
.header-auth .btn.dropdown-toggle:active::before,
.header-auth .btn.dropdown-toggle:focus::before,
.header-auth .btn.dropdown-toggle::after,
.header-auth .btn.dropdown-toggle.show::after,
.header-auth .btn.dropdown-toggle:active::after,
.header-auth .btn.dropdown-toggle:focus::after,
.header-auth .btn.rounded-pill::before,
.header-auth .btn.rounded-pill::after,
.header-auth .btn.rounded-pill:hover::before,
.header-auth .btn.rounded-pill:hover::after,
.header-auth .btn.rounded-pill:active::before,
.header-auth .btn.rounded-pill:active::after,
.header-auth .btn.rounded-pill:focus::before,
.header-auth .btn.rounded-pill:focus::after {
  content: none !important;
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

/* �?m b?o avatar chip kh�ng b? ?nh hu?ng b?i b?t k? hi?u ?ng n�o */
.avatar-chip,
.avatar-chip *,
.avatar-chip .btn,
.avatar-chip .dropdown-toggle {
  transition: none !important;
  animation: none !important;
  transform: none !important;
  scale: 1 !important;
  width: auto !important;
  height: auto !important;
}

/* �?c bi?t fix cho admin button v?i t?t c? c�c tr?ng th�i */
.admin-button.btn,
.admin-button.btn-light,
.admin-button.btn.rounded-pill {
  transition: none !important;
  animation: none !important;
  transform: none !important;
  scale: 1 !important;
}

.admin-button.btn:hover,
.admin-button.btn:active,
.admin-button.btn:focus,
.admin-button.btn.show,
.admin-button.btn:not(:disabled):not(.disabled):active,
.admin-button.btn:not(:disabled):not(.disabled).active {
  transition: none !important;
  animation: none !important;
  transform: none !important;
  scale: 1 !important;
  box-shadow: 0 2px 8px rgba(2,6,23,.06) !important;
  outline: none !important;
  border: 1px solid #e2e8f0 !important;
}

/* Override t?t c? c�c hi?u ?ng Bootstrap c� th? g�y ph�ng to */
.header-auth .btn:not(:disabled):not(.disabled):active,
.header-auth .btn:not(:disabled):not(.disabled).active,
.header-auth .btn:not(:disabled):not(.disabled):focus,
.header-auth .btn:not(:disabled):not(.disabled).focus {
  transform: none !important;
  scale: 1 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* �?c bi?t fix cho n�t rounded-pill trong header */
.header-auth .btn.rounded-pill {
  transition: none !important;
  transform: none !important;
  scale: 1 !important;
}

.header-auth .btn.rounded-pill:hover,
.header-auth .btn.rounded-pill:active,
.header-auth .btn.rounded-pill:focus,
.header-auth .btn.rounded-pill.show {
  transform: none !important;
  scale: 1 !important;
  box-shadow: 0 2px 8px rgba(2,6,23,.06) !important;
  outline: none !important;
  border: 1px solid #e2e8f0 !important;
}

/* ===== COMMENT SYSTEM STYLES ===== */
.comments-section {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 1.5rem;
    margin: 2rem 0;
    overflow: hidden;
    max-width: 100%;
    box-sizing: border-box;
}

.comments-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #e9ecef;
}

.comments-title {
    color: #2c3e50;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
}

.comment-count {
    background: #667eea;
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.8rem;
    margin-left: 0.5rem;
}

.comments-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.comment-item {
    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border-left: 4px solid #667eea;
    transition: all 0.3s ease;
    overflow: hidden;
    max-width: 100%;
    box-sizing: border-box;
    word-wrap: break-word;
}

.comment-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

.comment-avatar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.avatar-img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #e9ecef;
}

.user-badge {
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.user-badge.admin {
    background: #dc3545;
    color: white;
}

.user-badge.member {
    background: #28a745;
    color: white;
}

.comment-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.75rem;
}

.author-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.author-name-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.comment-author {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #2c3e50;
}

.comment-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.comment-date {
    color: #6c757d;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
}

.comment-actions {
    display: flex;
    gap: 0.5rem;
}

.action-btn {
    background: none;
    border: none;
    color: #6c757d;
    cursor: pointer;
    padding: 0.25rem;
    border-radius: 6px;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.action-btn:hover {
    background: #f8f9fa;
    color: #667eea;
}

.comment-text {
    color: #495057;
    line-height: 1.6;
    margin-bottom: 0.75rem;
}

/* ===== REPLY STYLES - Gi?ng Reddit v?i c?u tr�c r� r�ng ===== */
.replies-section {
    margin-top: 0.5rem;
    margin-left: 1.5rem;
    position: relative;
    border-left: 2px solid #e9ecef;
    padding-left: 1rem;
}

.replies-section::before {
    content: '';
    position: absolute;
    left: -2px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #667eea;
}

.reply-item {
    background: white;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 0.5rem;
    position: relative;
    width: 100%;
    max-width: 100%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: all 0.2s ease;
    overflow: hidden;
}

.reply-item:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    border-color: #667eea;
}

.reply-avatar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.reply-avatar .avatar-img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid #e9ecef;
}

.reply-content {
    font-size: 0.9rem;
}

.reply-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.5rem;
}

.reply-header .comment-author {
    font-size: 0.85rem;
    font-weight: 600;
    color: #495057;
}

.reply-header .comment-date {
    font-size: 0.75rem;
    color: #6c757d;
}

.reply-header .user-badge {
    font-size: 0.6rem;
    padding: 0.2rem 0.4rem;
}

.reply-header .comment-actions {
    gap: 0.25rem;
}

.reply-header .action-btn {
    font-size: 0.75rem;
    padding: 0.2rem;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .comments-section {
        padding: 1rem;
        margin: 1rem 0;
    }
    
    .comment-item {
        padding: 1rem;
    }
    
    .replies-section {
        margin-left: 1rem;
        padding-left: 0.75rem;
    }
    
    .reply-item {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
}

@media (max-width: 480px) {
    .comments-section {
        padding: 0.75rem;
        margin: 0.75rem 0;
    }
    
    .comment-item {
        padding: 0.75rem;
    }
    
    .replies-section {
        margin-left: 0.75rem;
        padding-left: 0.5rem;
    }
    
    .reply-item {
        padding: 0.5rem;
    }
    
    .reply-avatar .avatar-img {
        width: 24px;
        height: 24px;
    }
    
    .reply-header .comment-author {
        font-size: 0.8rem;
    }
    
    .reply-header .comment-date {
        font-size: 0.7rem;
    }
}

/* Video Styles */
.video-container {
    position: relative;
    width: 100%;
    margin-bottom: 1rem;
}

.video-container video {
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.embed-responsive {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.embed-responsive::before {
    content: "";
    display: block;
    padding-top: 56.25%; /* 16:9 aspect ratio */
}

.embed-responsive-item {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.video-caption {
    font-style: italic;
    text-align: center;
    margin-top: 0.5rem;
}

/* NEW Tag Styles - Mặc định cho sidebar (nhỏ) */
.new-tag {
    position: absolute !important;
    top: 6px !important;
    left: 6px !important;
    background: #dc3545 !important;
    color: #fff !important;
    padding: 3px 8px !important;
    border-radius: 4px !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2) !important;
    display: inline-block !important;
    line-height: 1.2 !important;
    height: auto !important;
    width: auto !important;
    z-index: 10 !important;
    pointer-events: none !important;
    user-select: none !important;
}

/* NEW Tag Styles - Lớn hơn cho 3 tin tức chính (Tin tức & Sự kiện) */
#news .new-tag {
    padding: 8px 16px !important;
    font-size: 14px !important;
    border-radius: 8px !important;
    top: 8px !important;
    left: 8px !important;
    background: linear-gradient(135deg, #dc3545, #c82333) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3) !important;
    display: inline-block !important;
    line-height: 1.2 !important;
    height: auto !important;
    width: auto !important;
    z-index: 10 !important;
    position: absolute !important;
    animation: newTagPulse 2s infinite !important;
    z-index: 10 !important;
    pointer-events: none !important;
    user-select: none !important;
}

/* Animation cho NEW tag */
@keyframes newTagPulse {
    0% {
        transform: scale(1);
        box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 6px 16px rgba(220, 53, 69, 0.5);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3);
    }
}

/* N?u mu?n ch?c ch?n override chi?u cao khi n?m trong .ratio */
.ratio > .new-tag {
    height: auto !important;
    width: auto !important;
    display: inline-block !important;
}

/* ===================== ACCESSIBILITY CONTROLS ===================== */
.accessibility-controls {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border: 1px solid #dee2e6 !important;
    background: #f8f9fa !important;
}




/* Font size classes */
.font-size-small { font-size: 0.875rem !important; }
.font-size-normal { font-size: 1rem !important; }
.font-size-large { font-size: 1.125rem !important; }
.font-size-xl { font-size: 1.25rem !important; }
.font-size-xxl { font-size: 1.5rem !important; }

/* Brightness classes */
.brightness-dark { filter: brightness(0.5) !important; }
.brightness-dim { filter: brightness(0.7) !important; }
.brightness-normal { filter: brightness(1) !important; }
.brightness-bright { filter: brightness(1.3) !important; }
.brightness-very-bright { filter: brightness(1.5) !important; }

/* Print styles */
@media print {
    .accessibility-controls {
        display: none !important;
    }
    
    .sidebar {
        display: none !important;
    }
    
    .article-body {
        font-size: 12pt !important;
        line-height: 1.5 !important;
    }
    
    .main-article h1 {
        font-size: 18pt !important;
        page-break-after: avoid;
    }
    
    .main-article h2 {
        font-size: 16pt !important;
        page-break-after: avoid;
    }
    
    .main-article h3 {
        font-size: 14pt !important;
        page-break-after: avoid;
    }
    
    .article-body p {
        margin-bottom: 12pt !important;
    }
    
    .article-body img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
    }
    
    .article-body blockquote {
        border-left: 3pt solid #ccc !important;
        padding-left: 12pt !important;
        margin: 12pt 0 !important;
    }
}

.related-image {
    position: relative;
}

.news-image {
    position: relative;
}

.ratio {
    position: relative;
}

/* ===================== �I?U KHI?N B�I VI?T ===================== */

/* Font Size Control Modern Style */
.font-size-control-modern {
    display: flex;
    align-items: center;
    gap: 12px;
    background: white;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    height: 48px;
    flex-wrap: nowrap;
}

.font-size-control-modern:hover {
    border-color: #007bff;
    box-shadow: 0 2px 6px rgba(0, 123, 255, 0.15);
}

.font-size-label {
    font-size: 13px;
    color: #666;
    font-weight: 500;
    white-space: nowrap;
}

.font-size-buttons {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 32px;
}

.font-size-btn {
    width: 32px;
    height: 32px;
    border: 1px solid #ddd;
    background: white;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
    color: #333;
    cursor: pointer;
    transition: all 0.2s ease;
    outline: none;
    min-width: 32px;
    flex-shrink: 0;
}

.font-size-btn:hover {
    background: #007bff;
    color: white;
    border-color: #007bff;
    transform: scale(1.05);
}

.font-size-btn:active {
    transform: scale(0.95);
}

.font-size-btn:first-child {
    font-size: 12px;
}

.font-size-btn:last-child {
    font-size: 16px;
}

/* Action buttons - đảm bảo kích thước bằng nhau */
.font-size-control-modern .btn {
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    min-width: 32px;
    flex-shrink: 0;
    margin: 0;
    vertical-align: middle;
}

.font-size-control-modern .btn i {
    font-size: 14px;
}

/* Đảm bảo tất cả elements căn chỉnh đều */
.font-size-control-modern > * {
    display: flex;
    align-items: center;
    height: 32px;
}

.font-size-control-modern .d-flex {
    height: 32px;
    align-items: center;
}

/* Accessibility Controls Container */
.accessibility-controls {
    background: linear-gradient(135deg, #ffffff, #f8f9fa) !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 16px !important;
    padding: 24px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    transition: all 0.3s ease !important;
    position: relative !important;
    overflow: hidden !important;
}

.accessibility-controls::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg, #007bff, #0056b3, #007bff) !important;
    background-size: 200% 100% !important;
    animation: shimmer 3s ease-in-out infinite !important;
}

.accessibility-controls:hover {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef) !important;
    box-shadow: 0 8px 30px rgba(0, 123, 255, 0.15) !important;
    transform: translateY(-2px) !important;
    border-color: #007bff !important;
}

/* Brightness Control */
.brightness-slider {
    background: linear-gradient(to right, #6c757d, #ffc107) !important;
    height: 4px !important;
    border-radius: 2px !important;
    outline: none !important;
    -webkit-appearance: none !important;
}

.brightness-slider::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 18px !important;
    height: 18px !important;
    background: #007bff !important;
    border: 2px solid white !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important;
    transition: all 0.3s ease !important;
}

.brightness-slider::-webkit-slider-thumb:hover {
    background: #0056b3 !important;
    transform: scale(1.1) !important;
}

.brightness-slider::-moz-range-thumb {
    width: 18px !important;
    height: 18px !important;
    background: #007bff !important;
    border: 2px solid white !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

/* Action Buttons */
.accessibility-controls .btn {
    border-radius: 8px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
    padding: 8px 12px !important;
    min-width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.accessibility-controls .btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15) !important;
}

/* Bookmark Button Special Styling */
.bookmark-btn {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
    padding: 8px 12px !important;
    min-width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.bookmark-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15) !important;
}

.bookmark-btn.btn-danger {
    background: linear-gradient(135deg, #dc3545, #c82333) !important;
    border: 2px solid #dc3545 !important;
    color: white !important;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3) !important;
}

.bookmark-btn.btn-danger:hover {
    background: linear-gradient(135deg, #c82333, #bd2130) !important;
    box-shadow: 0 6px 16px rgba(220, 53, 69, 0.4) !important;
    border-color: #c82333 !important;
}

.bookmark-btn.btn-outline-danger {
    border: 2px solid #dc3545 !important;
    color: #dc3545 !important;
    background: white !important;
}

.bookmark-btn.btn-outline-danger:hover {
    background: #dc3545 !important;
    color: white !important;
    border-color: #dc3545 !important;
}

/* Print Button */
.accessibility-controls .btn-outline-primary {
    border: 2px solid #007bff !important;
    color: #007bff !important;
    background: white !important;
}

.accessibility-controls .btn-outline-primary:hover {
    background: #007bff !important;
    color: white !important;
    border-color: #007bff !important;
}

/* Responsive */
@media (max-width: 768px) {
    .accessibility-controls {
        padding: 15px !important;
    }
    
    .font-size-control-modern {
        flex-direction: row;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        justify-content: center;
        height: 44px;
    }
    
    .font-size-buttons {
        display: flex;
        gap: 4px;
        height: 30px;
    }
    
    .font-size-control-modern .btn {
        width: 30px;
        height: 30px;
        min-width: 30px;
    }
    
    .font-size-btn {
        width: 30px;
        height: 30px;
        min-width: 30px;
    }
    
    .font-size-control-modern > * {
        height: 30px;
    }
    
    .font-size-control-modern .d-flex {
        height: 30px;
    }
}

@media (max-width: 576px) {
    .accessibility-controls .row {
        flex-direction: column;
        gap: 15px;
    }
    
    .accessibility-controls .col-md-6 {
        text-align: center !important;
    }
    
    .font-size-control-modern {
        justify-content: center;
    }
}

/* Shimmer Animation */
@keyframes shimmer {
    0%, 100% { 
        background-position: 200% 0; 
    }
    50% { 
        background-position: -200% 0; 
    }
}
.article-controls {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border: 1px solid #dee2e6;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.article-controls:hover {
    background: linear-gradient(135deg, #e9ecef, #dee2e6);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-1px);
}

.control-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}



.action-buttons {
    display: flex;
    align-items: center;
    gap: 8px;
}

.action-buttons .btn {
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.action-buttons .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.action-buttons .btn-outline-primary:hover {
    background: #007bff;
    border-color: #007bff;
    color: white;
}

.action-buttons .btn-outline-danger:hover {
    background: #dc3545;
    border-color: #dc3545;
    color: white;
}

/* Responsive cho di?u khi?n b�i vi?t */
@media (max-width: 768px) {
    .article-controls {
        padding: 15px;
    }
    
    .control-group {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    
    
    .action-buttons {
        width: 100%;
        justify-content: center;
        margin-top: 10px;
    }
    
    .action-buttons .btn {
        flex: 1;
        max-width: 120px;
    }
}

@media (max-width: 576px) {
    .article-controls {
        padding: 12px;
    }
    
    
    
    .action-buttons {
        flex-direction: column;
        gap: 8px;
    }
    
    .action-buttons .btn {
        width: 100%;
        max-width: none;
    }
}

/* Override Bootstrap ratio height for media elements only */
.ratio > img, .ratio > video, .ratio > iframe, .ratio > picture {
    height: 100% !important;
}

/* ============================
   NAVIGATION LEFT ALIGNMENT
   ============================ */

/* Can ch?nh menu v?i logo */
.nav-left {
  margin-left: 0;
  padding-left: 0;
}

/* �?m b?o menu b?t d?u t? b�n tr�i */
.navbar-collapse .d-flex {
  justify-content: space-between;
  align-items: center;
}

/* Kho?ng c�ch gi?a menu v� auth section */
.navbar-collapse .nav-left {
  margin-right: auto;
}

/* ====== GOV CONTACT — tone trang trọng, trắng trên nền dịu ====== */
:root{
  --gov-surface: #f6f8fb;
  --gov-border: #e6e9f2;
  --gov-shadow: 0 10px 28px rgba(25, 51, 102, .08);
  --gov-primary: #184a99;     /* xanh hải quân */
  --gov-primary-2: #0f3677;   /* xanh sâu */
  --gov-accent: #f2c94c;      /* vàng dịu để nhấn */
  --gov-text: #1f2937;        /* xám than */
  --gov-muted: #667085;

  /* màu thương hiệu cho vòng icon */
  --brand-hotline:   #1fb981;
  --brand-email:     #8a5cff;
  --brand-messenger: #1877f2;
  --brand-zalo:      #0068ff;
}

/* nền section */
.section-gov {
  background: var(--gov-surface);
  position: relative;
}
.section-gov::after{ /* họa tiết nhẹ */
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(800px 300px at 120% -10%, rgba(24,74,153,.06), transparent 40%),
    radial-gradient(700px 280px at -10% 120%, rgba(15,54,119,.05), transparent 42%);
  pointer-events:none;
}

/* —— Card chung —— */
.gov-card{
  position:relative;
  display:flex; flex-direction:column;
  background:#fff;
  border-radius:18px;
  padding:24px 22px;
  border:1px solid var(--gov-border);
  box-shadow: var(--gov-shadow);
  height:100%;
  transition: transform .18s ease, box-shadow .18s ease;
  color: var(--gov-text);
}
.gov-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(10,40,90,.12);
}

/* Border gradient tinh tế */
.gov-card::before{
  content:"";
  position:absolute; inset:0; border-radius:18px; padding:1px;
  background: linear-gradient(135deg, rgba(24,74,153,.35), rgba(15,54,119,.15));
  -webkit-mask: 
    linear-gradient(#000 0 0) content-box, 
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events:none;
}

/* icon hộp kính mờ + vòng thương hiệu */
.gov-icon{
  width:68px; height:68px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(24,74,153,.06);
  border: 1px solid var(--gov-border);
  backdrop-filter: blur(4px);
  box-shadow: inset 0 -8px 18px rgba(24,74,153,.06);
  margin-bottom:14px; position:relative;
}
.gov-icon i{ font-size:28px; color: var(--gov-primary); }
.gov-icon .ring{
  position:absolute; inset:-5px; border-radius:18px; pointer-events:none;
}
.ring-hotline   { box-shadow: 0 0 0 2px var(--brand-hotline) inset; }
.ring-email     { box-shadow: 0 0 0 2px var(--brand-email) inset; }
.ring-messenger { box-shadow: 0 0 0 2px var(--brand-messenger) inset; }
.ring-zalo      { box-shadow: 0 0 0 2px var(--brand-zalo) inset; }

/* typographic */
.gov-ttl{ font-size:1.25rem; font-weight:700; letter-spacing:.2px; margin:4px 0 6px; }
.gov-desc{ color: var(--gov-muted); margin-bottom:18px; }

/* nút pill hành động */
.pill-btn{
  display:inline-flex; align-items:center; gap:8px;
  border:1.5px solid #cfd6e6; color:#1f2a44;
  border-radius:999px; padding:10px 16px; font-weight:600;
  background: #fff;
  transition: background .18s, border-color .18s, color .18s, transform .18s;
}
.pill-btn:hover{ background:#f1f5ff; border-color:#b8c5e6; color:#0f2f6b; transform: translateY(-1px); }

/* badge góc phải trên (24/7) */
.soft-badge{
  position:absolute; top:12px; right:12px; font-size:.75rem;
  padding:6px 10px; border-radius:999px;
  background:#fff; color:#5b4b00; 
  border:1px solid #f2de8a; box-shadow: var(--gov-shadow);
}

/* —— List thông tin đơn vị —— */
.info-panel{ padding:22px; }
.info-ttl{ font-weight:800; color:var(--gov-primary); font-size:1.1rem; margin-bottom:12px; }
.info-item{
  display:flex; align-items:flex-start; gap:12px;
  background:#fff; border:1px solid var(--gov-border);
  border-radius:14px; padding:14px;
  box-shadow: var(--gov-shadow); margin-bottom:12px;
}
.info-item .ic{
  width:40px; height:40px; border-radius:10px;
  background: linear-gradient(135deg, #eaf1ff, #f4f7ff);
  display:flex; align-items:center; justify-content:center;
  color: var(--gov-primary-2); border:1px solid var(--gov-border);
}
.info-item .k{ font-size:.75rem; text-transform:uppercase; color:#6b7385; font-weight:700; letter-spacing:.4px; }
.info-item .v{ font-weight:600; color:#1f2a44; }

/* responsive */
@media (max-width: 575.98px){
  .gov-card{ padding:20px 18px; }
  .gov-icon{ width:60px; height:60px; border-radius:14px; }
}

/* ======= NAV: Kiểu chữ đồng nhất ======= */
.navbar .nav-link{
  font-family: inherit;             /* dùng font chung của site */
  text-transform: uppercase;
  font-weight: 700;                 /* đồng nhất đậm */
  letter-spacing: .4px;
  color: #2b3a55;
}
.navbar .nav-link:hover,
.navbar .nav-link:focus{ color:#0a4a98; }

/* ======= DROPDOWN SUBMENU ======= */
.dropdown-item-has-sub {
  position: relative;
}

.dropdown-submenu {
  position: absolute;
  left: calc(100% + 8px);
  top: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 0.375rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);
  padding: 0.5rem 0;
  margin: 0;
  list-style: none;
  display: none;
  z-index: 1051;
}

.dropdown-item-has-sub:hover .dropdown-submenu {
  display: block;
}

.dropdown-submenu .dropdown-item {
  padding: 0.5rem 1rem;
  color: #212529;
  text-decoration: none;
  display: block;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

.dropdown-submenu .dropdown-item:hover {
  color: #f97316 !important;
  background-color: #fff7ed !important;
}

.dropdown-submenu .dropdown-item.active {
  color: #f97316 !important;
  background-color: #fff7ed !important;
}

/* Mobile: submenu hiển thị bên dưới */
@media (max-width: 992px) {
  .dropdown-submenu {
    position: static;
    left: auto;
    top: auto;
    box-shadow: none;
    border: none;
    background: #f8f9fa;
    margin: 0.25rem 0 0 1rem;
    border-radius: 0.25rem;
  }
  
  .dropdown-item-has-sub:hover .dropdown-submenu {
    display: block;
  }
}

