/*
 * Team page responsive layer.
 * Keeps the desktop portfolio intact and replaces the old push-canvas layout
 * with a compact overlay drawer on phones and tablets.
 */

:root {
  --team-sidebar-width: clamp(280px, 22vw, 340px);
  --team-layout-width: 1440px;
}

/* Hero copy: readable on both bright photos and both theme states. */
#colorlib-hero .slider-text-inner .desc {
  width: min(100%, 580px);
  padding: clamp(22px, 3.4vw, 42px);
  border: 1px solid rgba(24, 49, 70, .2);
  border-radius: 20px;
  color: #15283a;
  background: linear-gradient(145deg, rgba(250, 252, 255, .88), rgba(226, 236, 244, .76));
  box-shadow: 0 20px 55px rgba(5, 16, 28, .2);
  backdrop-filter: blur(8px) saturate(1.08);
  -webkit-backdrop-filter: blur(8px) saturate(1.08);
}

#colorlib-hero .slider-text-inner .desc h1,
#colorlib-hero .slider-text-inner .desc h2 {
  color: #102235 !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .76);
}

#colorlib-hero .slider-text-inner .desc h2 {
  font-weight: 500;
}

#colorlib-hero .slider-text-inner .desc h2 a {
  color: #075f9e !important;
  border-bottom-color: rgba(7, 95, 158, .62);
  font-weight: 700;
}

#colorlib-hero .slider-text-inner .desc .btn.btn-learn {
  color: #102235 !important;
  border: 1px solid #29445c !important;
  border-radius: 999px;
  background: rgba(255, 255, 255, .52) !important;
}

body.theme-dark #colorlib-hero .slider-text-inner .desc {
  color: #eef5fb;
  border-color: rgba(135, 189, 232, .34);
  background: linear-gradient(145deg, rgba(8, 20, 33, .86), rgba(14, 31, 47, .76));
  box-shadow: 0 22px 62px rgba(0, 0, 0, .42);
}

body.theme-dark #colorlib-hero .slider-text-inner .desc h1,
body.theme-dark #colorlib-hero .slider-text-inner .desc h2 {
  color: #f3f8fc !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .82);
}

body.theme-dark #colorlib-hero .slider-text-inner .desc h2 a {
  color: #86caff !important;
  border-bottom-color: rgba(134, 202, 255, .72);
}

body.theme-dark #colorlib-hero .slider-text-inner .desc .btn.btn-learn {
  color: #f4f9fd !important;
  border-color: rgba(207, 231, 249, .74) !important;
  background: rgba(5, 15, 26, .48) !important;
}

@media screen and (min-width: 992px) {
  .container-wrap {
    width: min(100%, var(--team-layout-width));
    max-width: var(--team-layout-width);
    min-height: 100dvh;
    margin: 0 auto;
  }

  #colorlib-aside {
    top: 0;
    bottom: 0;
    width: var(--team-sidebar-width);
    height: 100dvh !important;
    min-height: 100dvh;
    padding: clamp(28px, 4vh, 48px) clamp(18px, 2vw, 28px) 28px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .42) transparent;
  }

  #colorlib-main {
    width: calc(100% - var(--team-sidebar-width));
  }

  #colorlib-aside .author-img {
    width: clamp(126px, 10vw, 160px) !important;
    height: clamp(126px, 10vw, 160px) !important;
    margin-bottom: clamp(14px, 2vh, 22px) !important;
  }

  #colorlib-aside #colorlib-logo {
    display: flex;
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  #colorlib-aside #colorlib-logo a {
    width: auto;
    margin: 0 auto;
    padding: 0 !important;
    font-size: clamp(21px, 1.7vw, 27px) !important;
    line-height: 1.25;
    text-align: center !important;
  }

  #colorlib-aside #colorlib-logo + span {
    width: 100%;
    font-size: clamp(19px, 1.5vw, 24px) !important;
    text-align: center;
  }

  #colorlib-aside #colorlib-main-menu {
    margin-top: clamp(24px, 4vh, 46px) !important;
  }

  #colorlib-aside #colorlib-main-menu ul li {
    margin-bottom: clamp(2px, .7vh, 8px);
  }

  #colorlib-aside #colorlib-main-menu ul li a {
    display: inline-block;
    padding: 6px 12px;
  }

  #colorlib-aside .colorlib-footer {
    padding-right: 8px;
    padding-left: 8px;
  }

  #colorlib-hero,
  #colorlib-hero .flexslider,
  #colorlib-hero .flexslider .slides > li,
  #colorlib-hero .flexslider .slider-text {
    min-height: 100dvh;
  }

  #colorlib-hero {
    margin-bottom: clamp(64px, 8vw, 120px);
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner {
    padding: clamp(34px, 5vw, 68px);
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner h1 {
    font-size: clamp(44px, 4.5vw, 68px);
  }
}

@media screen and (max-width: 991px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
  }

  #colorlib-page,
  .container-wrap {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  #colorlib-main {
    float: none;
    width: 100%;
    padding: 0;
    transform: none !important;
    transition: none;
  }

  /* The navigation opens above the page instead of pushing it sideways. */
  #colorlib-aside {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 10020;
    width: min(86vw, 360px);
    height: 100dvh !important;
    padding: 34px 22px 28px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: 22px 0 60px rgba(2, 8, 16, .38);
    transform: translate3d(-105%, 0, 0);
    transition: transform .28s cubic-bezier(.22, 1, .36, 1);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .38) transparent;
  }

  body.offcanvas #colorlib-aside {
    width: min(86vw, 360px);
    background-color: #13202e;
    transform: translate3d(0, 0, 0);
  }

  body.offcanvas #colorlib-main,
  body.offcanvas .colorlib-nav-toggle {
    top: auto;
    transform: none;
  }

  body.offcanvas {
    overflow: hidden;
  }

  #colorlib-page::after {
    content: "";
    position: fixed;
    z-index: 10010;
    top: 0;
    right: 0;
    bottom: 0;
    left: min(86vw, 360px);
    visibility: hidden;
    background: rgba(5, 11, 19, .48);
    opacity: 0;
    transition: opacity .25s ease, visibility .25s ease;
    pointer-events: none;
  }

  body.offcanvas #colorlib-page::after {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }

  .colorlib-nav-toggle {
    top: 14px;
    left: 14px;
    z-index: 10030;
    display: grid;
    width: 48px;
    height: 48px;
    padding: 0;
    place-items: center;
    visibility: visible;
    border: 1px solid rgba(218, 235, 249, .62);
    border-radius: 50%;
    background:
      radial-gradient(circle at 36% 30%, rgba(255, 255, 255, .34), transparent 30%),
      linear-gradient(145deg, rgba(29, 52, 72, .96), rgba(8, 20, 32, .96));
    box-shadow:
      0 0 0 4px rgba(44, 152, 240, .12),
      0 9px 24px rgba(0, 0, 0, .32);
    opacity: 1;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
  }

  .colorlib-nav-toggle:hover,
  .colorlib-nav-toggle:focus {
    border-color: #76c1ff;
    outline: none;
    box-shadow:
      0 0 0 5px rgba(44, 152, 240, .2),
      0 10px 26px rgba(0, 0, 0, .36);
  }

  /* Replace the inherited hamburger with a centered circular HUD symbol. */
  .colorlib-nav-toggle i,
  .colorlib-nav-toggle i::before,
  .colorlib-nav-toggle i::after {
    display: none;
  }

  .colorlib-nav-toggle::before,
  .colorlib-nav-toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }

  .colorlib-nav-toggle::before {
    width: 20px;
    height: 20px;
    border: 2px solid #eaf6ff;
    box-shadow: 0 0 10px rgba(82, 181, 255, .72);
  }

  .colorlib-nav-toggle::after {
    width: 7px;
    height: 7px;
    background: #55b5ff;
    box-shadow: 0 0 9px rgba(85, 181, 255, .9);
  }

  .colorlib-nav-toggle.active {
    border-color: rgba(255, 255, 255, .82);
    transform: rotate(90deg);
  }

  .colorlib-nav-toggle.active::before {
    border-color: #fff;
    border-right-color: transparent;
  }

  .colorlib-nav-toggle.active::after {
    background: #fff;
  }

  #colorlib-aside .author-img {
    width: 116px !important;
    height: 116px !important;
    margin-bottom: 14px !important;
    border-width: 3px !important;
  }

  #colorlib-aside #colorlib-logo {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    margin-bottom: 2px;
    text-align: center !important;
  }

  #colorlib-aside #colorlib-logo a {
    display: inline-block;
    width: auto;
    margin: 0 auto;
    padding: 0 !important;
    font-size: 21px !important;
    line-height: 1.3;
    text-align: center !important;
    transform: none !important;
  }

  #colorlib-aside #colorlib-logo + span {
    width: 100%;
    text-align: center;
  }

  #colorlib-aside #colorlib-main-menu {
    margin-top: 24px !important;
  }

  #colorlib-aside #colorlib-main-menu,
  #colorlib-aside #colorlib-main-menu a {
    font-family: "Cinzel Decorative", "Playfair Display", Georgia, serif;
  }

  #colorlib-aside #colorlib-main-menu ul {
    margin-bottom: 20px;
  }

  #colorlib-aside #colorlib-main-menu ul li {
    margin-bottom: 3px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.15px;
  }

  #colorlib-aside #colorlib-main-menu ul li a {
    display: block;
    padding: 8px 12px;
    color: #f2e7c9 !important;
    border: 1px solid transparent;
    border-radius: 9px;
    background: rgba(4, 13, 23, .22);
    text-shadow: 0 2px 5px rgba(0, 0, 0, .9);
  }

  #colorlib-aside #colorlib-main-menu ul li.active a,
  #colorlib-aside #colorlib-main-menu ul li a:hover,
  #colorlib-aside #colorlib-main-menu ul li a:focus {
    color: #fff7db !important;
    border: 1px solid rgba(218, 188, 116, .72);
    background: linear-gradient(135deg, rgba(91, 66, 30, .88), rgba(152, 112, 48, .82));
    box-shadow: inset 0 0 18px rgba(255, 218, 130, .12), 0 7px 18px rgba(0, 0, 0, .22);
  }

  #colorlib-aside #colorlib-main-menu ul li a::after,
  #colorlib-aside #colorlib-main-menu ul li.active a::after {
    background-color: #dabc78;
  }

  #colorlib-aside .colorlib-footer {
    padding: 0;
  }

  /* A stable, full-width hero without desktop grid offsets. */
  #colorlib-hero {
    min-height: min(760px, 100svh);
    margin-bottom: 0;
  }

  #colorlib-hero,
  #colorlib-hero .flexslider,
  #colorlib-hero .flexslider .slides,
  #colorlib-hero .flexslider .slides > li {
    width: 100%;
    min-height: min(760px, 100svh);
  }

  #colorlib-hero .flexslider .slides > li {
    background-position: center center;
  }

  #colorlib-hero .flexslider .slider-text {
    display: flex;
    width: 100%;
    min-height: min(760px, 100svh) !important;
    align-items: center;
    padding: 72px 24px 48px;
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner {
    display: block;
    width: min(100%, 560px);
    min-height: 0 !important;
    margin: 0 auto;
    padding: 24px 20px;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner h1 {
    margin-bottom: 14px;
    font-size: clamp(30px, 8vw, 46px);
    line-height: 1.16;
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner h2 {
    margin-bottom: 18px;
    font-size: 15px;
    line-height: 1.65;
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner .btn {
    width: auto;
    min-width: 170px;
    color: #fff;
    border-color: rgba(255, 255, 255, .76);
    border-radius: 999px;
    background: rgba(8, 22, 36, .56) !important;
  }

  #colorlib-hero .flexslider .flex-control-nav {
    top: 82px;
    right: auto;
    bottom: auto;
    left: 22px;
  }

  /* Content remains unchanged, with mobile-friendly rhythm and widths. */
  .colorlib-narrow-content {
    width: 100%;
    padding-right: 18px;
    padding-left: 18px;
  }

  .colorlib-experience,
  .colorlib-skills,
  .colorlib-education,
  .colorlib-blog,
  .colorlib-work,
  .colorlib-about,
  .colorlib-services,
  .colorlib-contact {
    padding-top: 58px;
    padding-bottom: 58px;
  }

  .colorlib-heading {
    margin-bottom: 34px;
    font-size: clamp(22px, 6vw, 30px);
    line-height: 1.3;
  }

  .row-bottom-padded-lg,
  .row-bottom-padded-md,
  .row-bottom-padded-sm {
    padding-bottom: 12px;
  }

  .colorlib-about .services,
  .colorlib-about .about-desc,
  .colorlib-about .hire,
  .colorlib-skills .progress-wrap,
  .colorlib-education .panel-default,
  .colorlib-experience .timeline-label,
  .colorlib-blog .portfolio-project-card,
  .colorlib-contact .colorlib-feature,
  .colorlib-contact .contact-form-card {
    transform: none !important;
  }

  /* Scroll-triggered effects caused invisible blocks and stutter on mobile. */
  .js .animate-box,
  .animate-box,
  .animate-box.animated {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
    transform: none !important;
  }
}

@media screen and (max-width: 480px) {
  #colorlib-aside {
    width: min(88vw, 330px);
    padding: 28px 18px 24px;
  }

  #colorlib-page::after {
    left: min(88vw, 330px);
  }

  body.offcanvas #colorlib-aside {
    width: min(88vw, 330px);
  }

  #colorlib-hero .flexslider .slider-text {
    padding-right: 16px;
    padding-left: 16px;
  }

  #colorlib-hero .flexslider .slider-text > .slider-text-inner {
    padding: 22px 16px;
  }

  .colorlib-narrow-content {
    padding-right: 14px;
    padding-left: 14px;
  }

  .theme-switch {
    right: 12px;
    width: 66px;
    transform: scale(.9);
    transform-origin: top right;
  }

  .colorlib-experience .experience-card { padding: 20px 18px; }
  .experience-company { font-size: 19px; }

  .zalo-float {
    right: 12px;
    bottom: 12px;
    width: 50px;
    height: 50px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #colorlib-aside,
  #colorlib-page::after,
  .colorlib-nav-toggle,
  .theme-switch,
  .theme-switch-knob,
  .flexslider * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
