/* Standalone site UI: works with any page layout or without a footer. */
.location-consent,.location-settings {
  --consent-accent: var(--home-cyan, var(--cyan, #72ffff));
  --consent-surface: var(--home-dark, var(--midnight, #231b3b));
  --consent-text: #e0daec;
  box-sizing: border-box;
  font-family: "Trebuchet MS", Arial, sans-serif;
}
.location-consent {
  position: fixed; z-index: 40; left: 24px; bottom: 24px;
  width: min(420px, calc(100% - 48px)); max-height: calc(100dvh - 48px);
  overflow-y: auto; padding: 25px; border: 1px solid #81709e; border-radius: 18px;
  background: var(--consent-surface); color: white; box-shadow: 0 16px 60px #10082466;
  line-height: 1.5;
}
.location-consent[hidden] { display: none; }
.location-consent .location-consent-label { display: block; margin-bottom: 13px; color: var(--consent-accent); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.location-consent h2 { margin: 0; padding-right: 5px; font-size: 21px; line-height: 1.4; letter-spacing: -.5px; }
.location-consent .location-consent-copy { margin: 14px 0 10px; font-size: 13px; line-height: 1.6; color: var(--consent-text); }
.location-consent-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
.location-consent-actions button { min-width: 0; min-height: 46px; padding: 11px 16px; border: 1px solid var(--consent-accent); border-radius: 999px; font: 700 15px/1.4 "Trebuchet MS", Arial, sans-serif; cursor: pointer; }
.location-consent-allow { background: var(--consent-accent); color: #231b3b; }
.location-consent-decline { background: transparent; color: var(--consent-accent); }
.location-consent-actions button:hover { box-shadow: 0 0 0 2px #72ffff40; }
.location-consent-actions button:disabled { opacity: .65; cursor: wait; }
.location-consent-close { position: absolute; top: 4px; right: 4px; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: var(--consent-text); font: 26px/1 Arial, sans-serif; cursor: pointer; }
.location-consent .location-consent-status { margin: 13px 0 0; font-size: 12px; line-height: 1.5; color: var(--consent-accent); }
.location-consent .location-consent-status:empty { display: none; }
.location-settings { display: block; grid-column: 1 / -1; width: fit-content; margin-top: 18px; padding: 8px 0; min-height: 44px; border: 0; border-bottom: 1px solid #c3bdd380; background: transparent; color: var(--consent-text); font-size: 14px; line-height: 1.4; cursor: pointer; }
.location-settings:hover { color: var(--consent-accent); }
.location-settings-floating { position: fixed; z-index: 30; left: 20px; bottom: 20px; margin: 0; padding: 10px 16px; border: 1px solid #81709e; border-radius: 999px; background: var(--consent-surface); box-shadow: 0 4px 18px #10082444; }
.location-consent-open .location-settings-floating { visibility: hidden; }
.location-consent button:focus-visible,.location-settings:focus-visible { outline: 3px solid var(--consent-accent); outline-offset: 4px; }
@media (max-width: 720px) {
  .location-consent { left: 16px; bottom: 16px; width: calc(100% - 32px); max-height: calc(100dvh - 32px); padding: 23px; }
  .location-consent h2 { font-size: 20px; }
  .location-consent-open .home-message,.location-consent-open [data-floating-contact] { visibility: hidden; }
}
