/********** TEMPLATE CSS – FULL **********/
:root{
  --primary:#FD5D14;
  --secondary:#FDBE33;
  --light:#F4F6F8;
  --dark:#040F28;
}
.about-block-img {
    width: 100%;
    height: 500px;
    /* chỉnh lên/xuống tùy ý */
    object-fit: cover;
    /* cắt cho vừa khung nhưng không méo hình */
    display: block;
}
/* Spacing utils */
.pt-6{padding-top:90px;}
.pb-6{padding-bottom:90px;}
.py-6{padding-top:90px;padding-bottom:90px;}

/* Buttons */
.btn{position:relative;font-weight:600;text-transform:uppercase;transition:.5s;}
.btn::after{
  position:absolute;content:"";width:0;height:5px;bottom:-1px;left:50%;
  background:var(--primary);transition:.5s;
}
.btn.btn-primary::after{background:var(--dark);}
.btn:hover::after,.btn.active::after{width:50%;left:25%;}
.btn-primary{color:#fff;}
.btn-square{width:36px;height:36px;}
.btn-sm-square{width:28px;height:28px;}
.btn-lg-square{width:46px;height:46px;}
.btn-square,.btn-sm-square,.btn-lg-square{padding-left:0;padding-right:0;text-align:center;}

/* Back to top */
.back-to-top{position:fixed;display:none;left:50%;bottom:0;margin-left:-22px;border-radius:0;z-index:99;}

/* Background radial (fix rgba 256 -> 255) */
.bg-dark-radial{
  background-image:-webkit-repeating-radial-gradient(center center,rgba(0,0,0,.3),rgba(0,0,0,.3) 1px,transparent 1px,transparent 100%);
  background-image:-moz-repeating-radial-gradient(center center,rgba(0,0,0,.3),rgba(0,0,0,.3) 1px,transparent 1px,transparent 100%);
  background-image:-ms-repeating-radial-gradient(center center,rgba(0,0,0,.3),rgba(0,0,0,.3) 1px,transparent 1px,transparent 100%);
  background-image:-o-repeating-radial-gradient(center center,rgba(0,0,0,.3),rgba(0,0,0,.3) 1px,transparent 1px,transparent 100%);
  background-image:repeating-radial-gradient(center center,rgba(0,0,0,.3),rgba(0,0,0,.3) 1px,transparent 1px,transparent 100%);
  background-size:3px 3px;
}
.bg-light-radial{
  background-image:-webkit-repeating-radial-gradient(center center,rgba(255,255,255,.2),rgba(255,255,255,.2) 1px,transparent 1px,transparent 100%);
  background-image:-moz-repeating-radial-gradient(center center,rgba(255,255,255,.2),rgba(255,255,255,.2) 1px,transparent 1px,transparent 100%);
  background-image:-ms-repeating-radial-gradient(center center,rgba(255,255,255,.2),rgba(255,255,255,.2) 1px,transparent 1px,transparent 100%);
  background-image:-o-repeating-radial-gradient(center center,rgba(255,255,255,.2),rgba(255,255,255,.2) 1px,transparent 1px,transparent 100%);
  background-image:repeating-radial-gradient(center center,rgba(255,255,255,.2),rgba(255,255,255,.2) 1px,transparent 1px,transparent 100%);
  background-size:3px 3px;
}

/* Navbar */
.navbar-dark .navbar-nav .nav-link{
  position:relative;padding:25px 15px;font-size:18px;text-transform:uppercase;color:var(--light);outline:none;transition:.5s;
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active{color:var(--primary);}
@media (max-width:991.98px){
  .navbar-dark .navbar-nav .nav-link{margin-left:50px;padding:10px 0;} /* fixed missing px */
}

/* Carousel caption */
.carousel-caption{top:0;left:0;right:0;bottom:0;background:rgba(4,15,40,.7);z-index:1;}
@media (max-width:576px){
  .carousel-caption h4{font-size:18px;font-weight:500!important;}
  .carousel-caption h3{font-size:28px;font-weight:600!important;}
}
#header-carousel .carousel-item {
  height: 500px; /* giảm chiều cao mạnh — bạn có thể đổi 280 / 350 / 400px */
}

#header-carousel .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;  /* ảnh đầy khung, không méo */
  object-position: center;
}
@media (max-width: 768px) {
  #header-carousel .carousel-item {
    height: 120px; /* còn nhỏ hơn trên điện thoại */
  }

}


/* Page header */
.page-header{
  height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(rgba(4,15,40,.7),rgba(4,15,40,.7)),url(../img/carousel-1.jpg) center/cover no-repeat;
}

/* Service */
.service-item .service-icon{
  margin-top:-50px;width:100px;height:100px;display:flex;align-items:center;justify-content:center;border-radius:100px;
}
.service-item .service-icon i{transition:.2s;}
.service-item:hover .service-icon i{font-size:60px;}

/* Portfolio */
.portfolio-item{margin-bottom:60px;}
.portfolio-title{
  position:absolute;display:flex;flex-direction:column;justify-content:center;height:120px;padding:0 30px;
  right:30px;left:30px;bottom:-60px;background:#fff;z-index:3;
}
.portfolio-btn{
  position:absolute;display:inline-block;top:50%;left:50%;margin-top:-60px;margin-left:-60px;
  font-size:120px;line-height:0;transition:.1s;transition-delay:.3s;z-index:2;opacity:0;
}
.portfolio-item:hover .portfolio-btn{opacity:1;}
.portfolio-box{position:relative;transition:box-shadow .2s,transform .2s;cursor:pointer;}
.portfolio-box:hover{box-shadow:0 8px 32px rgba(0,0,0,.12);transform:translateY(-4px) scale(1.02);}

/* Layout tweaks */
@media (min-width:992px){
  .testimonial,.contact-form{margin-left:-90px;}
}

/* Footer split line on desktop */
@media (min-width:992px){
  .footer::after{position:absolute;content:"";width:1px;height:100%;top:0;left:50%;background:var(--primary);}
}
/* Footer shape */
.footer-shape::before{
  position:absolute;content:"";width:40px;height:100%;top:0;left:-20px;background:var(--primary);transform:skew(40deg);
}

/* ===== FOOTER GỌN ===== */
.footer{padding:25px 20px!important;font-size:14px;line-height:1.6;}
.footer img{height:90px!important;max-width:100%;object-fit:contain;}
.footer h4{font-size:17px;margin-bottom:12px;}
.footer p,.footer a{font-size:15px;margin-bottom:5px;}
.footer .btn-lg-square{width:38px;height:38px;font-size:15px;}
.footer iframe{width:100%;height:180px;border-radius:4px;}
.footer + .container-fluid{font-size:13px;padding:8px 12px!important;}
.footer + .container-fluid .py-4{padding:10px 15px!important;}

/* =========================
   TESTIMONIALS – RESPONSIVE
   ========================= */

/* Mobile-first: card gọn, dễ đọc */
.testimonials{
  position:relative;padding:56px 16px;background:#eef4ff;overflow:hidden;font-family:inherit;
}
.testimonials .text-center h2{
  color:#162d59;font-weight:800;text-transform:none;font-size:clamp(22px,6.2vw,34px);line-height:1.25;margin:0 0 8px;
}
.testimonials .text-center p{
  color:#6b7a99!important;font-size:14px;margin:0 auto 20px;max-width:520px;
}
.testimonials .testimonial-carousel{margin-top:8px;}
.testimonials .testimonial-item{
  background:#fff!important;border:0!important;border-radius:16px!important;
  box-shadow:0 10px 24px rgba(22,45,89,.06)!important;padding:18px 16px!important;text-align:left;
}
.testimonials .testimonial-item .d-flex{display:block!important;}
.testimonials .testimonial-item p{
  color:#223865!important;font-size:16px;line-height:1.75;margin-bottom:14px!important;word-break:break-word;
}
.testimonials .testimonial-item .border-top{
  border-top:1px dashed #e6ecff!important;padding-top:12px!important;margin-top:6px;
}
.testimonials .testimonial-item h6{
  margin:0 0 4px;color:#0f2755;font-size:15px;font-weight:800;text-transform:none;
}
.testimonials .testimonial-item small{color:#7b88a8!important;font-size:13px;}
/* Dots */
.testimonials .owl-stage-outer{padding:6px 2px;}
.testimonials .owl-dots{margin-top:12px;text-align:center;}
.testimonials .owl-dot span{
  width:8px;height:8px;margin:4px 5px;background:#c8d5ff!important;border-radius:999px;transition:transform .2s ease,background-color .2s ease;
}
.testimonials .owl-dot.active span{background:#2f6bff!important;transform:scale(1.15);}
/* Ẩn trang trí trên mobile */
.hex-a,.hex-b,.hex-c{display:none;}

/* Tablet */
@media (min-width:576px){
  .testimonials{padding:64px 24px;}
  .testimonials .testimonial-item{padding:22px 20px!important;border-radius:18px!important;}
  .testimonials .testimonial-item p{font-size:17px;}
}

/* Desktop ≥992px: quote lớn căn giữa + trang trí */
@media (min-width:992px){
  .testimonials{padding:80px 32px;}
  .testimonials .text-center h2{font-size:36px;}
  .testimonials .testimonial-carousel .owl-stage-outer{overflow:visible;}
  .testimonials .testimonial-carousel .owl-item{display:flex;justify-content:center;}
  .testimonials .testimonial-item{
    max-width:980px;margin:0 auto;background:transparent!important;border:0!important;
    box-shadow:none!important;padding:0!important;text-align:center;
  }
  .testimonials .testimonial-item p{
    color:#223865;font-size:clamp(18px,2.2vw,26px);line-height:1.9;font-style:italic;margin:0 auto 22px;
  }
  .testimonials .testimonial-item .border-top{border-top:none!important;padding-top:0!important;margin-top:6px;}
  .testimonials .testimonial-item h6{
    margin:0 0 6px;font-weight:800;letter-spacing:.3px;color:#0f2755;text-transform:none;font-size:clamp(16px,1.8vw,22px);
  }
  .testimonials .testimonial-item small{color:#6b7a99!important;font-size:14px;}
  /* gạch chân tiêu đề */
  .testimonials .text-center h2::after{
    content:"";display:block;width:64px;height:3px;margin:14px auto 0;background:#2f6bff;border-radius:2px;
  }
  /* Trang trí lục giác */
  .hex-a,.hex-b,.hex-c{
    display:block;position:absolute;clip-path:polygon(25% 6.7%,75% 6.7%,100% 50%,75% 93.3%,25% 93.3%,0% 50%);
    opacity:.9;filter:drop-shadow(0 6px 8px rgba(0,0,0,.05));
  }
  .hex-a{width:44px;height:44px;left:8%;top:420px;background:#7a49ff;transform:rotate(4deg);}
  .hex-b{width:38px;height:38px;right:12%;top:120px;background:#facc15;transform:rotate(-12deg);}
  .hex-c{width:54px;height:54px;right:6%;top:300px;background:#27c7a8;transform:rotate(6deg);}
}
/* Hover nhẹ (desktop) */
@media (hover:hover){
  .testimonials .testimonial-item{transition:transform .18s ease,box-shadow .18s ease;}
  .testimonials .testimonial-item:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(22,45,89,.08)!important;}
}

/* =========================
   CTA FLOATING – FULL
   ========================= */

/* Base icon (Zalo/Messenger dùng SVG riêng) */
#cta-icon a{text-decoration:none;-webkit-tap-highlight-color:transparent;}
#cta-icon .ico_zalo,#cta-icon .ico_messenger{
  width:20px;height:20px;display:inline-block;background-repeat:no-repeat;background-size:contain;
}
#cta-icon a.cta-zalo .ico_zalo{background:url('<?php echo APP_URL; ?>assets/images/default/ico_zalonew.svg') 0 0/100% auto no-repeat;}
#cta-icon a.cta-messenger .ico_messenger{background:url('<?php echo APP_URL; ?>assets/images/default/ico_messenger.svg') 0 0/100% auto no-repeat;}

/* Desktop (>=768px): cột dọc bo góc + hover mượt */
@media (min-width:768px){
  #cta-icon{
    position:fixed;right:0;top:30%;z-index:9999;display:flex;flex-direction:column;
    background:#fff;border-radius:16px 0 0 16px;box-shadow:0 6px 18px rgba(0,0,0,.16);overflow:hidden;backdrop-filter:saturate(115%);
  }
  #cta-icon a{
    width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #eef2f7;
    color:#0f1d3d;background:#fff;position:relative;border-radius:10px 0 0 10px;
    transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease;
  }
  #cta-icon a:last-child{border-bottom:none;}
  #cta-icon em{display:none;}
  #cta-icon i{font-size:20px;line-height:1;display:block;}
  #cta-icon .cta-phone i{color:#e74c3c;}
  #cta-icon .cta-mail i{color:#22c55e;}
  /* Hover */
  #cta-icon a:hover{transform:translateX(-2px);background:#f3f6fb;box-shadow:inset 0 0 0 1px #e7ecf5;}
  #cta-icon a:active{transform:translateX(-1px);box-shadow:inset 0 0 0 1px #d8e1f0;}
  #cta-icon .cta-phone:hover{background:#feecec;}
  #cta-icon .cta-messenger:hover,#cta-icon .cta-zalo:hover{background:#eaf2ff;}
  #cta-icon .cta-mail:hover{background:#ecfbf1;}
  #cta-icon .cta-phone:hover i{color:#d33a2b;}
  #cta-icon .cta-messenger:hover i{color:#0073e6;}
  #cta-icon .cta-mail:hover i{color:#1eae5d;}
  /* Ring tel */
  #cta-icon .cta-phone{position:relative;}
  #cta-icon .cta-phone .cs-ring{
    position:absolute;inset:8px;border-radius:50%;border:2px solid rgba(28,117,188,.35);
    animation:telPulseDesktop 1.6s ease-out infinite;pointer-events:none;
  }
  @keyframes telPulseDesktop{
    0%{transform:scale(.9);opacity:.7}
    70%,100%{transform:scale(1.5);opacity:0}
  }
}

/* Mobile (<768px): thanh đáy full-width gọn */
@media (max-width:767.98px){
  #cta-icon{
    position:fixed;left:0;right:0;bottom:0;z-index:9999;display:grid;grid-template-columns:repeat(4,1fr);gap:0;
    padding:6px 10px calc(6px + env(safe-area-inset-bottom));background:#fff;border-radius:12px 12px 0 0;box-shadow:0 -6px 18px rgba(0,0,0,.14);
  }
  #cta-icon a{
    background:transparent!important;border-right:1px solid #eef2f7;padding:6px 4px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:none!important;position:relative;
  }
  #cta-icon a:last-child{border-right:none;}
  #cta-icon a i{
    width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:16px;background:#f2f5fb;
  }
  #cta-icon a em{
    font-style:normal;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.15px;color:#0f1d3d;
  }
  #cta-icon .cta-phone i{background:#fee2e2;color:#ef4444;}
  #cta-icon .cta-zalo i,#cta-icon .cta-messenger i{background:#e7efff;}
  #cta-icon .cta-mail i{background:#e9f7e9;color:#22c55e;}
  /* Ring tel cho mobile */
  #cta-icon .cta-phone{position:relative;}
  #cta-icon .cta-phone .cs-ring{
    position:absolute;width:42px;height:42px;left:50%;top:6px;transform:translateX(-50%);border-radius:50%;
    border:2px solid rgba(34,197,94,.45);animation:telPulseMobile 1.6s ease-out infinite;pointer-events:none;
  }
  @keyframes telPulseMobile{
    0%{transform:translateX(-50%) scale(.85);opacity:.8}
    60%{transform:translateX(-50%) scale(1.25);opacity:0}
    100%{transform:translateX(-50%) scale(1.25);opacity:0}
  }
  /* chừa chỗ cho thanh CTA */
  body{padding-bottom:68px;}
}
