/* =========================================================================
   Maison Mernizi — Invitation digitale & RSVP
   Feuille autonome : la page /i/{code}/ ne charge pas main.css.
   1. Polices  2. Jetons & themes  3. Base  4. Enveloppe  5. Carte
   6. Formulaire  7. Outils & pied  8. Tableau de bord  9. Builder
   ========================================================================= */

/* ---------- 1. Polices ---------- */
@font-face{font-family:"Marcellus";src:url("../fonts/marcellus-latin-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Marcellus";src:url("../fonts/marcellus-latin-ext-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";src:url("../fonts/Jost-latin.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jost";src:url("../fonts/Jost-latin-ext.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/CormorantGaramond-latin.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Amiri";src:url("../fonts/amiri-arabic-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+08A0-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Tajawal";src:url("../fonts/tajawal-arabic-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+08A0-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Tajawal";src:url("../fonts/tajawal-arabic-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+08A0-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}

/* ---------- 2. Jetons ---------- */
.iv,.ivd{
  --bg:#EEE4DA; --bg2:#E7DACB; --card:#FBF7F1; --ink:#2B1518; --ink-2:rgba(43,21,24,.72); --ink-3:rgba(43,21,24,.48);
  --gold:#B18B32; --gold-2:#D2B478; --rose:#C8A49F; --burgundy:#4D0E13; --line:rgba(177,139,50,.34); --line-2:rgba(43,21,24,.1);
  --serif:"Marcellus","Cormorant Garamond",Georgia,serif; --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --pad:clamp(1.4rem,5vw,3.25rem); --r:2px; --ease:cubic-bezier(.16,1,.3,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --shadow:0 40px 90px -50px rgba(43,21,24,.55),0 2px 10px -4px rgba(43,21,24,.14);
}
.iv--or{}
.iv--nuit{--bg:#2E070B; --bg2:#3A0A0E; --card:#4D0E13; --ink:#F3E9DC; --ink-2:rgba(243,233,220,.78); --ink-3:rgba(243,233,220,.5); --gold:#D2B478; --gold-2:#EBD5A5; --line:rgba(210,180,120,.36); --line-2:rgba(243,233,220,.14); --shadow:0 40px 100px -50px rgba(0,0,0,.85)}
.iv--zellige{--bg:#E4D9CC; --bg2:#DCCEBD; --card:#FCF8F2; --gold:#96742A; --gold-2:#C8A45E; --line:rgba(150,116,42,.32)}
.iv--blanc{--bg:#F4EFE9; --bg2:#EDE5DC; --card:#FFFFFF; --ink:#4D0E13; --ink-2:rgba(77,14,19,.7); --ink-3:rgba(77,14,19,.45); --gold:#C8A49F; --gold-2:#E0C6C1; --line:rgba(200,164,159,.5)}

/* ---------- 3. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.iv,body.ivd-page{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.iv[dir="rtl"],body.ivd-page[dir="rtl"]{--serif:"Amiri","Marcellus",Georgia,serif;--sans:"Tajawal","Jost",Arial,sans-serif}
html[lang="ar"] body{--serif:"Amiri","Marcellus",Georgia,serif;--sans:"Tajawal","Jost",Arial,sans-serif}
.iv [hidden],.ivd [hidden]{display:none!important}
.iv img,.ivd img{max-width:100%;height:auto;display:block}
.iv button,.iv input,.iv textarea,.ivd button,.ivd input{font:inherit}
.iv input,.iv textarea,.ivd input{color:inherit}
.iv a{color:inherit}
.iv-i{width:1.15em;height:1.15em;flex:none}
.iv-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(120% 80% at 50% -10%,color-mix(in srgb,var(--gold) 14%,transparent) 0%,transparent 60%),
  radial-gradient(90% 60% at 50% 110%,color-mix(in srgb,var(--gold) 10%,transparent) 0%,transparent 55%),
  linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%)}
.iv--zellige .iv-bg::after{content:"";position:absolute;inset:0;opacity:.16;background-image:
  repeating-linear-gradient(45deg,transparent 0 22px,var(--gold) 22px 23px),
  repeating-linear-gradient(-45deg,transparent 0 22px,var(--gold) 22px 23px)}
.iv--nuit .iv-bg::after{content:"";position:absolute;inset:0;opacity:.5;background-image:
  radial-gradient(1.4px 1.4px at 12% 18%,var(--gold-2),transparent),radial-gradient(1.2px 1.2px at 78% 12%,var(--gold-2),transparent),
  radial-gradient(1.1px 1.1px at 32% 72%,var(--gold-2),transparent),radial-gradient(1.5px 1.5px at 88% 62%,var(--gold-2),transparent),
  radial-gradient(1px 1px at 56% 34%,var(--gold-2),transparent),radial-gradient(1.2px 1.2px at 22% 92%,var(--gold-2),transparent);
  animation:ivTwinkle 6s ease-in-out infinite alternate}
@keyframes ivTwinkle{from{opacity:.28}to{opacity:.62}}

/* ---------- 4. Enveloppe ---------- */
.iv-env{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%)}
.iv-env[hidden]{display:none}
.iv-env__paper{position:relative;width:min(30rem,86vw);aspect-ratio:1.5/1;filter:drop-shadow(0 34px 60px rgba(43,21,24,.34));transform:translateY(0) scale(1);transition:transform 1s var(--ease),opacity .6s ease}
.iv-env__inner,.iv-env__front,.iv-env__flap{position:absolute;inset:0}
.iv-env__inner{background:var(--card);border:1px solid var(--line)}
.iv-env__inner::after{content:"";position:absolute;inset:9px;border:1px solid var(--line);opacity:.6}
.iv-env__front{background:linear-gradient(145deg,color-mix(in srgb,var(--card) 92%,var(--gold)) 0%,var(--card) 55%,color-mix(in srgb,var(--card) 94%,var(--gold)) 100%);
  border:1px solid var(--line);clip-path:polygon(0 100%,0 22%,50% 62%,100% 22%,100% 100%);z-index:3}
.iv-env__flap{background:linear-gradient(180deg,color-mix(in srgb,var(--card) 88%,var(--gold)) 0%,var(--card) 100%);border:1px solid var(--line);
  clip-path:polygon(0 0,100% 0,50% 64%);transform-origin:top center;transform:rotateX(0deg);transition:transform .85s var(--ease-io);z-index:4;backface-visibility:hidden}
.iv-env__seal{position:absolute;left:50%;top:52%;translate:-50% -50%;z-index:6;width:5.4rem;height:5.4rem;border-radius:50%;border:0;cursor:pointer;
  background:radial-gradient(circle at 34% 30%,var(--gold-2),var(--gold) 62%,color-mix(in srgb,var(--gold) 65%,#000) 100%);
  color:var(--card);box-shadow:0 10px 24px -8px rgba(43,21,24,.5),inset 0 -2px 6px rgba(0,0,0,.28),inset 0 2px 5px rgba(255,255,255,.4);
  display:grid;place-items:center;transition:transform .5s var(--ease),box-shadow .5s var(--ease);animation:ivSealPulse 2.6s ease-in-out infinite}
.iv-env__seal:hover{transform:translate(-50%,-50%) scale(1.06)}
.iv-env__seal:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
@keyframes ivSealPulse{0%,100%{box-shadow:0 10px 24px -8px rgba(43,21,24,.5),inset 0 -2px 6px rgba(0,0,0,.28),inset 0 2px 5px rgba(255,255,255,.4),0 0 0 0 color-mix(in srgb,var(--gold) 45%,transparent)}
  60%{box-shadow:0 10px 24px -8px rgba(43,21,24,.5),inset 0 -2px 6px rgba(0,0,0,.28),inset 0 2px 5px rgba(255,255,255,.4),0 0 0 16px transparent}}
.iv-env__mono{font-family:var(--serif);font-size:1.5rem;letter-spacing:.04em;line-height:1;display:flex;align-items:center;gap:.12em}
.iv-env__mono i{font-style:normal;font-size:.62em;opacity:.85;margin:0 .04em}
.iv-env__hint{position:absolute;left:50%;bottom:-2.6rem;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;animation:ivHint 2.4s ease-in-out infinite}
[dir="rtl"] .iv-env__hint{letter-spacing:.06em;text-transform:none}
@keyframes ivHint{0%,100%{opacity:.55;transform:translate(-50%,0)}50%{opacity:1;transform:translate(-50%,4px)}}
.iv-env.is-open .iv-env__flap{transform:rotateX(-172deg)}
.iv-env.is-open .iv-env__seal{opacity:0;transform:translate(-50%,-50%) scale(.4);transition:opacity .35s ease,transform .45s var(--ease-io)}
.iv-env.is-open .iv-env__hint{opacity:0}
.iv-env.is-gone{opacity:0;pointer-events:none;transition:opacity .7s ease}
.iv-env.is-gone .iv-env__paper{transform:translateY(-8%) scale(1.35)}
/* carte qui glisse hors de l'enveloppe */
.iv-env__card{position:absolute;left:6%;right:6%;top:14%;bottom:8%;background:var(--card);border:1px solid var(--line);z-index:2;transform:translateY(0);transition:transform .9s var(--ease) .35s}
.iv-env.is-open .iv-env__card{transform:translateY(-52%)}

/* ---------- 5. Carte ---------- */
.iv-main{position:relative;z-index:2;padding:clamp(1rem,4vw,3.5rem) clamp(.75rem,4vw,2rem) clamp(3rem,8vw,6rem);display:flex;justify-content:center}
body.iv--frame{background:var(--bg)}
body.iv--frame .iv-main{padding:1.4rem 1rem 2.4rem}
body.iv--frame .iv-form,body.iv--frame .iv-btn,body.iv--frame .iv-chip,body.iv--frame .iv-stepper{pointer-events:none}
.iv-view .iv-main{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease) .1s,transform 1.1s var(--ease) .1s}
.iv-view.is-revealed .iv-main{opacity:1;transform:none}
.iv-card{position:relative;width:min(40rem,100%);background:var(--card);padding:clamp(2.5rem,7vw,4.25rem) var(--pad) clamp(2rem,5vw,3rem);box-shadow:var(--shadow);isolation:isolate}
.iv-card::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 12%,transparent) 0%,transparent 34%,transparent 66%,color-mix(in srgb,var(--gold) 10%,transparent) 100%);pointer-events:none}
.iv-frame{position:absolute;inset:.75rem;border:1px solid var(--line);pointer-events:none}
.iv-frame i{position:absolute;width:16px;height:16px;border:0 solid var(--gold)}
.iv-frame i:nth-child(1){top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.iv-frame i:nth-child(2){top:-1px;right:-1px;border-top-width:2px;border-right-width:2px}
.iv-frame i:nth-child(3){bottom:-1px;left:-1px;border-bottom-width:2px;border-left-width:2px}
.iv-frame i:nth-child(4){bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.iv-card>*:not(.iv-frame){position:relative;z-index:1}
.iv-frame{z-index:2}

.iv-head{text-align:center}
.iv-eyebrow{margin:0 0 1.4rem;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
[dir="rtl"] .iv-eyebrow{letter-spacing:.08em;text-transform:none;font-size:.82rem}
.iv-mono{width:5.6rem;height:6.6rem;margin:0 auto 1.6rem;display:flex;align-items:center;justify-content:center;gap:.06em;color:var(--gold);
  border:1px solid var(--line);border-radius:999px 999px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 8%,transparent),transparent 70%)}
.iv-mono span{font-family:var(--serif);font-size:2rem;line-height:1;letter-spacing:.02em}
.iv-mono i{font-style:normal;font-size:.85rem;opacity:.7;margin:0 .18em}
.iv-pre{margin:0 auto .9rem;max-width:30rem;font-size:.94rem;line-height:1.75;color:var(--ink-2)}
.iv-names{margin:0;font-family:var(--serif);font-weight:400;line-height:1.16;font-size:clamp(2.1rem,calc(1.2rem + 4.4vw),3.6rem);letter-spacing:.005em}
.iv-names span{display:inline-block}
.iv-names em{display:block;font-style:normal;font-size:.42em;color:var(--gold);margin:.28em 0;letter-spacing:.06em}
.iv-names--sm{font-size:clamp(1.6rem,calc(1.2rem + 1.6vw),2.2rem)}
.iv-post{margin:1rem auto 0;max-width:29rem;font-size:.94rem;line-height:1.75;color:var(--ink-2)}
.iv-orn{display:block;width:min(15rem,72%);height:auto;margin:1.9rem auto .25rem;color:var(--gold)}
.iv-orn path,.iv-orn circle{vector-effect:non-scaling-stroke}

.iv-when{margin-top:2.4rem;text-align:center;padding-top:2rem;border-top:1px solid var(--line-2)}
.iv-date{display:flex;align-items:center;justify-content:center;gap:clamp(.8rem,3vw,1.6rem)}
.iv-date__dow,.iv-date__my{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);max-width:7.5rem;line-height:1.4}
[dir="rtl"] .iv-date__dow,[dir="rtl"] .iv-date__my{letter-spacing:0;text-transform:none;font-size:.88rem}
.iv-date__day{font-family:var(--serif);font-size:clamp(3rem,calc(2rem + 3.4vw),4.4rem);line-height:.9;color:var(--gold);padding:0 clamp(.7rem,2.4vw,1.2rem);border-inline:1px solid var(--line)}
.iv-time{margin:.9rem 0 0;font-size:.92rem;letter-spacing:.06em;color:var(--ink-2)}
.iv-count{margin:1.8rem auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;max-width:24rem}
.iv-count div{padding:.7rem .2rem;border:1px solid var(--line-2);background:color-mix(in srgb,var(--gold) 5%,transparent)}
.iv-count b{display:block;font-family:var(--serif);font-weight:400;font-size:1.6rem;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ink)}
.iv-count small{display:block;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:.2rem}
[dir="rtl"] .iv-count small{letter-spacing:0;text-transform:none;font-size:.7rem}
.iv-count.is-msg{display:block;max-width:none;border:0;padding:0}
.iv-count.is-msg div{display:none}
.iv-count.is-msg::after{content:attr(data-msg);display:block;font-family:var(--serif);font-size:1.3rem;color:var(--gold);letter-spacing:.04em}

.iv-h2{margin:0 0 .7rem;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:500}
[dir="rtl"] .iv-h2{letter-spacing:.05em;text-transform:none;font-size:.84rem}
.iv-h2--big{font-size:.74rem}
.iv-where,.iv-prog,.iv-msg,.iv-rsvp{margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--line-2);text-align:center}
.iv-venue{margin:0;font-family:var(--serif);font-size:1.5rem;line-height:1.3}
.iv-addr{margin:.35rem 0 0;font-size:.9rem;color:var(--ink-2)}
.iv-where .iv-btn{margin-top:1.1rem}

.iv-prog__list{list-style:none;margin:1rem auto 0;padding:0;max-width:26rem;text-align:start}
.iv-prog__list li{display:flex;gap:1rem;align-items:baseline;padding:.62rem 0;border-bottom:1px dashed var(--line-2)}
.iv-prog__list li:last-child{border-bottom:0}
.iv-prog__list time{flex:none;min-width:3.4rem;font-family:var(--serif);font-size:1.05rem;color:var(--gold);font-variant-numeric:tabular-nums}
.iv-prog__list span{font-size:.94rem;color:var(--ink-2)}

.iv-msg__text{margin:0;font-family:var(--serif);font-size:1.16rem;line-height:1.8;color:var(--ink-2);font-style:italic}
[dir="rtl"] .iv-msg__text{font-style:normal}
.iv-dress{margin:1.1rem 0 0;font-size:.86rem;color:var(--ink-3)}
.iv-dress span{letter-spacing:.18em;text-transform:uppercase;font-size:.66rem;color:var(--gold);margin-inline-end:.5rem}
[dir="rtl"] .iv-dress span{letter-spacing:0;text-transform:none;font-size:.8rem}
.iv-center{text-align:center;margin:1.5rem 0 0}

/* ---------- 6. Formulaire ---------- */
.iv-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:1.05em 2em;border:1px solid currentColor;background:transparent;
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;line-height:1;text-decoration:none;cursor:pointer;
  position:relative;overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s var(--ease)}
[dir="rtl"] .iv-btn{letter-spacing:.02em;text-transform:none;font-size:.86rem;font-weight:500}
.iv-btn::before{content:"";position:absolute;inset:0;z-index:0;background:currentColor;transform:scaleX(0);transform-origin:inline-start;transition:transform .6s var(--ease)}
.iv-btn:hover::before{transform:scaleX(1)}
.iv-btn--ghost{color:var(--ink);border-color:var(--line)}
.iv-btn--ghost:hover{color:var(--card);border-color:var(--ink)}
.iv-btn--solid{color:var(--card);background:var(--burgundy);border-color:var(--burgundy);width:100%;padding:1.15em 2em}
.iv--nuit .iv-btn--solid{background:var(--gold);border-color:var(--gold);color:#3A0A0E}
.iv-btn--solid::before{background:var(--gold)}
.iv--nuit .iv-btn--solid::before{background:var(--card)}
.iv-btn--solid:hover{color:#2B1518}
.iv--nuit .iv-btn--solid:hover{color:var(--gold)}
.iv-btn[disabled]{opacity:.55;pointer-events:none}
.iv-btn>span,.iv-btn .iv-i{position:relative;z-index:1}

.iv-form{margin:1.4rem auto 0;max-width:26rem;text-align:start;display:grid;gap:1rem}
.iv-field{display:block}
.iv-field>span{display:block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.4rem}
[dir="rtl"] .iv-field>span{letter-spacing:0;text-transform:none;font-size:.84rem}
.iv-field>span small{letter-spacing:0;text-transform:none;font-size:.92em;opacity:.8}
.iv-field input,.iv-field textarea{width:100%;padding:.85rem .95rem;background:color-mix(in srgb,var(--gold) 4%,transparent);border:1px solid var(--line-2);border-radius:var(--r);
  color:var(--ink);transition:border-color .3s ease,background-color .3s ease}
.iv-field input:focus,.iv-field textarea:focus{outline:none;border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,transparent)}
.iv-field textarea{resize:vertical;min-height:3.4rem}
.iv-field.is-err input{border-color:#B00020}
.iv-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.iv-choice{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.iv-choice label{position:relative;cursor:pointer}
.iv-choice input{position:absolute;opacity:0;width:0;height:0}
.iv-choice span{display:flex;align-items:center;justify-content:center;gap:.45em;padding:.9rem .5rem;text-align:center;font-size:.8rem;line-height:1.3;
  border:1px solid var(--line-2);background:color-mix(in srgb,var(--gold) 3%,transparent);color:var(--ink-2);transition:all .35s var(--ease)}
.iv-choice input:checked+span{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--ink);font-weight:500}
.iv-choice input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.iv-choice .iv-i{width:1em;height:1em}
.iv-form.is-no .iv-field--count{display:none}
.iv-stepper{display:flex;align-items:stretch;border:1px solid var(--line-2);width:max-content;background:color-mix(in srgb,var(--gold) 4%,transparent)}
.iv-stepper button{width:2.9rem;border:0;background:transparent;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--gold);transition:background-color .3s ease}
.iv-stepper button:hover{background:color-mix(in srgb,var(--gold) 14%,transparent)}
.iv-stepper input{width:3.4rem;text-align:center;border:0;border-inline:1px solid var(--line-2);background:transparent;padding:.75rem 0;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.iv-stepper input::-webkit-outer-spin-button,.iv-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.iv-form__err{margin:0;font-size:.85rem;color:#B00020}
.iv-closed{margin:1rem auto 0;max-width:26rem;font-size:.92rem;color:var(--ink-2);padding:1rem;border:1px dashed var(--line)}
.iv-thanks{margin:1.4rem auto 0;max-width:26rem;padding:1.6rem 1.2rem;border:1px solid var(--line);background:color-mix(in srgb,var(--gold) 7%,transparent);text-align:center}
.iv-thanks__mark{width:3rem;height:3rem;margin:0 auto .8rem;border-radius:50%;display:grid;place-items:center;color:var(--card);background:var(--gold);animation:ivPop .6s var(--ease) both}
.iv-thanks__mark .iv-i{width:1.5rem;height:1.5rem;stroke-width:2}
@keyframes ivPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
.iv-thanks p{margin:0 0 .7rem;font-family:var(--serif);font-size:1.2rem;line-height:1.5}
.iv-link{background:none;border:0;padding:0;cursor:pointer;font-size:.8rem;letter-spacing:.1em;text-decoration:underline;text-underline-offset:4px;color:var(--ink-3)}
.iv-link:hover{color:var(--gold)}

/* ---------- 7. Outils & pied ---------- */
.iv-tools{margin-top:2.4rem;padding-top:1.8rem;border-top:1px solid var(--line-2);text-align:center}
.iv-tools__label{margin:0 0 .7rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
[dir="rtl"] .iv-tools__label{letter-spacing:0;text-transform:none;font-size:.8rem}
.iv-tools__row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:.9rem}
.iv-chip{display:inline-flex;align-items:center;gap:.45em;padding:.6rem 1rem;border:1px solid var(--line-2);background:transparent;color:var(--ink-2);
  font-size:.78rem;text-decoration:none;cursor:pointer;transition:border-color .35s ease,color .35s ease,background-color .35s ease}
.iv-chip:hover{border-color:var(--gold);color:var(--ink);background:color-mix(in srgb,var(--gold) 8%,transparent)}
.iv-chip--wa:hover{border-color:#25D366;color:#128C4B}
.iv-chip.is-done{border-color:var(--gold);color:var(--gold)}
.iv-foot{margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--line-2);text-align:center}
.iv-foot__brand{display:block;text-decoration:none;color:inherit}
.iv-foot__signed{display:block;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3)}
[dir="rtl"] .iv-foot__signed{letter-spacing:0;text-transform:none;font-size:.76rem}
.iv-foot__logo{display:block;width:5.4rem;margin:.6rem auto .35rem;color:var(--gold)}
.iv-foot__logo svg{width:100%;height:auto;display:block}
.iv-foot__name{display:block;font-family:var(--serif);font-size:1.02rem;letter-spacing:.16em}
.iv-foot__sub{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:.2rem}
[dir="rtl"] .iv-foot__sub{letter-spacing:0;text-transform:none;font-size:.78rem}
.iv-foot__create{display:inline-block;margin-top:1.1rem;font-size:.74rem;letter-spacing:.08em;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--line)}
.iv-foot__create:hover{color:var(--ink)}
.iv-gate__lock{width:3.2rem;height:3.2rem;margin:0 auto 1rem;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--gold)}
.iv-gate .iv-card{max-width:26rem}
.iv-form--gate{max-width:18rem;margin-inline:auto}

/* apparition en cascade des sections */
.iv-view.is-revealed .iv-card>*{animation:ivUp .9s var(--ease) both}
.iv-view.is-revealed .iv-card>.iv-frame{animation:none}
.iv-view.is-revealed .iv-head{animation-delay:.05s}
.iv-view.is-revealed .iv-when{animation-delay:.16s}
.iv-view.is-revealed .iv-where{animation-delay:.24s}
.iv-view.is-revealed .iv-prog{animation-delay:.3s}
.iv-view.is-revealed .iv-msg{animation-delay:.36s}
.iv-view.is-revealed .iv-rsvp{animation-delay:.42s}
.iv-view.is-revealed .iv-tools{animation-delay:.48s}
.iv-view.is-revealed .iv-foot{animation-delay:.54s}
@keyframes ivUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .iv *,.ivd *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .iv-view .iv-main{opacity:1;transform:none}
}

/* ---------- 8. Tableau de bord ---------- */
body.ivd-page{background:linear-gradient(180deg,#EEE4DA,#E7DACB);min-height:100vh}
.ivd{max-width:56rem;margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) clamp(1rem,4vw,2rem) 4rem}
.ivd-head{text-align:center;margin-bottom:2rem}
.ivd-brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--gold);margin-bottom:1.4rem}
.ivd-brand svg{width:2.6rem;height:auto}
.ivd-brand span{font-family:var(--serif);font-size:.9rem;letter-spacing:.16em;color:var(--ink-2)}
.ivd-eyebrow{margin:0 0 .5rem;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
[dir="rtl"] .ivd-eyebrow{letter-spacing:.04em;text-transform:none;font-size:.82rem}
.ivd-title{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,calc(1.3rem + 2.2vw),2.8rem);line-height:1.2}
.ivd-sub{margin:.4rem 0 0;color:var(--ink-2);font-size:.95rem}
.ivd-lead{margin:.3rem 0 0;color:var(--ink-3);font-size:.85rem}
.ivd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1.4rem}
.ivd-stat{background:#FBF7F1;border:1px solid var(--line-2);padding:1rem .6rem;text-align:center}
.ivd-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:1.9rem;line-height:1;font-variant-numeric:tabular-nums}
.ivd-stat span{display:block;margin-top:.3rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
[dir="rtl"] .ivd-stat span{letter-spacing:0;text-transform:none;font-size:.8rem}
.ivd-stat small{display:block;letter-spacing:0;text-transform:none;opacity:.8}
.ivd-stat--yes b{color:#1E7A45}
.ivd-stat--people b{color:var(--gold)}
.ivd-box{background:#FBF7F1;border:1px solid var(--line-2);padding:clamp(1.1rem,3vw,1.75rem);margin-bottom:1.2rem}
.ivd-h2{margin:0 0 .8rem;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:500}
[dir="rtl"] .ivd-h2{letter-spacing:.04em;text-transform:none;font-size:.86rem}
.ivd-h2 span{color:var(--ink-3);letter-spacing:0}
.ivd-link{display:flex;gap:.5rem}
.ivd-link input{flex:1;min-width:0;padding:.7rem .8rem;border:1px solid var(--line-2);background:#fff;border-radius:var(--r);font-size:.85rem;color:var(--ink-2)}
.ivd-btn{display:inline-flex;align-items:center;gap:.45em;padding:.72rem 1.05rem;border:1px solid var(--line-2);background:#fff;color:var(--ink);
  font-size:.78rem;text-decoration:none;cursor:pointer;white-space:nowrap;transition:all .3s ease}
.ivd-btn:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 8%,#fff)}
.ivd-btn--sm{padding:.5rem .8rem;font-size:.72rem}
.ivd-btn--wa{background:#25D366;border-color:#25D366;color:#08331B;font-weight:500}
.ivd-btn--wa:hover{background:#1EB558;border-color:#1EB558}
.ivd-btn--gold{background:var(--gold);border-color:var(--gold);color:#FBF7F1;font-weight:500}
.ivd-btn--gold:hover{background:var(--burgundy);border-color:var(--burgundy);color:#fff}
.ivd-btn.is-closed{border-color:#B00020;color:#B00020}
.ivd-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.ivd-qr{margin-top:1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.ivd-qr img{border:1px solid var(--line-2);background:#fff;padding:.4rem}
.ivd-note{margin:1rem 0 0;font-size:.78rem;color:var(--ink-3);display:flex;align-items:flex-start;gap:.4rem}
.ivd-note .iv-i{margin-top:.15rem}
.ivd-listhead{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between}
.ivd-listtools{display:flex;gap:.4rem;flex-wrap:wrap}
.ivd-state{margin:.2rem 0 1rem;font-size:.75rem;color:var(--ink-3)}
.ivd-table{overflow-x:auto}
.ivd-table table{width:100%;border-collapse:collapse;font-size:.86rem}
.ivd-table th{text-align:start;font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding:.5rem .6rem;border-bottom:1px solid var(--line-2);white-space:nowrap}
[dir="rtl"] .ivd-table th{letter-spacing:0;text-transform:none;font-size:.78rem}
.ivd-table td{padding:.62rem .6rem;border-bottom:1px solid rgba(43,21,24,.06);vertical-align:top}
.ivd-table tr.is-no td{color:var(--ink-3)}
.ivd-table tr:last-child td{border-bottom:0}
.ivd-pill{display:inline-block;padding:.16rem .6rem;border-radius:999px;font-size:.72rem;background:rgba(30,122,69,.12);color:#1E7A45}
.is-no .ivd-pill{background:rgba(43,21,24,.08);color:var(--ink-3)}
.ivd-empty{margin:0;padding:1.6rem 0;text-align:center;color:var(--ink-3);font-size:.9rem}
.ivd-box--brand{text-align:center;background:linear-gradient(160deg,#FBF7F1,color-mix(in srgb,var(--gold) 12%,#FBF7F1));border-color:var(--line)}
.ivd-box--brand .ivd-btn{margin-top:.4rem}
.ivd-danger{text-align:center;margin:1.4rem 0}
.ivd-danger .ivd-link{display:inline-flex;align-items:center;gap:.4rem;background:none;border:0;color:var(--ink-3);font-size:.78rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.ivd-danger .ivd-link:hover{color:#B00020}
.ivd-foot{text-align:center;margin-top:2rem;font-size:.75rem}
.ivd-foot a{color:var(--ink-3);text-decoration:none}
.ivd-toast{position:fixed;left:50%;bottom:1.5rem;translate:-50% 0;background:var(--burgundy);color:#F5EDE2;padding:.8rem 1.4rem;font-size:.85rem;z-index:99;
  opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s var(--ease);pointer-events:none}
.ivd-toast.is-on{opacity:1;transform:none}
@media (max-width:620px){
  .ivd-stats{grid-template-columns:repeat(2,1fr)}
  .ivd-table th:nth-child(4),.ivd-table td:nth-child(4),.ivd-table th:nth-child(6),.ivd-table td:nth-child(6){display:none}
}

/* ---------- 9. Builder (page du site) ---------- */
.ivb{--gold:#B18B32;--ink:#2B1518;--line:rgba(177,139,50,.34);--line-2:rgba(43,21,24,.1);--card:#FBF7F1}
.ivb-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,25rem);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media (max-width:1000px){.ivb-wrap{grid-template-columns:1fr}}
.ivb-steps{list-style:none;margin:0 0 2rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;counter-reset:s}
.ivb-steps li{flex:1;min-width:5.5rem;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mm-ink-3,#8a7570);padding-top:.6rem;border-top:2px solid var(--line-2);transition:color .3s ease,border-color .3s ease}
.ivb-steps li.is-on{color:var(--gold);border-color:var(--gold)}
.ivb-steps li.is-done{border-color:var(--gold);opacity:.75}
html[lang="ar"] .ivb-steps li{letter-spacing:0;text-transform:none;font-size:.78rem}
.ivb-panel{display:none}
.ivb-panel.is-on{display:block;animation:ivUp .5s var(--ease) both}
.ivb-legend{margin:0 0 .35rem;font-family:var(--mm-serif,"Cormorant Garamond",serif);font-size:clamp(1.5rem,calc(1.2rem + 1.4vw),2.1rem);line-height:1.2}
.ivb-hint{margin:0 0 1.5rem;color:var(--mm-ink-2,rgba(43,21,24,.74));font-size:.95rem}
.ivb-grid{display:grid;gap:1rem}
.ivb-grid--2{grid-template-columns:1fr 1fr}
@media (max-width:560px){.ivb-grid--2{grid-template-columns:1fr}}
.ivb-f{display:block}
.ivb-f>span{display:block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mm-ink-3,#8a7570);margin-bottom:.4rem}
html[lang="ar"] .ivb-f>span{letter-spacing:0;text-transform:none;font-size:.84rem}
.ivb-f>span b{color:#B00020;font-weight:400}
.ivb-f input,.ivb-f textarea,.ivb-f select{width:100%;padding:.85rem .95rem;border:1px solid var(--line-2);background:#fff;border-radius:2px;color:var(--ink);font:inherit;font-size:1rem}
.ivb-f input:focus,.ivb-f textarea:focus,.ivb-f select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 14%,transparent)}
.ivb-f.is-err input,.ivb-f.is-err select,.ivb-f.is-err textarea{border-color:#B00020}
.ivb-f em{display:block;font-style:normal;font-size:.78rem;color:#B00020;margin-top:.3rem}
.ivb-f small{display:block;font-size:.78rem;color:var(--mm-ink-3,#8a7570);margin-top:.3rem}
.ivb-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.55rem}
.ivb-tile{position:relative;cursor:pointer}
.ivb-tile input{position:absolute;opacity:0;width:0;height:0}
.ivb-tile>span{display:flex;flex-direction:column;gap:.3rem;align-items:center;justify-content:center;text-align:center;padding:1rem .6rem;border:1px solid var(--line-2);background:#fff;
  font-size:.85rem;line-height:1.3;transition:all .3s ease;min-height:5.2rem}
.ivb-tile>span i{font-style:normal;font-size:1.4rem;line-height:1}
.ivb-tile input:checked+span{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,#fff);font-weight:500}
.ivb-tile input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.ivb-swatch>span{padding:.7rem .5rem;min-height:0}
.ivb-swatch i{width:100%;height:2.2rem;border:1px solid var(--line-2);display:block!important;font-size:0}
.ivb-swatch[data-t="or"] i{background:linear-gradient(135deg,#FBF7F1 0 55%,#B18B32)}
.ivb-swatch[data-t="nuit"] i{background:linear-gradient(135deg,#4D0E13 0 55%,#D2B478)}
.ivb-swatch[data-t="zellige"] i{background:linear-gradient(135deg,#FCF8F2 0 55%,#96742A)}
.ivb-swatch[data-t="blanc"] i{background:linear-gradient(135deg,#FFFFFF 0 55%,#C8A49F)}
.ivb-prog{display:grid;gap:.5rem}
.ivb-prog__row{display:grid;grid-template-columns:5.5rem 1fr 2.4rem;gap:.5rem;align-items:center}
.ivb-prog__row input{padding:.7rem .8rem}
.ivb-prog__del{border:1px solid var(--line-2);background:#fff;cursor:pointer;height:100%;color:var(--mm-ink-3,#8a7570);border-radius:2px}
.ivb-prog__del:hover{border-color:#B00020;color:#B00020}
.ivb-add{margin-top:.2rem;background:none;border:1px dashed var(--line);padding:.7rem 1rem;cursor:pointer;font-size:.8rem;color:var(--gold);border-radius:2px}
.ivb-add:hover{background:color-mix(in srgb,var(--gold) 8%,transparent)}
.ivb-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;line-height:1.5;cursor:pointer}
.ivb-check input{margin-top:.25rem;width:1.05rem;height:1.05rem;accent-color:#B18B32;flex:none}
.ivb-nav{display:flex;gap:.6rem;justify-content:space-between;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line-2)}
.ivb-nav__spacer{flex:1}
.ivb-err{margin:1rem 0 0;padding:.8rem 1rem;border:1px solid #B00020;color:#B00020;font-size:.88rem;background:rgba(176,0,32,.05)}
/* apercu telephone */
.ivb-preview{position:sticky;top:calc(var(--mm-header-h,5.75rem) + 1.5rem)}
.ivb-preview__label{margin:0 0 .7rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mm-ink-3,#8a7570);text-align:center}
html[lang="ar"] .ivb-preview__label{letter-spacing:0;text-transform:none;font-size:.8rem}
.ivb-phone{position:relative;margin:0 auto;width:min(20rem,100%);aspect-ratio:9/18.6;border-radius:2.4rem;background:#241012;padding:.55rem;
  box-shadow:0 40px 80px -40px rgba(43,21,24,.6),0 0 0 1px rgba(43,21,24,.2)}
.ivb-phone::before{content:"";position:absolute;top:.95rem;left:50%;translate:-50% 0;width:4.2rem;height:.35rem;border-radius:99px;background:rgba(255,255,255,.24);z-index:3}
.ivb-phone__screen{position:relative;height:100%;border-radius:2rem;overflow:hidden;background:#EEE4DA}
.ivb-phone__screen iframe{width:100%;height:100%;border:0;display:block;background:#EEE4DA}
.ivb-phone__load{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,#EEE4DA 70%,transparent);opacity:0;transition:opacity .25s ease;pointer-events:none;z-index:4}
.ivb-phone.is-load .ivb-phone__load{opacity:1}
.ivb-phone__load i{width:1.6rem;height:1.6rem;border:2px solid rgba(43,21,24,.2);border-top-color:#B18B32;border-radius:50%;animation:ivSpin .7s linear infinite}
@keyframes ivSpin{to{transform:rotate(1turn)}}
/* succes */
.ivb-done{text-align:center;max-width:34rem;margin:0 auto}
.ivb-done__mark{width:4.2rem;height:4.2rem;margin:0 auto 1.2rem;border-radius:50%;display:grid;place-items:center;background:#B18B32;color:#FBF7F1;animation:ivPop .7s var(--ease) both}
.ivb-done__mark svg{width:2rem;height:2rem}
.ivb-done__links{display:grid;gap:.6rem;margin:1.6rem 0}
.ivb-done__link{display:flex;gap:.5rem;align-items:center;padding:.75rem .9rem;border:1px solid var(--line-2);background:#fff;font-size:.85rem;text-align:start}
.ivb-done__link input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.85rem;color:var(--mm-ink-2,rgba(43,21,24,.74))}
.ivb-done__link button{flex:none;border:1px solid var(--line-2);background:#fff;padding:.4rem .7rem;font-size:.72rem;cursor:pointer;border-radius:2px}
.ivb-done__link button:hover{border-color:var(--gold);color:var(--gold)}
.ivb-done__actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
.ivb-done__note{font-size:.8rem;color:var(--mm-ink-3,#8a7570);margin-top:1.2rem}
.ivb-done .ivb-qr{margin:1.4rem auto 0;width:min(11rem,60%)}
.ivb-done .ivb-qr img{border:1px solid var(--line-2);background:#fff;padding:.5rem;width:100%}
