/* ============================================================
   quickq-pc 重构 · base.css（全局基础）
   参数来源：原站 style.css（bootstrap.min.css 为框架原样保留）
   ============================================================ */

/* ---------- 字体 ----------
   原站未加载任何字体文件（style.css 无 @font-face），
   'Poppins' 只是字体族声明，实际回退系统 sans-serif（原站怪癖保留） */

/* ---------- 全局 ---------- */
::-moz-selection { background: #31333e; color: #fff; text-shadow: none; }
::selection { background: #31333e; color: #fff; text-shadow: none; }
button:focus, input:focus, select:focus, textarea:focus { outline: none !important; }
button[type=submit] { cursor: pointer; border: none; }
textarea { resize: none; }
img { max-width: 100%; height: auto; }
a { color: #f77ade; -webkit-transition: all .2s; transition: all .2s; }
a:hover { color: #f77ade; }
a, a:hover, a:active, a:focus { text-decoration: none; outline: none; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: 'Poppins', sans-serif; color: #36324a; }
h1, .h1 { font-size: 30px; line-height: 55px; }
h2, .h2 { font-size: 30px; line-height: 55px; }
h3, .h3 { font-size: 30px; }
h4, .h4 { font-size: 26px; }
h5, .h5 { font-size: 20px; }
h6, .h6 { font-size: 16px; }
p { font-family: 'Poppins', sans-serif; line-height: 30px; margin-bottom: 25px; font-weight: 400; font-size: 16px; }
body { font-family: 'Poppins', sans-serif; font-size: 16px; color: #6f6c7f; line-height: 36px; background: #fff; overflow-x: hidden !important; font-weight: 400; }
.theme-color { color: #5b39c9; }
.theme-bg { background: #5b39c9; }
ul, li { margin-bottom: 0; list-style: none; padding: 0; }
b, strong { font-weight: bold; }
.font-weight-600 { font-weight: 600; }
.list-inline > li { display: inline-block; }
.form-control { font-size: 14px; }
.form-control:focus { border-color: #fff; }
input.parsley-error, textarea.parsley-error, select.parsley-error { border: 1px solid red !important; }
.theme-list-style { padding: 0; list-style: none; }
.theme-list-style li { font-weight: 600; color: #4c4f60; padding: 5px 0; }
.bg-2 { background-color: #f7f6f9; }

/* ---------- 按钮（原站 .btn 主题规则） ---------- */
.qpc-btn {
  cursor: pointer;
  z-index: 1;
  position: relative;
  padding: 16px 36px;
  color: #5b39c9;
  font-weight: 600;
  text-transform: capitalize;
  overflow: hidden;
  border: 2px solid #5b39c9;
  border-radius: 50px;
  -webkit-transition: .3s all linear;
  transition: .3s all linear;
  font-size: 14px;
  display: inline-block;
}
.qpc-btn.active, .qpc-btn:hover, .qpc-btn:focus { color: #fff; text-decoration: none; }
.qpc-btn:before {
  content: " ";
  position: absolute;
  top: 48%;
  left: 48%;
  z-index: -1;
  -webkit-transform: scale(0);
  transform: scale(0);
  width: 11px;
  height: 11px;
  -webkit-transition: .3s all linear;
  transition: .3s all linear;
  opacity: 0;
  visibility: hidden;
  background: #5b39c9;
  border-radius: 50px;
}
.qpc-btn:hover { border-color: #5b39c9; }
.qpc-btn:hover:before { -webkit-transform: scale(20); transform: scale(20); opacity: 1; visibility: visible; }
.qpc-btn:focus, .form-control:focus { box-shadow: none !important; }
.disabled { pointer-events: none; }

/* ---------- 间距工具（原站 1.4，含怪癖：pb-110 = 70px 0） ---------- */
.qpc-pt-150 { padding-top: 150px; }
.qpc-pb-150 { padding-bottom: 150px; }
.qpc-pt-140 { padding-top: 140px; }
.qpc-pb-140 { padding-bottom: 140px; }
.qpc-pt-130 { padding-top: 130px; }
.qpc-pb-130 { padding-bottom: 130px; }
.qpc-pt-120 { padding-top: 120px; }
.qpc-pt-115 { padding-top: 115px; }
.qpc-pb-115 { padding-bottom: 115px; }
.qpc-pb-120 { padding-bottom: 120px; }
.qpc-pt-110 { padding-top: 110px; }
.qpc-pb-110 { padding: 70px 0; }
.qpc-pt-100 { padding-top: 100px; }
.qpc-pb-100 { padding-bottom: 100px; }
.qpc-pt-90 { padding-top: 90px; }
.qpc-pb-90 { padding-bottom: 90px; }
.qpc-pt-80 { padding-top: 80px; }
.qpc-pb-80 { padding-bottom: 80px; }
.qpc-pt-70 { padding-top: 70px; }
.qpc-pb-70 { padding-bottom: 70px; }
.qpc-pt-60 { padding-top: 60px; }
.qpc-pb-60 { padding-bottom: 60px; }
.qpc-pt-55 { padding-top: 55px; }
.qpc-pb-55 { padding-bottom: 55px; }
.qpc-pt-50 { padding-top: 50px; }
.qpc-pb-50 { padding-bottom: 50px; }
.qpc-pt-30 { padding-top: 30px; }
.qpc-pb-30 { padding-bottom: 30px; }
.qpc-pt-20 { padding-top: 20px; }
.qpc-pb-20 { padding-bottom: 20px; }
.qpc-mt-140 { margin-top: 140px; }
.qpc-mb-140 { margin-bottom: 140px; }
.qpc-mt-120 { margin-top: 120px; }
.qpc-mb-120 { margin-bottom: 120px; }
.qpc-mt-70 { margin-top: 70px; }
.qpc-mb-70 { margin-bottom: 70px; }
.qpc-mt-60 { margin-top: 60px; }
.qpc-mb-60 { margin-bottom: 60px; }
.qpc-mt-50 { margin-top: 50px; }
.qpc-mb-50 { margin-bottom: 50px; }
.qpc-mt-40 { margin-top: 40px; }
.qpc-mb-40 { margin-bottom: 40px; }
.qpc-mt-30 { margin-top: 30px; }
.qpc-mb-30 { margin-bottom: 30px; }

/* ---------- 动画 ---------- */
@keyframes fadeInDown {
  0% { opacity: 0; -webkit-transform: translate3d(0,-40px,0); transform: translate3d(0,-40px,0); }
  to { opacity: 1; -webkit-transform: translateZ(0); transform: translateZ(0); }
}
.fadeInDown { -webkit-animation-name: fadeInDown; animation-name: fadeInDown; }
@keyframes fadeInUp {
  0% { opacity: 0; -webkit-transform: translate3d(0,40px,0); transform: translate3d(0,40px,0); }
  to { opacity: 1; -webkit-transform: translateZ(0); transform: translateZ(0); }
}
.fadeInUp { -webkit-animation-name: fadeInUp; animation-name: fadeInUp; }
@keyframes fadeInLeft {
  from { opacity: 0; -webkit-transform: translate3d(-50%, 0, 0); transform: translate3d(-50%, 0, 0); }
  to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
}
.fadeInLeft { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; }
@keyframes fadeInRight {
  from { opacity: 0; -webkit-transform: translate3d(50%, 0, 0); transform: translate3d(50%, 0, 0); }
  to { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
}
.fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; }
@keyframes spin { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
.spin { -webkit-animation: spin 2s linear infinite; animation: spin 1s linear infinite; }
@keyframes bounce {
  0% { -webkit-transform: translateY(0px); transform: translateY(0px); }
  50% { -webkit-transform: translateY(-40px); transform: translateY(-40px); }
  100% { -webkit-transform: translateY(0px); transform: translateY(0px); }
}
.bounce { -webkit-animation: bounce 2s linear infinite; animation: bounce 1s linear infinite; }
@keyframes rotate2d { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
.rotate2d { -webkit-animation: rotate2d 2s linear infinite; animation: rotate2d 1s linear infinite; }
@keyframes rotate-2d { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(-360deg); transform: rotate(-360deg); } }
.rotate-2d { -webkit-animation: rotate-2d 2s linear infinite; animation: rotate-2d 1s linear infinite; }
@keyframes rotate3d { 0% { -webkit-transform: rotateY(0deg); transform: rotateY(0deg); } 100% { -webkit-transform: rotateY(360deg); transform: rotateY(360deg); } }
.rotate3d { -webkit-animation: rotate3d 2s linear infinite; animation: rotate3d 1s linear infinite; }
