/* JD Home Guide — independent homepage voice helper. Does not style JD AI or JD Live. */
.jdhg-root{--hg-ink:var(--text,#0B0B0D);--hg-soft:var(--text-2,#55555F);--hg-muted:var(--muted,#777780);--hg-line:var(--border,#E5E5E7);--hg-paper:var(--surface,#FAFAFA);--hg-wash:var(--surface-2,#F3F3F4);font-family:"Satoshi","Inter",ui-sans-serif,system-ui,sans-serif}
.jdhg-root[hidden],.jdhg-panel[hidden],.jdhg-root [hidden]{display:none!important}
.jdhg-launch{position:fixed;z-index:121;inset-inline-end:max(24px,env(safe-area-inset-right,0px));bottom:calc(80px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:6px 16px 6px 6px;border-radius:999px;border:1px solid var(--hg-line);background:var(--hg-paper);color:var(--hg-ink);box-shadow:0 14px 34px -16px rgba(11,11,13,.3),0 1px 3px rgba(11,11,13,.05);font-weight:600;font-size:.875rem;transition:transform .2s cubic-bezier(.22,1,.36,1)}
.jdhg-launch:hover{transform:translateY(-2px)}
.jdhg-launch[aria-expanded="true"] .jdhg-launch-label{display:none}
.jdhg-launch[aria-expanded="true"]{padding-inline-end:6px}
.jdhg-launch small{display:block;font-size:.6875rem;font-weight:500;color:var(--hg-muted);line-height:1.2}
.jdhg-launch-label{text-align:start;line-height:1.25}
.jdhg-root button:focus-visible,.jdhg-cap summary:focus-visible{outline:2px solid var(--hg-ink);outline-offset:3px}

/* Avatar */
.jdhg-av{position:relative;width:44px;height:44px;flex:none;display:block}
.jdhg-av svg{width:100%;height:100%;overflow:visible}
.jdhg-av .jdhg-body{animation:jdhg-bob 4.2s ease-in-out infinite;transform-origin:50% 90%;transform-box:fill-box}
.jdhg-av .jdhg-eyes{animation:jdhg-look 7s ease-in-out infinite;transform-box:fill-box}
.jdhg-av .jdhg-eye{transform-origin:center;transform-box:fill-box;animation:jdhg-blink 5.2s infinite}
.jdhg-av .jdhg-mouth{transform-origin:center;transform-box:fill-box;transform:scaleY(.6)}
.jdhg-root.is-thinking .jdhg-av .jdhg-eyes{animation:jdhg-think 1.4s ease-in-out infinite alternate}
.jdhg-stage[data-state="speaking"] .jdhg-mouth{animation:jdhg-talk .32s ease-in-out infinite alternate}
.jdhg-stage[data-state="hearing"] .jdhg-eye,.jdhg-stage[data-state="listening"] .jdhg-eye{animation:none;transform:scaleY(1.08)}
@keyframes jdhg-bob{50%{transform:translateY(-1.5px) scale(1.01)}}
@keyframes jdhg-look{0%,30%{transform:translateX(0)}40%,55%{transform:translateX(2px)}65%,85%{transform:translateX(-1.5px)}100%{transform:translateX(0)}}
@keyframes jdhg-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.12)}}
@keyframes jdhg-think{from{transform:translate(-1.5px,-1px)}to{transform:translate(2px,-1.5px)}}
@keyframes jdhg-talk{from{transform:scaleY(.6) scaleX(1)}to{transform:scaleY(2.6) scaleX(.8)}}

.jdhg-pill{margin:0;display:inline-flex;align-items:center;gap:6px;font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--hg-soft);border:1px solid var(--hg-line);border-radius:999px;padding:4px 10px}
.jdhg-dot{width:7px;height:7px;border-radius:50%;background:var(--hg-line)}
.jdhg-stage[data-state="listening"] .jdhg-dot{background:var(--hg-muted)}
.jdhg-stage[data-state="hearing"] .jdhg-dot,.jdhg-stage[data-state="speaking"] .jdhg-dot{background:var(--hg-ink);animation:jdhg-blinkdot 1s ease-in-out infinite alternate}
.jdhg-stage[data-state="error"] .jdhg-dot{background:transparent;border:1.5px solid var(--hg-ink)}
@keyframes jdhg-blinkdot{to{opacity:.3}}
.jdhg-meter{width:160px;height:3px;border-radius:3px;background:var(--hg-line);overflow:hidden;visibility:hidden}
.jdhg-meter span{display:block;height:100%;background:var(--hg-ink);transform-origin:0 50%;transform:scaleX(0);transition:transform .08s linear}
.jdhg-stage[data-state="listening"] .jdhg-meter,.jdhg-stage[data-state="hearing"] .jdhg-meter{visibility:visible}
/* Panel */
.jdhg-panel{position:fixed;z-index:122;inset-inline-end:max(24px,env(safe-area-inset-right,0px));bottom:calc(146px + env(safe-area-inset-bottom,0px));width:min(372px,calc(100vw - 32px));max-height:min(640px,calc(100dvh - 176px));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;background:var(--hg-paper);color:var(--hg-ink);border:1px solid var(--hg-line);border-radius:24px;box-shadow:0 30px 60px -28px rgba(11,11,13,.32),0 2px 8px rgba(11,11,13,.05);transform-origin:100% 100%;animation:jdhg-in .26s cubic-bezier(.22,1,.36,1)}
@keyframes jdhg-in{from{opacity:0;transform:translateY(10px) scale(.97)}}
.jdhg-head{display:flex;align-items:center;gap:6px;padding:10px 8px 10px 16px;border-bottom:1px solid var(--hg-line)}
.jdhg-title{min-width:0;flex:1;line-height:1.25}
.jdhg-title h2{font-size:.9375rem;font-weight:700;letter-spacing:-.02em;margin:0;color:var(--hg-ink)}
.jdhg-tag{display:inline-block;margin-top:2px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--hg-soft)}
.jdhg-ib{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:999px;background:transparent;color:var(--hg-soft);flex:none}
.jdhg-ib:hover{background:var(--hg-wash);color:var(--hg-ink)}
.jdhg-ib svg{width:18px;height:18px}
.jdhg-clear{border:0;background:transparent;font-size:.75rem;font-weight:600;color:var(--hg-soft);padding:8px 10px;border-radius:999px;min-height:44px}
.jdhg-clear:hover{background:var(--hg-wash);color:var(--hg-ink)}

/* Stage */
.jdhg-stage{display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 18px 12px;gap:8px}
.jdhg-orb{position:relative;width:148px;height:148px;display:grid;place-items:center;margin-bottom:4px}
.jdhg-orb .jdhg-av{width:112px;height:112px;position:relative;z-index:1}
.jdhg-ring{position:absolute;inset:6px;border-radius:50%;border:1px solid var(--hg-line);opacity:.9}
.jdhg-ring.r2{inset:-2px;opacity:0}
.jdhg-stage[data-state="listening"] .jdhg-ring{border-color:var(--hg-muted);animation:jdhg-pulse 2.6s ease-out infinite}
.jdhg-stage[data-state="hearing"] .jdhg-ring{border-color:var(--hg-ink);animation:jdhg-pulse 1.2s ease-out infinite}
.jdhg-stage[data-state="hearing"] .jdhg-ring.r2,.jdhg-stage[data-state="listening"] .jdhg-ring.r2{animation-delay:.8s}
.jdhg-stage[data-state="muted"] .jdhg-orb{opacity:.6}
.jdhg-stage[data-state="speaking"] .jdhg-ring{border-color:var(--hg-soft);animation:jdhg-pulse 2.2s ease-out infinite}
.jdhg-stage[data-state="speaking"] .jdhg-ring.r2{animation-delay:1.1s}
.jdhg-stage[data-state="waiting"] .jdhg-ring,.jdhg-stage[data-state="thinking"] .jdhg-ring{border-style:dashed;border-color:var(--hg-muted);animation:jdhg-spin 6s linear infinite}
@keyframes jdhg-pulse{0%{transform:scale(.92);opacity:.9}100%{transform:scale(1.14);opacity:0}}
@keyframes jdhg-spin{to{transform:rotate(360deg)}}
.jdhg-status{margin:0;font-size:.9375rem;font-weight:600;line-height:1.4;letter-spacing:-.01em;max-width:30ch;min-height:2.8em}
.jdhg-timer{margin:0;min-height:1.1em;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--hg-muted);font-family:ui-monospace,"Space Mono",monospace}
.jdhg-err{align-self:stretch;font-size:.8125rem;line-height:1.45;color:var(--hg-ink);border:1px dashed var(--hg-muted);border-radius:12px;padding:10px 12px;text-align:start}
.jdhg-ctrls{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}
.jdhg-mic{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;min-width:200px;max-width:100%;padding:0 22px;border-radius:999px;border:1px solid #18181B;background:#0B0B0D;color:#FAFAFA;font-size:.9375rem;font-weight:600;transition:transform .15s ease}
.jdhg-mic svg{width:18px;height:18px}
.jdhg-mic:hover{transform:translateY(-1px)}
.jdhg-mic:active{transform:scale(.98)}
.jdhg-mic.on{background:var(--hg-paper);color:var(--hg-ink);border-width:2px}
.jdhg-mic:disabled{opacity:.45;cursor:not-allowed;transform:none}
.jdhg-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.jdhg-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding-inline:14px;border-radius:999px;font-size:.8125rem;font-weight:600;border:1px solid #18181B;background:#0B0B0D;color:#FAFAFA}
.jdhg-btn svg{width:14px;height:14px}
.jdhg-btn:hover{background:#2A2A2E}
.jdhg-btn.alt{background:var(--hg-paper);color:var(--hg-ink);border-color:var(--hg-line)}
.jdhg-btn.alt:hover{background:var(--hg-wash);border-color:var(--hg-muted)}
.jdhg-cap{align-self:stretch;text-align:start;border-top:1px solid var(--hg-line);margin-top:6px;padding-top:4px}
.jdhg-cap summary{min-height:44px;display:flex;align-items:center;font-size:.8125rem;font-weight:600;color:var(--hg-soft);cursor:pointer;border-radius:8px}
.jdhg-cap-text{margin:0 0 6px;font-size:.875rem;line-height:1.55;color:var(--hg-ink);white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow-y:auto}
.jdhg-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:4px 14px 10px}
.jdhg-note{margin:0 12px 12px;font-size:.6875rem;line-height:1.45;color:var(--hg-soft);background:var(--hg-wash);border-radius:12px;padding:9px 11px}
.jdhg-note strong{color:var(--hg-ink)}


/* ---- Compact refinement (CSS only) ---- */
.jdhg-panel{width:min(340px,calc(100vw - 32px));max-height:min(580px,calc(100dvh - 168px));border-radius:20px;box-shadow:0 24px 48px -26px rgba(11,11,13,.3),0 1px 4px rgba(11,11,13,.05)}
.jdhg-head{padding:4px 4px 4px 14px;gap:2px;position:sticky;top:0;z-index:2;background:var(--hg-paper)}
.jdhg-title h2{font-size:.875rem}
.jdhg-tag{font-size:.625rem;margin-top:0;color:var(--hg-muted)}
.jdhg-clear{font-size:.6875rem;padding:6px 8px}
.jdhg-stage{display:grid;grid-template-columns:auto 1fr;align-items:center;text-align:start;column-gap:12px;row-gap:6px;padding:12px 14px 8px}
.jdhg-orb{grid-row:1/span 3;width:76px;height:76px;margin:0}
.jdhg-orb .jdhg-av{width:58px;height:58px}
.jdhg-ring{inset:3px}.jdhg-ring.r2{inset:-1px}
.jdhg-pill{justify-self:start;font-size:.625rem;padding:3px 8px}
.jdhg-status{font-size:.8125rem;line-height:1.4;min-height:2.8em;max-width:none}
.jdhg-meter{width:100%;max-width:140px}
.jdhg-timer{grid-column:1/-1;font-size:.6875rem;min-height:0}
.jdhg-timer:empty{display:none}
.jdhg-err,.jdhg-ctrls,.jdhg-cap{grid-column:1/-1}
.jdhg-err{font-size:.75rem;padding:8px 10px;border-radius:10px}
.jdhg-ctrls{gap:6px;margin-top:2px}
.jdhg-mic{width:100%;min-width:0;min-height:48px;font-size:.875rem}
.jdhg-row{gap:4px}
.jdhg-row .jdhg-btn{min-height:44px;padding-inline:12px;font-size:.75rem}
.jdhg-cap{margin-top:2px;padding-top:0}
.jdhg-cap summary{font-size:.75rem}
.jdhg-cap-text{font-size:.8125rem;max-height:120px}
.jdhg-actions{padding:2px 14px 8px;gap:6px;flex-wrap:nowrap}
.jdhg-actions .jdhg-btn{flex:1;font-size:.75rem;padding-inline:10px}
.jdhg-note{margin:0 10px 10px;font-size:.65625rem;line-height:1.4;padding:8px 10px;border-radius:10px}
.jdhg-btn:focus-visible,.jdhg-root input:focus-visible,.jdhg-root select:focus-visible,.jdhg-root textarea:focus-visible{outline:2px solid var(--hg-ink);outline-offset:2px}

/* ---- Booking module ---- */
.jdhg-booking{padding:10px 14px 12px;border-top:1px solid var(--hg-line);display:flex;flex-direction:column;gap:10px}
.jdhg-booking h3{margin:0;font-size:.875rem;font-weight:700;letter-spacing:-.01em}
.jdhg-bk-back{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 10px 0 6px;margin-inline-start:-6px;border:0;border-radius:999px;background:transparent;color:var(--hg-soft);font-size:.75rem;font-weight:600}
.jdhg-bk-back:hover{background:var(--hg-wash);color:var(--hg-ink)}
.jdhg-bk-back svg{width:14px;height:14px}
.jdhg-bk-form{display:flex;flex-direction:column;gap:10px;margin:0}
.jdhg-bk-customer{min-width:0;margin:0;padding:12px 0;border:0;border-block:1px solid var(--hg-line)}
.jdhg-bk-customer legend{padding:0 6px 0 0;font-size:.8125rem;font-weight:700}
.jdhg-bk-customer .jdhg-bk-note{margin-top:10px}
.jdhg-bk-customer .jdhg-bk-field[hidden]{display:none}
.jdhg-bk-customer .jdhg-bk-grid{align-items:end;row-gap:12px}
.jdhg-bk-customer .jdhg-bk-field input,.jdhg-bk-customer .jdhg-bk-field select{box-sizing:border-box;min-width:0;max-width:100%}
.jdhg-bk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.jdhg-bk-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.jdhg-bk-field.full,.jdhg-bk-field:has(textarea){grid-column:1/-1}
.jdhg-bk-field label{font-size:.6875rem;font-weight:600;letter-spacing:.02em;color:var(--hg-soft)}
.jdhg-bk-field input,.jdhg-bk-field select,.jdhg-bk-field textarea{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--hg-line);border-radius:10px;background:var(--hg-paper);color:var(--hg-ink);font:inherit;font-size:.875rem}
.jdhg-bk-field textarea{min-height:72px;resize:vertical}
.jdhg-bk-field input:hover,.jdhg-bk-field select:hover,.jdhg-bk-field textarea:hover{border-color:var(--hg-muted)}
.jdhg-bk-field input[aria-invalid="true"],.jdhg-bk-field select[aria-invalid="true"]{border-color:var(--hg-ink);border-style:dashed}
.jdhg-bk-summary{margin:0;font-size:.8125rem;line-height:1.5;background:var(--hg-wash);border-radius:10px;padding:10px 12px}
.jdhg-bk-summary dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px}
.jdhg-bk-summary dt{color:var(--hg-muted)}.jdhg-bk-summary dd{margin:0;font-weight:600}
.jdhg-bk-status{margin:0;font-size:.75rem;line-height:1.45;color:var(--hg-ink);min-height:0}
.jdhg-bk-status:empty{display:none}
.jdhg-bk-status.is-error,.jdhg-bk-status[role="alert"]:not(:empty){border:1px dashed var(--hg-muted);border-radius:10px;padding:8px 10px}
.jdhg-bk-validation{margin:0;padding:10px;border:1px dashed var(--hg-ink);border-radius:10px;font-size:.75rem;line-height:1.45;color:var(--hg-ink);background:var(--hg-wash)}
.jdhg-bk-field-error{font-size:.75rem;line-height:1.4;color:var(--hg-ink);font-weight:600}
.jdhg-bk-field input,.jdhg-bk-field select,.jdhg-booking h3,.jdhg-bk-status{scroll-margin-block:80px 24px}
.jdhg-bk-note{margin:0;font-size:.65625rem;line-height:1.4;color:var(--hg-soft)}
.jdhg-booking .jdhg-btn{width:100%}
.jdhg-booking .jdhg-btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:767px){
  .jdhg-launch{inset-inline-end:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px) + var(--hg-keyboard-gap,0px))}
  .jdhg-panel{inset-inline:8px;width:auto;bottom:calc(80px + env(safe-area-inset-bottom,0px) + var(--hg-keyboard-gap,0px));max-height:min(560px,calc(var(--hg-visible-height,100dvh) - 96px - env(safe-area-inset-bottom,0px)))}
}
@media(max-width:480px){
  .jdhg-bk-customer .jdhg-bk-grid{grid-template-columns:minmax(0,1fr)}
  .jdhg-bk-customer .jdhg-bk-field input,.jdhg-bk-customer .jdhg-bk-field select{font-size:16px;min-height:46px}
}
@media(max-width:380px){
  .jdhg-launch{padding-inline-end:6px}
  .jdhg-launch-label{display:none}
  .jdhg-orb{width:64px;height:64px}.jdhg-orb .jdhg-av{width:50px;height:50px}
  .jdhg-bk-grid{grid-template-columns:1fr}
  .jdhg-actions{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  .jdhg-root *,.jdhg-panel,.jdhg-launch{animation:none!important;transition:none!important}
}
@media(prefers-contrast:more){
  .jdhg-root{--hg-line:var(--hg-ink);--hg-soft:var(--hg-ink);--hg-muted:var(--hg-ink)}
}

/* ---- Booking form polish (booking selectors only) ---- */
.jdhg-bk-form{gap:14px}
.jdhg-bk-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px;row-gap:14px;align-items:stretch}
.jdhg-bk-customer .jdhg-bk-grid{grid-template-columns:minmax(0,1fr);align-items:stretch;row-gap:12px}
.jdhg-bk-field{display:grid;grid-template-rows:minmax(2.6em,auto) auto;align-content:start;gap:6px;font-size:inherit}
.jdhg-bk-form>.jdhg-bk-field{grid-template-rows:auto auto}
.jdhg-bk-customer .jdhg-bk-field{grid-template-rows:auto auto}
.jdhg-bk-field>span{align-self:end;font-size:.6875rem;font-weight:600;line-height:1.3;letter-spacing:.04em;text-transform:uppercase;color:var(--hg-soft);overflow-wrap:anywhere}
.jdhg-bk-field>.jdhg-bk-field-error{grid-row:auto;text-transform:none;letter-spacing:0;font-size:.75rem;color:var(--hg-ink)}
.jdhg-bk-field input,.jdhg-bk-field select,.jdhg-bk-field textarea{box-sizing:border-box;align-self:start;height:44px;padding:0 12px;border-radius:12px;font-size:.875rem;line-height:1.3;transition:border-color .15s ease}
.jdhg-bk-field textarea{height:auto;min-height:84px;padding:10px 12px;line-height:1.45}
.jdhg-bk-field select{appearance:none;-webkit-appearance:none;padding-inline-end:32px;background-image:linear-gradient(45deg,transparent 50%,var(--hg-soft) 50%),linear-gradient(135deg,var(--hg-soft) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.jdhg-bk-field input::placeholder{color:var(--hg-muted);opacity:1}
.jdhg-bk-field input:focus-visible,.jdhg-bk-field select:focus-visible,.jdhg-bk-field textarea:focus-visible{border-color:var(--hg-ink);outline:2px solid var(--hg-ink);outline-offset:2px}
.jdhg-bk-field textarea[aria-invalid="true"]{border-color:var(--hg-ink);border-style:dashed}
.jdhg-bk-customer{padding:14px 0}
.jdhg-bk-customer legend{padding:0 0 10px;font-size:.8125rem;font-weight:700;letter-spacing:-.01em;color:var(--hg-ink)}
.jdhg-bk-note{font-size:.75rem;line-height:1.5;color:var(--hg-soft);max-width:60ch}
.jdhg-bk-customer .jdhg-bk-note{margin-top:12px}
@media(max-width:480px){
  .jdhg-booking{padding:10px 12px 14px}
  .jdhg-bk-grid,.jdhg-bk-customer .jdhg-bk-grid{grid-template-columns:minmax(0,1fr);row-gap:12px}
  .jdhg-bk-field{grid-template-rows:auto auto}
  .jdhg-bk-field input,.jdhg-bk-field select,.jdhg-bk-field textarea{font-size:16px}
  .jdhg-bk-field input,.jdhg-bk-field select{height:48px}
}
