/* ==========================================================================
   Consult modal — the GoHighLevel booking form, on every page.
   Pairs with consult.js. Self-contained: no dependency on a page's own
   stylesheet, so it drops onto all seven pages unchanged.
   ========================================================================== */

.cmodal, .cmodal * { box-sizing: border-box; }

.cmodal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(28, 37, 28, .55);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  font-family: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
}
.cmodal[data-open="true"] { display: flex; }

.cmodal__card {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #FFFFFF;
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(28, 37, 28, .28);
  padding: 32px clamp(20px, 4vw, 36px) 20px;
}

.cmodal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #5F675C;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.cmodal__close:hover { background: rgba(48, 64, 40, .08); color: #212C28; }
.cmodal__close svg { width: 17px; height: 17px; }

.cmodal__eyebrow {
  margin: 0 0 10px;
  font-family: 'Instrument Sans', system-ui, sans-serif;
  font-weight: 600;
  font-size: 11.5px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #BC7A48;
}
.cmodal__title {
  margin: 0;
  font-family: 'Outfit', system-ui, -apple-system, sans-serif;
  font-weight: 500;
  font-size: clamp(26px, 4.6vw, 32px);
  line-height: 1.12;
  letter-spacing: -.04em;
  color: #212C28;
  padding-right: 34px;      /* clear of the close button */
}
.cmodal__lede {
  margin: 12px 0 0;
  font-size: 15.5px;
  line-height: 1.55;
  color: #3A443A;
  text-wrap: pretty;
}

/* The iframe is only given a src on first open, so six other pages do not
   each pull a third-party form nobody asked for. */
.cmodal__frame {
  display: block;
  width: 100%;
  height: 600px;
  margin-top: 14px;
  border: none;
  background: transparent;
}

.cmodal__fallback {
  margin: 18px 0 8px;
  font-size: 14px;
  line-height: 1.55;
  color: #5F675C;
}
.cmodal__fallback a { color: #212C28; }

.cmodal :focus-visible { outline: 3px solid #C29C3D; outline-offset: 2px; border-radius: 8px; }

/* Body scroll is frozen while the modal is up, so a touch drag moves the
   form rather than the page behind it. */
body.cmodal-open { overflow: hidden; }

@media (max-width: 540px) {
  .cmodal { padding: 0; align-items: stretch; }
  .cmodal__card { max-width: none; max-height: 100vh; border-radius: 0; padding-top: 44px; }
  .cmodal__frame { height: 640px; }
}

@media (prefers-reduced-motion: reduce) {
  .cmodal__close { transition: none; }
}
