/* Extends the site's graphite, warm white and restrained brass request UI. */
.gr-assistant-welcome { --welcome-ink:#171719; --welcome-paper:#eeeee9; --welcome-accent:#876b30; display:grid; grid-template-columns:96px minmax(0,1fr) 44px; align-items:start; gap:20px; padding:24px max(24px,calc((100% - 1184px)/2)); background:var(--welcome-paper); color:var(--welcome-ink); font-family:var(--type-family,Onest,sans-serif); }
.gr-assistant-welcome[hidden] { display:none!important; }
.gr-assistant-welcome-avatar { display:block; width:96px; height:96px; object-fit:contain; }
.gr-assistant-welcome .gr-assistant-welcome-copy { min-width:0; }
.gr-assistant-welcome .gr-assistant-welcome-title { margin:0 0 8px; font:500 24px/1.2 var(--type-family,Onest,sans-serif); letter-spacing:-.02em; }
.gr-assistant-welcome p:where(:not(.gr-assistant-welcome-title)) { max-width:65ch; margin:0; font-size:16px; line-height:1.5; }
.gr-assistant-welcome-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; margin-top:16px; }
.gr-assistant-welcome :is(a,button) { min-height:44px; font:inherit; font-size:16px; line-height:1.4; touch-action:manipulation; cursor:pointer; }
.gr-assistant-welcome-actions a { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 16px; background:var(--welcome-ink); color:#fff; text-decoration:none; }
.gr-assistant-welcome-actions a:hover { background:#353535; }
.gr-assistant-welcome-actions button { padding:8px 0; border:0; background:transparent; color:var(--welcome-ink); text-align:left; text-decoration:underline; text-underline-offset:4px; }
.gr-assistant-welcome-actions button:hover { text-decoration-thickness:2px; }
.gr-assistant-welcome .gr-assistant-welcome-hint { margin-top:8px; }
.gr-assistant-welcome-close { display:grid; place-items:center; width:44px; padding:10px; border:0; background:transparent; color:var(--welcome-ink); }
.gr-assistant-welcome-close:hover { background:#e1e1d9; }
.gr-assistant-welcome .ui-icon { width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.gr-assistant-welcome :is(a,button):focus-visible { outline:2px solid var(--welcome-accent); outline-offset:3px; }
@media(max-width:767px) {
 .gr-assistant-welcome { grid-template-columns:64px minmax(0,1fr) 44px; gap:12px; padding:20px 16px; }
 .gr-assistant-welcome-avatar { width:64px; height:64px; }
 .gr-assistant-welcome-copy { display:contents; }
 .gr-assistant-welcome .gr-assistant-welcome-title { grid-column:2; grid-row:1; align-self:center; font-size:22px; }
 .gr-assistant-welcome-close { grid-column:3; grid-row:1; }
 .gr-assistant-welcome-copy > p,.gr-assistant-welcome-actions { grid-column:1/-1; }
 .gr-assistant-welcome-actions { margin-top:4px; display:grid; gap:4px; }
 .gr-assistant-welcome-actions a { width:100%; box-sizing:border-box; }
 .gr-assistant-welcome .gr-assistant-welcome-hint { margin-top:0; }
}
.gr-finder-entry { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; border-block:1px solid #d7d7d1; margin-block:24px; color:#171719; }
.gr-finder-entry > div { flex:1 1 200px; min-width:0; }
.gr-finder-entry p { font-size:18px; font-weight:500; margin:0 0 4px; }
.gr-finder-entry > div > span { font-size:14px; color:#62625e; }
.gr-finder-entry-link { display:inline-flex; align-items:center; justify-content:space-between; gap:14px; padding:8px 16px 8px 10px; min-height:64px; color:#171719; border:1px solid #a4a49e; background:#fff; text-decoration:none; flex-shrink:0; font-size:15px; }
.gr-finder-entry-link:hover { border-color:#876b30; background:#f5f2eb; }
.gr-finder-entry-link img { width:48px; height:48px; object-fit:contain; }
.gr-finder-entry-link .ui-icon { width:20px; height:20px; }
.gr-finder { --finder-ink:#171719; --finder-muted:#62625e; --finder-line:#d7d7d1; --finder-gold:#876b30; position:fixed; z-index:70; inset:auto max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) auto; width:min(400px,calc(100% - 32px)); max-width:none; height:min(620px,calc(100dvh - 48px)); max-height:calc(100dvh - 48px); padding:0; margin:0; border:0; border-radius:16px; overflow:hidden; background:#fafaf8; color:var(--finder-ink); font-family:var(--type-family,Onest,sans-serif); box-shadow:0 12px 48px #0003; }
.gr-finder[open] { display:flex; flex-direction:column; animation:gr-finder-appear .2s cubic-bezier(.16,1,.3,1); }
@keyframes gr-finder-appear { from { opacity:.5; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.gr-finder [hidden] { display:none!important; }
.gr-finder :is(button,a) { touch-action:manipulation; font:inherit; }
.gr-finder :is(button,a,input,summary,[tabindex]):focus-visible,.gr-finder-entry-link:focus-visible { outline:2px solid var(--finder-gold,#876b30); outline-offset:3px; }
.gr-finder .ui-icon,.gr-finder-entry-link .ui-icon { fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.gr-finder .ui-icon { width:20px; height:20px; flex:0 0 20px; }
.gr-finder-header { display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--finder-line); background:#fff; flex-shrink:0; }
.gr-finder-header img { width:36px; height:36px; object-fit:contain; }
.gr-finder-header .gr-assistant-avatar { width:36px; height:36px; flex-basis:36px; }
.gr-finder-header div { flex:1; min-width:0; }
.gr-finder-header .gr-finder-name { font-family:inherit; font-size:15px; font-weight:500; line-height:1.4; letter-spacing:0; margin:0; }
.gr-finder-header p:where(:not(.gr-finder-name)) { font-size:12px; color:var(--finder-muted); margin:3px 0 0; }
.gr-finder-close { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; padding:10px; border:1px solid var(--finder-line); border-radius:8px; color:var(--finder-ink); background:#f5f5f1; cursor:pointer; }
.gr-finder-close:hover { background:#e9e1d1; border-color:var(--finder-gold); }
.gr-finder-close:active { background:#ded6c6; }
.gr-finder-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:12px 16px 16px; scrollbar-width:thin; scrollbar-color:#b9b9b2 transparent; }
.gr-finder-nav { display:flex; justify-content:space-between; gap:8px; padding:4px 10px; flex-shrink:0; border-bottom:1px solid var(--finder-line); }
.gr-finder-nav button,.gr-finder-help { min-height:44px; border:0; background:transparent; padding:10px 0; color:var(--finder-gold); text-align:left; text-decoration:underline; text-underline-offset:4px; }
.gr-finder-nav button { display:inline-flex; align-items:center; gap:6px; padding:8px 6px; border-radius:6px; font-size:13px; white-space:nowrap; text-decoration:none; cursor:pointer; }
.gr-finder-nav button .ui-icon { width:16px; height:16px; flex-basis:16px; }
.gr-finder-nav button:hover:not(:disabled) { background:#f0ece2; }
.gr-finder-nav button:disabled { color:var(--finder-muted); text-decoration:none; }
.gr-finder-history { list-style:none; padding:0; margin:0 0 16px; }
.gr-finder-history li { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.gr-finder-past-question { align-self:flex-start; max-width:92%; margin:0; padding:10px 12px; border-radius:12px 12px 12px 3px; background:#eeeee9; font-size:13px; line-height:1.45; }
.gr-finder-reply { align-self:flex-end; max-width:88%; margin:0; padding:10px 12px; border-radius:12px 12px 3px 12px; background:#e9e1d1; color:#302a1c; font-size:13px; line-height:1.45; }
.gr-finder-message { padding:14px; margin:0 0 12px; background:#eeeee9; border-radius:12px 12px 12px 3px; }
.gr-finder .gr-finder-question:focus { outline:none; }
.gr-finder .gr-finder-question { font-family:inherit; font-size:18px; font-weight:500; line-height:1.35; letter-spacing:-.02em; margin:0; overflow-wrap:anywhere; }
.gr-finder-note { font-size:13px; line-height:1.5; color:var(--finder-muted); margin:8px 0 0; }
.gr-finder-content { display:grid; gap:8px; }
.gr-finder-content[data-root="true"] { grid-template-columns:minmax(0,1fr); gap:6px; }
.gr-finder-content[data-root="true"] > .gr-finder-help { grid-column:1/-1; margin-top:0; }
.gr-finder-answer { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:48px; width:100%; border:1px solid #cecec6; border-radius:8px; background:#fff; color:var(--finder-ink); padding:10px 12px; text-align:left; font-size:13px!important; line-height:1.4!important; }
.gr-finder-answer-label { flex:1; min-width:0; }
.gr-finder-content[data-root="true"] > .gr-finder-answer { min-height:44px; padding:10px; }
.gr-finder-content[data-root="true"] .gr-finder-answer-label { white-space:nowrap; }
.gr-finder .gr-finder-category-icon { width:22px; height:22px; flex-basis:22px; color:var(--finder-gold); }
.gr-finder-answer > .ui-icon:last-child { width:16px; height:16px; flex-basis:16px; color:var(--finder-muted); }
.gr-finder-answer:hover { background:#f3f0e8; border-color:var(--finder-gold); }
.gr-finder-service { padding:16px 0; border-bottom:1px solid var(--finder-line); min-width:0; }
.gr-finder-service:first-child { padding-top:4px; }
.gr-finder h4 { font-family:inherit; font-size:16px; line-height:1.4; font-weight:500; letter-spacing:-.02em; margin:0 0 12px; }
.gr-finder-details { margin:0 0 12px; }
.gr-finder-details summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:8px 0; color:var(--finder-ink); cursor:pointer; font-size:14px; line-height:1.4; list-style:none; }
.gr-finder-details summary::-webkit-details-marker { display:none; }
.gr-finder-details summary::marker { content:''; }
.gr-finder-details summary:hover { color:var(--finder-gold); }
.gr-finder-details summary .ui-icon { width:16px; height:16px; flex-basis:16px; }
.gr-finder-details[open] summary .ui-icon { transform:rotate(45deg); }
.gr-finder-details p { margin:0 0 12px; font-size:14px; line-height:1.55; overflow-wrap:break-word; }
.gr-finder-benefit { font-weight:500; }
.gr-finder-options { border:0; padding:0; margin:0 0 16px; min-width:0; }
.gr-finder-options legend { font-size:12px; color:var(--finder-muted); padding:0 0 10px; }
.gr-finder-option { display:flex; align-items:center; gap:12px; padding:12px 10px; border-top:1px solid var(--finder-line); cursor:pointer; min-height:58px; font-size:14px; }
.gr-finder-option:has(input:checked) { background:#f0ece2; }
.gr-finder-option input { width:18px; height:18px; flex:0 0 18px; accent-color:var(--finder-ink); }
.gr-finder-facts { display:block; margin-top:4px; color:var(--finder-muted); font-size:13px; font-variant-numeric:tabular-nums; }
.gr-finder-primary { min-height:46px; width:100%; padding:12px 14px; border-radius:8px; font-size:13px!important; border:1px solid var(--finder-ink); background:var(--finder-ink); color:#fff; text-align:left; line-height:1.4!important; }
.gr-finder-primary:hover:not(:disabled) { background:#353535; }
.gr-finder-primary:disabled { background:#e0e0d9; border-color:#e0e0d9; color:#62625e; }
.gr-finder-help { display:block; font-size:13px!important; margin-top:8px; line-height:1.5!important; }
.gr-finder-privacy { margin:10px 0 0; font-size:12px; line-height:1.5; color:var(--finder-muted); }
.gr-finder-calculator { display:inline-flex; align-items:center; min-height:44px; color:var(--finder-gold); text-decoration:underline; text-underline-offset:4px; font-size:14px!important; }
.gr-finder-demo { font-size:12px; padding:8px 12px; margin:0 0 16px; background:#f0ece2; color:#65501f; }
.gr-finder-footer { flex-shrink:0; border-top:1px solid var(--finder-line); padding:12px 16px; background:#fff; }
.gr-finder-footer p { margin:0 0 6px; font-size:12px; font-weight:500; color:var(--finder-muted); }
.gr-finder-channels { display:flex; gap:8px; }
.gr-finder-footer a { display:flex; align-items:center; flex:1; gap:8px; padding:10px 12px; border-radius:8px; background:#f0f0eb; min-height:44px; color:var(--finder-ink); font-size:13px; line-height:1.4; text-decoration:none; }
.gr-finder-footer a span { flex:1; }
.gr-finder-footer a > .ui-icon { width:16px; height:16px; flex-basis:16px; }
.gr-finder-footer a:hover { background:#e9e1d1; }
.gr-request-form[data-guidance=true] .gr-request-steps { display:none; }
@media(max-width:767px), (max-width:1023px) and (hover:none) and (pointer:coarse) {
 .gr-finder-entry { flex-direction:column; align-items:stretch; gap:14px; }
 .gr-finder-entry > div { flex:initial; }
 .gr-finder-entry p { font-size:17px; }
 .gr-finder-entry-link { justify-content:flex-start; }
 .gr-finder-entry-link .ui-icon { margin-left:auto; }
 .gr-finder { right:max(12px,env(safe-area-inset-right)); bottom:max(12px,env(safe-area-inset-bottom)); width:calc(100% - 24px); height:min(600px,76dvh); max-height:calc(100dvh - 24px); }
}
@media(max-width:360px) {
 .gr-finder-scroll { padding-inline:12px; }
 .gr-finder-content[data-root="true"] > .gr-finder-answer { gap:5px; padding-inline:8px; }
 .gr-finder .gr-finder-category-icon { width:20px; height:20px; flex-basis:20px; }
}
@media(prefers-reduced-motion:reduce) { .gr-finder[open] { animation:none; } .gr-finder * { scroll-behavior:auto; } }

.gr-request-human { color:#876b30; font-size:13px; min-height:44px; display:inline-flex; align-items:center; padding:8px; margin-left:auto; text-underline-offset:4px; }

/* Approved concept B: one fixed text row, contextual typing and a brief character performance above it. */
.gr-finder-dock { position:fixed; z-index:45; right:max(24px,env(safe-area-inset-right)); bottom:max(24px,env(safe-area-inset-bottom)); max-width:calc(100vw - 40px); }
.gr-finder-launcher { position:relative; z-index:1; display:flex; align-items:center; gap:10px; width:max-content; max-width:100%; height:52px; padding:6px 18px 6px 8px; border-radius:26px; background:#fff; color:#171719; box-shadow:0 5px 20px #0002; font-family:var(--type-family,Onest,sans-serif); font-size:14px; font-weight:400; text-decoration:none; }
.gr-assistant-chat-cue { display:none; }
.gr-assistant-avatar { --assistant-frame:33.333333%; display:block; position:relative; width:48px; height:48px; flex:0 0 48px; }
.gr-assistant-avatar img { display:block; width:100%; height:100%; object-fit:contain; }
.gr-assistant-sprite { display:none; position:absolute; inset:0; background-image:url('../images/assistant/avatar-expressions.webp'); background-size:400% auto; background-position:var(--assistant-frame) center; background-repeat:no-repeat; }
.gr-assistant-ready .gr-assistant-avatar img { visibility:hidden; }
.gr-assistant-ready .gr-assistant-sprite { display:block; }
.gr-assistant-avatar[data-expression="attentive"] { --assistant-frame:0%; }
.gr-assistant-avatar[data-expression="blink"] { --assistant-frame:100%; }
.gr-assistant-avatar[data-expression="wink"] { --assistant-frame:66.666667%; }
.gr-finder-launcher .gr-assistant-avatar { width:40px; height:40px; flex-basis:40px; transition:opacity .18s ease-out; }
.gr-finder-launcher-action { min-width:0; display:flex; align-items:center; gap:14px; font-size:14px; line-height:20px; color:#171719; white-space:nowrap; }
.gr-assistant-copy { display:grid; min-width:0; }
.gr-assistant-measure,.gr-assistant-message { grid-area:1/1; min-width:0; }
.gr-assistant-measure { display:grid; visibility:hidden; pointer-events:none; padding-right:5px; }
.gr-assistant-message { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.gr-assistant-caret { display:inline-block; width:1px; height:14px; margin-left:3px; vertical-align:-2px; background:#876b30; opacity:0; }
.gr-finder-dock[data-speech="typing"] .gr-assistant-caret { opacity:1; }
.gr-finder-launcher-action .ui-icon { width:16px; height:16px; flex:0 0 16px; }
.gr-finder-launcher:hover { background:#f3f0e8; color:#171719; }
.gr-finder-launcher:focus-visible { outline:2px solid #876b30; outline-offset:4px; }
:is(.gr-finder-open,.gr-request-open,.menu-open,.woocommerce-cart,.woocommerce-checkout) .gr-finder-dock { visibility:hidden; }
html:has(dialog[open]) .gr-finder-dock { visibility:hidden; }
.gr-assistant-scene { --manicure-frame:0%; position:absolute; z-index:0; left:-28px; bottom:34px; width:112px; aspect-ratio:3/4; pointer-events:none; background-size:400% 100%; background-position:var(--manicure-frame) center; background-repeat:no-repeat; opacity:0; transform:translateY(26px) scale(.68); transform-origin:50% 100%; transition:transform .24s cubic-bezier(.16,1,.3,1),opacity .18s ease-out; }
.gr-assistant-scene[data-pose="1"] { --manicure-frame:33.333333%; }
.gr-assistant-scene[data-pose="2"] { --manicure-frame:66.666667%; }
.gr-assistant-scene[data-pose="3"] { --manicure-frame:100%; }
.gr-finder-dock.is-performing .gr-assistant-scene { opacity:1; transform:translateY(0) scale(1); }
.gr-finder-dock.has-scene .gr-assistant-scene { background-image:url('../images/assistant/avatar-manicure.webp'); }
/* While the page is scrolled the entry folds to its face and opens again when scrolling stops. */
.gr-finder-launcher-action { max-width:40ch; transition:max-width .24s ease-out, opacity .18s ease-out; }
.gr-finder-dock.is-reading .gr-finder-launcher { gap:0; padding-inline:6px; }
.gr-finder-dock.is-reading .gr-finder-launcher-action { max-width:0; opacity:0; overflow:hidden; }
.gr-finder-dock[data-quiet="true"] .gr-finder-launcher { gap:0; padding-inline:6px; }
.gr-finder-dock[data-quiet="true"] .gr-finder-launcher-action { display:none; }
@media (prefers-reduced-motion:reduce) { .gr-finder-launcher-action { transition:none; } }
.gr-finder-dock.is-performing .gr-finder-launcher .gr-assistant-avatar { opacity:0; }
/* Keep help within thumb reach without a persistent invitation covering the page. */
@media(max-width:767px), (max-width:1023px) and (hover:none) and (pointer:coarse) {
 .gr-finder-dock { right:calc(16px + env(safe-area-inset-right)); bottom:calc(16px + env(safe-area-inset-bottom)); max-width:56px; }
 .gr-finder-launcher { justify-content:center; width:56px; height:56px; gap:0; padding:8px; border-radius:50%; box-shadow:0 3px 12px #0002; touch-action:manipulation; }
 .gr-finder-launcher-action,.gr-assistant-scene { display:none; }
 .gr-assistant-scene { background-image:none; }
 .gr-assistant-chat-cue { position:absolute; right:1px; bottom:1px; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#fff; color:#171719; }
 .gr-assistant-chat-cue .ui-icon { display:block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
 .gr-finder-launcher .gr-assistant-avatar { transition:none; }
 .gr-finder-dock.is-performing .gr-finder-launcher .gr-assistant-avatar { opacity:1; }
}
@media(max-width:360px) {
 .gr-finder-launcher-action { gap:10px; font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
 .gr-assistant-scene,.gr-assistant-caret { display:none; transition:none; }
 .gr-finder-launcher .gr-assistant-avatar { transition:none; }
 .gr-finder-dock.is-performing .gr-finder-launcher .gr-assistant-avatar { opacity:1; }
}
