/* Contact CTA + consent banner shared by desktop and mobile layouts. */
.gch-cta { z-index: 1040; font-family: inherit; }
.gch-cta-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-weight: 600; text-decoration: none !important; white-space: nowrap;
}
.gch-cta-logo { display: block; width: 24px; height: 24px; object-fit: contain; }
.gch-cta-zalo { background: #fff; color: #513A28 !important; border: 1px solid #E0D1C0; }
.gch-cta-call { background: #fff; color: #513A28 !important; border: 1px solid #E0D1C0; }
.gch-cta-book { background: linear-gradient(91deg, #AA8B5E -17.01%, #855F39 7.83%, #513A28 65.14%); color: #fff !important; }

/* Floating contact buttons stay clear of the back-to-top control. */
.gch-cta--float {
  position: fixed; right: 20px; bottom: 90px; display: flex; flex-direction: column; gap: 10px; align-items: flex-end;
}
.gch-cta--float .gch-cta-btn {
  position: relative;
  width: 56px; height: 56px; min-height: 56px; padding: 0; border-radius: 50%; font-size: 23px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
  transform-origin: center 75%;
  --gch-cta-ring: rgba(133, 95, 57, .4);
  animation: gch-cta-wiggle 1.8s ease-in-out infinite;
  transition: filter .2s ease, box-shadow .2s ease;
}
.gch-cta--float .gch-cta-btn::after {
  content: ""; position: absolute; inset: -2px; border: 2px solid var(--gch-cta-ring);
  border-radius: 50%; pointer-events: none;
  animation: gch-cta-ring 1.8s ease-out infinite;
}
.gch-cta--float .gch-cta-whatsapp { --gch-cta-ring: rgba(133, 95, 57, .45); }
.gch-cta--float .gch-cta-whatsapp .fa-whatsapp { font-size: 28px; }
.gch-cta--float .gch-cta-call { background: var(--bgr-gra2, linear-gradient(91deg, #AA8B5E, #513A28)); color: #fff !important; border: 0; animation-delay: -.9s; }
.gch-cta--float .gch-cta-call::after { animation-delay: -.9s; }
.gch-cta--float .gch-cta-logo { width: 46px; height: 46px; }
.gch-cta--float .gch-cta-btn:hover,
.gch-cta--float .gch-cta-btn:focus-visible {
  filter: brightness(1.08);
  box-shadow: 0 9px 22px rgba(81, 58, 40, .28);
}
.gch-cta--float .gch-cta-btn:focus-visible { outline: 2px solid #855F39; outline-offset: 3px; }
@keyframes gch-cta-wiggle {
  0%, 100% { transform: translate(0, 0) rotate(0) scale(1); }
  12% { transform: translate(-2px, -2px) rotate(-12deg) scale(1.04); }
  24% { transform: translate(2px, -3px) rotate(10deg) scale(1.06); }
  36% { transform: translate(-2px, -2px) rotate(-8deg) scale(1.04); }
  48% { transform: translate(2px, -1px) rotate(6deg) scale(1.03); }
  60% { transform: translate(-1px, 0) rotate(-4deg) scale(1.02); }
  72% { transform: translate(1px, 0) rotate(3deg) scale(1.01); }
  84% { transform: translate(0, 0) rotate(-2deg) scale(1); }
}
@keyframes gch-cta-ring {
  0% { opacity: .55; transform: scale(.92); }
  65%, 100% { opacity: 0; transform: scale(1.08); }
}
@media (max-width: 767px) {
  .gch-cta--float { right: 16px; bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  .gch-cta--float .gch-cta-btn { animation: none; transition: none; }
  .gch-cta--float .gch-cta-btn::after { animation: none; opacity: 0; }
}

/* Consent banner */
.gch-consent {
  position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 1050; max-width: 560px; margin: 0 auto;
  background: #fff; color: #333; border-radius: 12px; padding: 14px 16px; box-shadow: 0 8px 30px rgba(0, 0, 0, .2);
  font-size: 14px; line-height: 1.5;
}
.gch-consent p { margin: 0 0 10px; }
.gch-consent-actions { display: flex; gap: 8px; justify-content: flex-end; }
.gch-consent-actions button { border: 0; border-radius: 8px; padding: 8px 16px; font-weight: 600; cursor: pointer; }
.gch-consent-decline { background: #eee; color: #333; }
.gch-consent-accept { background: #513A28; color: #fff; }

/* Homepage hero CTA */
.gch-hero-cta { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 6px; }
.gch-hero-cta .gch-cta-btn { min-height: 44px; padding: 0 18px; border-radius: 10px; font-size: 15px; }
.gch-hero-proof { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 14px; color: #513A28; margin-top: 6px; transition: color .2s ease; }
.welcome a.gch-hero-proof:hover,
.welcome a.gch-hero-proof:focus-visible { color: #855F39; text-decoration: underline; text-underline-offset: 3px; }
.welcome a.gch-hero-proof:focus-visible { outline: 2px solid #855F39; outline-offset: 3px; }
.gch-hero-proof .gch-stars { color: #e0a100; letter-spacing: 1px; }
.gch-hero-tagline { font-weight: 600; color: #855F39; margin: 8px 0 0; }
.gch-mobile-center { justify-content: center; text-align: center; }

/* Lead / booking request form */
.gch-lead-form .holder-input { gap: 14px; }
.gch-lead-form .gch-field { display: flex; flex-direction: column; gap: 4px; margin: 0; min-width: 0; }
.gch-lead-form .input-field { width: 100%; }
.gch-lead-form .input-field input,
.gch-lead-form .input-field textarea { flex: 1 1 auto; min-width: 0; border: 0; outline: none; background: transparent; font-size: 15px; }
.gch-lead-form textarea { resize: vertical; min-height: 44px; font-family: inherit; }
.gch-lead-form .error-mess { position: static; padding: 0 0 0 6px; font-size: 12.5px; color: #c0392b; display: none; }
.gch-lead-form [aria-invalid="true"] { color: #c0392b; }
.gch-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gch-field-label { font-size: 13px; font-weight: 600; color: #775628; padding-left: 4px; }
.gch-lead-form input.input-field { min-height: 44px; padding: 8px 12px; font-size: 15px; color: #333; }
.gch-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gch-lead-room { margin: 0; padding: 10px 12px; border-radius: 10px; background: #f6f0e8; color: #513A28; font-weight: 600; font-size: 14px; }
.gch-form-status { margin: 0; font-size: 14px; color: #513A28; text-align: center; }
.gch-form-status.is-error { color: #c0392b; }
.gch-form-alt { margin: 0; text-align: center; font-size: 14px; color: #666; }
.gch-form-alt a { font-weight: 600; color: #855F39; }
.btn-contact:disabled { opacity: .6; cursor: wait; }

/* Responsive hero image keeps its aspect ratio (width/height attrs only reserve space) */
.data-img .data-svg { height: auto; }

/* Phone numbers became tel: links — keep the original text colour */
.more-info a[href^="tel:"], .welcome a[href^="tel:"] { color: inherit; text-decoration: none; }

/* WhatsApp CTA (English pages) and Zalo OA footer logo */
.gch-cta-whatsapp { background: #fff; color: #855F39 !important; border: 1px solid #E0D1C0; box-shadow: 0 3px 10px rgba(81, 58, 40, .12); }
.gch-cta-whatsapp .fa-whatsapp { font-size: 22px; line-height: 1; }
.gch-cta-whatsapp:hover { border-color: #855F39; }
.gch-cta-whatsapp:focus-visible { outline: 2px solid #855F39; outline-offset: 3px; }
.gch-footer-zalo { display: inline-block; width: 22px; height: 22px; object-fit: contain; vertical-align: middle; }
.gch-responsive-photo { display: contents; }
:where(.gch-responsive-photo > img) { display: block; max-width: 100%; height: auto; min-width: 0; }

/* Keep the existing round icon sizes while allowing the larger list to wrap. */
.footer .footer-social { flex-wrap: wrap; align-items: center; justify-content: center; column-gap: 8px; }
.footer .footer-social ul { flex-wrap: wrap; align-items: center; justify-content: center; max-width: 100%; }
.footer .footer-social ul li { flex: 0 0 auto; overflow: hidden; }
.footer .footer-social ul li a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.footer .footer-social ul li a:focus-visible { outline: 2px solid #fff; outline-offset: -2px; border-radius: 50%; }
.footer .footer-social ul li img { display: block; object-fit: contain; }
.footer .footer-social ul li.footer-social--agoda img { width: 86%; height: auto; }
.footer .footer-social ul li.footer-social--booking img { width: 64%; height: 64%; }

@media (max-width: 640px) {
  .footer .footer-social { flex-direction: column; row-gap: 4px; width: 100%; }
  .footer .footer-social ul { width: 100%; }
}
