/* ==== Footer ==== */
.site-footer{ 
  background:var(--color-text);
  margin-top: 0;
}
.site-footer a{ color:#fff; text-decoration:none; }
.site-footer a:hover{ text-decoration:underline; }

.footer-wrap{ max-width:1200px; margin:0 auto; padding:40px 20px; }

/* Top grid */
.footer-grid{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr 2fr;
  gap:32px 40px;
}

/* Titles & lists */
.footer-title{
  margin:0 0 14px;
  color:#fff;
  font-size:1rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:800;
  opacity:.95;
}
.footer-list{ 
  list-style:none; 
  padding:0; 
  margin:0; 
}
.footer-list a {
  display:inline-block; 
  color:#fff; 
  font-weight:400; 
  font-size: 0.875rem;
  transition:color .3s; 
}

.footer-list li+li{ margin-top:10px; }

/* Right column */
.footer-col-right .footer-logo{ 
  max-width:160px; 
  height:auto; 
  display:block;
  margin-top: -12px;
  margin-left: 0;
  margin-bottom:12px; }
.footer-address{ 
  margin:6px 0 16px; 
  color:#ffff; 
  font-style:normal; 
  line-height:1.6; 
  font-size:0.875rem;
}

.footer-social{ display:flex; align-items:center; gap:10px; margin:10px 0 16px; }
.footer-social .label{ color:#fff; font-weight:600; margin-right:6px; }
.footer-social .icons{ display:flex; gap:10px; }
.footer-social svg{
  width:18px; height:18px; fill:#fff; transition:fill .3s;
}

.footer-social a{
  display:inline-flex; width:34px; height:34px; border-radius:50%;
  align-items:center; justify-content:center; background:#1a1a1a; border:1px solid #2d2d2d;
}
.footer-social a:hover{ 
  background:#222;
}
.footer-social a:hover svg{ 
  fill: var(--color-primary);
}
/* =========================
   Footer Newsletter (CF7)
   ========================= */

.footer-newsletter__title{
  margin:0 0 14px; 
  color:#fff; 
  font-size:1rem;   
  font-weight:800; 
}

/* Form CF7 full width & làm mốc cho spinner */
.footer-newsletter .wpcf7 {
  width: 100%;
}
.footer-newsletter .wpcf7-form {
  margin: 0;
  padding: 0;
  width: 100%;
  position: relative;
}

/* CF7 hay bọc field bằng <p>, cho thành contents để không phá flex */
.footer-newsletter .wpcf7-form p{
  display: contents !important;
  margin: 0;
}
.footer-newsletter .wpcf7-form br { display: none !important; }

/* Hàng chứa input + submit */
.footer-newsletter .nl-form{
  display:flex;
  flex-wrap: nowrap;
  margin: 0;
  align-items:center;
  width:100%;
  gap:8px;
  box-sizing: border-box;
  position: relative;
}

/* Ẩn label chỉ dùng cho screen reader */
.footer-newsletter .nl-form label{
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

/* Wrapper quanh input của CF7 */
.footer-newsletter .nl-form .wpcf7-form-control-wrap{
  flex:1 1 auto;
  min-width:0;     /* để input không đẩy nút xuống hàng */
}
.footer-newsletter .wpcf7-form .wpcf7-form-control-wrap {
  display: block !important;
  flex: 1 1 0% !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Input email: chiếm toàn bộ phần còn lại */
.footer-newsletter .nl-form input[type="email"].wpcf7-form-control, .footer-newsletter input[type="email"]{
  display: inline-flex;
  flex: 1 1 0%;
  width:100%;
  min-width: 0;
  box-sizing: border-box;
  padding:10px 12px;
  height:44px;
  border:1px solid #ccc;
  border-radius:4px;
  box-sizing:border-box;
}

/* Nút Subscribe: luôn ở bên phải, auto width */
.footer-newsletter .nl-form input[type="submit"].wpcf7-form-control,
.footer-newsletter input[type="submit"] {
  flex:0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding:10px 18px;
  margin-left:0;
  height:44px;
  border:none;
  border-radius:4px;
  background:#4a4a4a;
  color:#fff;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}

/* Spinner: đặt absolute để không chiếm chỗ trong flex */
.footer-newsletter .wpcf7-spinner{
  position:absolute !important;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
}
@media (max-width:480px) {
  .footer-newsletter .wpcf7-form { flex-wrap: wrap !important; gap: 8px !important; }
  .footer-newsletter .wpcf7-form .wpcf7-form-control-wrap,
  .footer-newsletter input[type="email"],
  .footer-newsletter input[type="submit"] {
    width: 100% !important;
    flex: none !important;
    height: auto !important;
  }
}

/* Messages full width bên dưới */
.footer-newsletter .wpcf7-not-valid-tip,
.footer-newsletter .wpcf7-response-output{
  display:block;
  width:100%;
  margin-top:8px;
}

.footer-newsletter .wpcf7-response-output  {
  margin-top:35px !important;
}
/* Bottom bar */
.footer-bottom{
  margin-top:16px; padding-top:16px;
  border-top:1px solid rgba(255,255,255,.25);
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px;
  justify-content:space-between;
  font-size: 0.875rem;
}
.footer-bottom__links{ 
  display:flex; 
  gap:12px; 
  align-items:center; 

}
.footer-bottom__links .sep{ 
  font-size: 0.5rem;
  color: #ffff;
}
.footer-bottom__copy{ margin:0; color:#e9e9e9; font-style:italic; font-size:14px; }

/* Responsive */
@media (max-width: 1064px){
  .footer-grid{ grid-template-columns: 1fr 2fr; }
}
@media (max-width: 628px){
  .footer-grid{ grid-template-columns: 1fr; }
}
/* SR-only helper */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}


