/* =========================================================
   footer.css — เฉพาะส่วน Footer + ปุ่ม LINE ลอย
   ========================================================= */
.site-footer { position: relative; overflow: hidden; padding-top: clamp(3rem, 2.5rem + 2vw, 4rem); background: var(--c-navy); color: rgb(255 255 255 / .65); }
.site-footer::before { content: ""; position: absolute; top: -60%; right: -10%; width: 50vw; height: 50vw; border-radius: 50%; background: radial-gradient(circle, rgb(30 99 214 / .3), transparent 60%); pointer-events: none; }
.site-footer > .container { position: relative; }
.site-footer a { color: rgb(255 255 255 / .7); }
.site-footer a:hover { color: #fff; }

.site-footer__cols { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem 3rem; padding-bottom: 2.5rem; }
.site-footer__cols ul { display: grid; gap: .55rem; padding: 0; list-style: none; font-size: var(--fs-sm); }
.site-footer__cols nav li a { display: inline-block; padding-block: .3rem; }
.brand--light, .brand--light:hover { color: #fff; }
.site-footer__tagline { margin-top: 1rem; font-size: var(--fs-sm); color: rgb(255 255 255 / .55); }
.site-footer__social { display: flex !important; gap: .5rem !important; margin-top: 1.25rem; }
.site-footer__social a {
  display: grid; place-items: center; width: 40px; height: 40px;
  border: 1px solid rgb(255 255 255 / .18); border-radius: var(--radius-ui);
  transition: background-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.site-footer__social a:hover { background: #fff; color: var(--c-navy); transform: translateY(-3px); }
.site-footer__title { margin-bottom: 1rem; font-family: var(--font); font-size: var(--fs-xs); font-weight: var(--fw-medium); letter-spacing: .2em; text-transform: uppercase; color: var(--c-aqua); }

.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 2rem; padding-block: 1.25rem; border-top: 1px solid rgb(255 255 255 / .1); }
.site-footer__bottom p { font-size: var(--fs-xs); color: rgb(255 255 255 / .45); }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 0; list-style: none; font-size: var(--fs-xs); }
.site-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; color: rgb(255 255 255 / .55); }

/* ปุ่ม LINE ลอยมุมขวาล่าง */
.float-line {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 90;
  display: inline-flex; align-items: center; gap: .5rem; height: 56px; padding: 0 1.25rem 0 1.1rem;
  font-size: var(--fs-sm); font-weight: var(--fw-medium); color: #fff;
  background: #06C755; border-radius: var(--radius-ui); box-shadow: 0 14px 34px -10px rgb(6 199 85 / .7);
  transition: transform .4s var(--ease-out), opacity .4s;
}
.float-line:hover { color: #fff; transform: translateY(-3px); }
.float-line .icon { width: 22px; height: 22px; }
.float-line::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: #06C755; animation: pulse 2.4s var(--ease-out) infinite; }
.float-line:not(.is-visible) { opacity: 0; transform: translateY(20px) scale(.9); pointer-events: none; }
@keyframes pulse { from { opacity: .6; transform: scale(1); } to { opacity: 0; transform: scale(1.35); } }

@media (max-width: 575px) {
  .site-footer__cols { grid-template-columns: 1fr; gap: 1.75rem; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; gap: .25rem; }
  .site-footer__social a { width: 44px; height: 44px; }
  .float-line { width: 56px; padding: 0; justify-content: center; }
  .float-line span { display: none; }
}
