/* ==========================================================================
   Footer Styles (Refined Box Sizes)
   ========================================================================== */
.footer {
  background: #f8f3eb !important; /* Solid fallback */
    background: rgba(248, 243, 235, 0.95) !important; /* Glassmorphism using Ivory Silk */
  color: #333333; 
  /* padding: 60px 0 30px; */
  font-family: 'Georgia',Georgia,"Times New Roman",serif;
  font-weight: 300;
}

.wrap {
  max-width: 1150px; /* Keeps the boxes from stretching too wide */
  margin: 0 auto;
  padding: 15px 20px;
}

/* Container for the 3 cards */
.footer-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px; /* Slightly smaller gap between boxes */
  margin-bottom: 40px;
}

/* Individual Card Styling */
.footer-card {
  border: 1px solid #cf6a3b; 
  border-radius: 30px;
  padding: 25px 20px; /* Reduced padding to make boxes smaller */
  background-color: transparent;
}

.card-title {
  font-family: 'Playfair Display',Georgia,"Times New Roman",serif;
  color: #cf6a3b;
  font-size: 26px; /* Reduced font size */
  font-style: italic;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 20px;
}

/* Card Content (Icons and Text) */
.card-info {
  display: flex;
  align-items: flex-start;
  margin-bottom: 15px; /* Tighter spacing */
  gap: 12px;
  color: #cf6a3b;
  font-size: 18px; /* Slightly smaller text */
  line-height: 1.5;
}

.card-info p {
  margin: 0;
}

.card-info a {
  color: #cf6a3b;
  text-decoration: none;
  transition: color 0.3s ease;
}

.card-info a:hover {
  text-decoration: underline;
  color: #333333; 
}

/* Proper SVG Icon Styling */
.card-info .icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0; /* Prevents icons from squishing */
  margin-top: 2px;
  color: #cf6a3b;
}

/* From Uiverse.io by elisapi */ 
.card {
  width: fit-content;
  height: fit-content;
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  gap: 20px;
}

/* for all social containers*/
.socialContainer {
  width: 52px;
  height: 52px;
  background-color: #cf6a3b;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition-duration: 0.3s;
  border-radius: 30px;
}
/* instagram*/
.containerOne:hover {
  background-color: #d62976;
  transition-duration: 0.3s;
  transform: scale(1.2);
}
/* twitter*/
.containerTwo:hover {
  background-color: #00acee;
  transition-duration: 0.3s;
  transform: scale(1.2);
}
/* linkdin*/
.containerThree:hover {
  background-color: #0072b1;
  transition-duration: 0.3s;
  transform: scale(1.2);
}
/* Youtube*/
.containerFour:hover {
  background-color: #ff0033;
  transition-duration: 0.3s;
  transform: scale(1.2);
}

.socialContainer:active {
  transform: scale(0.9);
  transition-duration: 0.3s;
}

.socialSvg {
  width: 17px;
}

.socialSvg path {
  fill: rgb(255, 255, 255);
}

.socialContainer:hover .socialSvg {
  animation: slide-in-top 0.3s both;
}

@keyframes slide-in-top {
  0% {
    transform: translateY(-50px);
    opacity: 0;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}


/* Bottom Section: Legal Links */
.footer-legal-links {
  text-align: center;
  margin-bottom: 25px;
  color: #cf6a3b;
  font-size: 13px; /* Slightly smaller */
}

.footer-legal-links a {
  color: #cf6a3b;
  text-decoration: none;
  margin: 0 5px;
  transition: text-decoration 0.3s ease;
}

.footer-legal-links a:hover {
  text-decoration: underline;
  color: #333333;
}

/* Bottom Section: Disclaimers & Copyright */
.footer-disclaimers {
  text-align: center;
  max-width: 850px; /* Keeps text centered neatly */
  margin: 0 auto 20px auto;
  color: #243c40; 
  font-size: 13px;
  line-height: 1.6;
}

.footer-disclaimers a {
  color: #cf6a3b;
  text-decoration: underline;
}

.footer-copyright {
  text-align: center;
  color: #444444; 
  font-size: 13px;
}

/* ==========================================================================
   Media Queries & Responsiveness
   ========================================================================== */
@media (max-width: 980px) {
  .footer-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .footer-cards {
    grid-template-columns: 1fr;
  }
  .footer-disclaimers {
    text-align: left;
  }
}

/* <!-- ============================================== -->
<!-- CSS STYLES FOR THE NEW NEWSLETTER SECTION      -->
<!-- ============================================== --> */
    .newsletter-section {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 60px;
        margin-bottom: 70px;
        padding-top: 40px;
    }
    
    .newsletter-content {
        flex: 1;
        max-width: 550px;
    }
    
    .newsletter-content .eyebrow {
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 2px;
        color: #243c40;
        text-transform: uppercase;
        display: block;
        margin-bottom: 15px;
    }
    
    .newsletter-content h2 {
        font-family: 'Playfair Display', Georgia, serif;
        font-size: 46px;
        color: #cf6a3b;
        font-style: italic;
        line-height: 1.15;
        margin: 0 0 20px 0;
        font-weight: 600;
    }
    
    .newsletter-content p {
        font-size: 16px;
        color: #243c40;
        line-height: 1.7;
        margin: 0;
    }
    
    .newsletter-form {
        flex: 1;
        max-width: 450px;
        width: 100%;
    }
    
    .newsletter-form .input-group {
        margin-bottom: 25px;
    }
    
    .newsletter-form input {
        width: 100%;
        background: transparent;
        border: none;
        border-bottom: 1px solid rgba(201, 107, 67, 0.5); /* Soft orange border */
        padding: 12px 0;
        font-size: 16px;
        color: #cf6a3b;
        font-family: inherit;
        outline: none;
        transition: border-color 0.3s ease;
    }
    
    .newsletter-form input:focus {
        border-bottom: 2px solid #cf6a3b; /* Thicker orange on focus */
    }
    
    .newsletter-form input::placeholder {
        color: #cf6a3b;
        opacity: 0.8;
    }
    
    /* Double Border Button Effect */
    .newsletter-form .subscribe-btn {
        width: 100%;
        background-color: #cf6a3b;
        color: #ffffff;
        border: 2px solid #fdf5ea; /* Matches background color for the gap */
        border-radius: 12px;
        padding: 16px;
        margin-top: 10px;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 2px;
        cursor: pointer;
        transition: all 0.3s ease;
        box-shadow: 0 0 0 2px #cf6a3b; /* Creates the outer border line */
    }
    
    .newsletter-form .subscribe-btn:hover {
        background-color: #243c40;
        box-shadow: 0 0 0 2px #243c40;
    }

    /* Tablet & Mobile Responsiveness */
    @media (max-width: 920px) {
        .newsletter-section {
            flex-direction: column;
            align-items: flex-start;
            gap: 40px;
            margin-bottom: 50px;
        }
        
        .newsletter-content h2 {
            font-size: 38px;
        }
        
        .newsletter-form {
            max-width: 100%;
        }
    }
    
    @media (max-width: 640px) {
        .newsletter-content h2 {
            font-size: 32px;
        }
    }
    /* ============================================== */
    /* GLOBAL SCROLL ANIMATIONS (Matches JS in Footer)*/
    /* ============================================== */

    /* The starting state (Invisible and pushed down 40px) */
    .reveal-up {
        opacity: 0;
        transform: translateY(40px);
        transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        will-change: opacity, transform;
    }

    /* The ending state (Triggered by the JS .is-visible class) */
    .reveal-up.is-visible { 
        opacity: 1; 
        transform: translateY(0); 
    }

    /* Optional: Delays if you ever want to manually stagger items */
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }