:root {
  /* font-family */
  --ft: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif,
    "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --ft-mono: Consolas, monaco, "Ubuntu Mono", "Liberation Mono", "Courier New",
    Courier, monospace;
  /* font */
  --fs-1: 1.563rem;
  --fs-2: 1.375rem;
  --fs-3: 1.25rem;
  --fs-4: 1.125rem;
  --fs-5: 1rem;
  --fs-6: 0.938rem;
  --fs: 1rem;
  --fs-s: 0.7rem;
--fs-m: 2rem;
    --fs-l: 3rem;
  /* size */
  --ss: 0.7rem;
  --sm: 2rem;
  --sl: 3rem;
  /* weight */
  --fw-300: 300;
  --fw-400: 400;
  --fw-500: 500;
  --fw-600: 600;
  --fw-700: 700;
  /* color */
  --white: #ffffff;
  --dark: #1d1e22;
  --yellow: #ffff00;
  /*  */
  --default: #c7b6b6;
  --disabled: #cccccc;
  --error: #f3382b;
  --title: #ee712f;
  --link: #0b57d0;
  /*  */
  --active: #800080;
  --success: #28a745;
  --info: #4285f4;
  --warning: #ffc107;
  --danger: #dc3545;
  /* background */
  --bg-pri: #ffffff;
  --bg-sec: #f1f1f1;
  --bg-hv: rgb(211, 227, 253, 0.6);
  /* text */
  --txt-pri: #222222;
  --txt-sec: #22222299;
  /* border */
  --bd-pri: #e5e7eb;
  /* box-shadow */
  --bs: 0 2px 4px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);
  --bs-hv: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
  /* text-shadow */
  --ts: 1px 4px 6px #c6c6c6, 0 0 0 #000000, 1px 4px 6px #c6c6c6;
  /* transition */
  --trs: all 250ms ease-in-out;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-pri: #151414;
    --bg-sec: #202020;
    --bg-hv: #232f3e;
    --txt-pri: rgba(226, 225, 224, 0.9);
    --txt-sec: #878787;
    --bd-pri: rgba(224, 75, 82, 0.5);
    --bs: 0px 2px 8px 0px rgba(224, 75, 82, 0.5),
      0px 4px 16px 0px rgba(224, 75, 82, 0.5);
    --bs-hv: 0px 4px 16px 0px rgba(224, 75, 82, 0.5),
      0px 8px 32px 0px rgba(224, 75, 82, 0.5);
  }
}

[theme="dark"] {
  --bg-pri: #151414;
  --bg-sec: #383838;
  --bg-hv: #a6a6a6;
  --txt-pri: rgba(226, 225, 224, 0.9);
  --txt-sec: #878787;
  --bd-pri: rgba(224, 75, 82, 0.5);
  --bs: 0px 2px 8px 0px rgba(224, 75, 82, 0.5),
    0px 4px 16px 0px rgba(224, 75, 82, 0.5);
  --bs-hv: 0px 4px 16px 0px rgba(224, 75, 82, 0.5),
    0px 8px 32px 0px rgba(224, 75, 82, 0.5);
}

/**************************************************************************************/
/*                                 Reset CSS                                          */
/**************************************************************************************/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

iframe {
  width: 100%;
  height: 400px;
}

em,
i {
  font-style: italic;
}

header,
footer,
main,
section,
article,
aside,
details,
figcaption,
figure,
hgroup,
menu,
nav {
  display: block;
}

html {
  font-size: var(--fs);
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  background: var(--bg-pri);
  font-family: var(--ft);
  color: var(--txt-pri);
  line-height: 1.5;
  letter-spacing: 0;
}

/*  */
blockquote {
  color: var(--txt-sec);
  background: var(--bg-pri);
  border-left: var(--fs) solid var(--bd-pri);
  border-top: thin solid var(--bd-pri);
  border-right: thin solid var(--bd-pri);
  border-bottom: thin solid var(--bd-pri);
  padding: var(--fs);
  quotes: "\201C""\201D""\2018""\2019";
}

blockquote:before {
  color: var(--txt-sec);
  font-weight: var(--fw-300);
  content: open-quote;
  font-size: 3em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}

blockquote:after {
  color: var(--txt-sec);
  font-weight: var(--fw-300);
  content: close-quote;
  font-size: 3em;
  line-height: 0.1em;
  margin-left: 0.25em;
  vertical-align: -0.4em;
}

blockquote p {
  font-family: "Sitka Heading", Georgia, "Times New Roman";
  font-size: 1.4em;
  font-style: italic;
  display: inline;
}

/*  */
fieldset {
  margin-top: 1rem;
  padding: 2rem;
  border: thin solid var(--bd-pri);
  border-radius: 5px;
}

legend {
  font-weight: 500;
  padding: auto 0.5rem;
}

/*  */
details {
  padding: 0.6rem 1rem;
  background: var(--bg-sec);
  border: thin solid var(--bd-pri);
  border-radius: 5px;
}

/*  */
summary {
  cursor: pointer;
  font-weight: 700;
}

details[open] {
  padding-bottom: 0.75rem;
}

details[open] summary {
  margin-bottom: 6px;
}

details[open] > :last-child {
  margin-bottom: 0;
}

/*  */
dt {
  font-weight: 700;
}

dd::before {
  content: "→ ";
}

/*  */
hr {
  margin: 0;
  padding: 0;
  border: none;
  height: 1px;
  background-color: var(--bd-pri);
}

/* ---------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* selection */
::selection {
  background: var(--info);
  color: var(--white);
}

/* scrollbar */

::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar:horizontal {
  height: 10px;
}

::-webkit-scrollbar-track {
  background-color: transparent;
}

::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background: var(--disabled);
}

/*  */

.scroll-x {
  display: flex;
  align-items: center;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
}

.scroll-x::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: var(--ss);
}

.scroll-x:hover::-webkit-scrollbar-thumb {
  background: var(--disabled);
}

/*  */
.ck-editor__editable_inline {
  min-height: 100px;
}

.container {
  width: 100%;
  margin: 0 auto;
  max-width: 1440px;
}
/* ------------------------------------------------------------------ */
/*                          Icon SVG                                  */
/* ------------------------------------------------------------------ */

.icon {
  display: inline-block;
  vertical-align: middle;
  background-color: var(--txt-pri);
  padding: 0.5rem;
  content: " ";
  mask-size: 100%;
  mask-repeat: no-repeat;
  transition: var(--trs);
  cursor: pointer;

  &:hover {
    background-color: var(--active);
  }
}

/* social */

.icon-star {
  -webkit-mask-image: url(../icon-svg/star-outline.svg);
  mask-image: url(../icon-svg/star-outline.svg);
}
.icon-share {
  -webkit-mask-image: url(../icon-svg/share-outline.svg);
  mask-image: url(../icon-svg/share-outline.svg);
}

.icon-like {
  -webkit-mask-image: url(../icon-svg/like.svg);
  mask-image: url(../icon-svg/like.svg);
}

.icon-more {
  -webkit-mask-image: url(../icon-svg/more.svg);
  mask-image: url(../icon-svg/more.svg);
}

/* header */
.icon-home {
  -webkit-mask-image: url(../icon-svg/home-outline.svg);
  mask-image: url(../icon-svg/home-outline.svg);
}
.icon-logout {
  -webkit-mask-image: url(../icon-svg/log-out-outline.svg);
  mask-image: url(../icon-svg/log-out-outline.svg);
}
.icon-delete {
  -webkit-mask-image: url(../icon-svg/delete.svg);
  mask-image: url(../icon-svg/delete.svg);
}
.icon-edit {
  -webkit-mask-image: url(../icon-svg/edit.svg);
  mask-image: url(../icon-svg/edit.svg);
}
.icon-search {
  -webkit-mask-image: url(../icon-svg/search-outline.svg);
  mask-image: url(../icon-svg/search-outline.svg);
}
.icon-cart {
  -webkit-mask-image: url(../icon-svg/cart-outline.svg);
  mask-image: url(../icon-svg/cart-outline.svg);
}
.icon-location {
  -webkit-mask-image: url(../icon-svg/location-outline.svg);
  mask-image: url(../icon-svg/location-outline.svg);
}
.icon-category {
  -webkit-mask-image: url(../icon-svg/category.svg);
  mask-image: url(../icon-svg/category.svg);
}
.icon-post {
  -webkit-mask-image: url(../icon-svg/posts.svg);
  mask-image: url(../icon-svg/posts.svg);
}
.icon-product {
  -webkit-mask-image: url(../icon-svg/product.svg);
  mask-image: url(../icon-svg/product.svg);
}
.icon-up {
  -webkit-mask-image: url(../icon-svg/arrow-up.svg);
  mask-image: url(../icon-svg/arrow-up.svg);
}
.icon-forward {
  -webkit-mask-image: url(../icon-svg/arrow-forward.svg);
  mask-image: url(../icon-svg/arrow-forward.svg);
}
.icon-down {
  -webkit-mask-image: url(../icon-svg/arrow-down.svg);
  mask-image: url(../icon-svg/arrow-down.svg);
}
.icon-back {
  -webkit-mask-image: url(../icon-svg/arrow-back.svg);
  mask-image: url(../icon-svg/arrow-back.svg);
}
.icon-phone {
  -webkit-mask-image: url(../icon-svg/phone-portrait-outline.svg);
  mask-image: url(../icon-svg/phone-portrait-outline.svg);
}
.icon-mail {
  -webkit-mask-image: url(../icon-svg/mail-outline.svg);
  mask-image: url(../icon-svg/mail-outline.svg);
}
.icon-info {
  -webkit-mask-image: url(../icon-svg/information-outline.svg);
  mask-image: url(../icon-svg/information-outline.svg);
}
.icon-login {
  -webkit-mask-image: url(../icon-svg/log-in-outline.svg);
  mask-image: url(../icon-svg/log-in-outline.svg);
}
.icon-exit {
  -webkit-mask-image: url(../icon-svg/log-out-outline.svg);
  mask-image: url(../icon-svg/log-out-outline.svg);
}
.icon-plus {
  -webkit-mask-image: url(../icon-svg/plus.svg);
  mask-image: url(../icon-svg/plus.svg);
  background-color: var(--white);
}
/* services */
.icon-analytics {
  -webkit-mask-image: url(../icon-svg/analytics-outline.svg);
  mask-image: url(../icon-svg/analytics-outline.svg);
}

/* icon image */
.img-phone {
  background-image: url(../png/phone.png);
  background-repeat: no-repeat;
  background-size: 20px;
  height: 20px;
  width: 20px;
  display: inline-block;
}

/**************************************************************************************/
/*                                       Color                                      */
/**************************************************************************************/

/* Background color */

.bg-pri {
  background-color: var(--bg-pri);
}

.bg-sec {
  background-color: var(--bg-sec);
}

.bg-default {
  background-color: var(--default);
}

.bg-white {
  background-color: var(--white);
}

.bg-yellow {
  background-color: var(--yellow);
}

/* font-weight */

.fw-500 {
  font-weight: var(--fw-500);
}

/* text color */

.txt-pri {
  color: var(--txt-pri);
}

.txt-sec {
  color: var(--txt-sec);
}

/* Text color */

.txt-white {
  color: var(--white);
}

.txt-error {
  color: var(--error);
}

.txt-active {
  color: var(--active);
}

.txt-success {
  color: var(--success);
}

.txt-info {
  color: var(--info);
}

.txt-danger {
  color: var(--danger);
}

.txt-warning {
  color: var(--warning);
}

/* text link */
.txt-link {
  color: var(--txt-pri);

  &.txt-link-active {
    transition: var(--trs);

    .name {
      color: var(--active);
    }

    .icon {
      background-color: var(--active);
    }
  }
}

/*  */

.txt-nowrap {
  /* Văn bản sẽ hiển thị trên cùng một hàng, chỉ xuống hàng khi gặp thẻ <br />. */
  white-space: nowrap;
}

/**************************************************************************************/
/*                                       Gradient                                     */
/**************************************************************************************/
/* background gradient */
.gra {
  background-image: linear-gradient(190deg, #f83600 0%, #fee140 100%);
  color: var(--white);
  transition: background-image 3s ease-in-out;

  &:hover {
    background-image: linear-gradient(90deg, #fee140 0%, #f83600 100%);
  }
}

.gra-dark {
  background: linear-gradient(to left, #070000, #4c0001, #070000);
  color: var(--white);
}

.gra-default {
  background: linear-gradient(to right, #2c3e50, #4ca1af);
  color: var(--white);
}

.gra-coal {
  background: linear-gradient(to left, #eb5757, #000000);
  color: var(--white);
}

.gra-success {
  background: linear-gradient(to bottom, #e44d26, #f16529);
  color: var(--white);
}

.gra-warning {
  background: linear-gradient(to bottom, #f7971e, #ffd200);
  color: var(--white);
}

.gra-active {
  background: linear-gradient(to left, #0575e6, #021b79);
  color: var(--white);
}

.gra-error {
  background: linear-gradient(to bottom, #f00000, #dc281e);
  color: var(--white);
}

/* text gradient */

.txt-gra {
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* hr | line gradient */
.hr-gra {
  margin: 10px 0 10px 0;
  display: block;
  border: none;
  height: 1px;
  background: #0071b9;
  background: linear-gradient(
    to right,
    white,
    #0071b9,
    #26abff,
    #0071b9,
    white
  );
}

/**************************************************************************************/
/*                              Heading - Tiêu đề                                     */
/**************************************************************************************/

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--txt-pri);
  font-family: "Montserrat", sans-serif;
  font-weight: var(--fw-600);
}
p {
  color: var(--txt-pri);
}
h1 {
  font-size: var(--fs-1);
}
h2 {
  font-size: var(--fs-2);
}
h3 {
  font-size: var(--fs-3);
}
h4 {
  font-size: var(--fs-4);
}
h5 {
  font-size: var(--fs-5);
}
h6 {
  font-size: var(--fs-6);
}
.fs-s {
  font-size: var(--fs-s);
}
.fs-m {
  font-size: var(--fs-m);
}
.fs-l {
  font-size: var(--fs-l);
}

/*  */
.title-page,
.title-section,
.title-article,
.title,
.title-l,
.title-r,
.title-c {
  font-family: "Montserrat", sans-serif;
  font-weight: var(--fw-600);
  text-transform: capitalize;
  color: var(--title);
}

.title-page {
  font-size: var(--sl);
  position: relative;
}

.title-section {
  margin-bottom: var(--sm);
  font-size: var(--sm);
}

.title-l {
  text-align: left;
  position: relative;
  overflow: hidden;

  &::after {
    content: "";
    display: inline-block;
    bottom: 0.3rem;
    left: 0.5rem;
    margin-right: -100%;
    width: 100%;
    height: 1px;
    position: relative;
    background-color: var(--title);
    transition: all 0.3s ease 0s;
  }

  &:hover::after {
    left: 2ex;
  }
}

.title-r {
  text-align: right;
  position: relative;
  overflow: hidden;

  &::before {
    content: "";
    display: inline-block;
    bottom: 0.5ex;
    left: -0.5ex;
    width: 100%;
    margin-left: -100%;
    height: 1px;
    position: relative;
    background-color: var(--title);
    transition: all 0.3s ease 0s;
  }

  &:hover::before {
    left: -2ex;
  }
}

.title-c {
  text-align: center;
  position: relative;
  overflow: hidden;

  &::before {
    content: "";
    display: inline-block;
    bottom: 0.5ex;
    left: -0.5ex;
    width: 100%;
    margin-left: -100%;
    height: 1px;
    position: relative;
    background-color: var(--title);
    transition: all 0.3s ease 0s;
  }

  &:hover::before {
    left: -2ex;
  }

  &::after {
    content: "";
    display: inline-block;
    bottom: 0.5ex;
    left: 0.5ex;
    margin-right: -100%;
    width: 100%;
    height: 1px;
    position: relative;
    background-color: var(--title);
    transition: all 0.3s ease 0s;
  }

  &:hover::after {
    left: 2ex;
  }
}

.title-1 {
  position: relative;
  margin: 30px 0;
  color: var(--white);
  font-size: var(--fs-6);
  font-weight: 700;
  text-align: center;

  &:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    margin-top: 0;
    border-top: 2px solid var(--title);
    z-index: 1;
    display: block;
  }

  .tt1 {
    min-width: 350px;
    height: 45px;
    background-color: var(--title);
    line-height: 45px;
    padding: 0px 20px;
    position: relative;
    z-index: 2;
    text-align: center;
    display: inline-block;

    &:before {
      content: "";
      position: absolute;
      right: -15px;
      border-width: 0px;
      bottom: 0px;
      border-style: solid;
      border-color: var(--title) transparent;
      display: block;
      width: 0;
      height: 0;
      border-top: 23px solid transparent;
      border-bottom: 22px solid transparent;
      border-left: 15px solid var(--title);
    }

    &:after {
      content: "";
      position: absolute;
      left: -15px;
      border-width: 0px;
      bottom: 0px;
      border-style: solid;
      border-color: var(--title) transparent;
      display: block;
      width: 0;
      height: 0;
      border-top: 23px solid transparent;
      border-bottom: 22px solid transparent;
      border-right: 15px solid var(--title);
    }
  }
}

.title-2 {
  border-bottom: 2px solid var(--title);
  display: block;

  .tt2 {
    margin: 0;
    font-size: var(--fs-6);
    line-height: 20px;
    display: inline-block;
    text-transform: uppercase;

    span {
      background: var(--title);
      padding: 10px 20px 11px 20px;
      color: var(--white);
      position: relative;
      display: inline-block;
      margin: 0;
    }
  }

  .tt2 :after {
    content: "";
    width: 0;
    height: 0;
    border-top: 42px solid transparent;
    border-left: 20px solid var(--title);
    border-bottom: 1px solid transparent;
    border-right: 0 solid transparent;
    position: absolute;
    top: 0px;
    right: -20px;
  }

  .all {
    color: var(--title);
    display: block;
    margin: 0;
    line-height: 45px;
    margin-left: 100px;
    float: right;
    transition: var(--trs);

    &:hover {
      color: var(--info);
    }
  }
}

.title-3 {
  margin: 15px 0;
  border-bottom: 2px solid var(--title);
  font-size: var(--fs-6);
  line-height: 20px;
  text-transform: uppercase;

  .tt3 {
    background: var(--title);
    padding: 10px 20px 8px 20px;
    color: var(--white);
    position: relative;
    display: inline-block;
    margin: 0;
    border-radius: 23px 23px 0px 0px;
  }
}

.title-4 {
  .tt4 {
    margin: 15px 0;
    font-size: var(--fs-6);
    line-height: 20px;
    text-transform: uppercase;

    span {
      background: var(--title);
      padding: 11px 20px 9px 20px;
      color: white;
      position: relative;
      display: inline-block;
      margin: 0;
    }

    :after {
      content: "";
      width: 0;
      height: 0;
      border-top: 19px solid transparent;
      border-left: 15px solid var(--title);
      border-bottom: 19px solid transparent;
      border-right: 0 solid transparent;
      position: absolute;
      top: 0px;
      right: -15px;
    }
  }

  hr {
    margin: -37px 0px 54px 0px;
    border: thin solid var(--title);
  }
}

.title-img {
  z-index: 1;
  overflow: hidden;
  padding: 40px;
  position: relative;
  text-align: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  transition: 0.25s;

  @media (max-width: 991px) {
    padding: 30px;
  }

  @media (max-width: 767px) {
    padding: 20px;
  }

  img {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* css.glass */
    filter: blur(3px);
  }
}

/* ------------------------------------------------------------------ */
/*                     Định dạng văn bản                              */
/* ------------------------------------------------------------------ */
/* Thẻ p - phân đoạn văn */
p,
.p {
  color: var(--txt-pri);
}

/* Thẻ br - xuống hàng */
/* Thẻ b - bôi đậm */
/* Thẻ strong - nhấn mạnh */
strong,
.strong {
  font-weight: 500;
}

/* Thẻ i - in nghiên */
/* Thẻ small - chữ nhỏ */
small,
.small {
  font-size: var(--sm);
}

/* Thẻ mark - hightline */
mark,
.mark {
  font-weight: var(--fw-500);
  background-color: var(--yellow);
}

/* Thẻ del - gạch giữa */
del {
  color: var(--default);
  font-weight: var(--fw-300);
}

/* Thẻ sub - nhảy xuống dưới */
sub {
  font-size: var(--fs-s);
}

/* Thẻ sup - nhảy lên trên */
sup {
  font-size: var(--fs-s);
}

/*  */

.txt-first {
  color: var(--txt-pri);
}

.txt-first::first-letter {
  float: left;
  font-size: 150%;
  font-weight: bold;
  text-transform: uppercase;
  color: var(--title);
  line-height: 1;
  margin-right: 2px;
}

/* text limit */
.line {
  display: block;
  display: -webkit-box;
  line-height: 1.5;
  /* số dòng cần hiển thị */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  /* ellipsis: cắt một đoạn text và thay thế bằng dấu 3 chấm. */
}

.line-1 {
  line-clamp: 1;
  -webkit-line-clamp: 1;
}

.line-2 {
  line-clamp: 2;
  -webkit-line-clamp: 2;
}

.line-3 {
  line-clamp: 3;
  -webkit-line-clamp: 3;
}

/* letter-spacing */

.txt-ls {
  letter-spacing: 0.5rem;
  text-transform: uppercase;
}

/* text-align */

.txt-justify {
  text-align: justify;
}

.txt-center {
  text-align: center;
}

.txt-left {
  text-align: left;
}

.txt-right {
  text-align: right;
}

/* text-transform */

.txt-ca {
  text-transform: capitalize;
}

.txt-up {
  text-transform: uppercase;
}

.txt-lo {
  text-transform: lowercase;
}

.txt-shadow {
  text-shadow: var(--ts);
}

/* ------------------------------------------------------------------ */
/*                           Thẻ a - Link                             */
/* ------------------------------------------------------------------ */

a {
  text-decoration: none;
  transition: var(--trs);
  color: var(--link);
}

a:hover {
  color: var(--active);
}

/*  */

a.tag {
  background-color: var(--bg-sec);
  margin-right: 0.5rem;
  padding: 5px 10px;
  cursor: pointer;
  border-radius: 50px;
  font-size: var(--fs);
  text-transform: capitalize;
  transition: var(--trs);
}

a.tag:hover {
  background-color: var(--info);
  color: var(--lk-bg);
}

/*  */
.list {
  a {
    display: flex;
    align-items: center;
    padding: var(--ss);
    color: var(--txt-pri);
    border-bottom: thin solid var(--bd-pri);

    .icon {
      margin-right: var(--fs);
    }
  }

  a:last-child {
    border-bottom: none;
  }

  a:hover {
    border-radius: 5px;
    background-color: var(--bg-hv);

    .icon {
      background-color: var(--active);
    }

    p {
      color: var(--active);
    }
  }
}

/*  */

a.link {
  color: var(--txt-pri);
  transition: var(--trs);
}

a.link:hover {
  color: var(--active);
}

.link {
  display: inline-block;
  position: relative;
  padding-bottom: 1px;
}

.link-center {
  &:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 1px;
    transform: scaleX(0);
    background-color: var(--link);
    transition: transform 0.3s;
  }

  &:hover {
    &:after {
      transform: scaleX(1);
    }
  }
}

/* ------------------------------------------------------------------ */
/*                      Thẻ img - hình ảnh                            */
/* ------------------------------------------------------------------ */

img,
video {
  display: block;
  width: 100%;
  max-height: 400px;
  object-fit: cover;
}

img.center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/*  */
.img {
  -webkit-transition: all 2s;
  -moz-transition: all 2s;
  -o-transition: all 2s;
  transition: all 2s;
}

.img:hover {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -o-transform: scale(1.1);
  transform: scale(1.1);
}

img.h-200 {
  height: 200px;
}

.img-40x40 {
  width: 40px;
  height: 40px;
  border-radius: 5px;
}

/* ------------------------------------------------------------------ */
/*                         Table | Bảng                               */
/* ------------------------------------------------------------------ */

table {
  width: 100%;
  background-color: var(--bg-pri);
  border-collapse: collapse;
  border-spacing: 0;
}

caption {
  margin: 1rem;
  font-size: var(--fs-2);
  font-weight: 500;
}

thead,
tfoot th {
  color: var(--white);
  font-weight: 500;
  text-align: center;
}

thead th {
  background-color: var(--info);
}

tfoot th {
  background-color: var(--success);
}

tbody tr {
  &:nth-child(odd) {
    background-color: #f7f7f7;
  }

  &:hover {
    background-color: var(--bg-hv);
  }
}

td,
th {
  border: thin solid var(--bd-pri);
  text-align: left;
  vertical-align: middle;
  padding: 0.5rem;
}

th {
  white-space: wrap;
}

/* Table scroll x */
.table {
  overflow-y: hidden;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table table {
  max-width: 1200px;
}

/* Responsive */
.tbl-responsive {
  background-color: var(--bg-pri);
}

.tbl-responsive .row {
  margin: 0;
}

@media only screen and (max-width: 640px) {
  .tbl-responsive {
    thead {
      display: none;
    }

    tr {
      display: block;
    }

    td {
      display: block;
      text-align: right;
      border-bottom: none;
    }

    td::before {
      content: attr(data-label);
      float: left;
      font-weight: 500;
    }
  }
}

/* ------------------------------------------------------------------ */
/*                        Form + Input                                */
/* ------------------------------------------------------------------ */

label {
  display: inline-block;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="date"],
input[type="datetime-local"],
input[type="datetime"],
input[type="time"],
input[type="image"],
input[type="tel"],
input[type="search"],
input[type="week"],
input[type="month"],
input[type="url"],
input[type="file"],
select,
textarea {
  width: 100%;
  padding: var(--ss);
  resize: vertical;
  font-family: var(--ft);
  color: var(--txt-sec);
  outline: none;
  transition: var(--trs);
  border: thin solid var(--bd-pri);
  border-radius: 5px;
}

input[type="number"] {
  padding: var(--ss);
  border: thin solid var(--bd-pri);
  outline: none;

  &:hover,
  &:focus {
    border: thin solid var(--info);
  }
}

/* search */
.search {
  margin: 0 auto;
  max-width: 1440px;
  position: relative;
}

.search-bar {
  height: 44px;
  overflow: hidden;
  border: thin solid var(--bd-pri);
  border-radius: 24px;
  box-shadow: none;
  display: flex;
  justify-content: center;
  align-items: center;
}

.search-bar input[type="search"] {
  width: 90%;
  height: 35px;
  margin: 0 auto;
  outline: none;
  border: none;
  color: var(--txt-sec);
  -webkit-tap-highlight-color: transparent;
}

.search-bar .search-icon {
  width: 22px;
  height: 22px;
  margin: 0 3%;
  opacity: 6;
}

.search-bar .voice-icon {
  margin: 0 3%;
  vertical-align: middle;
  width: 14px;
  height: 22px;
}

.search-bar .submit {
  margin-right: 5px;
  border-radius: 20px;
}

.search-bar .submit:hover {
  box-shadow: none;
  border: thin solid var(--active);
  color: var(--active);
}

.result {
  .box:hover {
    transition: var(--trs);
    background-color: var(--bg-hv);
  }
}

/* *********************************************************************************** */
/*                          Tạo list - ul, ol                                     */
/* *********************************************************************************** */
ul,
ol {
  margin: 0;
}

/*  */
ul.none {
  list-style-type: none;
  padding-left: 0;
}

/*  */
.ol-1 {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.ol-1 li {
  counter-increment: step-counter;
  margin-bottom: 10px;
}

.ol-1 li::before {
  content: counter(step-counter);
  margin-right: 5px;
  font-size: 80%;
  background-color: var(--info);
  color: var(--white);
  font-weight: bold;
  padding: 3px 8px;
  border-radius: 3px;
}

/*  */
.ol-02 {
  counter-reset: my-awesome-list;
  list-style-type: none;
  padding-left: 0;
}

.ol-02 li {
  counter-increment: my-awesome-list;
  margin: 1rem 0;
  position: relative;
  width: 100%;
}

.ol-02 li::before {
  content: counter(my-awesome-list, decimal-leading-zero);
  border: 10px solid #2c3e50;
  border-radius: 50%;
  color: #fff;
  display: inline-block;
  font-weight: bold;
  font-size: 1.8em;
  line-height: 2.6em;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 2.6em;
  z-index: 2;
}

.ol-02 li > span {
  background: #8e44ad;
  border-radius: 4px;
  color: #fff;
  display: inline-block;
  position: relative;
  line-height: 2em;
  margin: 0 0 0 -2em;
  padding: 1.2em 2em 1.2em 3em;
  vertical-align: middle;
}

.ol-02 li > span::after {
  background: transparent;
  content: "";
  position: absolute;
  top: 24%;
  right: 2%;
  width: 50%;
  height: 50%;
  max-width: 300px;
  z-index: -1;
  box-shadow: 0 15px 10px rgba(0, 0, 0, 0.4);
  transform: rotate(3deg);
}

.ol-02 li:nth-child(1)::before {
  background: #8e44ad;
  border-color: #2c3e50;
  box-shadow: 0 0 0 3px #8e44ad;
}

.ol-02 li:nth-child(1) > span {
  background: #8e44ad;
}

.ol-02 li:nth-child(2)::before {
  background: #2980b9;
  border-color: #2c3e50;
  box-shadow: 0 0 0 3px #2980b9;
}

.ol-02 .li:nth-child(2) > span {
  background: #2980b9;
}

.ol-02 li:nth-child(3)::before {
  background: #27ae60;
  border-color: #2c3e50;
  box-shadow: 0 0 0 3px #27ae60;
}

.ol-02 li:nth-child(3) > span {
  background: #27ae60;
}

.ol-02 li:nth-child(4)::before {
  background: #16a085;
  border-color: #2c3e50;
  box-shadow: 0 0 0 3px #16a085;
}

.ol-02 li:nth-child(4) > span {
  background: #16a085;
}

/*  */
ul.inline-block {
  padding-left: 0;

  li {
    display: inline-block;
    padding-right: 10px;

    &:last-child {
      padding-right: 0;
    }
  }
}

/*  */
ul.breadcrumbs {
  padding-left: 0;

  li {
    display: inline-block;
  }

  li + li::before {
    content: "/\00a0";
    padding: 5px;
    color: var(--info);
  }

  li a {
    color: var(--info);
    text-transform: capitalize;
  }
}

/*  */
ul.check {
  li {
    list-style: none;
    background: url(../icon-png/icon-check.png) left center no-repeat;
    background-size: var(--fs);
    padding-left: 1.5rem;
    margin: var(--fs) 0;
  }
}

/*  */

/* Tree view */
.tree,
.tree ul {
  margin: 0 0 0 1em;
  padding: 0;
  list-style: none;
  position: relative;
}

.tree ul {
  margin-left: 0.5em;
}

.tree:before,
.tree ul:before {
  content: "";
  display: block;
  width: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  border-left: 1px solid var(--bd-pri);
}

.tree li {
  margin: 0;
  padding: 0 1.5em;
  line-height: 2em;
  position: relative;
}

.tree li:before {
  content: "";
  display: block;
  width: 10px;
  height: 0;
  border-top: 1px solid var(--bd-pri);
  margin-top: -1px;
  position: absolute;
  top: 1em;
  left: 0;
}

.tree li:last-child:before {
  background-color: var(--bg-pri);
  height: auto;
  top: 1em;
  bottom: 0;
}

/* *********************************************************************************** */
/*                                   Position                                     */
/* *********************************************************************************** */
.re {
  position: relative;
}

.ab-top-right {
  position: absolute;
  top: 10px;
  right: 10px;
}

.ab-top {
  position: absolute;
  top: 10px;
  left: 10px;
  right: 10px;
}

.ab-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.ab-middle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

/* Bar */
.bar-bottom {
  padding-bottom: 10px;

  &::after {
    margin-top: 1px;
    content: "";
    display: block;
    width: 40px;
    height: 2px;
    background-color: var(--title);
  }
}

.bar-left {
  &:before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 3px;
    margin-right: 5px;
    background-color: var(--title);
  }
}

.bar-right {
  position: relative;
  overflow: hidden;

  &:after {
    content: "";
    display: inline-block;
    position: absolute;
    bottom: 4px;
    width: 20px;
    height: 3px;
    margin-left: 5px;
    background-color: var(--title);
  }
}

.note {
  background: rgb(255, 243, 224);
  box-sizing: inherit;
  color: var(--orange);
  margin: 5px 0px;
  padding: 10px;
  box-shadow: 0 2px 4px 0 rgba(158, 158, 158, 0),
    0 2px 15px 0 rgba(0, 0, 0, 0.06);
}

.pagination {
  padding: 20px;
  display: flex;
  justify-content: center;

  a {
    display: inline-block;
    padding: 0 var(--fs);
    min-width: 40px;
    line-height: 40px;
    text-align: center;
    border: thin solid var(--bd-pri);

    &:not(:first-child) {
      margin-left: 5px;
    }

    &:first-child {
      border-radius: 10px 0 0 10px;
    }

    &:last-child {
      border-radius: 0 10px 10px 0;
    }

    &:hover {
      background-color: var(--info);
      color: var(--white);
    }
  }
}

/**************************************************************************************/
/*                                       button - btn                                       */
/**************************************************************************************/
.btn,
button,
button[type="reset"],
button[type="submit"],
/*  */
input[type="button"],
input[type="reset"],
input[type="submit"] {
  border: none;
  margin: 10px 0;
  height: 35px;
  display: inline-block;
  min-width: 120px;
  padding: 10px 20px;
  border-radius: 5px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  outline: none;
  transition: var(--trs);
}

.btn:focus,
.btn:hover,
button:focus,
button:hover,
input[type="button"]:focus,
input[type="button"]:hover,
input[type="reset"]:focus,
input[type="reset"]:hover,
input[type="submit"]:focus,
input[type="submit"]:hover {
  opacity: 0.8;
  box-shadow: var(--bs);
}

button[disabled],
button[disabled],
input[type="button"][disabled],
input[type="reset"][disabled],
input[type="submit"][disabled] {
  background-color: var(--disabled);
  cursor: default;
  opacity: 0.8;
  cursor: not-allowed;
}

a.btn-img {
  margin: 0 auto;
  padding: 10px 20px;
  display: inline-block;
  border-radius: 30px;
  color: var(--white);

  img {
    display: inline;
    height: 0.8rem;
    width: 0.8rem;
  }
}

/*  */
.round {
  border-radius: 100px;
}

.circle {
  display: inline-block;
  padding: 10px;
  border-radius: 50%;

  .icon {
    display: block;
    background-color: var(--white);
    width: 20px;
    height: 20px;
    border-radius: 50%;
  }
}

/*  */

.loginBtn {
  position: relative;
  margin: 0.2rem;
  padding: 0 15px 0 46px;
  border: none;
  text-align: left;
  line-height: 34px;
  white-space: nowrap;
  color: #fff;
}

.loginBtn:before {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  left: 0;
  width: 34px;
  height: 100%;
}

/* Facebook */
.loginBtn--facebook {
  background-color: #4c69ba;
  background-image: linear-gradient(#4c69ba, #3b55a0);
}

.loginBtn--facebook:before {
  border-right: #364e92 1px solid;
  background: url("../icon-png/icon-facebook.png") 6px 6px no-repeat;
}

/* Google */
.loginBtn--google {
  background: #dd4b39;
}

.loginBtn--google:before {
  border-right: #bb3f30 1px solid;
  background: url("../icon-png/icon-google.png") 6px 6px no-repeat;
}

.btn-pri,
.btn-active,
.bg-active {
  color: var(--white);
  background-color: var(--active);
}

.btn-sec,
.btn-success,
.bg-success {
  color: var(--white);
  background-color: var(--success);
}

.btn-info,
.bg-info {
  color: var(--white);
  background-color: var(--info);
}

.btn-warning,
.bg-warning {
  color: var(--white);
  background-color: var(--warning);
}

.btn-danger,
.bg-danger {
  color: var(--white);
  background-color: var(--danger);
}

/*  */

.outline-pri {
  background-color: transparent;
  border: thin solid var(--active);
  color: var(--active);

  &:hover {
    background-color: var(--active);
    color: var(--white);
  }
}

.outline-sec {
  background-color: transparent;
  border: thin solid var(--success);
  color: var(--success);

  &:hover {
    background-color: var(--success);
    color: var(--white);
  }
}

/**************************************************************************************/
/*                                      CSS GRID                                      */
/**************************************************************************************/

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-gap: 30px;
  /* Căn giữa */
  place-content: center;
}
.grid-3,
.grid-4 {
  display: grid;
  grid-gap: 30px;
}
.grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
.grid-4 {
  grid-template-columns: repeat(4, 1fr);
}
@media only screen and (max-width: 1024px) and (min-width: 641px) {
  .grid-4 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media only screen and (max-width: 640px) {
  .grid-3,
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (max-width: 430px) {
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
  }
}
.grid-center {
  display: grid;
  height: 100%;
  width: 100%;
  place-items: center;
}

/**************************************************************************************/
/*                                      CSS FLEX                                      */
/**************************************************************************************/

.flex-4 {
  display: flex;
  flex-flow: row wrap;
  margin: 10px -10px 10px -10px;
}

.flex-4 .f4-col {
  padding: 10px;
  flex: 0 0 25%;

  @media (max-width: 991px) {
    flex: 0 0 33.33%;
  }

  @media (max-width: 768px) {
    flex: 0 0 50%;
  }

  @media (max-width: 570px) {
    flex: 0 0 100%;
  }
}

.flex-8 {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}

.flex-8 .f8-col {
  flex: 0 0 12.5%;
  padding: 10px;

  @media (max-width: 991px) {
    flex: 0 0 16.66%;
  }

  @media (max-width: 767px) {
    flex: 0 0 25%;
  }
}

.flex {
  display: flex;
}

.flex-wrap {
  display: flex;
  flex-wrap: wrap;
}

.flex-center {
  align-items: center;
}

.flex-center-v {
  vertical-align: middle;
}

.flex-between {
  justify-content: space-between;
}

.flex-around {
  justify-content: space-around;
}

.flex-evenly {
  justify-content: space-evenly;
}

/*  */

/* ---------------------------- Class sử dụng JavaScript --------------------------------- */

/* TOC - Table of Contents */

.toctogglelabel {
  color: var(--info);
  text-decoration: var(--info) underline;
  cursor: pointer;
}

#toc {
  ul {
    list-style: none;
    font-weight: bold;
    padding-left: 0;
  }

  ul > ul > li > ul {
    li > a {
      color: var(--txt-pri);
      font-weight: 400;
    }
  }

  li {
    margin: 8px 0;
  }

  a:hover {
    text-decoration: underline;
  }
}

.hidden {
  display: none;
}

/*********************************************************************************/
/*                               ANIMATION                                       */
/*********************************************************************************/

.ani-fade {
  animation-name: fade;
  animation-duration: 1.5s;
}

@keyframes fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/*  */

.ani-bounce {
  animation: bounce 2s ease-in-out infinite;
}

@keyframes bounce {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.2);
  }

  100% {
    transform: scale(1);
  }
}

/*  */

.ani-hue {
  animation: hue 10s infinite linear;
  -webkit-animation: hue 10s infinite linear;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

@keyframes hue {
  from {
    -webkit-filter: hue-rotate(0deg);
  }

  to {
    -webkit-filter: hue-rotate(-360deg);
  }
}

/*  */
.ani-pulse {
  animation: pulse 2s ease-out;
  animation-iteration-count: infinite;
}

@keyframes pulse {
  40% {
    transform: scale3d(1, 1, 1);
  }

  50% {
    transform: scale3d(1.3, 1.3, 1.3);
  }

  55% {
    transform: scale3d(1, 1, 1);
  }

  60% {
    transform: scale3d(1.3, 1.3, 1.3);
  }

  65% {
    transform: scale3d(1, 1, 1);
  }
}

/*  */
.ani-ring {
  animation-name: ring;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@keyframes ring {
  from {
    transform: rotate3d(0, 0, 1, 0deg);
  }

  20%,
  32%,
  44%,
  56%,
  68% {
    transform: rotate3d(0, 0, 1, 0deg);
  }

  23%,
  35%,
  47%,
  59%,
  71% {
    transform: rotate3d(0, 0, 1, 15deg);
  }

  26%,
  38%,
  50%,
  62%,
  74% {
    transform: rotate3d(0, 0, 1, 0deg);
  }

  29%,
  41%,
  53%,
  65%,
  77% {
    transform: rotate3d(0, 0, 1, -15deg);
  }

  80% {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

/*  */
.row {
  width: 100%;
  padding: var(--ss);
}

.row::after {
  content: "";
  clear: both;
  display: table;
}

.float-left {
  float: left;
}

.float-right {
  float: right;
}

/*  */
.block {
  display: block;
  width: 100%;
}

.inline {
  display: inline;
}

/* margin */
.mg {
  margin: var(--ss);
}

.mg-t {
  margin-top: var(--ss);
}

.mg-r {
  margin-right: var(--ss);
}

.mg-b {
  margin-bottom: var(--ss);
}

.mg-l {
  margin-left: var(--ss);
}

/* padding */

.pd {
  padding: var(--ss);
}

.pd-t {
  padding-top: var(--ss);
}

.pd-b {
  padding-bottom: var(--ss);
}

.pd-l {
  padding-left: var(--ss);
}

.pd-r {
  padding-right: var(--ss);
}

/* ------------------------------------------------------------------------------- */
/*                                   class                                       */
/* ------------------------------------------------------------------------------- */

.box {
  margin: var(--ss);
  padding: var(--ss);
  border-radius: var(--ss);
}

.border {
  border: thin solid var(--bd-pri);
}

.radius {
  border-radius: var(--ss);
}

.radius-top {
  border-top-left-radius: var(--ss);
  border-top-right-radius: var(--ss);
}

.shadow {
  box-shadow: var(--bs);
}

/*  */
.w-40 {
  width: 40px;
  border-radius: 5px;
}

.w-50 {
  width: 50px;
  border-radius: 5px;
}

.w-100 {
  width: 100px;
}

.w-300 {
  min-width: 300px;
}

.w-500 {
  max-width: 500px;
}

/* *************************************************************************** */
/*                               banner                                    */
/* *************************************************************************** */

.banner {
  padding-bottom: var(--ss);
  position: relative;
  min-width: 100%;
  max-height: 450px;
  aspect-ratio: 1 / 1;
  border-radius: var(--ss);
  overflow: hidden;
  scroll-snap-align: start;
}

.banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right;
}

.banner-content {
  background: hsla(0, 0%, 0%, 0.2);
  position: absolute;
  bottom: 25px;
  left: 25px;
  right: 25px;
  padding: var(--fs);
  border-radius: var(--ss);
}

.banner-subtitle {
  color: var(--white);
  font-size: var(--fs-6);
  font-weight: var(--fw-500);
  text-transform: capitalize;
  letter-spacing: 2px;
  margin-bottom: 10px;
}

.banner-title {
  color: var(--title);
  font-size: 2rem;
  text-transform: uppercase;
  filter: drop-shadow(0 0 0.4rem var(--title));
  line-height: 1;
  margin-bottom: 10px;
}

/* ------------------------------------------------------------------------------- */
/*                                    card                                         */
/* ------------------------------------------------------------------------------- */

.card {
  margin: var(--ss);
  position: relative;
  background-color: var(--bg-pri);
  border-radius: var(--ss);
  overflow: hidden;
  box-shadow: var(--bs);
  -moz-box-shadow: var(--bs);
  -webkit-box-shadow: var(--bs);
  transition: var(--trs);

  &:hover {
    box-shadow: var(--bs-hv);
    -moz-box-shadow: var(--bs-hv);
    -webkit-box-shadow: var(--bs-hv);
  }
}

.card-header,
.card-body,
.card-footer {
  padding: var(--ss);
}

.card-footer {
  vertical-align: middle;
}

/*  */

.card-img {
  border-radius: var(--ss);
  position: relative;

  img {
    border-radius: var(--ss);
  }

  .card-content {
    position: absolute;
    padding: var(--ss);
    color: var(--white);
    /* other styles (left, top, right, and padding) */
    bottom: 0;
    background-image: linear-gradient(
      0deg,
      hsla(0, 0%, 35.29%, 0) 0%,
      hsla(0, 0%, 34.53%, 0.034375) 16.36%,
      hsla(0, 0%, 32.42%, 0.125) 33.34%,
      hsla(0, 0%, 29.18%, 0.253125) 50.1%,
      hsla(0, 0%, 24.96%, 0.4) 65.75%,
      hsla(0, 0%, 19.85%, 0.546875) 79.43%,
      hsla(0, 0%, 13.95%, 0.675) 90.28%,
      hsla(0, 0%, 7.32%, 0.765625) 97.43%,
      hsla(0, 0%, 0%, 0.8) 100%
    );
  }
}

/*  */

.card-ani {
  --card-bg-color: #2e2e2e;
  margin: var(--ss);
  background: var(--card-bg-color);
  width: 300px;
  height: 300px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 0;
  overflow: hidden;
  border-radius: var(--ss);
}

.card-inner {
  --border-size: 5px;
  width: calc(100% - var(--border-size));
  height: calc(100% - var(--border-size));
  background: var(--card-bg-color);
  position: absolute;
  border-radius: 5px;

  img {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
  }
}

.card-inner::before {
  --width: 50%;
  --height: 135%;
  width: var(--width);
  height: var(--height);
  top: calc(50% - var(--height) / 2);
  left: calc(50% - var(--width) / 2);
  content: "";
  position: absolute;
  background: linear-gradient(
    130deg,
    rgba(255, 132, 0, 1) 25%,
    rgba(245, 255, 0, 1) 96%
  );
  z-index: -1;
  filter: blur(20px);
  animation: rotate 10s linear infinite;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

/* ------------------------------------------------------------------------------- */
/*                                   socials                                       */
/* ------------------------------------------------------------------------------- */

.socials,
.links {
  display: flex;
  margin: var(--fs) 0;
  align-items: center;
}

.socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--bd-pri);
  margin: 0 0.2rem;
  border-radius: 50%;
  text-decoration: none;
  font-size: 0.8rem;
  transition: all 0.5s ease;
}

.socials a:hover {
  background: var(--bg-hv);
  border-color: transparent;
}

/* ------------------------------------------------------------------------------- */
/*                                   category                                       */
/* ------------------------------------------------------------------------------- */

.category {
  margin: var(--fs);
  min-width: 320px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--bd-pri);
  border-radius: var(--ss);
  scroll-snap-align: start;
}

/* ------------------------------------------------------------------------------- */
/*                                   product                                       */
/* ------------------------------------------------------------------------------- */

.price {
  margin: 1rem 0;
  font-size: 1rem;
  font-weight: 700;
}

.price span {
  font-weight: 400;
}

.last-price span {
  color: #f64749;
  text-decoration: line-through;
}

.new-price span {
  color: #256eff;
}

/*  */

.gallery {
  & img {
    max-height: 550px;
    border-radius: 5px;
    aspect-ratio: 1/1;
  }
}

.gallery .view {
  aspect-ratio: 3/2;
}

.gallery .btns {
  margin: 5px;
  padding-left: 0;
  list-style-type: none;
  display: flex;
  gap: 0.25rem;

  & li {
    cursor: pointer;
    transition: opacity 0.2s;

    &:hover {
      opacity: 0.8;
    }

    img {
      height: 50px;
      border-radius: 5px;
    }
  }
}

/* xem chi tiết */

.detail {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    margin: var(--fs) 0;
    font-family: "Nunito Sans", sans-serif;
    font-weight: var(--fw-700);
  }

  h1 {
    font-size: var(--fs-1);
    color: var(--danger);
  }

  h2 {
    font-size: var(--fs-2);
    color: var(--title);
  }

  h3 {
    font-size: var(--fs-3);
    color: var(--success);
  }

  h4 {
    font-size: var(--fs-4);
    color: var(--active);
  }

  h5 {
    font-size: var(--fs-5);
  }

  h6 {
    font-size: var(--fs-6);
  }

  p {
    font-size: var(--fs);
    font-family: var(--ft);
    margin-bottom: var(--fs);
  }
}

/*  */
.cols {
  display: flex;
  justify-content: space-between;
  flex-flow: row wrap;
  flex-basis: 100%;
}

.col,
.col-20,
.col-25,
.col-30,
.col-40,
.col-50,
.col-70,
.col-75 {
  float: left;
}
.col-20 {
  width: 20%;
}
.col-25 {
  width: 25%;
}
.col-30 {
  width: 30%;
}
.col-40 {
  width: 40%;
}
.col-50 {
  width: 50%;
}
.col-70 {
  width: 70%;
}
.col-75 {
  width: 75%;
}

/* dashboard - bảng điều kiển */
.admin {
  .col-30 {
    order: 1;
  }

  .col-70 {
    order: 2;
  }
}

/*  */
.layout-3 {
  .center {
    order: 1;
  }

  .left {
    order: 2;
  }

  .right {
    order: 3;
  }
}

/* ------------------------------------------------------------------------------- */
/*                                    panel                                        */
/* ------------------------------------------------------------------------------- */

.panel {
  margin: var(--fs);
  border-top-left-radius: var(--fs);
  border-top-right-radius: var(--fs);
  border: thin solid var(--bd-pri);
}

.panel .panel-header {
  padding: var(--fs);
  border-bottom: thin solid var(--bd-pri);
}

.panel .panel-body {
  padding: var(--fs);
}

.panel .panel-footer {
  border-top: thin solid var(--bd-pri);
  padding: var(--fs);
}

/* ------------------------------------------------------------------------------- */
/*                                   service                                       */
/* ------------------------------------------------------------------------------- */

.service {
  padding: var(--fs);
  border-radius: 5px;
  border: thin solid transparent;
}
.service:hover {
  cursor: pointer;
  transition: var(--trs);
  border: thin solid var(--link);
}
.service .icon {
  padding: var(--sl);
  background-color: var(--info);
}

/* ------------------------------------------------------------------------------- */
/*                                                                                 */
/* ------------------------------------------------------------------------------- */
