/* ============================================================
   NOGI v2.1 — Services interactifs (modales)
   ============================================================ */
.nogi [data-nogi-modal]{cursor:pointer}
.nogi-modal-wrap{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:20px}
.nogi-modal-scrim{position:absolute;inset:0;background:rgba(35,12,15,.55);backdrop-filter:blur(6px);opacity:0;transition:.45s}
.nogi-modal-wrap.open .nogi-modal-scrim{opacity:1}
.nogi-modal{position:relative;background:var(--cream,#faf7f3);width:min(560px,94vw);max-height:88vh;overflow:auto;box-shadow:0 40px 90px -30px rgba(35,12,15,.5);opacity:0;transform:translateY(40px) scale(.97);transition:.5s cubic-bezier(.22,.7,.24,1)}
.nogi-modal-wrap.open .nogi-modal{opacity:1;transform:none}
.nogi-modal .nx{position:sticky;top:0;float:right;margin:14px 16px 0 0;background:none;border:none;font-size:1.9rem;line-height:1;color:var(--wine,#2d1013);cursor:pointer;z-index:5;font-family:Georgia,serif}
.nogi-modal-body{padding:38px clamp(24px,5vw,46px) 40px}
.nogi-modal .m-eyebrow{font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--rose-deep,#a86a5e);font-weight:500;display:block;margin-bottom:12px}
.nogi-modal .m-title{font-family:var(--serif,Georgia);font-weight:400;font-size:clamp(1.7rem,4vw,2.3rem);color:var(--wine,#2d1013);line-height:1.1;margin:0 0 14px}
.nogi-modal .m-title em{font-style:italic;color:var(--rose-deep,#a86a5e)}
.nogi-modal .m-title .beta{font-family:var(--sans,sans-serif);font-size:.55rem;letter-spacing:.26em;text-transform:uppercase;vertical-align:middle;border:1px solid var(--blush,#e8ccc2);color:var(--rose-deep,#a86a5e);padding:4px 8px;margin-left:10px}
.nogi-modal .m-lead{font-size:.9rem;color:var(--grey,#8a7a74);line-height:1.8;margin:0 0 24px}
.nogi-modal .m-note{font-size:.74rem;color:var(--grey,#8a7a74);line-height:1.7;margin:18px 0 0;border-top:1px solid var(--line,#e7ddd4);padding-top:14px}
.nogi-modal .m-form{display:grid;gap:18px;margin-bottom:22px}
.nogi-modal .m-form label{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--grey,#8a7a74);display:grid;gap:9px;font-weight:500}
.nogi-modal select,.nogi-modal input[type="number"],.nogi-modal input[type="text"]{font-family:var(--sans,sans-serif);font-size:.95rem;padding:.9rem 1rem;border:1px solid var(--line,#e7ddd4);background:#fff;color:var(--ink,#231518);width:100%}
.nogi-modal .m-radio{display:flex;gap:8px}
.nogi-modal .m-radio button{flex:1;padding:.85rem;border:1px solid var(--line,#e7ddd4);background:#fff;font-size:.8rem;letter-spacing:.04em;color:var(--ink);transition:.3s}
.nogi-modal .m-radio button.on{background:var(--wine,#2d1013);color:var(--cream,#faf7f3);border-color:var(--wine,#2d1013)}
.nogi-modal .m-result{background:#fff;border:1px solid var(--line,#e7ddd4);padding:6px 20px;margin-bottom:20px}
.nogi-modal .r-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--line,#e7ddd4)}
.nogi-modal .r-row:last-child{border-bottom:none}
.nogi-modal .r-row span{font-size:.82rem;color:var(--grey,#8a7a74)}
.nogi-modal .r-row b{font-family:var(--serif,Georgia);font-size:1.35rem;font-weight:500;color:var(--wine,#2d1013);white-space:nowrap}
.nogi-modal .r-row.ok b{color:var(--rose-deep,#a86a5e)}
.nogi-modal .r-note{font-size:.8rem;color:var(--grey);line-height:1.7;padding:12px 0}
.nogi-modal .m-guar{display:flex;gap:12px;align-items:flex-start;font-size:.78rem;color:var(--grey,#8a7a74);line-height:1.7;margin-bottom:22px}
.nogi-modal .m-guar b{color:var(--wine,#2d1013)}
.nogi-modal .m-guar svg{width:18px;height:18px;stroke:var(--rose-deep,#a86a5e);fill:none;stroke-width:1.5;flex-shrink:0;margin-top:2px}
.nogi-modal .m-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.nogi-modal .m-cta .nbtn{flex:1;text-align:center;min-width:200px}
.nogi-modal .m-measure{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap}
.nogi-modal .m-measure input{width:120px;text-align:center;font-size:1.2rem}
.nogi-modal .m-measure > span{color:var(--grey);font-size:.9rem}

/* Finder */
.nogi-modal .f-prog{height:2px;background:var(--line,#e7ddd4);margin:4px 0 26px}
.nogi-modal .f-prog i{display:block;height:100%;background:var(--rose-deep,#a86a5e);transition:width .5s}
.nogi-modal .f-opts{display:grid;gap:10px}
.nogi-modal .f-opt{text-align:left;padding:1.05rem 1.2rem;border:1px solid var(--line,#e7ddd4);background:#fff;font-family:var(--serif,Georgia);font-size:1.1rem;color:var(--wine,#2d1013);transition:.3s;cursor:pointer}
.nogi-modal .f-opt:hover{border-color:var(--wine,#2d1013);background:var(--wine,#2d1013);color:var(--cream,#faf7f3);padding-left:1.6rem}

/* Anprobe */
.nogi-modal.m-anprobe{width:min(680px,94vw)}
.ap-stage{position:relative;aspect-ratio:3/3.4;background:#fff;border:1px solid var(--line,#e7ddd4);overflow:hidden;margin-bottom:14px}
.ap-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--grey,#8a7a74);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase}
.ap-empty svg{width:34px;height:34px;stroke:var(--rose,#c58a7f);fill:none;stroke-width:1.2}
.ap-empty input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ap-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.ap-wig{position:absolute;mix-blend-mode:multiply;cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none}
.ap-wig:active{cursor:grabbing}
.ap-models{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px}
.ap-thumb{border:1px solid var(--line,#e7ddd4);background:#fff;padding:0;aspect-ratio:3/4;overflow:hidden;cursor:pointer;transition:.3s}
.ap-thumb img{width:100%;height:100%;object-fit:cover}
.ap-thumb.on{border-color:var(--wine,#2d1013);box-shadow:0 0 0 1px var(--wine,#2d1013)}
.ap-ctrl{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ap-ctrl label{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--grey,#8a7a74);display:grid;gap:8px;font-weight:500}
.ap-ctrl input[type="range"]{accent-color:#a86a5e;width:100%}
@media(max-width:640px){.ap-ctrl{grid-template-columns:1fr}.ap-models{grid-template-columns:repeat(3,1fr)}}

/* Nora */
.nogi-modal.m-nora{display:flex;flex-direction:column;width:min(440px,94vw);height:min(640px,88vh)}
.nogi-modal.m-nora .nogi-modal-body{display:flex;flex-direction:column;flex:1;min-height:0;padding-bottom:22px}
.nr-head{display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line,#e7ddd4);padding-bottom:16px;margin-bottom:16px}
.nr-ava{width:46px;height:46px;border-radius:50%;background:var(--wine,#2d1013);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.nr-ava svg{width:20px;height:20px;stroke:var(--cream,#faf7f3);fill:none;stroke-width:1.4}
.nr-ava::after{content:"";position:absolute;bottom:1px;right:1px;width:10px;height:10px;border-radius:50%;background:#7ec96f;border:2px solid var(--cream,#faf7f3)}
.nr-head b{font-family:var(--serif,Georgia);font-size:1.2rem;color:var(--wine,#2d1013);display:block}
.nr-head span{font-size:.68rem;color:var(--grey,#8a7a74)}
.nr-log{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px;min-height:120px}
.nr-msg{background:#fff;border:1px solid var(--line,#e7ddd4);padding:12px 15px;font-size:.85rem;line-height:1.7;color:var(--ink,#231518);max-width:88%;align-self:flex-start}
.nr-msg.me{background:var(--wine,#2d1013);color:var(--cream,#faf7f3);border-color:var(--wine,#2d1013);align-self:flex-end}
.nr-chips{display:flex;gap:8px;flex-wrap:wrap;padding:14px 0}
.nr-chip{border:1px solid var(--line,#e7ddd4);background:#fff;padding:.55rem 1rem;font-size:.74rem;letter-spacing:.04em;color:var(--wine,#2d1013);cursor:pointer;transition:.3s}
.nr-chip:hover{background:var(--wine,#2d1013);color:var(--cream,#faf7f3);border-color:var(--wine,#2d1013)}
.nr-form{display:flex;gap:8px;border-top:1px solid var(--line,#e7ddd4);padding-top:14px}
.nr-form input{flex:1}
.nr-form button{width:48px;background:var(--wine,#2d1013);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer}
.nr-form button svg{width:16px;height:16px;stroke:var(--cream,#faf7f3);fill:none;stroke-width:1.6}
/* Nora — boutons d'action */
.nr-act{margin-top:10px}
.nr-go{display:inline-block;background:var(--wine);color:#fff;border:0;padding:.6rem 1.05rem;font-family:var(--sans);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:none}
.nr-go:hover{background:var(--wine-soft)}
/* Anprobe — boutons upload/caméra */
.ap-start{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;justify-content:center}
.ap-btn{position:relative;display:inline-block;background:var(--wine);color:#fff;border:0;padding:.6rem 1.1rem;font-family:var(--sans);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;overflow:hidden}
.ap-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.ap-btn:hover{background:var(--wine-soft)}
video.ap-photo{object-fit:cover;width:100%;height:100%;display:block}
