/* ==========================================================================
   UNTERRO - FLOATING AMBIENT GLOW FOOTER COMPONENT (MOBILE-FIRST POLISHED)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Base Footer Block (.site-footer)
   -------------------------------------------------------------------------- */
.site-footer {
  position: relative;
  background-color: #000000 !important; /* Pure solid black background */
  color: rgba(255, 255, 255, 0.6);
  padding: 30px 0 54px; /* Preserves exact height after privacy bottom row removal */
  overflow: visible; /* Allowed top CTA pill overflow */
  z-index: var(--z-base);
  border-top: 1px solid rgba(255, 255, 255, 0.05); /* Subtle entry line */
}

/* Layer 1: Dedicated Solid Black Background (Replaces previous background photo) */
.site-footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000000;
  z-index: 1; /* Lowest layer */
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   2. Golden Ambient Glow Layers (Lighter & More Premium)
   -------------------------------------------------------------------------- */
.site-footer__glow-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2; /* Glow container base layer */
  overflow: hidden;
}

/* Layer 2: Interactive Cursor Glow - Torch Light Effect (Focused Spotlight) */
.site-footer__glow {
  position: absolute;
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  width: 460px; /* Slightly increased torch radius for balanced coverage */
  height: 380px;
  background: radial-gradient(
    ellipse at center, 
    rgba(235, 115, 18, 0.85) 0%,     /* Focused warm torch core */
    rgba(205, 85, 10, 0.65) 24%,    /* Warm inner beam */
    rgba(155, 50, 5, 0.38) 48%,     /* Amber body */
    rgba(85, 22, 0, 0.16) 70%,      /* Smooth ambient falloff */
    rgba(25, 6, 0, 0.04) 86%,       /* Gentle outer fade */
    rgba(0, 0, 0, 0) 100%
  );
  filter: blur(25px);
  -webkit-filter: blur(25px);
  border-radius: 50%;
  z-index: 2; /* Sits below the mesh to illuminate the micro-squares from behind */
  pointer-events: none;
  will-change: transform, opacity;
}

/* Layer 3: Micro-Square Mesh Grid Overlay Texture (Ultra-fine micro squares lit by torch) */
.site-footer__mesh {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3; /* Sits on top of the glow so the micro-squares are illuminated by the torch */
  pointer-events: none;
  background-size: 2px 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Crect width='1' height='1' fill='%23000000'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   3. Top Call-To-Action Pill Button (.site-footer__cta-pill)
   -------------------------------------------------------------------------- */
.site-footer__cta-container {
  display: flex;
  justify-content: center;
  margin-top: -12px; /* Fine-tuned overlap to reduce gap from the top */
  margin-bottom: 24px; /* Reduced gap below the pill to sit closer to the columns */
  position: relative;
  z-index: 4; /* Layer 4: Content top elements */
}

.site-footer__cta-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 42px; /* Increased width/height padding */
  background-color: #AD622F; /* Rose gold / Copper rose solid background */
  border: 1px solid rgba(255, 255, 255, 0.12); /* Hairline container border */
  border-radius: 8px; /* Reduced border radius to 8px for soft rectangular corners */
  text-decoration: none;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
  transition: transform var(--transition-smooth), 
              box-shadow var(--transition-smooth), 
              border-color var(--transition-smooth);
}

.site-footer__cta-pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(173, 98, 47, 0.2);
  border-color: rgba(255, 255, 255, 0.25);
}

.site-footer__cta-text {
  font-family: var(--font-family-sans);
  font-size: 15px; /* Increased font size for legibility */
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.12em; /* Elegant tracked lettering for mixed case */
  text-transform: none; /* Mixed-case capitalization matching reference */
  display: inline-flex;
  align-items: center;
}

.site-footer__cta-prefix {
  color: #100f0e; /* Static prefix is black */
}

.site-footer__dynamic-word {
  color: #ffffff; /* Dynamic words are white */
}

.site-footer__typewriter-cursor {
  display: inline-block;
  margin-left: 2px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.7);
  animation: typewriter-blink 0.85s steps(2, start) infinite;
}

@keyframes typewriter-blink {
  to {
    visibility: hidden;
  }
}

/* --------------------------------------------------------------------------
   4. Columns Grid (.site-footer__grid)
   -------------------------------------------------------------------------- */
/* Layer 4: Primary content layout containers */
.site-footer__container {
  position: relative;
  z-index: 4; /* Sits on top of the interactive glow */
}

.site-footer__grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
  text-align: center;
  margin-bottom: 24px; /* Reduced bottom margin */
}

.site-footer__column {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* --------------------------------------------------------------------------
   5. Column Elements: Branding & Description
   -------------------------------------------------------------------------- */
.site-footer__logo-wrap {
  margin-bottom: var(--space-sm);
}

.site-footer__logo {
  height: 25px; /* Matches header scaling */
  width: auto;
  border-radius: 0;
  background: none;
  display: inline-block;
}

.site-footer__description {
  font-size: 13px;
  font-weight: var(--font-weight-light); /* Lighter weight for premium feel */
  line-height: 1.8;
  color: #ffffff;
  max-width: 320px;
  margin-bottom: var(--space-md);
}

.site-footer__address-text {
  font-size: 13px;
  font-weight: var(--font-weight-light);
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.42);
  max-width: 320px;
  margin-top: 8px;
  margin-bottom: 20px;
}

@media (min-width: 1200px) {
  .site-footer__address-text {
    font-size: 14px;
    max-width: 360px;
  }
}

@media (min-width: 1920px) {
  .site-footer__address-text {
    font-size: 15px;
    max-width: 400px;
  }
}

@media (max-width: 1023px) {
  .site-footer__address-text {
    text-align: left !important;
    max-width: 100% !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    margin-top: 8px !important;
    margin-bottom: 18px !important;
  }
}

/* Horizontal Social Stack */
.site-footer__socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.site-footer__social-link {
  width: 32px; /* Smaller, delicate circle dimensions */
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.45);
  transition: border-color var(--transition-fast), 
              color var(--transition-fast), 
              background-color var(--transition-fast);
}

.site-footer__social-link:hover {
  border-color: rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.6);
  background-color: rgba(255, 255, 255, 0.04);
}

.site-footer__social-icon {
  width: 14px; /* Delicate icon scale */
  height: 14px;
  stroke: currentColor;
  transition: transform var(--transition-fast);
}

.site-footer__social-link:hover .site-footer__social-icon {
  transform: scale(1.05);
}

/* --------------------------------------------------------------------------
   6. Column Elements: Menu Indices
   -------------------------------------------------------------------------- */
.site-footer__title {
  font-family: var(--font-family-sans);
  font-size: 12px; /* Slightly smaller title typography */
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.18em; /* Expanded spacing tracking */
  color: #ffffff;
  margin-bottom: 16px; /* Increased for better visual breathing room */
  display: flex;
  align-items: center;
  gap: 6px;
}

.site-footer__title-accent {
  display: inline-block;
  width: 3px;
  height: 12px;
  background-color: var(--color-accent, #AD622F);
  color: transparent;
  user-select: none;
  overflow: hidden;
  border-radius: 1px;
  flex-shrink: 0;
}

.site-footer__menu {
  display: flex;
  flex-direction: column;
  gap: 6px; /* Reduced from 12px to bring links closer together */
}

.site-footer__link {
  font-size: 13px;
  font-weight: var(--font-weight-light); /* Editorial light weight */
  letter-spacing: 0.04em;
  color: #ffffff;
  transition: color var(--transition-fast), transform var(--transition-fast);
  display: inline-block;
}

.site-footer__link:hover {
  color: #ffffff; /* Keep pure white intact */
  transform: translateX(2px); /* Subtly shifts links on hover */
}

/* --------------------------------------------------------------------------
   7. Footer Bottom Meta Row
   -------------------------------------------------------------------------- */
.site-footer__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  padding-top: 16px; /* Reduced padding above copyright text */
  border-top: 1px solid rgba(255, 255, 255, 0.04); /* Ultra-thin border separator */
  text-align: center;
}

.site-footer__copyright {
  font-size: 11px; /* Elegant extra-small size */
  font-weight: var(--font-weight-light);
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.35);
}

.site-footer__meta-links {
  display: flex;
  gap: var(--space-md);
}

.site-footer__meta-link {
  font-size: 11px;
  font-weight: var(--font-weight-light);
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.35);
  transition: color var(--transition-fast);
}

.site-footer__meta-link:hover {
  color: rgba(255, 255, 255, 0.35); /* Keep original color intact */
}

/* --------------------------------------------------------------------------
   8. Responsive Tablet & Desktop Adjustments (Media Queries)
   -------------------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1023px) {
  /* Tablet layout splits columns 2x2 */
  .site-footer__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg);
    text-align: left;
  }

  .site-footer__column {
    align-items: flex-start;
  }

  .site-footer__column--branding {
    grid-column: span 2;
    align-items: center;
    text-align: center;
  }
}

@media (min-width: 1024px) {
  .site-footer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 77px 0; /* Vertically centered: equal top and bottom spacing preserving total height */
  }

  .site-footer__container {
    width: 100%;
  }

  /* Torch Light Spotlight Scaling on Desktop */
  .site-footer__glow {
    width: 460px;
    height: 380px;
    filter: blur(25px);
    -webkit-filter: blur(25px);
  }

  /* 3-column Layout matching reference layout */
  .site-footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: var(--space-xl); /* Generous column spacing */
    text-align: left;
    margin-bottom: 0; /* Vertically aligned without orphan bottom gap */
  }

  .site-footer__column {
    align-items: flex-start;
  }

  .site-footer__column--branding {
    align-items: flex-start;
  }

  .site-footer__description {
    text-align: left;
  }

  .site-footer__socials {
    justify-content: flex-start;
  }

  /* Bottom Row Split layout */
  .site-footer__bottom {
    flex-direction: row;
    justify-content: space-between;
    padding-top: 16px; /* Reduced padding above copyright text on desktop */
  }

  /* Sticky uncover reveal behavior */
  .site-footer {
    position: sticky;
    bottom: 0;
    z-index: 1; /* Sits below #content */
  }
}

/* Sits on top of the sticky footer to cover it during normal scrolling */
#content {
  position: relative;
  z-index: 10;
  background-color: var(--color-bg-primary); /* Symmetrical page cover background */
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12); /* Subtle reveal shadow */
}

/* --------------------------------------------------------------------------
   9. Large Desktop & Ultra-wide Proportional Scaling
   -------------------------------------------------------------------------- */
@media (min-width: 1440px) {
  .site-footer {
    padding: 85px 0;
  }

  .site-footer__logo {
    height: 32px; /* Scale logo size */
  }

  .site-footer__description {
    font-size: 16px; /* Proportional large screen description size */
    line-height: 1.8;
    max-width: 420px;
  }

  .site-footer__social-link {
    width: 38px;
    height: 38px;
  }

  .site-footer__social-icon {
    width: 17px;
    height: 17px;
  }

  .site-footer__title {
    font-size: 14px; /* Proportional column header size */
    letter-spacing: 0.18em;
    margin-bottom: 20px;
  }

  .site-footer__title-accent {
    width: 3px;
    height: 14px;
  }

  .site-footer__menu {
    gap: 8px; /* Breathing room between links */
  }

  .site-footer__link {
    font-size: 16px; /* Proportional large screen menu link size */
  }

  .site-footer__glow {
    width: 520px;
    height: 430px;
  }
}

@media (min-width: 1920px) {
  .site-footer {
    padding: 95px 0;
  }

  .site-footer__logo {
    height: 38px; /* Maximum logo size scale */
  }

  .site-footer__description {
    font-size: 18px; /* Ultra-wide prominent description font size */
    line-height: 1.8;
    max-width: 480px;
  }

  .site-footer__social-link {
    width: 44px;
    height: 44px;
  }

  .site-footer__social-icon {
    width: 20px;
    height: 20px;
  }

  .site-footer__title {
    font-size: 16px; /* Maximum column header size scale */
    letter-spacing: 0.2em;
    margin-bottom: 24px;
  }

  .site-footer__title-accent {
    width: 3.5px;
    height: 16px;
  }

  .site-footer__menu {
    gap: 10px; /* Comfortable spacing between links */
  }

  .site-footer__link {
    font-size: 18px; /* Ultra-wide prominent menu link size */
  }

  .site-footer__glow {
    width: 580px;
    height: 480px;
  }
}

/* --------------------------------------------------------------------------
   10. Mobile and Tablet Footer Redesign (max-width: 1023px)
   -------------------------------------------------------------------------- */
@media (max-width: 1023px) {
  /* Add breathing room between page content (CTA buttons) and the black footer */
  #content {
    padding-bottom: 50px !important;
  }

  /* Hide We Help You Choose CTA pill completely */
  .site-footer__cta-container {
    display: none !important;
  }

  /* Hide bottom privacy link */
  .site-footer__meta-links {
    display: none !important;
  }

  /* Disable mobile glow/hover effect */
  .site-footer__glow-container {
    display: none !important;
  }

  /* Compact footer padding on mobile - snug space below DESIGN */
  .site-footer {
    padding: 30px 24px 20px !important;
  }

  /* Compact grid layout for mobile */
  .site-footer__grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    text-align: left !important;
    margin-bottom: 0 !important;
  }

  /* Branding column styling: left aligned and compact */
  .site-footer__column--branding {
    align-items: flex-start !important;
    text-align: left !important;
    width: 100% !important;
    margin-bottom: 20px !important;
  }

  .site-footer__description {
    text-align: left !important;
    max-width: 100% !important;
    margin-bottom: 15px !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    color: #ffffff !important;
  }

  .site-footer__socials {
    justify-content: flex-start !important;
  }

  /* Accordion Column Structure */
  .site-footer__column:not(.site-footer__column--branding) {
    width: 100% !important;
    align-items: stretch !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  /* Accordion Title Setup */
  .site-footer__title {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding: 14px 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    font-size: 13px !important;
    letter-spacing: 0.1em !important;
    color: #ffffff !important;
    text-align: left !important;
  }

  /* Hide vertical line accent on mobile */
  .site-footer__title-accent {
    display: none !important;
  }

  /* Plus / Minus indicators */
  .site-footer__title::after {
    content: "+" !important;
    font-size: 16px !important;
    font-weight: 300 !important;
    color: rgba(255, 255, 255, 0.5) !important;
    transition: transform 0.2s ease !important;
  }

  .site-footer__column.is-expanded .site-footer__title::after {
    content: "−" !important; /* Proper minus character */
  }

  /* Collapsed Menu Styling - Removed !important from max-height so JS can animate it */
  .site-footer__menu {
    max-height: 0;
    overflow: hidden !important;
    transition: max-height 0.3s cubic-bezier(0.25, 1, 0.5, 1) !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    text-align: left !important;
  }

  .site-footer__column.is-expanded .site-footer__menu {
    padding-bottom: 12px !important;
  }

  .site-footer__link {
    display: block !important;
    padding: 6px 0 !important;
    font-size: 13px !important;
    color: #ffffff !important;
  }
}


