/* ═══════════════════════════════════════════════════════════
   Reusable enquiry popup + form status styles
═══════════════════════════════════════════════════════════ */

/* Honeypot — visually hidden, kept in DOM for bots */
.gc-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }

/* Form status message */
.gc-form-status { margin:12px 0 0; font-size:.88rem; min-height:1.1em; }
.gc-form-status.ok  { color:#2E7D32; font-weight:600; }
.gc-form-status.err { color:#c0392b; font-weight:600; }

/* ── Popup overlay ── */
.gc-popup {
  position:fixed; inset:0; z-index:2000;
  display:none; align-items:center; justify-content:center;
  padding:20px;
}
.gc-popup.open { display:flex; }

.gc-popup-backdrop {
  position:absolute; inset:0;
  background:rgba(30,20,12,.6);
  backdrop-filter:blur(4px);
  animation:gcFadeIn .25s ease;
}

.gc-popup-dialog {
  position:relative; z-index:1;
  width:100%; max-width:520px;
  max-height:92vh; overflow-y:auto;
  background:#fff; border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  animation:gcPopIn .3s cubic-bezier(.2,.9,.3,1.2);
}

.gc-popup-x {
  position:absolute; top:14px; right:14px; z-index:2;
  width:38px; height:38px; border:none; border-radius:50%;
  background:rgba(0,0,0,.06); color:#6b4f3a; cursor:pointer;
  font-size:1rem; transition:background .2s, transform .2s;
}
.gc-popup-x:hover { background:rgba(0,0,0,.12); transform:rotate(90deg); }

.gc-popup-head {
  padding:30px 30px 6px;
  text-align:center;
}
.gc-popup-head .label { display:inline-block; }
.gc-popup-head h3 {
  font-family:var(--ff-h,"Playfair Display",serif);
  font-size:1.55rem; margin:8px 0 6px; color:var(--brown,#4a3520);
}
.gc-popup-head p { font-size:.9rem; color:var(--gray,#777); margin:0 0 10px; }

.gc-popup-body { padding:6px 30px 30px; }

@keyframes gcFadeIn { from{opacity:0} to{opacity:1} }
@keyframes gcPopIn  { from{opacity:0; transform:translateY(20px) scale(.96)} to{opacity:1; transform:none} }

@media (max-width:560px) {
  .gc-popup-head { padding:26px 20px 4px; }
  .gc-popup-body { padding:6px 20px 24px; }
  .gc-popup-head h3 { font-size:1.35rem; }
}

/* ═══════════════════════════════════════════════════════════
   Sticky WhatsApp floating button (site-wide, bottom-left)
═══════════════════════════════════════════════════════════ */
.gc-wa-float {
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 1500;
  display: flex;
  align-items: center;
  gap: 0;
  height: 58px;
  padding: 0;
  background: #25D366;
  color: #fff;
  border-radius: 50px;
  box-shadow: 0 6px 22px rgba(37,211,102,.45);
  text-decoration: none;
  overflow: hidden;
  transition: padding .3s ease, box-shadow .3s ease, transform .2s ease;
}
.gc-wa-float i {
  font-size: 30px;
  line-height: 58px;
  width: 58px;
  text-align: center;
  flex: 0 0 58px;
}
.gc-wa-label {
  white-space: nowrap;
  max-width: 0;
  opacity: 0;
  font-weight: 600;
  font-size: 15px;
  transition: max-width .35s ease, opacity .3s ease, padding .35s ease;
}
.gc-wa-float:hover {
  box-shadow: 0 8px 28px rgba(37,211,102,.6);
  transform: translateY(-2px);
}
.gc-wa-float:hover .gc-wa-label {
  max-width: 180px;
  opacity: 1;
  padding-right: 22px;
}

/* Pulsing ring */
.gc-wa-float::before {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 58px; height: 58px;
  border-radius: 50%;
  background: #25D366;
  z-index: -1;
  animation: gcWaPulse 2s infinite;
}
@keyframes gcWaPulse {
  0%   { transform: scale(1);   opacity: .6; }
  70%  { transform: scale(1.6); opacity: 0;  }
  100% { transform: scale(1.6); opacity: 0;  }
}

@media (max-width: 768px) {
  .gc-wa-float { left: 16px; bottom: 16px; height: 54px; }
  .gc-wa-float i { font-size: 28px; line-height: 54px; width: 54px; flex-basis: 54px; }
  .gc-wa-float::before { width: 54px; height: 54px; }
  /* On touch devices the label would need a tap; keep it icon-only */
  .gc-wa-float:hover .gc-wa-label { max-width: 0; opacity: 0; padding-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .gc-wa-float::before { animation: none; }
}
