/* Base */
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
img{max-width:100%}
:root{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}

/* Layout : minimalisme scandinave. Une colonne aérée, filets sauge très légers, anthracite pour les actions. Thème clair unique, choisi délibérément. */
:root{
  --bg:#F9F7F2; --bg2:#F3F0E8; --surface:#F9F7F2; --line:rgba(92,114,99,.22); --line-strong:rgba(92,114,99,.45);
  --fg:#1E2022; --muted:#6B6E68; --gold:#5C7263; --gold-ink:#F9F7F2; --turq:#5C7263; --danger:#A3452F;
  --display:"Plus Jakarta Sans", Inter, system-ui, sans-serif;
  --sc:"Plus Jakarta Sans", Inter, system-ui, sans-serif;
  --body:"Plus Jakarta Sans", Inter, system-ui, sans-serif;
  --glyph:"Noto Sans Egyptian Hieroglyphs", "Segoe UI Historic", sans-serif;
  color-scheme:light;
}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font:400 1rem/1.7 var(--body)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
a{color:var(--fg);text-underline-offset:3px;text-decoration-color:var(--line-strong)}
a:hover{color:var(--gold)}
:focus-visible{outline:1.5px solid var(--gold);outline-offset:3px}
.wrap{max-width:1040px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:300;text-wrap:balance;line-height:1.15;margin:0;letter-spacing:-.015em}
h1{font-size:clamp(2.1rem,6vw,3.4rem)}
h2{font-size:clamp(1.5rem,3.4vw,2rem)}
h3{font-size:1.2rem;font-weight:400}
p{margin:0;max-width:60ch}
.eyebrow{font-family:var(--sc);font-weight:500;letter-spacing:.22em;font-size:.7rem;color:var(--gold);text-transform:uppercase}
.muted{color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

header{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--bg);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg)}
.logo b{font-family:var(--display);font-weight:400;font-size:1.2rem;letter-spacing:.32em;text-transform:uppercase}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:8px}
nav a{display:block;padding:8px 12px;text-decoration:none;color:var(--muted);font-size:.95rem;border-bottom:1px solid transparent}
nav a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--fg)}
nav a:hover{color:var(--fg)}
@media (max-width:520px){
  .bar{flex-direction:column;align-items:stretch;gap:6px;padding-block:12px 0}
  .logo{justify-content:center}
  nav ul{justify-content:space-between;gap:0}
  nav li{flex:1;text-align:center}
  nav a{padding:12px 4px}
}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--fg);color:var(--bg);border:1px solid var(--fg);padding:14px 28px;font:500 1rem var(--body);text-decoration:none;cursor:pointer;min-height:52px;border-radius:999px}
.btn:hover{background:#34383B;color:var(--bg)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line-strong)}
.btn.ghost:hover{border-color:var(--fg)}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btns{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:520px){.btns .btn{flex:1}}

section.page{padding-block:64px 96px}
.stack{display:flex;flex-direction:column;gap:20px}
.grid{display:grid;gap:40px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.grid>*{min-width:0}
.rule{display:flex;align-items:center;gap:16px;color:var(--gold);font-family:var(--glyph);font-size:1.1rem}
.rule::before,.rule::after{content:"";flex:1;height:1px;background:var(--line)}

.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:center}
@media (max-width:760px){.hero{grid-template-columns:1fr}.cartouche-wrap{order:-1}}
.cartouche-wrap{display:flex;flex-direction:column;align-items:center;gap:20px}
.cartouche{border:1px solid var(--line-strong);border-radius:999px;padding:32px 18px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}
.cartouche::after{content:"";position:absolute;bottom:-10px;left:22%;right:22%;height:1px;background:var(--line-strong)}
.cartouche span{font-family:var(--glyph);font-size:1.8rem;line-height:1.1;color:var(--fg)}
@media (max-width:760px){.cartouche{flex-direction:row;padding:14px 30px;gap:12px}.cartouche::after{top:22%;bottom:22%;left:auto;right:-10px;width:1px;height:auto}}
.cartouche-wrap small{font-size:.7rem;letter-spacing:.3em;color:var(--muted);text-align:center}

.offer{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding-block:40px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
@media (max-width:640px){.offer{grid-template-columns:1fr;padding-block:32px}}
.offer .price{font-family:var(--display);font-weight:300;font-size:2.8rem;color:var(--fg);line-height:1;font-variant-numeric:tabular-nums}
.facts{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.facts li{font-size:.85rem;color:var(--fg);padding:5px 14px;border:1px solid var(--line-strong);border-radius:999px}
.howto{list-style:none;padding:0;margin:0;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.howto li{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:6px}
.howto b{font-family:var(--display);font-weight:500;font-size:1.05rem}
.howto span.n{color:var(--gold);font-size:.8rem;letter-spacing:.2em}
details{border-top:1px solid var(--line);padding-block:18px}
summary{cursor:pointer;font-family:var(--display);font-size:1rem;font-weight:500}
details p{margin-top:10px}

.steps{display:flex;gap:8px;list-style:none;padding:0;margin:0}
.steps li{flex:1;text-align:center;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:10px 6px;border-bottom:1px solid var(--line)}
.steps li.on{color:var(--fg);border-bottom-color:var(--fg)}
.days{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.dbtn{flex:0 0 auto;scroll-snap-align:start;min-width:72px;background:transparent;border:1px solid var(--line);color:var(--fg);padding:12px 8px;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;line-height:1.25;border-radius:36px}
.dbtn small{font-size:.75rem;color:var(--muted)}
.dbtn b{font-family:var(--display);font-weight:300;font-size:1.5rem}
.dbtn[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.dbtn[aria-pressed="true"] small{color:var(--bg)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:10px}
.slot{background:transparent;border:1px solid var(--line-strong);color:var(--fg);padding:12px;font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;min-height:52px;border-radius:999px}
.slot:hover{border-color:var(--fg)}
.slot[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.slot:disabled{text-decoration:line-through;opacity:.35;cursor:not-allowed;border-color:var(--line)}
.field{display:flex;flex-direction:column;gap:8px}
label{font-size:.95rem}
input[type=text],input[type=email],input[type=tel],textarea{background:transparent;border:1px solid var(--line-strong);color:var(--fg);padding:13px 16px;font:inherit;width:100%;font-size:16px;border-radius:14px}
input:focus,textarea:focus{border-color:var(--fg);outline:none}
.check{display:flex;gap:12px;align-items:flex-start;color:var(--muted)}
.check input{margin-top:5px;accent-color:#1E2022;width:18px;height:18px;flex:0 0 auto}
.recap{border:1px solid var(--line-strong);padding:24px;border-radius:20px;display:flex;flex-direction:column;gap:12px}
.recap dl{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:0}
.recap dt{color:var(--muted)} .recap dd{margin:0}
.note{font-size:.88rem;color:var(--muted);border-left:1px solid var(--line-strong);padding:4px 0 4px 14px}
.err{color:var(--danger);border-left-color:var(--danger)}

.rdv{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line);padding-block:20px}
.pill{font-size:.75rem;font-weight:500;letter-spacing:.08em;padding:4px 12px;border:1px solid var(--gold);color:var(--gold);white-space:nowrap;border-radius:999px}
.pill.past{border-color:var(--line);color:var(--muted)}

.chat{border:1px solid var(--line-strong);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;height:min(640px,calc(100dvh - 200px));min-height:420px}
.chat-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.chat-head strong{font-family:var(--display);font-weight:500;font-size:1rem}
.msgs{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}
.msg{max-width:min(80%,460px);padding:12px 16px;line-height:1.55;overflow-wrap:anywhere;border-radius:20px}
.msg.n{align-self:flex-start;background:var(--bg2);border:1px solid var(--line);border-bottom-left-radius:6px}
.msg.c{align-self:flex-end;background:var(--fg);color:var(--bg);border-bottom-right-radius:6px}
.msg small{display:block;opacity:.6;font-size:.75rem;margin-top:4px}
.msg img{display:block;max-width:100%;max-height:260px;object-fit:cover;margin:-6px -10px 6px;width:calc(100% + 20px);border-radius:14px}
.msg audio{width:240px;max-width:100%;display:block}
.voice{display:flex;align-items:center;gap:10px}
.voice button{width:36px;height:36px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;flex:0 0 auto;display:grid;place-items:center}
.voice button svg{fill:currentColor}
.voice button svg{fill:currentColor}
.msg.n .voice button svg{fill:currentColor}
.wave{display:flex;align-items:center;gap:2px;height:26px}
.wave i{width:2px;background:currentColor;opacity:.55;border-radius:2px}
.composer{display:flex;gap:8px;align-items:center;padding:12px;border-top:1px solid var(--line);padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}
.composer input[type=text]{flex:1;min-width:0;padding:12px 16px;border-radius:999px}
.ico{width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;background:transparent;border:1px solid var(--line-strong);color:var(--fg);cursor:pointer;border-radius:50%}
.ico:hover{border-color:var(--fg)}
.ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ico.send{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.ico.rec{background:var(--danger);border-color:var(--danger);color:#F9F7F2}
.recbar{display:flex;align-items:center;gap:10px;flex:1;color:var(--danger);font-variant-numeric:tabular-nums}
.recbar .dot{width:8px;height:8px;border-radius:50%;background:var(--danger)}
@media (prefers-reduced-motion:no-preference){.recbar .dot{animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.2}}}

footer{border-top:1px solid var(--line)}
footer .wrap{padding-block:32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.88rem}
footer ul{list-style:none;padding:0;margin:0;display:flex;gap:20px;flex-wrap:wrap}
footer a{color:var(--muted);text-decoration:none}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);padding:12px 20px;z-index:20;max-width:calc(100% - 48px);text-align:center;border-radius:999px;font-size:.92rem}

.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:center}
@media (max-width:700px){.about{grid-template-columns:1fr}}
.portrait{aspect-ratio:4/5;max-width:100%;border:1px solid var(--line-strong);border-radius:200px 200px 24px 24px;display:grid;place-items:center;color:var(--muted);font-size:.85rem;letter-spacing:.16em;text-transform:uppercase}
.reviews{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.reviews blockquote{margin:0;border-top:1px solid var(--line);padding-top:18px;display:flex;flex-direction:column;gap:10px}
.reviews p{font-size:1.05rem;font-weight:300}
.reviews cite{font-style:normal;font-size:.85rem;color:var(--muted)}
.cta-end{border-top:1px solid var(--line-strong);padding-top:56px;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}

/* Illustration au trait (inspirée du logo Nilaya) */
.portrait{color:var(--fg)}
.emblem{width:86%;height:auto}
.emblem .s{stroke-width:1;opacity:.7}
.emblem .s2{stroke-width:1;opacity:.55}
.emblem .a{stroke:var(--gold);stroke-width:1.8}
.emblem .f{fill:currentColor}

/* Champ du don */
.don{display:flex;align-items:center;gap:10px;max-width:200px}
.don input{text-align:right;font-variant-numeric:tabular-nums}
.don span{font-size:1.1rem}
input[type=number]{background:transparent;border:1px solid var(--line-strong);color:var(--fg);padding:13px 16px;font:inherit;width:100%;font-size:16px;border-radius:14px}

/* Engagements */
.promise{border-top:1px solid var(--line);padding-top:18px;display:flex;flex-direction:column;gap:8px}
.promise b{font-weight:500;font-size:1.05rem}

/* Choix du mode d'échange */
.canal{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.canal legend{font-size:.95rem;padding:0;margin-bottom:10px}
.canal-opts{display:flex;gap:8px;flex-wrap:wrap}
.canal-opts label{position:relative;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;min-height:48px}
.canal-opts input{accent-color:#1E2022;margin:0}
.canal-opts label:has(input:checked){border-color:var(--fg);background:var(--fg);color:var(--bg)}
.canal-opts label:has(input:checked) input{accent-color:#F9F7F2}

/* Pages légales */
.legal{display:flex;flex-direction:column;gap:16px;max-width:760px;padding-block:56px 96px}
.legal h2{font-size:1.15rem;font-weight:500;margin-top:24px;letter-spacing:0}
.legal p,.legal li{color:var(--muted)}
.legal ul{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:6px}
.legal strong{color:var(--fg);font-weight:500}

/* Emblème de l'en-tête */
.emblem.mark{width:min(280px,80%)}
@media (max-width:760px){.emblem.mark{width:200px}}

/* Rassurances */
.reassure{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.82rem;color:var(--muted)}
.reassure li{display:flex;align-items:center;gap:8px}
.reassure li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold)}
.cta-end .reassure{justify-content:center}

/* Réseaux */
.socials{list-style:none;padding:0;margin:0;display:flex;gap:10px;flex-wrap:wrap}
.socials a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:1px solid var(--line-strong);border-radius:999px;text-decoration:none;font-size:.92rem}
.socials a:hover{border-color:var(--fg);color:var(--fg)}

/* Univers Aetheria */
.universe{display:flex;flex-direction:column;gap:36px;padding-block:56px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.universe h2{max-width:22ch}
.realms{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.realm{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:24px;border:1px solid var(--line-strong);border-radius:24px;text-decoration:none;color:var(--fg)}
.realm b{font-weight:400;font-size:1.35rem;letter-spacing:-.01em}
.realm .go{margin-top:8px;font-size:.92rem;font-weight:500}
a.realm:hover{border-color:var(--fg);color:var(--fg)}
.realm.soon{border-color:var(--line)}

/* Nom de boutique (plus long) */
.logo b{letter-spacing:.14em;font-size:1rem}
@media (max-width:520px){.logo b{font-size:.88rem;letter-spacing:.1em}}
.cartouche-wrap small{letter-spacing:.24em;text-transform:uppercase}

/* Nom + devise */
.logo-text{display:flex;flex-direction:column;line-height:1.2;gap:3px}
.logo-text small{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
@media (max-width:520px){.logo-text{align-items:center}.logo-text small{font-size:.58rem;letter-spacing:.16em}}
.brand-under{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.brand-under span{font-size:.95rem;letter-spacing:.24em;text-transform:uppercase}
.brand-under small{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}

/* Pictogrammes des engagements */
.promise-ico{width:60px;height:60px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;color:var(--gold);margin-bottom:6px}
.promise{border-top:none;padding-top:0}
.promises{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.promises{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.promises{grid-template-columns:1fr}}

/* Agenda intégré */
.booking{display:flex;flex-direction:column;gap:16px}
.cal-box{width:100%;min-height:560px;border:1px solid var(--line-strong);border-radius:24px;overflow:hidden;background:#fff}
.don-step{border:1px solid var(--fg);border-radius:24px;padding:28px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}

/* Écran de passage vers le don */
.don-overlay{position:fixed;inset:0;z-index:50;background:var(--bg);display:grid;place-items:center;padding:24px}
.don-overlay-box{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:420px}
.spinner{width:28px;height:28px;border:1.5px solid var(--line-strong);border-top-color:var(--fg);border-radius:50%}
@media (prefers-reduced-motion:no-preference){.spinner{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}}
