/* NLS guide: WhatsApp corner funnel (desktop card above the corner button, bottom sheet on phones) */
.nlsg{position:fixed; right:clamp(1rem,2.5vw,1.75rem); bottom:calc(clamp(1rem,2.5vw,1.75rem) + 64px); z-index:160; width:min(340px, calc(100vw - 2rem)); background:#fff; color:var(--ink,#1a1b17); border:1px solid var(--line,#e3dbc8); border-radius:16px; box-shadow:0 18px 50px rgba(15,36,24,0.22); padding:1.1rem 1.1rem 1rem; font-size:0.95rem; line-height:1.45; opacity:0; transform:translateY(12px) scale(0.98); transition:opacity .22s ease, transform .22s ease;}
.nlsg.show{opacity:1; transform:none;}
.nlsg[hidden]{display:none;}
.nlsg-x{position:absolute; top:0.45rem; right:0.55rem; width:32px; height:32px; border:0; background:none; font:inherit; font-size:1.4rem; line-height:1; color:var(--mute,#6f6e66); cursor:pointer; border-radius:50%;}
.nlsg-x:hover{background:var(--cream,#faf6ee); color:var(--forest,#1f4a31);}
.nlsg-q{margin:0 2rem 0.75rem 0; font-family:'Fraunces',Georgia,serif; font-weight:700; font-size:1.08rem; color:var(--forest,#1f4a31); line-height:1.3;}
.nlsg-t{margin:-0.3rem 0 0.8rem; font-size:0.86rem; color:var(--mute,#6f6e66);}
.nlsg-opts{display:grid; gap:0.45rem;}
.nlsg-opt{font:inherit; font-size:0.93rem; font-weight:500; text-align:left; color:var(--forest,#1f4a31); background:var(--cream,#faf6ee); border:1px solid var(--line,#e3dbc8); border-radius:10px; padding:0.65em 0.9em; min-height:44px; cursor:pointer; transition:background .15s, border-color .15s;}
.nlsg-opt:hover{background:#fff; border-color:var(--forest,#1f4a31);}
.nlsg-direct,.nlsg-back,.nlsg-mail{display:inline-block; margin-top:0.7rem; font:inherit; font-size:0.84rem; color:var(--mute,#6f6e66); background:none; border:0; padding:0.3rem 0; cursor:pointer; text-decoration:underline; text-underline-offset:3px;}
.nlsg-direct:hover,.nlsg-back:hover,.nlsg-mail:hover{color:var(--forest,#1f4a31);}
.nlsg-mail{display:block; margin-top:0.55rem;}
.nlsg-wa{background:var(--green-ink,#15803d) !important; display:flex; align-items:center; justify-content:center; gap:0.55rem; width:100%; box-sizing:border-box; min-height:50px; font:inherit; font-weight:600; font-size:1rem; color:#fff; background:var(--green,#16a34a); border:0; border-radius:10px; padding:0.7em 1em; text-decoration:none; cursor:pointer;}
.nlsg-wa:hover{background:var(--forest,#1f4a31);}
.nlsg-wa svg{width:22px; height:22px; fill:#fff; flex:none;}
.nlsg-copied{margin:0.5rem 0 0; font-size:0.82rem; color:var(--forest,#1f4a31);}
.nlsg-form{display:grid; gap:0.5rem;}
.nlsg-form input{font:inherit; font-size:1rem; width:100%; box-sizing:border-box; min-height:46px; padding:0.6em 0.9em; border:1px solid var(--line,#e3dbc8); border-radius:10px; color:var(--ink,#1a1b17); background:#fff;}
.nlsg-form input:focus{outline:2px solid var(--green,#16a34a); outline-offset:1px;}
.nlsg-err{margin:0; font-size:0.84rem; color:#b3261e;}
.nlsg-fine{margin:0; font-size:0.8rem; color:var(--mute,#6f6e66);}
@media (max-width:760px){
  .nlsg{left:0; right:0; bottom:0; width:auto; max-height:min(60vh, 460px); overflow:auto; border-radius:18px 18px 0 0; padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom)); box-shadow:0 -12px 40px rgba(15,36,24,0.25); transform:translateY(100%);}
  .nlsg.show{transform:none;}
  body.sp .nlsg{bottom:0; z-index:170;}
}
@media (prefers-reduced-motion:reduce){.nlsg{transition:none;}}

/* review pass 1: origin, easing, touch targets, step change */
.nlsg{transform-origin:100% 100%; transition:opacity 200ms ease, transform 200ms cubic-bezier(.23,1,.32,1);}
.nlsg.show{transition-duration:260ms;}
.nlsg-x{width:44px; height:44px; top:0.2rem; right:0.25rem;}
.nlsg-direct,.nlsg-back{min-height:44px; display:inline-flex; align-items:center;}
.nlsg-mail{min-height:44px; display:flex; align-items:center;}
.nlsg > :not(.nlsg-x){animation:nlsgIn 180ms cubic-bezier(.23,1,.32,1) backwards;}
@keyframes nlsgIn{from{opacity:0; transform:translateY(4px);}}
@media (max-width:760px){ .nlsg.show{transition:transform 300ms cubic-bezier(.32,.72,0,1), opacity 200ms ease;} }
@media (prefers-reduced-motion:reduce){ .nlsg,.nlsg.show{transition:none;} .nlsg > :not(.nlsg-x){animation:none;} }
