/* Standalone site UI: works with any page layout or without a footer. */
.home-get-started,.nav-contact,.button { font-family: Arial, Helvetica, sans-serif; font-weight: 700; }
.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; inset: 0; margin: auto;
  width: min(460px, calc(100% - 48px)); max-height: calc(100dvh - 48px);
  overflow-y: auto; padding: 32px; border: 1px solid #81709e; border-radius: 22px;
  background: var(--consent-surface); color: white; box-shadow: 0 16px 60px #10082466;
  line-height: 1.5;
}
.location-consent[hidden] { display: none; }
.location-consent::backdrop { background: #100b23b3; backdrop-filter: blur(6px); }
html:has(.location-consent[open]),body.location-consent-open { overflow: hidden; }
.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 h2:focus { outline: none; }
.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: 52px; padding: 12px 18px; border: 1px solid transparent; border-radius: 999px; font: 700 20px/1.4 Arial, Helvetica, sans-serif; letter-spacing: -.4px; cursor: pointer; }
.location-consent-actions .location-consent-allow { border-color: var(--consent-accent); }
.location-consent-allow { background: var(--consent-accent); color: #231b3b; }
.location-consent-decline { background: transparent; color: var(--consent-accent); }
.location-consent-allow:hover { box-shadow: 0 0 0 2px #72ffff40; }
.location-consent-decline:hover { background: #72ffff14; }
.location-consent-actions button:disabled { opacity: .65; cursor: wait; }
.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 { 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; }
}

/* Shared contact widget. */
.chat-panel,.chat-panel *,.chat-launcher { box-sizing: border-box; }
.chat-panel { position: fixed; z-index: 60; right: 24px; bottom: 24px; width: 384px; height: 570px; max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); display: grid; grid-template-rows: auto minmax(80px,1fr) auto; overflow: hidden; border-radius: 28px; background: #fff; color: #251d3d; box-shadow: 0 16px 65px #100b2359; font: 15px/1.4 Arial, Helvetica, sans-serif; animation: chat-appear .2s ease-out; }
.chat-panel[hidden],.chat-launcher-hidden { display: none; }
.chat-panel .chat-header { display: flex; align-items: center; gap: 13px; min-height: 90px; padding: 18px 20px; background: white; }
.chat-avatar { position: relative; flex: 0 0 44px; height: 54px; }
.chat-avatar img { width: 42px; height: 54px; object-fit: contain; }
.chat-avatar i { position: absolute; width: 11px; height: 11px; bottom: 0; right: 0; border: 2px solid white; border-radius: 50%; background: #45b443; }
.chat-panel .chat-header h2 { margin: 0 0 3px; font: 700 21px/1.2 Arial, Helvetica, sans-serif; letter-spacing: -.5px; }
.chat-panel .chat-header p { margin: 0; font-size: 13px; line-height: 1.4; color: #625875; }
.chat-close { flex: 0 0 32px; width: 32px; height: 36px; margin-left: auto; padding: 0; border: 0; background: transparent; color: #251d3d; font: 28px/1 Arial, sans-serif; cursor: pointer; }
.chat-history { min-height: 0; padding: 16px 22px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #928c9c #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='220' viewBox='0 0 180 220'%3E%3Cg fill='none' stroke='%23472a83' stroke-width='1.5' opacity='.16'%3E%3Cpath d='M30 220Q65 151 34 70M45 172Q12 155 18 130Q46 133 45 172ZM45 157Q79 143 78 118Q52 125 45 157ZM43 131Q15 113 22 94Q45 103 43 131ZM40 111Q66 89 58 75Q39 85 40 111ZM34 78Q17 58 28 42Q47 60 34 78ZM121 220Q100 169 140 121M120 186Q91 173 100 156Q123 166 120 186ZM125 173Q158 179 164 156Q138 152 125 173ZM136 141Q114 128 123 111Q143 124 136 141ZM140 121Q164 110 156 90Q139 100 140 121Z'/%3E%3C/g%3E%3C/svg%3E"), linear-gradient(160deg,#7949ff 0%,#ac6ef4 57%,#f3a5df 100%); }
.chat-date { width: fit-content; margin: 0 auto 18px; padding: 4px 8px; border-radius: 3px; background: #6e6a75c9; color: white; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.chat-panel .chat-bubble { width: fit-content; max-width: 90%; margin: 0 0 16px; padding: 14px 18px; border-radius: 5px 24px 24px 24px; font: 15px/1.45 Arial, Helvetica, sans-serif; letter-spacing: -.15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-incoming { background: #251d3d; color: #fff; }
.chat-outgoing { margin-left: auto !important; background: #72ffff; color: #251d3d; border-radius: 24px 5px 24px 24px !important; }
.chat-form { position: relative; min-width: 0; margin: 0; padding: 13px 20px 16px; background: white; }
.chat-id { display: block; margin-top: 5px; color: #756a85; font: 10px/1.4 Arial, Helvetica, sans-serif; overflow-wrap: anywhere; }
.chat-message-text { display: block; }
.chat-message-time { display: block; margin-top: 7px; opacity: .7; font: 10px/1.3 Arial, Helvetica, sans-serif; }
.chat-unread { position: absolute; top: -5px; right: -3px; min-width: 24px; height: 24px; padding: 2px 6px; border: 2px solid white; border-radius: 999px; background: #7949ff; color: white; font: 700 12px/16px Arial, sans-serif; text-align: center; }
.chat-unread[hidden] { display: none; }
.chat-compose { display: flex; align-items: center; gap: 10px; }
.chat-panel textarea { display: block; flex: 1; min-width: 0; max-height: 100px; min-height: 44px; resize: none; padding: 9px 0; border: 0; background: white; color: #251d3d; font: 15px/1.5 Arial, Helvetica, sans-serif; }
.chat-panel textarea::placeholder { color: #756a85; }
.chat-send { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; padding: 10px; border: 0; border-radius: 50%; background: #72ffff; color: #251d3d; cursor: pointer; }
.chat-send svg { width: 23px; height: 23px; }
.chat-send:disabled { opacity: .5; cursor: wait; }
.chat-panel .chat-note,.chat-panel .chat-status { margin: 6px 0 0; color: #756a85; font: 11px/1.4 Arial, Helvetica, sans-serif; }
.chat-panel .chat-status { color: #5e3698; }
.chat-status:empty { display: none; }
.chat-sr-only,.chat-honeypot { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.chat-launcher { position: fixed; z-index: 20; right: 24px; bottom: 24px; min-height: 60px; padding: 15px 25px; border: 0; border-radius: 999px; background: #00a7f5; color: white; box-shadow: 0 4px 20px #100b2326; font: 700 20px/1.4 Arial, sans-serif; cursor: pointer; }
.chat-panel button:focus-visible,.chat-panel input:focus-visible,.chat-panel textarea:focus-visible,.chat-launcher:focus-visible { outline: 2px solid #7950d8; outline-offset: 3px; }
@keyframes chat-appear { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) {
  .chat-panel { right: 16px; bottom: 16px; width: calc(100% - 32px); height: 570px; border-radius: 24px; }
  .chat-panel .chat-header { padding: 16px; gap: 10px; }
  .chat-panel .chat-header h2 { font-size: 19px; }
  .chat-panel textarea { font-size: 16px; }
  .chat-history { padding: 16px; }
  .chat-launcher { right: 16px; bottom: 16px; font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .chat-panel { animation: none; } }
