/* =========================================
   MiniCodex — Footer (dark)
   NOTE: This file must style BOTH the footer container and the inner columns.
   ========================================= */

:root{
  /* fallback colors in case variables aren't defined on a page */
  --haiti: #161032;
  --butterfly: #5C51A2;
  --java: #14CFBC;
  --bright-sun: #FFE830;
  --alabaster: #FAFAFA;
}

/* ---- Footer container (CRITICAL) ----
   Many pages inject footer.html into #footer-placeholder.
   If the container is not explicitly styled, other page CSS may cause overlap.
*/

.site-footer{
  position: relative;          /* must be in normal flow */
  inset: auto;
  width: 100%;
  display: block;
  z-index: 0;

  /* spacing so content never feels glued to footer */
  margin-top: var(--sp-8);
  padding: var(--sp-6) var(--sp-3) var(--sp-4);

  color: var(--alabaster);

  /* dark footer background (clean, seam-free) */
  background-color: rgba(22, 16, 50, 1);
  background-image: linear-gradient(180deg, rgba(22, 16, 50, .88) 0%, rgba(22, 16, 50, 1) 100%);

  /* Anti-seam rendering hints */
  background-clip: padding-box;
  transform: translateZ(0);
  will-change: transform;
}

/* Thin accent line (MiniCodex colors) */
.site-footer::after{
  content:"";
  position:absolute;
  top:-2px;
  left:0;
  right:0;
  height:2px;
  pointer-events:none;
  background: linear-gradient(
    90deg,
    rgba(20,207,188,0),
    rgba(20,207,188,.9),
    rgba(20,207,188,.9),
    rgba(20,207,188,0)
  );
  opacity: .9;
}

/* Ensure the injected placeholder participates in layout */
#footer-placeholder{
  width: 100%;
  display: block;
  clear: both;
}

/* ---- Inner layout ---- */
.footer-inner{
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: var(--sp-4);
  flex-wrap: wrap;
  align-items: flex-start;
}

.footer-col{
  flex: 1;
  min-width: 200px;
}

.footer-col h3{
  font-size: var(--fs-h4);
}

.footer-col ul{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.footer-col p{
  margin: 8px 0 12px;
  opacity: .85;
  max-width: 280px;
}

.anpc-logos{
  display: flex;
  gap: var(--sp-2);
  margin: var(--sp-2) 0;
  flex-wrap: wrap;
}

.anpc-logos img{
  height: 40px;
  width: auto;
}

/* Social icons */
.footer-social{
  display: flex;
  gap: 10px;
  margin: 16px 0 0;
}

.footer-social__icon{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .12);
  text-decoration: none;
  transition: background .2s ease, transform .2s ease;
}

.footer-social__icon:hover{
  background: rgba(20, 207, 188, .18);
  transform: translateY(-2px);
}

.footer-social__icon img{
  display: block;
  width: 18px;
  height: 18px;
}

.credits{
  font-size: var(--fs-small);
  opacity: 0.7;
}

/* link-urile din footer să NU fie albastre/subliniate */
.footer-link{
  color: var(--alabaster);
  text-decoration: none;
}

.footer-link:hover{
  color: var(--java);
}

/* Responsive */
@media (max-width: 720px){
  .site-footer{
    padding: var(--sp-6) var(--sp-2) var(--sp-3);
    margin-top: var(--sp-6);
  }
  .footer-inner{ gap: 24px; }
}

/* ---- Floating action buttons (WhatsApp + Phone) ---- */
.float-buttons {
  position: fixed;
  bottom: var(--sp-3);
  right: var(--sp-3);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  align-items: flex-end;
}

.float-btn {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .3);
  transition: transform .25s ease;
  text-decoration: none;
  will-change: transform;
}

.float-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}

.float-btn:hover {
  transform: scale(1.08);
}

.float-btn:hover::after {
  opacity: 1;
}

.float-btn:active {
  transform: scale(.95);
}

/* ---- Hover label that slides out from the icon ---- */
.float-label {
  position: absolute;
  right: 64px;
  top: 50%;
  transform: translateY(-50%) translateX(8px);
  white-space: nowrap;
  font-size: var(--fs-small);
  font-weight: 600;
  color: #fff;
  background: var(--java);
  padding: var(--sp-1) var(--sp-2);
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
}

.float-label::after {
  content: '';
  position: absolute;
  right: -6px;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: var(--java);
  border-right: none;
}

.float-btn:hover .float-label {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.phone-float {
  background: var(--java);
}

.phone-float::after {
  box-shadow: 0 6px 24px rgba(20, 207, 188, .4);
}

.wa-float {
  background: #25D366;
}

.wa-float .float-label {
  background: #25D366;
}

.wa-float .float-label::after {
  border-left-color: #25D366;
}

.wa-float::after {
  box-shadow: 0 6px 24px rgba(37, 211, 102, .4);
}

@media (max-width: 600px) {
  .float-buttons {
    bottom: var(--sp-2);
    right: var(--sp-2);
    gap: var(--sp-1);
  }
  .float-btn {
    width: 50px;
    height: 50px;
  }
  .float-btn svg {
    width: 24px;
    height: 24px;
  }
  .float-label {
    display: none;
  }
}
