/* Analytics consent banner. Bottom of the viewport, above the concierge launcher,
   never covering the primary CTA. Both choices are equally prominent: a decline
   that is harder to find than the accept is not a free choice. */
.ymh-consent {
  position: fixed;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  z-index: 90;
  width: min(680px, calc(100vw - 24px));
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  padding: 16px 18px;
  border-radius: 14px;
  background: rgba(15, 20, 34, .94);
  border: 1px solid rgba(245, 241, 235, .16);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .42);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #F5F1EB;
  font-family: "Montserrat", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.ymh-consent-copy {
  flex: 1 1 320px;
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(245, 241, 235, .82);
}
.ymh-consent-copy a { color: #FEA200; text-decoration: underline; text-underline-offset: 2px; }
.ymh-consent-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.ymh-consent-btn {
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: #FEA200;
  color: #171C2F;
  font: 600 12.5px/1.2 inherit;
  cursor: pointer;
  white-space: nowrap;
}
.ymh-consent-btn.ghost { background: transparent; border-color: rgba(245, 241, 235, .32); color: #F5F1EB; }
.ymh-consent-btn:hover { filter: brightness(1.06); }
.ymh-consent-btn:focus-visible { outline: 2px solid #FEA200; outline-offset: 3px; }
@media (max-width: 560px) {
  .ymh-consent { flex-direction: column; align-items: stretch; }
  /* Round 12 (2026-08-19) · M-17. .ymh-consent-copy carries `flex: 1 1 320px`
   * for the row layout, where 320px is a sensible MIN WIDTH for the text
   * column. Switching the container to `column` re-points flex-basis at the
   * cross axis, so that 320px silently became a MIN HEIGHT: the paragraph
   * needs ~56px and was being held open to 320px. The banner measured a
   * constant 403px tall at every width below 560 — 71% of a 320x568 phone —
   * with ~250px of dead space between the copy and the buttons.
   * Reset the basis so the column sizes to its content. */
  .ymh-consent-copy { flex: 0 1 auto; }
  .ymh-consent-actions { justify-content: stretch; }
  .ymh-consent-btn { flex: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  .ymh-consent { animation: ymhConsentIn .28s cubic-bezier(.2,.9,.3,1.02) both; }
  @keyframes ymhConsentIn { from { opacity: 0; transform: translate(-50%, 12px); } to { opacity: 1; transform: translate(-50%, 0); } }
}
