/* HCC Booking: "Text us" dock on the website. Uses the theme's brand color when available. */
#hcc-dock { --dock: var(--gulf, var(--hcc-brand, #0f4c5c)); position: fixed; right: 18px; bottom: 18px; z-index: 9990; font-size: 15px; line-height: 1.45; color: #18241f; }
#hcc-dock * { box-sizing: border-box; }
.hcc-dock-bar { display: flex; gap: 8px; justify-content: flex-end; }
.hcc-dock-btn { display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--dock); color: #fff; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1; text-decoration: none; cursor: pointer; box-shadow: 0 6px 20px rgba(15, 40, 35, .25); }
.hcc-dock-btn svg { width: 20px; height: 20px; fill: currentColor; }
.hcc-dock-btn:hover, .hcc-dock-btn:focus-visible { filter: brightness(1.08); color: #fff; }
.hcc-dock-call, .hcc-dock-book { display: none; background: #fff; color: var(--dock); }
.hcc-dock-call { display: inline-flex; }
.hcc-dock-call b { font-weight: 700; white-space: nowrap; }
.hcc-dock-short { display: none; }
.hcc-dock-call:hover, .hcc-dock-book:hover { color: var(--dock); }
.hcc-dock-panel { position: absolute; right: 0; bottom: 60px; width: min(360px, calc(100vw - 36px)); background: #fff; border-radius: 16px; box-shadow: 0 16px 48px rgba(15, 40, 35, .28); overflow: hidden; }
.hcc-dock-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: var(--dock); color: #fff; }
.hcc-dock-x { background: none; border: 0; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.hcc-dock-form { padding: 14px 16px 16px; display: grid; gap: 10px; }
.hcc-dock-form label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; }
.hcc-dock-form input:not([type=checkbox]), .hcc-dock-form textarea { width: 100%; padding: 10px 12px; border: 1px solid #cfd9d5; border-radius: 10px; font-family: inherit; font-size: 15px; font-weight: 400; }
.hcc-dock-form label.hcc-dock-consent { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; font-size: 12px; color: #5f6e68; }
.hcc-dock-consent input { margin-top: 2px; }
.hcc-dock-sub, .hcc-dock-alt { margin: 0; color: #5f6e68; font-size: 13px; }
.hcc-dock-send { height: 44px; border: 0; border-radius: 10px; background: var(--dock); color: #fff; font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.hcc-dock-err { margin: 0; color: #b3261e; font-size: 13px; }
.hcc-dock-done { padding: 8px 0; }
.hcc-dock-done p { margin: 6px 0 0; }
#hcc-dock .hcc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
@media (max-width: 640px) {
  #hcc-dock { left: 12px; right: 12px; bottom: 12px; }
  .hcc-dock-bar { justify-content: stretch; }
  .hcc-dock-btn { flex: 1; justify-content: center; padding: 0 10px; }
  .hcc-dock-call, .hcc-dock-book { display: inline-flex; }
  .hcc-dock-long { display: none; }
  .hcc-dock-short { display: inline; }
  .hcc-dock-panel { width: 100%; }
  body { padding-bottom: 72px; }
}
/* Pages with a booking form already have a sticky price bar at the bottom on phones. */
@media (max-width: 640px) {
  #hcc-dock.is-mini { left: auto; bottom: 86px; }
  #hcc-dock.is-mini .hcc-dock-call, #hcc-dock.is-mini .hcc-dock-book { display: none; }
  #hcc-dock.is-mini .hcc-dock-btn { flex: none; width: 52px; padding: 0; justify-content: center; }
  #hcc-dock.is-mini .hcc-dock-btn span { display: none; }
  body.hcc-has-booking { padding-bottom: 0; }
}
@media print { #hcc-dock { display: none; } }
