











  :root{
    --bg:#0C0A08; --oxblood:#1E0A0C; --ink:#EFE7D6; --dim:rgba(239,231,214,.62); --mut:#A99C86; --faint:#7A6C55;
    --gold:#B4925B; --goldlt:#D4B681; --line:rgba(239,231,214,.16); --line-g:rgba(180,146,91,.42);
    --cm:"Fraunces",Georgia,serif; --nw:"Fraunces",Georgia,serif; --sc:"Fraunces",Georgia,serif; --ar:"Hanken Grotesk",system-ui,sans-serif;
    --edge:clamp(1.4rem,5vw,5.5rem);
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ar);font-optical-sizing:auto;font-size:clamp(1.05rem,.9rem + .5vw,1.22rem);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:clip}
  a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
  ::selection{background:var(--gold);color:var(--bg)}
  .grain{position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
  .label{font-family:var(--ar);text-transform:uppercase;letter-spacing:.28em;font-size:.62rem;font-weight:500;color:var(--gold)}
  .prog{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--gold),var(--goldlt));z-index:220}

  /* nav */
  .nav{position:fixed;top:.85rem;left:clamp(1rem,4vw,3rem);right:clamp(1rem,4vw,3rem);z-index:200;display:flex;align-items:center;gap:1.5rem;padding:.72rem clamp(1.1rem,2.5vw,1.8rem);border-radius:0;background:rgba(18,13,10,.42);-webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%);border:1px solid rgba(243,236,223,.12);box-shadow:0 14px 46px -16px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.07);transition:top .45s cubic-bezier(.4,0,.2,1),padding .45s,background .45s,box-shadow .45s,border-color .45s}
  .nav.scr{top:.6rem;padding:.55rem clamp(1.1rem,2.5vw,1.8rem);background:rgba(12,9,7,.62);border-color:rgba(243,236,223,.16);box-shadow:0 10px 36px -14px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.09)}
  .nav__logo{height:2.4rem;width:auto;display:block;transform-origin:left center;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
  .nav.scr .nav__logo{transform:scale(.82)}
  footer .n img.sig__logo{height:2.8rem;width:auto;display:inline-block;vertical-align:middle}
  .sign .n img.sig__logo{height:3.4rem;width:auto;display:inline-block}
  @media(max-width:600px){.nav__logo{height:2rem}footer .n img.sig__logo,.sign .n img.sig__logo{height:2.4rem}}
  .nav__b{font-family:var(--sc);font-size:1.7rem;color:var(--ink);line-height:1;flex:none}
  .nav__links{margin-left:auto;display:flex;align-items:center;gap:0}
  .nav__links a{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:var(--ink);opacity:.78;padding:.4rem 1.25rem;border-left:1px solid var(--line);display:flex;align-items:center;gap:.5rem;transition:opacity .3s,color .3s}
  .nav__links a::before{content:"";width:5px;height:5px;border:1px solid var(--gold);border-radius:999px;flex:none}
  .nav__links a:hover,.nav__links a.on{opacity:1;color:var(--goldlt)}
  .nav__links a.on::before{background:var(--gold)}
  .nav__cta{color:var(--goldlt)!important;opacity:1!important}
  .nav__burger{display:none;margin-left:auto;background:none;border:0;padding:.5rem;cursor:pointer;flex-direction:column;gap:5px}
  .nav__burger span{display:block;width:26px;height:1px;background:var(--ink);transition:.3s}
  body.menu-open .nav__burger span:nth-child(1){transform:translateY(3px) rotate(45deg)}
  body.menu-open .nav__burger span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}
  @media(max-width:960px){.nav__links{display:none}.nav__burger{display:flex}}
  /* mobile menu overlay */
  .menu{position:fixed;inset:0;z-index:195;background:rgba(9,6,5,.97);backdrop-filter:blur(6px);display:flex;flex-direction:column;justify-content:center;gap:1.4rem;padding:0 var(--edge);opacity:0;pointer-events:none;transition:opacity .45s}
  body.menu-open .menu{opacity:1;pointer-events:auto}
  .menu a{font-family:var(--cm);font-size:clamp(2rem,7vw,3rem);color:var(--ink);opacity:.85;transform:translateY(18px);transition:.5s}
  body.menu-open .menu a{transform:none;opacity:1}
  .menu a.mcta{font-style:italic;color:var(--goldlt)}

  /* persistent CTA */
  .pcta{position:fixed;left:0;right:0;bottom:0;z-index:190;display:flex;align-items:center;justify-content:center;gap:1.4rem;
    padding:.75rem clamp(1rem,4vw,3rem) calc(.75rem + env(safe-area-inset-bottom,0px));
    background:rgba(12,9,7,.55);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);
    border-top:1px solid rgba(243,236,223,.14);
    opacity:0;transform:translateY(100%);transition:opacity .45s,transform .45s cubic-bezier(.4,0,.2,1);pointer-events:none}
  .pcta.on{opacity:1;transform:none;pointer-events:auto}
  .pcta .mc{font-family:var(--ar);text-transform:uppercase;letter-spacing:.26em;font-size:.54rem;color:var(--dim);margin:0}
  .pcta a{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;font-weight:500;background:var(--goldlt);color:var(--bg);padding:.8rem 2rem;transition:.3s;white-space:nowrap}
  .pcta a:hover{background:var(--ink);color:var(--goldlt)}
  @media(max-width:600px){.pcta{gap:.8rem}.pcta .mc{display:none}.pcta a{flex:1;text-align:center;padding:.85rem 1rem}}

  /* scenes */
  .scene{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
  .scene--short{min-height:70svh}
  .scene__bg{position:absolute;inset:-8% 0;z-index:0;background-size:cover;background-position:center;will-change:transform}
  .b-mic .scene__bg{background-image:none}
  .b-salon .scene__bg{background-image:url("/media/inline-c802945560.jpg")}
  .b-chandelier .scene__bg{background-image:url("/media/inline-698093af31.jpg")}
  .b-table .scene__bg{background-image:url("/media/inline-70c774dd38.jpg")}
  .b-fire .scene__bg{background-image:url("/media/inline-2d187d919a.jpg")}
  .b-futur .scene__bg{background-image:url("/media/inline-fbdf79d35d.jpg")}
  .b-immo .scene__bg{background-image:url("/media/inline-f56b3df135.jpg")}
  .b-tgim .scene__bg{background-image:url("/media/inline-4b433e6d5c.jpg")}
  .b-dust{background:radial-gradient(120% 90% at 50% 40%,#141009,#080605)}
  .scene__scrim{position:absolute;inset:0;z-index:1;background:radial-gradient(130% 100% at 50% 45%,rgba(12,9,7,.28),rgba(6,4,3,.86))}
  .scene__in{position:relative;z-index:2;width:100%;padding:7rem calc(47vw + var(--edge)) 7rem var(--edge);max-width:none;margin:0;display:block}
  .hero__copy{text-align:left}
  .hero__copy .hero__wm,.hero__copy .hero__sig,.hero__copy .kx{text-align:left}
  .hero__copy .hero__wm{padding-left:0}
  .hero__photo{position:absolute;top:0;right:0;bottom:0;width:48vw;z-index:1;overflow:hidden}
  .hero__photo img{width:100%;height:100%;object-fit:cover;object-position:54% 24%;display:block}
  .hero__photo::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(12,10,8,.55) 13%,transparent 36%)}
  @media(max-width:900px){.scene__in{padding:5.5rem var(--edge) 3rem;display:flex;flex-direction:column;gap:2rem}.hero__photo{position:relative;width:100%;height:48vh;order:-1}.hero__photo img{object-position:center 22%}.hero__photo::before{background:linear-gradient(0deg,var(--bg),transparent 42%)}}
  .b-mic .hero__copy,.b-mic .hero__copy .kx,.b-mic .hero__copy .hero__sig{text-align:left}
  .b-mic .hero__copy .hero__wm{display:none}
  @media(max-width:900px){.scene__in{grid-template-columns:1fr;gap:2.4rem}.hero__copy,.hero__copy .hero__wm,.hero__copy .hero__sig,.hero__copy .kx{text-align:center}.hero__photo{max-width:24rem;margin:0 auto;order:-1}}

  /* kinetic serif */
  .kx{display:block;font-family:var(--cm);font-weight:500;line-height:1.04;letter-spacing:.004em;margin:0;will-change:transform,opacity}
  .kx em{font-style:italic;color:var(--goldlt)}
  .statement .kx{font-size:clamp(2.6rem,1.2rem + 5.4vw,6.4rem);text-align:center}
  .statement .src{margin-top:1.8rem;text-align:center;font-family:var(--ar);text-transform:uppercase;letter-spacing:.26em;font-size:.58rem;color:var(--dim)}
  .orn{display:flex;justify-content:center;margin-bottom:1.6rem}
  .orn svg{width:30px;height:16px;stroke:var(--gold);fill:none;stroke-width:1}

  /* hero */
  .hero__top{position:absolute;top:0;left:0;right:0;z-index:2;padding:6.5rem var(--edge) 0}
  .hero__rule{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:.8rem;font-family:var(--ar);text-transform:uppercase;letter-spacing:.22em;font-size:.6rem;color:var(--dim)}
  .hero__wm{text-align:center;margin-bottom:1.4rem;font-family:var(--ar);text-transform:uppercase;letter-spacing:.5em;font-size:.8rem;color:var(--goldlt);padding-left:.5em}
  .hero .kx{font-size:clamp(2.6rem,1.2rem + 5.6vw,6.4rem);text-align:center}
  .hero__name{text-align:center;font-family:var(--cm);font-weight:400;font-size:clamp(3rem,1.4rem + 7vw,7.4rem);line-height:.94;letter-spacing:.02em;margin:0}
  .hero__sig{text-align:center;margin-top:1.6rem;font-family:var(--nw);font-style:italic;font-size:clamp(1.2rem,.9rem + 1.2vw,1.7rem);color:var(--goldlt)}
  .hero__cue{position:absolute;bottom:1.7rem;left:0;right:0;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:cueIn 1.2s ease 1.1s both}.hero__cue .mouse{width:23px;height:37px;border:1.4px solid var(--gold);border-radius:13px;position:relative;opacity:.9;box-shadow:0 0 0 4px rgba(198,161,91,.05),0 6px 18px -6px rgba(198,161,91,.25);animation:cueBob 2.6s ease-in-out infinite}.hero__cue .mouse::after{content:"";position:absolute;left:50%;top:6.5px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--goldlt);animation:cueWheel 2s cubic-bezier(.45,0,.2,1) infinite}.hero__cue .lbl{font-family:var(--ar);text-transform:uppercase;letter-spacing:.34em;font-size:.54rem;color:var(--dim)}@keyframes cueWheel{0%{opacity:0;transform:translateY(0)}22%{opacity:1}62%{opacity:1;transform:translateY(12px)}100%{opacity:0;transform:translateY(12px)}}@keyframes cueBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes cueIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.hero__cue .mouse,.hero__cue .mouse::after,.hero__cue{animation:none}}

  /* page hero (interior) */
  .phero{position:relative;min-height:74svh;display:flex;align-items:flex-end;overflow:hidden}
  .phero__bg{position:absolute;inset:-6% 0;z-index:0;background-size:cover;background-position:center;will-change:transform}
  .phero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(9,6,5,.7),rgba(9,6,5,.25) 40%,rgba(9,6,5,.9))}
  .phero__in{position:relative;z-index:2;padding:0 var(--edge) clamp(3rem,7vh,6rem);max-width:74rem;margin-inline:auto;width:100%}
  .phero h1{font-family:var(--cm);font-weight:500;font-size:clamp(2.6rem,1.2rem + 5vw,5.6rem);line-height:1;margin:1rem 0 0}
  .phero h1 em{font-style:italic;color:var(--goldlt)}
  .phero p{color:var(--dim);max-width:34rem;margin-top:1.2rem}

  /* reading */
  .read{position:relative;padding:clamp(6rem,13vw,11rem) var(--edge);overflow:hidden}
  .read::before{content:"";position:absolute;inset:0;z-index:0;background:url("/media/inline-c802945560.jpg") center/cover fixed;opacity:.2}
  .read::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,var(--bg),rgba(8,5,4,.68) 22% 78%,var(--bg))}
  @media(max-width:820px){.read::before{background-attachment:scroll;opacity:.12}}
  .wrap{position:relative;z-index:1;max-width:64rem;margin-inline:auto}
  .measure{max-width:34rem}
  .rhead{display:flex;align-items:baseline;gap:1.1rem;margin-bottom:2.4rem}
  .rn{font-family:var(--nw);font-style:italic;color:var(--gold);font-size:1.1rem}
  h2{font-family:var(--cm);font-weight:500;font-size:clamp(2rem,1.2rem + 2.8vw,3.6rem);line-height:1.05;margin:0 0 1.6rem;max-width:20ch}
  h2 em{font-style:italic;color:var(--goldlt)}
  .subhead{font-family:var(--nw);font-weight:500;font-style:italic;font-size:clamp(1.6rem,1rem + 1.8vw,2.4rem);color:var(--goldlt);margin:3.4rem 0 1.2rem}
  p{margin:0 0 1.3em} .mut{color:var(--mut)}
  .up{opacity:0;transform:translateY(28px)}
  .lead::first-letter{font-family:var(--nw);font-style:italic;float:left;font-size:5rem;line-height:.7;padding:.4rem .5rem 0 0;color:var(--goldlt)}
  .sign{margin-top:2.6rem}.sign .n{font-family:var(--sc);font-size:3rem;color:var(--goldlt);line-height:1}
  .sign .r{font-family:var(--ar);text-transform:uppercase;letter-spacing:.26em;font-size:.56rem;color:var(--mut);margin-top:.5rem}
  .big-line{font-family:var(--cm);font-size:clamp(1.7rem,1rem + 1.8vw,2.4rem);line-height:1.18;color:var(--ink);margin:1.4rem 0}
  .big-line em{font-style:italic;color:var(--goldlt)}

  /* stats row */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:3rem 0 0;border-top:1px solid var(--line);padding-top:2.2rem}
  @media(max-width:720px){.stats{grid-template-columns:1fr 1fr}}
  .stat .n{font-family:var(--cm);font-size:2.4rem;color:var(--goldlt)}
  .stat .l{font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.54rem;color:var(--mut);margin-top:.3rem;line-height:1.9}
  .stats--2{grid-template-columns:repeat(2,1fr)}
  .stats--3{grid-template-columns:repeat(3,1fr)}
  .stats--2{grid-template-columns:repeat(2,1fr)}
  @media(max-width:720px){.stats--2{grid-template-columns:1fr}}
  @media(max-width:720px){.stats--3{grid-template-columns:1fr}}
  .stat .l .hl{color:var(--goldlt)}

  /* duality split */
  .duality{display:grid;grid-template-columns:1fr 1fr;min-height:100svh}
  @media(max-width:820px){.duality{grid-template-columns:1fr}}
  .dcol{position:relative;overflow:hidden;display:flex;align-items:center;min-height:60svh;padding:clamp(3rem,6vw,6rem) var(--edge)}
  .dcol__bg{position:absolute;inset:-6% 0;z-index:0;background-size:cover;background-position:center;will-change:transform}
  .dcol--old .dcol__bg{background-image:url("/media/inline-2d187d919a.jpg")}
  .dcol--new .dcol__bg{background-image:url("/media/inline-fbdf79d35d.jpg")}
  .dcol__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(9,6,5,.55),rgba(9,6,5,.85))}
  .dcol__in{position:relative;z-index:2;max-width:32rem}
  .dcol h3{font-family:var(--cm);font-weight:500;font-size:clamp(1.9rem,1.1rem + 2.4vw,3rem);line-height:1.06;margin:1rem 0 1.2rem}
  .dcol h3 em{font-style:italic;color:var(--goldlt)}
  .dcol p{color:var(--dim)}

  /* holding grid / cards */
  .hgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(1.2rem,2.5vw,2rem);margin-top:3.2rem}
  @media(max-width:900px){.hgrid{grid-template-columns:1fr}}
  .hcard{position:relative;overflow:hidden;border:1px solid var(--line);min-height:24rem;display:flex;flex-direction:column;justify-content:flex-end}
  .hcard__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;opacity:.5;transition:transform .8s,opacity .5s}
  .hcard:hover .hcard__bg{transform:scale(1.06);opacity:.62}
  .hcard--tgim .hcard__bg{background-image:url("/media/inline-4b433e6d5c.jpg")}
  .hcard--immo .hcard__bg{background-image:url("/media/inline-f56b3df135.jpg")}
  .hcard--legacy .hcard__bg{background-image:url("/media/inline-fbdf79d35d.jpg")}
  .hcard::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 30%,rgba(8,5,4,.92))}
  .hcard__in{position:relative;z-index:2;padding:2rem}
  .hcard .k{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.54rem;color:var(--gold)}
  .hcard h3{font-family:var(--cm);font-weight:500;font-size:1.7rem;margin:.5rem 0 .5rem}
  .hcard p{color:var(--dim);font-size:.96rem;margin:0}

  /* holding detail rows */
  .venture{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;margin-top:4rem}
  .venture--flip .v__txt{order:2}
  @media(max-width:900px){.venture{grid-template-columns:1fr}.venture--flip .v__txt{order:0}}
  .v__img{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line)}
  .v__img img{width:100%;height:100%;object-fit:cover}
  .v__txt .k{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.58rem;color:var(--gold)}
  .v__txt h3{font-family:var(--cm);font-weight:500;font-size:clamp(1.9rem,1.1rem + 2vw,2.8rem);margin:.5rem 0 1rem}
  .v__txt h3 em{font-style:italic;color:var(--goldlt)}
  .v__txt p{color:var(--mut)}
  .v__stats{display:flex;gap:2rem;flex-wrap:wrap;margin-top:1.2rem}
  .v__stats .n{font-family:var(--cm);font-size:1.7rem;color:var(--goldlt)}
  .v__stats .l{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.5rem;color:var(--mut)}

  /* qui tient / duo */
  .who{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;margin-top:3.4rem}
  .who--flip .who__t{order:2}
  @media(max-width:900px){.who{grid-template-columns:1fr}.who--flip .who__t{order:0}}
  .portrait{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line)}
  .portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}
  .portrait .cap{position:absolute;left:1rem;bottom:.9rem;font-family:var(--ar);text-transform:uppercase;letter-spacing:.22em;font-size:.5rem;color:var(--faint)}
  .couple{position:relative;aspect-ratio:16/8;overflow:hidden;border:1px solid var(--line);margin-top:3.4rem}
  .couple img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%}
  .couple::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,7,5,.5),transparent 50%)}
  .couple .cap{position:absolute;left:1rem;bottom:.8rem;z-index:1;font-family:var(--ar);text-transform:uppercase;letter-spacing:.22em;font-size:.5rem;color:var(--faint)}
  .who__t .label{display:block;margin-bottom:1rem}.who__t h3{font-family:var(--cm);font-weight:500;font-size:clamp(1.7rem,1rem + 2vw,2.5rem);margin:0 0 1.2rem}.who__t p{color:var(--mut);font-size:1.02rem}

  /* offres */
  .two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);margin-top:3rem}
  @media(max-width:820px){.two{grid-template-columns:1fr}}
  .two h3{font-family:var(--nw);font-weight:500;font-style:italic;color:var(--goldlt);font-size:clamp(1.8rem,1rem + 2vw,2.6rem);margin-bottom:1rem}
  .two p{color:var(--dim)}
  .panels{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.4rem);margin-top:3rem}
  @media(max-width:820px){.panels{grid-template-columns:1fr}}
  .panel{border:1px solid var(--line);padding:clamp(2rem,4vw,3rem);display:flex;flex-direction:column;background:rgba(20,10,8,.3)}
  .panel--salon{background:linear-gradient(180deg,#26090d,#160607)}
  .panel .label{display:block;margin-bottom:1rem}
  .panel h3{font-family:var(--cm);font-weight:500;font-size:clamp(1.6rem,1rem + 1.5vw,2.2rem);margin:0}
  .panel__price{font-family:var(--cm);font-weight:500;font-size:2.6rem;color:var(--goldlt);margin:1.2rem 0 .3rem;font-variant-numeric:tabular-nums}
  .panel__price small{font-size:.76rem;font-style:italic;color:var(--mut);font-family:var(--nw)}
  .panel__terms{color:var(--faint);font-size:.9rem}
  .panel .find{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.56rem;color:var(--gold);margin:1.3rem 0 .4rem}
  .panel ul{list-style:none;padding:0;margin:.3rem 0 1.3rem;display:flex;flex-direction:column;gap:.8rem}
  .panel li{position:relative;padding-left:1.3rem;font-size:1rem;color:var(--ink);opacity:.9}
  .panel li::before{content:"";position:absolute;left:0;top:.7em;width:.55rem;height:1px;background:var(--gold)}
  .panel .opt{color:var(--mut);font-size:.92rem;font-style:italic}
  .panel .note{color:var(--dim);font-size:.98rem}
  .btn{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;font-weight:500;display:inline-block;border:1px solid var(--line-g);border-radius:999px;padding:1rem 2.1rem;transition:.3s}
  .btn:hover{background:var(--goldlt);color:var(--bg);border-color:var(--goldlt)}
  .btn-t{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.62rem;border-bottom:1px solid var(--gold);padding-bottom:3px;display:inline-block}

  /* marquee */
  .marquee{position:relative;overflow:hidden;padding:2.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg)}
  .marquee__t{display:inline-block;white-space:nowrap;font-family:var(--nw);font-style:italic;font-size:clamp(2rem,1rem + 3vw,4rem);color:var(--goldlt);will-change:transform}
  .marquee__t span{padding:0 1.4rem;opacity:.9}
  .marquee__t span::after{content:"·";padding-left:2.8rem;color:var(--gold)}

  /* faq */
  .faq{max-width:48rem;margin:2.6rem auto 0}
  details{border-top:1px solid var(--line)} details:last-child{border-bottom:1px solid var(--line)}
  summary{list-style:none;cursor:pointer;padding:1.4rem 2.5rem 1.4rem 0;font-family:var(--cm);font-weight:500;font-size:1.5rem;position:relative}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";position:absolute;right:.2rem;top:1.3rem;color:var(--gold);font-family:var(--nw);font-size:1.5rem;transition:.35s}
  details[open] summary::after{transform:rotate(45deg)}
  details p{color:var(--mut);padding:0 2.5rem 1.5rem 0;margin:0}

  /* form */
  .form{max-width:40rem;margin:2.6rem auto 0}
  .form label{display:block;font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.56rem;color:var(--gold);margin:1.6rem 0 .6rem}
  .form input,.form textarea{width:100%;background:rgba(243,236,223,.04);border:1px solid var(--line);color:var(--ink);font-family:var(--nw);font-size:1.05rem;padding:.9rem 1rem;border-radius:0;transition:border-color .3s}
  .form input:focus,.form textarea:focus{outline:none;border-color:var(--gold)}
  .form textarea{min-height:6rem;resize:vertical}
  .form button[type=submit]{margin-top:2rem;font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;background:var(--ink);color:var(--bg);border:0;padding:1.1rem 2.6rem;cursor:pointer;transition:.3s}
  .form button[type=submit]:hover{background:var(--goldlt)}
  .form .fnote{color:var(--faint);font-size:.85rem;margin-top:1.2rem}
  .form .frow{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
  @media(max-width:640px){.form .frow{grid-template-columns:1fr}}
  .form .opt-hint{text-transform:none;letter-spacing:0;color:var(--faint)}

  footer{padding:4rem var(--edge) 7rem;text-align:center;border-top:1px solid var(--line)}
  footer .n{font-family:var(--sc);font-size:2.2rem;color:var(--goldlt)}
  footer .fl{display:flex;justify-content:center;gap:1.6rem;flex-wrap:wrap;margin:1.4rem 0 0}
  footer .fl a{font-family:var(--ar);text-transform:uppercase;letter-spacing:.18em;font-size:.58rem;color:var(--mut)}
  footer .fl a:hover{color:var(--goldlt)}
  footer .m{font-family:var(--ar);text-transform:uppercase;letter-spacing:.26em;font-size:.54rem;color:var(--faint);margin-top:1.2rem}
  /* accents en italique réel (Marcellus n'a pas d'italique) → Spectral italic */
  .kx em,.hero .kx em,h2 em,.phero h1 em,.dcol h3 em,.v__txt h3 em,.big-line em,.who__t h3 em{font-family:var(--nw);font-style:italic}
  :focus-visible{outline:2px solid var(--goldlt);outline-offset:4px}
  @media(prefers-reduced-motion:reduce){.up{opacity:1;transform:none;filter:none}.kx{opacity:1!important;filter:none!important;transform:none!important}.read::before{background-attachment:scroll}}


/* ═══════════════ PLATEFORME (espace membre + back-office) ═══════════════ */
/* Layout app : barre latérale + contenu. THÈME CLAIR : blanc/crème, noir en
   touche (réf. maison de membres) — les variables sont redéfinies ici, le
   reste de la charte suit. La barre du site + footer sont masqués : le logo
   ne vit qu'une fois, dans la barre latérale. */
body.page-espace,body.page-admin{
  --bg:#F4EFE6; --ink:#1B1512; --dim:#5C5245; --mut:#6B5F50; --faint:#9A8A70;
  --gold:#9A7B45; --goldlt:#8A6D3F; --line:rgba(27,21,18,.14); --line-g:rgba(154,123,69,.45);
}
body.page-espace .nav,body.page-admin .nav,body.page-espace .menu,body.page-admin .menu,
body.page-espace footer,body.page-admin footer,body.page-espace .prog,body.page-admin .prog,
body.page-espace .mt-vig,body.page-admin .mt-vig{display:none!important}
body.page-espace .grain,body.page-admin .grain{display:none}
body.page-espace .read,body.page-admin .read{padding:clamp(2.5rem,6vh,5rem) var(--edge)!important;min-height:100svh!important}
/* coquille webapp : plein écran, la barre latérale est fixe, le contenu défile seul */
body.page-espace .app,body.page-admin .app{position:fixed;inset:0;z-index:150;border:0;border-radius:0;box-shadow:none;min-height:0;grid-template-columns:17.5rem 1fr}
body.page-espace .app__side,body.page-admin .app__side{overflow-y:auto;padding:2rem 1.4rem 1.6rem}
body.page-espace .app__main,body.page-admin .app__main{overflow-y:auto;padding:clamp(2rem,5vh,3.6rem) clamp(1.6rem,6vw,5.5rem) 4rem}
body.page-espace .app__main>*,body.page-admin .app__main>*{max-width:66rem}
@media(max-width:900px){
  body.page-espace .app,body.page-admin .app{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  body.page-espace .app__side,body.page-admin .app__side{overflow:visible;padding:1.1rem 1.2rem}
  body.page-espace .app__main,body.page-admin .app__main{padding:1.6rem 1.2rem 3rem}
}
body.page-espace .read::before,body.page-admin .read::before{display:none}
body.page-espace .read::after,body.page-admin .read::after{display:none}
body.page-espace ::selection,body.page-admin ::selection{background:#1B1512;color:#F2EBDE}
body.page-espace .app,body.page-admin .app{background:#FBF8F1;border-color:#E7DECB;box-shadow:0 30px 70px -45px rgba(27,21,18,.35)}
body.page-espace .app__side,body.page-admin .app__side{background:#F2EBDE;border-color:#E7DECB}
body.page-espace .app__me,body.page-admin .app__me{background:#fff;border-color:#E7DECB}
body.page-espace .app__nav button.on,body.page-admin .app__nav button.on{background:var(--ink);color:#F2EBDE}
body.page-espace .app__nav button:hover,body.page-admin .app__nav button:hover{background:rgba(27,21,18,.06);color:var(--ink)}
body.page-espace .app__nav button.on:hover,body.page-admin .app__nav button.on:hover{background:var(--ink);color:#F2EBDE}
body.page-espace .plat .pcard,body.page-admin .plat .pcard,
body.page-espace .plat .rowline,body.page-admin .plat .rowline{background:#fff;border-color:#E9E0CD;box-shadow:0 10px 30px -22px rgba(27,21,18,.25)}
body.page-espace .authcard,body.page-admin .authcard{background:#fff;border-color:#E7DECB;box-shadow:0 30px 70px -45px rgba(27,21,18,.3)}
body.page-espace .plat input,body.page-admin .plat input,
body.page-espace .plat textarea,body.page-admin .plat textarea,
body.page-espace .plat select,body.page-admin .plat select{background:#FCFAF5;border-color:#DCD2BC;color:var(--ink)}
body.page-espace .plat input:focus,body.page-admin .plat input:focus,
body.page-espace .plat textarea:focus,body.page-admin .plat textarea:focus{border-color:var(--ink)}
body.page-espace .plat option,body.page-admin .plat option{background:#fff;color:var(--ink)}
body.page-espace .chip.on,body.page-admin .chip.on,
body.page-espace .tabbar button.on,body.page-admin .tabbar button.on{background:var(--ink);border-color:var(--ink);color:#F2EBDE}
body.page-espace .abtn.gold,body.page-admin .abtn.gold{background:var(--ink);border-color:var(--ink);color:#F2EBDE}
body.page-espace .abtn.gold:hover,body.page-admin .abtn.gold:hover{background:var(--goldlt);border-color:var(--goldlt)}
body.page-espace .form button[type=submit],body.page-admin .form button[type=submit]{border-radius:999px}
body.page-espace .mono,body.page-admin .mono{background:#F6F0E3;border-color:#D9C9A8}
body.page-espace .notice,body.page-admin .notice{background:rgba(154,123,69,.08);border-color:rgba(154,123,69,.35)}
body.page-espace .locked__veil,body.page-admin .locked__veil{background:radial-gradient(80% 60% at 50% 45%,rgba(244,239,230,.35),rgba(244,239,230,.9))}
body.page-espace .locked__veil .lk,body.page-admin .locked__veil .lk{background:#fff}
body.page-espace .detail,body.page-admin .detail{border-color:#E5DCC9}
body.page-espace .app__foot,body.page-admin .app__foot{border-color:#E1D7C2}
.pcta-none{display:none}
body.page-espace .pcta,body.page-admin .pcta{display:none!important}
.app{display:grid;grid-template-columns:17rem 1fr;min-height:78vh;border:1px solid rgba(180,146,91,.25);border-radius:20px;overflow:hidden;background:#0F0B09;box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
@media(max-width:900px){.app{grid-template-columns:1fr;border-radius:14px}}
.app__side{background:#140F0B;border-right:1px solid var(--line);padding:1.9rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:1.5rem}
@media(max-width:900px){.app__side{border-right:0;border-bottom:1px solid var(--line);padding:1.3rem}}
.app__brand{display:flex;flex-direction:column;gap:.55rem;align-items:flex-start}
.app__brand img{height:2.3rem;width:auto}
.app__brand .t{font-family:var(--ar);text-transform:uppercase;letter-spacing:.28em;font-size:.54rem;color:var(--gold)}
.app__me{display:flex;gap:.85rem;align-items:center;background:rgba(180,146,91,.09);border:1px solid rgba(180,146,91,.3);border-radius:14px;padding:.85rem .95rem}
.app__me .n{font-family:var(--cm);font-size:1.02rem;color:var(--ink);line-height:1.2}
.app__me .s{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.5rem;color:var(--gold);margin-top:.25rem}
.app__me .mono{width:2.7rem;height:2.7rem;font-size:1rem}
.app__nav{display:flex;flex-direction:column;gap:.15rem;flex:1}
.app__sect{font-family:var(--ar);text-transform:uppercase;letter-spacing:.26em;font-size:.5rem;color:var(--faint);margin:1.1rem .4rem .45rem}
.app__nav .app__sect:first-child{margin-top:0}
.app__nav button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--mut);font-family:var(--ar);font-size:.82rem;letter-spacing:.05em;padding:.68rem .85rem;border-radius:10px;cursor:pointer;transition:.25s}
.app__nav button:hover{color:var(--goldlt);background:rgba(180,146,91,.07)}
.app__nav button.on{background:rgba(180,146,91,.14);color:var(--goldlt)}
.app__foot{display:flex;flex-direction:column;gap:.3rem;border-top:1px solid var(--line);padding-top:1rem}
.app__foot button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--faint);font-family:var(--ar);font-size:.76rem;letter-spacing:.05em;padding:.55rem .85rem;border-radius:10px;cursor:pointer;transition:.25s}
.app__foot button:hover{color:var(--goldlt)}
@media(max-width:900px){.app__nav{flex-direction:row;flex-wrap:wrap;gap:.4rem}.app__sect{display:none}.app__nav button{width:auto;border:1px solid var(--line);border-radius:999px;padding:.55rem 1rem;font-size:.68rem}.app__foot{flex-direction:row;border-top:0;padding-top:0}}
.app__main{padding:clamp(1.7rem,4vw,3.4rem);min-width:0}
.pane__eyebrow{font-family:var(--ar);text-transform:uppercase;letter-spacing:.28em;font-size:.58rem;color:var(--gold);margin-bottom:1rem}
.pane__title{font-family:var(--cm);font-weight:350;font-variation-settings:"opsz" 56,"wght" 350;font-size:clamp(2.1rem,1.4rem + 2.4vw,3.4rem);line-height:1.02;color:var(--ink);margin:0 0 1rem}
.pane__title em{font-style:italic;color:var(--goldlt);font-family:var(--nw)}
.pane__sub{color:var(--mut);max-width:34rem;margin:0 0 2.2rem;font-size:.98rem}
/* cartes plus contrastées */
.plat .pcard{background:#1A130E;border:1px solid rgba(180,146,91,.22);border-radius:16px;padding:1.7rem 1.7rem 1.5rem;transition:border-color .3s,transform .3s}
.plat .pcard:hover{border-color:rgba(180,146,91,.45)}
.plat .rowline{background:#1A130E;border:1px solid rgba(180,146,91,.16);border-radius:14px;padding:1.05rem 1.25rem;margin-bottom:.85rem}
.plat .rowline:last-child{border-bottom:1px solid rgba(180,146,91,.16)}
.plat .k-card{font-family:var(--nw);font-style:italic;color:var(--goldlt);font-size:1.02rem;margin:0 0 .4rem}
.authcard{background:#16100C;border:1px solid rgba(180,146,91,.28);border-radius:20px;padding:clamp(1.8rem,4vw,3rem);max-width:46rem;margin:2.4rem auto 0;box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
/* zones verrouillées (candidat) : contenu factice flouté + voile */
.locked{position:relative}
.locked .locked__blur{filter:blur(16px) saturate(.75);opacity:.5;pointer-events:none;user-select:none}
.locked .locked__veil{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;text-align:center;padding:2rem;background:radial-gradient(80% 60% at 50% 45%,rgba(12,9,7,.25),rgba(12,9,7,.72))}
.locked .locked__veil .lk{width:2.6rem;height:2.6rem;border-radius:999px;border:1px solid var(--line-g);display:flex;align-items:center;justify-content:center;color:var(--goldlt);font-size:1.05rem;background:rgba(12,9,7,.6)}
.locked .locked__veil p{max-width:26rem;color:var(--ink);font-size:.98rem;margin:0}
.locked .locked__veil .sub{color:var(--mut);font-size:.85rem}
.authcard .form{margin-top:.4rem}
.plat input,.plat textarea,.plat select{border-radius:10px}
.plat .form button[type=submit]{border-radius:999px}
.plat .form button.abtn{background:none;color:var(--mut);border:1px solid var(--line);padding:.55rem 1.1rem;font-size:.55rem;letter-spacing:.14em;border-radius:999px}
.plat .form button.abtn:hover{color:var(--goldlt);border-color:var(--line-g);background:none}
.plat{max-width:64rem;margin-inline:auto;position:relative;z-index:1}
.plat-narrow{max-width:34rem;margin-inline:auto}
.plat .form{margin-top:1.6rem}
.plat h2{max-width:none}
.tabbar{display:flex;gap:.6rem;flex-wrap:wrap;margin:2.2rem 0 2.6rem}
.tabbar button{font-family:var(--ar);text-transform:uppercase;letter-spacing:.18em;font-size:.6rem;background:none;border:1px solid var(--line);color:var(--mut);padding:.7rem 1.4rem;border-radius:999px;cursor:pointer;transition:.3s}
.tabbar button:hover{color:var(--goldlt);border-color:var(--line-g)}
.tabbar button.on{color:var(--bg);background:var(--goldlt);border-color:var(--goldlt)}
.notice{border:1px solid var(--line-g);padding:1.1rem 1.4rem;font-size:.95rem;color:var(--dim);margin:1.6rem 0;background:rgba(180,146,91,.06)}
.notice strong{color:var(--goldlt);font-weight:500}
.badge{display:inline-block;font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.52rem;padding:.28rem .7rem;border:1px solid var(--line);color:var(--mut);border-radius:999px;white-space:nowrap}
.badge.b-actif{color:var(--goldlt);border-color:var(--line-g)}
.badge.b-candidat{color:var(--dim)}
.badge.b-signale{color:#d9a066;border-color:rgba(217,160,102,.4)}
.badge.b-banni,.badge.b-supprime{color:#a05a52;border-color:rgba(160,90,82,.4)}
.badge.b-ouvert{color:var(--goldlt);border-color:var(--line-g)}
.badge.b-complet{color:#d9a066;border-color:rgba(217,160,102,.4)}
.badge.b-passe{color:var(--faint)}
.badge.b-attente{color:var(--dim)}
.badge.b-accepte{color:var(--goldlt);border-color:var(--line-g)}
.badge.b-refuse{color:#a05a52;border-color:rgba(160,90,82,.4)}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 0}
.chip{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.56rem;border:1px solid var(--line);background:none;color:var(--mut);padding:.5rem .95rem;border-radius:999px;cursor:pointer;transition:.25s}
.chip:hover{border-color:var(--line-g);color:var(--goldlt)}
.chip.on{background:var(--goldlt);color:var(--bg);border-color:var(--goldlt)}
.pcard{border:1px solid var(--line);padding:1.5rem 1.6rem;background:rgba(20,12,8,.35);display:flex;flex-direction:column;gap:.65rem}
.pcard h3{font-family:var(--cm);font-weight:350;font-size:1.45rem;margin:0;color:var(--ink)}
.pcard .meta{font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.56rem;color:var(--gold)}
.pcard p{font-size:.94rem;color:var(--mut);margin:0;line-height:1.7}
.pcard .k{font-family:var(--ar);text-transform:uppercase;letter-spacing:.18em;font-size:.52rem;color:var(--gold);margin-top:.3rem}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2rem}
@media(max-width:820px){.pgrid{grid-template-columns:1fr}}
.mono{width:3.2rem;height:3.2rem;flex:none;border-radius:999px;border:1px solid var(--line-g);display:flex;align-items:center;justify-content:center;font-family:var(--cm);font-size:1.15rem;color:var(--goldlt);background:rgba(180,146,91,.08);overflow:hidden}
.mono img{width:100%;height:100%;object-fit:cover;border-radius:999px}
/* Table des convives (dîner accepté) */
.dtable{width:100%;max-width:290px;margin:1rem auto .2rem}
.dtable__ring{position:relative;width:100%;aspect-ratio:1/1}
.dtable__top{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44%;height:44%;border-radius:999px;border:1px solid var(--line-g);background:rgba(180,146,91,.06);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.1rem}
.dtable__c{font-family:var(--cm);font-size:1.35rem;color:var(--goldlt);line-height:1}
.dtable__l{font-family:var(--ar);font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}
.dseat{position:absolute;transform:translate(-50%,-50%);width:60px;display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center}
.dseat__a{width:2.6rem;height:2.6rem;border-radius:999px;border:1px solid var(--line-g);display:flex;align-items:center;justify-content:center;font-family:var(--cm);font-size:.9rem;color:var(--goldlt);background:rgba(180,146,91,.08);overflow:hidden}
.dseat__a img{width:100%;height:100%;object-fit:cover;border-radius:999px}
.dseat--empty .dseat__a{border-style:dashed;background:none;opacity:.45}
.dseat--moi .dseat__a{border-color:var(--goldlt);box-shadow:0 0 0 3px rgba(180,146,91,.2)}
.dseat__n{font-family:var(--ar);font-size:.55rem;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);max-width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dseat--moi .dseat__n{color:var(--goldlt)}
.dtable__cap{text-align:center;font-family:var(--ar);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin:.55rem 0 0}
.dcancel{font-family:var(--ar);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--mut);background:none;border:none;border-bottom:1px solid transparent;padding:.15rem 0;cursor:pointer;transition:.25s}
.dcancel:hover{color:#a2483c;border-bottom-color:rgba(162,72,60,.4)}
/* Fiche du repas (volet admin) : infos + table des convives + groupe */
.d-fiche{text-align:center;padding:.5rem 0 .2rem}
.d-fiche__meta{font-family:var(--ar);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:0}
.d-fiche__sep{height:1px;background:var(--line);margin:.7rem 0 .3rem}
.pcard .head{display:flex;align-items:center;gap:1rem}
.rowline{display:flex;align-items:center;gap:1rem;padding:1.05rem .4rem;border-top:1px solid var(--line);flex-wrap:wrap}
.rowline:last-child{border-bottom:1px solid var(--line)}
.rowline .grow{flex:1;min-width:14rem}
.rowline .nm{font-family:var(--cm);font-size:1.12rem;color:var(--ink)}
.rowline .sub{font-size:.82rem;color:var(--faint);margin-top:.15rem}
.abtn{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.55rem;border:1px solid var(--line);background:none;color:var(--mut);padding:.5rem 1rem;border-radius:999px;cursor:pointer;transition:.25s;white-space:nowrap}
.abtn:hover{color:var(--goldlt);border-color:var(--line-g)}
.abtn.gold{background:var(--goldlt);color:var(--bg);border-color:var(--goldlt)}
.abtn.gold:hover{background:var(--ink)}
.abtn.danger:hover{color:#c96a5e;border-color:rgba(201,106,94,.5)}
.abtn[disabled]{opacity:.4;cursor:default}
.detail{display:none;width:100%;padding:1rem 0 .4rem;border-top:1px dashed var(--line);margin-top:.9rem}
.detail.open{display:block}
.detail dl{display:grid;grid-template-columns:9rem 1fr;gap:.45rem 1rem;font-size:.9rem;color:var(--mut);margin:0}
.detail dt{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.52rem;color:var(--gold);padding-top:.25em}
.detail dd{margin:0;white-space:pre-wrap}
.plat .fmsg{font-size:.9rem;color:var(--goldlt);margin-top:1rem;min-height:1.2em}
.plat select{width:100%;background:rgba(243,236,223,.04);border:1px solid var(--line);color:var(--ink);font-family:var(--nw);font-size:1rem;padding:.85rem 1rem;border-radius:0}
.plat select:focus{outline:none;border-color:var(--gold)}
.plat option{background:#14100c;color:var(--ink)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;margin:1.6rem 0 .4rem}
@media(max-width:720px){.filters{grid-template-columns:1fr}}
.code-input{letter-spacing:.6em;text-align:center;font-size:1.5rem!important}
.hidden{display:none!important}
.danger-zone{margin-top:3.2rem;border-top:1px solid var(--line);padding-top:1.6rem}
.danger-zone p{font-size:.85rem;color:var(--faint)}
.count-pill{font-family:var(--ar);font-size:.6rem;letter-spacing:.1em;color:var(--goldlt)}

/* === mt-craft === */

::selection{background:rgba(180,146,91,.3);color:#fff}
h1,h2,h3,.kx{text-wrap:balance}
p,li{text-wrap:pretty}
.mt-vig{position:fixed;inset:0;z-index:60;pointer-events:none;background:radial-gradient(125% 95% at 50% 42%,transparent 58%,rgba(6,4,3,.55) 100%)}
html{scrollbar-width:thin;scrollbar-color:rgba(180,146,91,.42) transparent}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(212,182,129,.55),rgba(180,146,91,.28));border-radius:99px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(212,182,129,.7)}
::-webkit-scrollbar-track{background:transparent}
.mt-dot,.mt-ring{position:fixed;top:0;left:0;pointer-events:none;border-radius:50%;will-change:transform}
.mt-dot{z-index:100000;width:7px;height:7px;background:var(--goldlt);mix-blend-mode:screen;transition:width .28s,height .28s,opacity .3s}
.mt-ring{z-index:99999;width:34px;height:34px;border:1px solid rgba(180,146,91,.5);transition:width .4s cubic-bezier(.22,1,.36,1),height .4s cubic-bezier(.22,1,.36,1),border-color .4s,background .4s,opacity .3s}
body.mt-cursor *{cursor:none!important}
body.mt-cursor.cur-hi .mt-dot{width:0;height:0}
body.mt-cursor.cur-hi .mt-ring{width:58px;height:58px;border-color:var(--goldlt);background:rgba(180,146,91,.05)}
@media (prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.mt-dot,.mt-ring{display:none}body.mt-cursor *{cursor:auto!important}}
.nav__links a{transition:opacity .35s,color .35s,letter-spacing .35s}
.nav__links a:hover{letter-spacing:.17em}

/* === mt-type === */
.kx,h1,h2,h3,.phero h1,.dcol h3,.hcard h3,.v__txt h3,.who__t h3,.two h3,.panel h3{font-weight:350;font-variation-settings:"opsz" 56,"wght" 350;letter-spacing:-.008em}
/* ═══════════════ HABILLAGE / BRAND KIT (bespoke SVG) ═══════════════ */
.mt-em{color:var(--gold);display:block;overflow:visible}
.mt-em .d{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.7s cubic-bezier(.33,0,.1,1)}
.mt-em .ring2{opacity:.5}
.mt-em .tbl{opacity:.8}
.mt-em .wm{fill:var(--goldlt);stroke:none;font-family:var(--ar);font-size:7px;letter-spacing:.5px;text-transform:uppercase;opacity:0;transition:opacity 1s ease 1s}
.mt-em.in .d{stroke-dashoffset:0}
.mt-em.in .wm{opacity:.85}

/* divider de section */
.mt-div{display:flex;justify-content:center;align-items:center;color:var(--gold);padding:clamp(3.4rem,7vw,6rem) var(--edge)}
.mt-div svg{width:min(78%,430px);height:auto;overflow:visible}
.mt-div .ln{opacity:0;transition:opacity 1.1s ease .2s}
.mt-div .d{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s ease .15s}
.mt-div .dot{opacity:0;fill:var(--goldlt);transition:opacity .7s ease .6s}
.mt-div.in .ln{opacity:.85}
.mt-div.in .d{stroke-dashoffset:0}
.mt-div.in .dot{opacity:1}

/* cadres d'angle couture (cartes / panneaux) */
.mt-fr{position:relative}
.mt-fr::after{content:"";position:absolute;inset:11px;z-index:5;pointer-events:none;--c:15px;--w:1px;--k:var(--gold);opacity:.42;transition:opacity .5s ease,inset .5s ease;
 background:
  linear-gradient(var(--k),var(--k)) 0 0/var(--c) var(--w) no-repeat,
  linear-gradient(var(--k),var(--k)) 0 0/var(--w) var(--c) no-repeat,
  linear-gradient(var(--k),var(--k)) 100% 0/var(--c) var(--w) no-repeat,
  linear-gradient(var(--k),var(--k)) 100% 0/var(--w) var(--c) no-repeat,
  linear-gradient(var(--k),var(--k)) 0 100%/var(--c) var(--w) no-repeat,
  linear-gradient(var(--k),var(--k)) 0 100%/var(--w) var(--c) no-repeat,
  linear-gradient(var(--k),var(--k)) 100% 100%/var(--c) var(--w) no-repeat,
  linear-gradient(var(--k),var(--k)) 100% 100%/var(--w) var(--c) no-repeat}
.mt-fr:hover::after{opacity:.9;inset:8px}

/* règle dorée sur les têtes de chapitre */
.rhead{align-items:center}
.rhead::after{content:"";flex:1;height:1px;margin-left:1.2rem;background:linear-gradient(90deg,var(--gold),transparent);opacity:.38}

/* emblème watermark dans le hero */
.hero__em{position:absolute;z-index:1;pointer-events:none;width:clamp(200px,26vw,360px);right:clamp(1rem,4vw,3rem);bottom:clamp(1rem,5vh,3rem);opacity:.14;mix-blend-mode:screen}
.b-mic .hero__em{right:auto;left:calc(47vw - clamp(200px,26vw,360px) - 2rem)}
@media(max-width:900px){.hero__em{display:none}}

/* emblème sign-off footer */
.foot-em{display:flex;justify-content:center;margin-bottom:1.6rem}
.foot-em .mt-em{width:82px}

/* emblème dans les scènes-bannières */
.scene__em{display:flex;justify-content:center;margin-bottom:1.7rem}
.scene__em .mt-em{width:60px}
.scene__em .mt-em .wm,.scene__em .mt-em .tbl{display:none}
.statement.mt-fr::after{inset:clamp(.9rem,2.6vw,2rem);--c:22px;opacity:.32}
.statement.mt-fr:hover::after{inset:clamp(.7rem,2.2vw,1.6rem);opacity:.5}

/* ═══ bannières (statements) : compo centrée + reveal masque ═══ */
.scene.statement .scene__in{padding:clamp(4.5rem,10vh,8rem) var(--edge)!important;max-width:min(1120px,92%);margin-inline:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
.statement .kx{overflow:hidden;padding-bottom:.16em;text-align:center}
.statement .kx__i{display:block;will-change:transform}
.statement .scene__scrim{background:radial-gradient(115% 88% at 50% 44%,rgba(12,9,7,.30),rgba(5,3,2,.92))}
.statement .src{margin-top:2.2rem}

.pcta.mask{opacity:0!important;pointer-events:none;transform:translateY(100%)!important}

/* hero : titre plus petit → tient proprement, pas de césure "Montre-" */
.hero .kx{font-size:clamp(2.3rem,1rem + 3.75vw,4.4rem)!important;line-height:1.1;letter-spacing:0;hyphens:manual;-webkit-hyphens:manual}
.hero__sig{font-size:clamp(1rem,.8rem + .7vw,1.35rem)!important}

/* hero : portrait plein-cadre indépendant de la hauteur du titre (desktop) */
@media(min-width:901px){
  .scene.hero{align-items:stretch}
  .hero .scene__in{display:flex;flex-direction:column;justify-content:center}
}

/* portrait bio : large, fondu dans le fond (pas de cadre) */
.who--bio{grid-template-columns:1.22fr 1fr}
@media(max-width:900px){.who--bio{grid-template-columns:1fr}}
.portrait--fade{border:0;aspect-ratio:4/4.3;width:112%;margin-left:-9%;
  -webkit-mask-image:radial-gradient(96% 82% at 50% 46%,#000 26%,rgba(0,0,0,.72) 50%,rgba(0,0,0,.28) 68%,transparent 82%);
  mask-image:radial-gradient(96% 82% at 50% 46%,#000 26%,rgba(0,0,0,.72) 50%,rgba(0,0,0,.28) 68%,transparent 82%)}
.portrait--fade img{object-position:center 16%;filter:brightness(.88) saturate(.9)}
@media(max-width:900px){.portrait--fade{width:100%;margin-left:0}}

/* bio en points datés (section moi) */
.bio-list{list-style:none;padding:0;margin:0 0 1.3em;display:flex;flex-direction:column;gap:.95rem}
.bio-list li{display:grid;grid-template-columns:5.4rem 1fr;gap:1.1rem;color:var(--mut);font-size:.98rem;line-height:1.7}
.bio-list .bd{font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.58rem;color:var(--gold);padding-top:.55em;white-space:nowrap;border-top:1px solid var(--line-g);align-self:start;margin-top:.5em}
.bio-list .bt strong{color:var(--ink);font-weight:600}
@media(max-width:480px){.bio-list li{grid-template-columns:4.4rem 1fr;gap:.8rem}}

/* section formulaire : titre + intro centrés */
#rejoindre h2{margin-inline:auto;text-align:center}
#rejoindre .measure{margin-inline:auto;text-align:center}

/* hero solo : pleine largeur centrée, sans photo */
.hero--solo .scene__in{padding:7rem var(--edge)!important;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero--solo .hero__copy,.hero--solo .hero__copy .kx,.hero--solo .hero__copy .hero__sig{text-align:center!important}
.hero--solo .kx{font-size:clamp(2.8rem,1.2rem + 5.6vw,6.6rem)!important;line-height:1.06}
.hero--solo .hero__sig{margin-top:2rem;font-size:clamp(1.1rem,.9rem + .9vw,1.6rem)!important}

/* ===== portes du salon (séquence d'entrée, home) ===== */
html.doors-lock{overflow:hidden}
.doors{position:fixed;inset:0;z-index:280;perspective:1400px;overflow:hidden;background:transparent}
.doors__void{position:absolute;inset:0;background:#050403;z-index:1}
.doors__glow{position:absolute;left:50%;top:50%;width:52vmax;height:76vmax;transform:translate(-50%,-50%);z-index:2;pointer-events:none;opacity:0;
  background:radial-gradient(50% 50% at 50% 50%,rgba(235,196,126,.38),rgba(178,120,58,.12) 46%,transparent 72%)}
.doors__panel{position:absolute;top:-1%;bottom:-1%;width:50.06%;z-index:3;backface-visibility:hidden;will-change:transform;
  background:linear-gradient(103deg,#171209 0%,#0E0B08 46%,#120E0A 100%);
  box-shadow:0 0 90px rgba(0,0,0,.85)}
.doors__panel::before{content:"";position:absolute;inset:1.5rem;border:1px solid rgba(212,182,129,.16)}
.doors__panel::after{content:"";position:absolute;inset:2.8rem;border:1px solid rgba(212,182,129,.07)}
.doors__panel--l{left:0;transform-origin:left center}
.doors__panel--r{right:0;transform-origin:right center}
.doors__handle{position:absolute;top:50%;width:2px;height:110px;transform:translateY(-50%);
  background:linear-gradient(180deg,transparent,var(--goldlt) 30%,var(--goldlt) 70%,transparent);
  box-shadow:0 0 16px rgba(212,182,129,.55)}
.doors__panel--l .doors__handle{right:2.3rem}
.doors__panel--r .doors__handle{left:2.3rem}
.doors__seam{position:absolute;left:50%;top:0;bottom:0;width:2px;z-index:4;transform:translateX(-50%) scaleY(0);transform-origin:center;
  background:linear-gradient(180deg,transparent,#F3E4C4 16%,#FBEFD6 50%,#F3E4C4 84%,transparent);
  box-shadow:0 0 26px 5px rgba(235,196,126,.5);will-change:transform}
.doors__mark{position:absolute;left:0;right:0;top:calc(50% - 76px);z-index:5;text-align:center;opacity:0;will-change:opacity}
.doors__mark img{height:4.8rem;width:auto;margin:0 auto 1.1rem}
.doors__mark span{display:block;font-family:var(--ar);text-transform:uppercase;letter-spacing:.34em;font-size:.6rem;color:var(--dim)}
@media(max-width:600px){.doors__mark img{height:3.4rem}.doors__panel::before{inset:1rem}.doors__panel::after{inset:2rem}
  .doors__panel--l .doors__handle{right:1.2rem}.doors__panel--r .doors__handle{left:1.2rem}}
/* sans JS (ou si le script échoue) : les portes s'effacent seules */
.doors{animation:doorsAuto .8s ease 4.6s forwards}
@keyframes doorsAuto{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.doors{display:none}}

/* ═══ PARCOURS « DEMANDE DE COUVERT » (overlay guidé, une question par écran) ═══ */
.wiz{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 50% 38%,#161009,#070503);padding:2rem var(--edge)}
.wiz.on{display:flex}
.wiz__close{position:absolute;top:1.5rem;right:clamp(1.4rem,4vw,3rem);background:none;border:1px solid var(--line);color:var(--mut);font-family:var(--ar);letter-spacing:.16em;font-size:.56rem;text-transform:uppercase;padding:.6rem 1.2rem;border-radius:999px;cursor:pointer;transition:.3s}
.wiz__close:hover{color:var(--goldlt);border-color:var(--line-g)}
.wiz__in{width:min(42rem,94vw)}
.wiz__k{font-family:var(--ar);text-transform:uppercase;letter-spacing:.26em;font-size:.56rem;color:var(--gold);margin-bottom:1.5rem}
.wiz__q{font-family:var(--cm);font-weight:350;font-variation-settings:"opsz" 56,"wght" 350;font-size:clamp(1.9rem,1.2rem + 2.6vw,3.2rem);line-height:1.08;color:var(--ink);margin:0 0 .9rem}
.wiz__q em{font-style:italic;color:var(--goldlt);font-family:var(--nw)}
.wiz__hint{color:var(--mut);font-size:.92rem;margin:0 0 1.6rem}
.wiz input,.wiz textarea{width:100%;background:rgba(243,236,223,.05);border:1px solid var(--line);color:var(--ink);font-family:var(--nw);font-size:1.15rem;padding:1rem 1.15rem;border-radius:10px}
.wiz input:focus,.wiz textarea:focus{outline:none;border-color:var(--gold)}
.wiz textarea{min-height:6.5rem;resize:vertical}
.wiz .chips{margin:.2rem 0 1rem}
.wiz__duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:640px){.wiz__duo{grid-template-columns:1fr}}
.wiz__actions{display:flex;gap:1.2rem;align-items:center;margin-top:1.7rem;flex-wrap:wrap}
.wiz__go{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;background:var(--goldlt);color:var(--bg);border:0;border-radius:999px;padding:1.05rem 2.4rem;cursor:pointer;transition:.3s}
.wiz__go:hover{background:var(--ink)}
.wiz__go[disabled]{opacity:.5;cursor:default}
.wiz__skip{background:none;border:0;color:var(--faint);font-family:var(--ar);letter-spacing:.14em;font-size:.6rem;text-transform:uppercase;cursor:pointer;padding:.4rem 0;border-bottom:1px solid transparent;transition:.3s}
.wiz__skip:hover{color:var(--goldlt);border-color:var(--line-g)}
.wiz__msg{color:var(--goldlt);font-size:.9rem;margin-top:1rem;min-height:1.2em}
.wiz__step{animation:wizIn .5s ease both}
@keyframes wizIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.wiz__end p{color:var(--dim);font-size:1.02rem;line-height:1.8;max-width:32rem}
.wiz__end .k{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.56rem;color:var(--gold)}

/* nappe vivante (hero home) */
.hero__cloth{position:absolute;inset:0;width:100%;height:100%;display:block}


/* ═══ PLATEFORME · DENSITÉ COMPACTE ═══ */
body.page-espace .plat .form label,body.page-admin .plat .form label{margin:1rem 0 .38rem;font-size:.52rem;letter-spacing:.18em}
body.page-espace .plat input,body.page-admin .plat input,
body.page-espace .plat textarea,body.page-admin .plat textarea,
body.page-espace .plat select,body.page-admin .plat select{padding:.6rem .8rem;font-size:.96rem;border-radius:8px;line-height:1.5}
body.page-espace .plat textarea,body.page-admin .plat textarea{min-height:3.2rem}
body.page-espace .frow,body.page-admin .frow{gap:.9rem}
body.page-espace .plat .form button[type=submit],body.page-admin .plat .form button[type=submit]{margin-top:1.3rem;padding:.8rem 1.9rem;font-size:.6rem}
body.page-espace .pane__eyebrow,body.page-admin .pane__eyebrow{margin-bottom:.6rem}
body.page-espace .pane__title,body.page-admin .pane__title{font-size:clamp(1.7rem,1.2rem + 1.7vw,2.5rem);margin:0 0 .55rem}
body.page-espace .pane__sub,body.page-admin .pane__sub{margin:0 0 1.4rem;font-size:.92rem}
body.page-espace .notice,body.page-admin .notice{padding:.8rem 1rem;font-size:.86rem;margin:.7rem 0;line-height:1.6}
body.page-espace .chip,body.page-admin .chip{padding:.42rem .85rem;font-size:.53rem}
body.page-espace .chips,body.page-admin .chips{gap:.4rem}
body.page-espace .danger-zone,body.page-admin .danger-zone{margin-top:2rem;padding-top:1.1rem}
body.page-espace .danger-zone p,body.page-admin .danger-zone p{font-size:.8rem;margin:0 0 .7rem}
body.page-espace .app__main,body.page-admin .app__main{padding-top:clamp(1.4rem,3.5vh,2.4rem)}
body.page-espace .plat .form,body.page-admin .plat .form{margin-top:.9rem}
body.page-espace .code-input,body.page-admin .code-input{font-size:1.3rem!important}
body.page-espace .filters,body.page-admin .filters{gap:.8rem;margin:1rem 0 .4rem}
body.page-espace .fmsg,body.page-admin .fmsg{margin-top:.6rem;font-size:.84rem}
body.page-espace #f-pwd,body.page-admin #f-adminpwd{margin-top:1.8rem!important}


/* règles de la maison */
.regles{display:flex;flex-direction:column;gap:.9rem;max-width:46rem}
.regle{display:grid;grid-template-columns:2.6rem 1fr;gap:.9rem;background:#fff;border:1px solid #E9E0CD;border-radius:14px;padding:1.1rem 1.3rem;box-shadow:0 10px 30px -22px rgba(27,21,18,.25)}
.regle .rn{font-family:var(--nw);font-style:italic;color:var(--gold);font-size:1rem;padding-top:.15rem}
.regle h3{font-family:var(--cm);font-weight:350;font-size:1.12rem;color:var(--ink);margin:0 0 .35rem;display:flex;align-items:center}
.regle p{font-size:.9rem;color:var(--mut);margin:0;line-height:1.65}


/* visibilité annuaire : switch + aperçu au survol */
.vis{position:relative;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#fff;border:1px solid #E9E0CD;border-radius:12px;padding:.8rem 1.1rem;margin:0 0 1.4rem;max-width:44rem}
.vis__l{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:12rem}
.vis__state{font-family:var(--cm);font-size:1.02rem;color:var(--ink)}
.switch{width:3.1rem;height:1.7rem;border-radius:999px;border:1px solid #DCD2BC;background:#EFE8D8;cursor:pointer;position:relative;transition:.25s;padding:0}
.switch__dot{position:absolute;top:.15rem;left:.18rem;width:1.3rem;height:1.3rem;border-radius:999px;background:#fff;border:1px solid #DCD2BC;transition:.25s}
.switch.on{background:var(--ink);border-color:var(--ink)}
.switch.on .switch__dot{left:calc(100% - 1.48rem);border-color:var(--ink)}
.vis__tip{display:none;position:absolute;z-index:50;top:calc(100% + .6rem);left:0;width:min(24rem,90vw);background:#fff;border:1px solid #E1D7C2;border-radius:14px;padding:1rem 1.1rem;box-shadow:0 24px 50px -24px rgba(27,21,18,.4)}
.vis:hover .vis__tip,.vis:focus-within .vis__tip{display:block}
.vis__tiptitle{font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.52rem;color:var(--gold);margin:0 0 .6rem}
.vis__tipnote{font-size:.8rem;color:var(--mut);margin:.7rem 0 0;line-height:1.6}

/* ===== Charles, maître d'hôtel de la maison ===== */
.wiz__maitre{margin-bottom:1rem}
.wiz__maitre img{width:56px;height:56px;border-radius:999px;object-fit:cover;border:1px solid var(--line-g)}
.charles{display:flex;align-items:center;gap:.85rem;margin:0 0 1.6rem}
.charles img{width:52px;height:52px;border-radius:999px;object-fit:cover;border:1px solid rgba(154,123,69,.45)}
.charles .cn{font-family:var(--cm);font-style:italic;font-size:1.08rem;color:var(--ink);line-height:1.2}
.charles .cr{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.52rem;color:var(--mut);margin-top:.2rem}
.notice--charles{display:flex;gap:.9rem;align-items:flex-start}
.notice--charles img{width:44px;height:44px;border-radius:999px;object-fit:cover;border:1px solid rgba(154,123,69,.45);flex:none;margin-top:.1rem}


/* carte WhatsApp */
.wa{display:flex;align-items:center;gap:1rem;background:#F2FAF1;border:1px solid rgba(37,211,102,.35);border-radius:14px;padding:.85rem 1.1rem;margin:.7rem 0;flex-wrap:wrap}
.wa__ic{width:2.4rem;height:2.4rem;border-radius:999px;background:#25D366;display:flex;align-items:center;justify-content:center;flex:none}
.wa__ic svg{width:1.35rem;height:1.35rem;fill:#fff}
.wa__t{flex:1;min-width:14rem;font-size:.87rem;color:var(--mut);line-height:1.55}
.wa__t strong{color:var(--ink);font-weight:600}
.wa__btn{background:#25D366;color:#fff;font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.56rem;padding:.7rem 1.3rem;border-radius:999px;text-decoration:none;white-space:nowrap;transition:.25s}
.wa__btn:hover{background:#1DB457}


/* ═══ PLATEFORME · FINITIONS (animations douces, survols, focus) ═══ */
body.page-espace [id^=tab-]:not(.hidden),body.page-admin [id^=tab-]:not(.hidden){animation:panIn .45s cubic-bezier(.22,1,.36,1) both}
@keyframes panIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
body.page-espace .plat .pcard,body.page-admin .plat .pcard,
body.page-espace .plat .rowline,body.page-admin .plat .rowline,
body.page-espace .regle,body.page-admin .regle{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
body.page-espace .plat .pcard:hover,body.page-admin .plat .pcard:hover,
body.page-espace .plat .rowline:hover,body.page-admin .plat .rowline:hover,
body.page-espace .regle:hover,body.page-admin .regle:hover{transform:translateY(-2px);border-color:rgba(154,123,69,.55);box-shadow:0 18px 44px -26px rgba(27,21,18,.4)}
body.page-espace .pcard:hover .mono,body.page-admin .pcard:hover .mono{transform:scale(1.06)}
.mono{transition:transform .3s ease}
body.page-espace .abtn:active,body.page-admin .abtn:active,
body.page-espace .chip:active,body.page-admin .chip:active,
body.page-espace .switch:active,body.page-admin .switch:active,
body.page-espace .form button[type=submit]:active,body.page-admin .form button[type=submit]:active,
body.page-espace .wa__btn:active,body.page-admin .wa__btn:active{transform:scale(.97)}
body.page-espace .plat input:focus,body.page-admin .plat input:focus,
body.page-espace .plat textarea:focus,body.page-admin .plat textarea:focus,
body.page-espace .plat select:focus,body.page-admin .plat select:focus{border-color:var(--goldlt);box-shadow:0 0 0 3px rgba(154,123,69,.14)}
body.page-espace .plat input:hover:not(:focus),body.page-admin .plat input:hover:not(:focus),
body.page-espace .plat textarea:hover:not(:focus),body.page-admin .plat textarea:hover:not(:focus){border-color:#CBBB98}
body.page-espace .app__nav button,body.page-admin .app__nav button{transition:background .25s,color .25s,padding-left .25s}
body.page-espace .app__nav button:hover:not(.on),body.page-admin .app__nav button:hover:not(.on){padding-left:1.1rem}
body.page-espace .app__me,body.page-admin .app__me{transition:box-shadow .3s}
body.page-espace .app__me:hover,body.page-admin .app__me:hover{box-shadow:0 12px 28px -18px rgba(27,21,18,.35)}
.locked__veil .lk{animation:lkPulse 2.8s ease-in-out infinite}
@keyframes lkPulse{0%,100%{box-shadow:0 0 0 0 rgba(154,123,69,.28)}50%{box-shadow:0 0 0 10px rgba(154,123,69,0)}}
body.page-espace .app__main::-webkit-scrollbar,body.page-admin .app__main::-webkit-scrollbar{width:8px}
body.page-espace .app__main::-webkit-scrollbar-thumb,body.page-admin .app__main::-webkit-scrollbar-thumb{background:rgba(154,123,69,.3);border-radius:99px}
body.page-espace .app__main::-webkit-scrollbar-track,body.page-admin .app__main::-webkit-scrollbar-track{background:transparent}
.app__site{display:block;font-family:var(--ar);text-transform:uppercase;letter-spacing:.18em;font-size:.5rem;color:var(--faint);padding:.55rem .85rem;text-decoration:none;transition:color .25s}
.app__site:hover{color:var(--goldlt)}
body.page-espace .badge.b-actif,body.page-admin .badge.b-actif,
body.page-espace .badge.b-accepte,body.page-admin .badge.b-accepte{background:rgba(154,123,69,.1)}
@media(prefers-reduced-motion:reduce){body.page-espace [id^=tab-]:not(.hidden),body.page-admin [id^=tab-]:not(.hidden),.locked__veil .lk{animation:none}}


/* visibilité simplifiée : deux états, deux couleurs */
.vis__desc{font-size:.82rem;color:var(--mut);line-height:1.5;margin-top:.15rem}
body.page-espace .switch{width:3.3rem;height:1.8rem;transition:background .3s,border-color .3s}
body.page-espace .switch.on{background:#2E9E5B;border-color:#2E9E5B}
body.page-espace .switch.off{background:#D8D2C4;border-color:#C9C2B2}
body.page-espace .switch.off .switch__dot{border-color:#C9C2B2}
.vis .vis__state{transition:color .3s}


/* Charles, le maître d'hôtel : bulle concierge en bas à droite */
.ch{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vh,1.6rem);z-index:250;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}
.ch__bubble{display:flex;align-items:center;gap:.65rem;background:#fff;border:1px solid #E1D7C2;border-radius:999px;padding:.4rem 1rem .4rem .4rem;cursor:pointer;box-shadow:0 16px 40px -18px rgba(27,21,18,.4);transition:transform .25s,box-shadow .25s;position:relative}
.ch__bubble:hover{transform:translateY(-2px);box-shadow:0 22px 48px -20px rgba(27,21,18,.45)}
.ch__bubble img{width:2.6rem;height:2.6rem;border-radius:999px;object-fit:cover}
.ch__who{font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.54rem;color:var(--ink)}
.ch__dot{position:absolute;top:.2rem;right:.2rem;width:.65rem;height:.65rem;border-radius:999px;background:var(--goldlt);border:2px solid #fff;animation:lkPulse 2.8s ease-in-out infinite}
.ch__card{width:min(23rem,calc(100vw - 2rem));background:#fff;border:1px solid #E1D7C2;border-radius:18px;box-shadow:0 30px 70px -30px rgba(27,21,18,.5);overflow:hidden;animation:chIn .45s cubic-bezier(.22,1,.36,1) both}
@keyframes chIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.ch__head{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;background:#F2EBDE;border-bottom:1px solid #E7DECB}
.ch__head img{width:2.8rem;height:2.8rem;border-radius:999px;object-fit:cover}
.ch__head .n{font-family:var(--cm);font-size:1.05rem;color:var(--ink);line-height:1.1}
.ch__head .r{font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.5rem;color:var(--gold);margin-top:.2rem}
.ch__x{margin-left:auto;background:none;border:0;color:var(--faint);font-size:.85rem;cursor:pointer;padding:.4rem;transition:color .25s}
.ch__x:hover{color:var(--ink)}
.ch__msg{padding:1rem 1.1rem;font-size:.88rem;color:var(--mut);line-height:1.65}
.ch__msg p{margin:0 0 .7rem}
.ch__msg strong{color:var(--goldlt)}
.ch__sig{font-family:var(--nw);font-style:italic;color:var(--goldlt);margin:0!important}


/* badges de dîners (gamification) + photos souvenirs */
.vbadges{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.2rem}
.vbadge{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--ar);text-transform:uppercase;letter-spacing:.14em;font-size:.52rem;color:#8A6D3F;background:linear-gradient(180deg,rgba(212,182,129,.28),rgba(154,123,69,.16));border:1px solid rgba(154,123,69,.45);border-radius:999px;padding:.35rem .75rem}
.dphotos{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.5rem}
.dphotos img{width:3.6rem;height:3.6rem;object-fit:cover;border-radius:10px;border:1px solid #E1D7C2;transition:transform .25s}
.dphotos a:hover img{transform:scale(1.06)}


/* couverture de la fiche dîner */
.pcard--cover{padding-top:0;overflow:hidden}
.pcard__cover{margin:-1.7rem -1.7rem 1rem;border-radius:16px 16px 0 0;overflow:hidden;aspect-ratio:16/7}
.pcard__cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.pcard--cover:hover .pcard__cover img{transform:scale(1.04)}


/* suppression avec annulation (5 s) */
.undo{display:flex;align-items:center;gap:1rem;position:relative;color:var(--mut);font-size:.9rem;padding:.2rem 0}
.undo__bar{position:absolute;left:0;bottom:-.55rem;height:2px;background:var(--goldlt);border-radius:2px;animation:undoBar 5s linear forwards}
@keyframes undoBar{from{width:100%}to{width:0}}

/* ═══════════════════════════════════════════════════════════════════════
   CHARTE WEBAPP · couche de consolidation (source de vérité visuelle)
   Palette maison : Nappe #F4EFE6 · Coquille #F2EBDE · Porcelaine #FFF
   Encre #1B1512 · Taupe #6B5F50 · Laiton #9A7B45 / #8A6D3F
   Signature : filet de laiton sous les titres + pastilles dorées (site ↔ app)
   ═══════════════════════════════════════════════════════════════════════ */

/* ── contrôles : UNE hauteur, UNE bordure, UN rayon ── */
body.page-espace .plat input,body.page-admin .plat input,
body.page-espace .plat select,body.page-admin .plat select{
  height:2.55rem;padding:.4rem .85rem;font-size:.92rem;border-radius:9px;
  background:#FDFBF5;border:1px solid #E3D9C4;color:var(--ink)}
body.page-espace .plat textarea,body.page-admin .plat textarea{
  padding:.6rem .85rem;font-size:.92rem;border-radius:9px;min-height:4.4rem;line-height:1.6;
  background:#FDFBF5;border:1px solid #E3D9C4;color:var(--ink)}
body.page-espace .plat ::placeholder,body.page-admin .plat ::placeholder{color:#B3A78E;font-family:var(--nw)}
body.page-espace .plat select,body.page-admin .plat select{
  -webkit-appearance:none;appearance:none;padding-right:2.3rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239A7B45' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .95rem center}
/* la recherche : une pilule avec sa loupe */
body.page-espace #a-q,body.page-admin #a-q{
  border-radius:999px;padding-left:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='6' cy='6' r='4.4' fill='none' stroke='%239A7B45' stroke-width='1.3'/%3E%3Cpath d='M9.4 9.4L13 13' stroke='%239A7B45' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:1rem center}
body.page-espace .filters select,body.page-admin .filters select{border-radius:999px}
body.page-espace .filters,body.page-admin .filters{grid-template-columns:1.6fr 1fr 1fr;gap:.7rem;margin:1.2rem 0 1.4rem}

/* ── boutons : trois niveaux, hauteurs alignées ── */
body.page-espace .plat .form button[type=submit],body.page-admin .plat .form button[type=submit]{
  height:2.65rem;margin-top:1.4rem;padding:0 2rem;font-size:.58rem;letter-spacing:.22em;border-radius:999px}
body.page-espace .abtn,body.page-admin .abtn{
  height:2.15rem;display:inline-flex;align-items:center;padding:0 1.05rem;font-size:.54rem;
  letter-spacing:.16em;border-radius:999px;border-color:#DCD2BC}
body.page-espace .chip,body.page-admin .chip{height:1.95rem;display:inline-flex;align-items:center;padding:0 .9rem;font-size:.53rem;border-color:#DCD2BC}
body.page-espace .tabbar button,body.page-admin .tabbar button{height:2.3rem;display:inline-flex;align-items:center;padding:0 1.35rem}

/* ── têtes de page : le filet de laiton, signature de la maison ── */
body.page-espace .pane__eyebrow,body.page-admin .pane__eyebrow{font-size:.54rem;letter-spacing:.3em;margin-bottom:.7rem}
body.page-espace .pane__title,body.page-admin .pane__title{position:relative;padding-bottom:1rem;margin-bottom:.75rem}
body.page-espace .pane__title::after,body.page-admin .pane__title::after{
  content:"";position:absolute;left:0;bottom:0;width:3.2rem;height:1px;
  background:linear-gradient(90deg,#9A7B45,rgba(154,123,69,0))}
body.page-espace .pane__sub,body.page-admin .pane__sub{font-size:.9rem;max-width:36rem}

/* ── barre latérale : les pastilles du site, cousues dans l'app ── */
body.page-espace .app__nav button,body.page-admin .app__nav button{
  display:flex;align-items:center;gap:.65rem;font-size:.8rem;padding:.62rem .9rem}
body.page-espace .app__nav button::before,body.page-admin .app__nav button::before{
  content:"";width:5px;height:5px;flex:none;border:1px solid #9A7B45;border-radius:999px;transition:.25s;opacity:.75}
body.page-espace .app__nav button.on::before,body.page-admin .app__nav button.on::before{background:#D4B681;border-color:#D4B681;opacity:1}
body.page-espace .app__nav button:hover:not(.on),body.page-admin .app__nav button:hover:not(.on){padding-left:.9rem}
body.page-espace .app__sect,body.page-admin .app__sect{color:#A08F72;letter-spacing:.3em}
body.page-espace .app__me .mono,body.page-admin .app__me .mono{box-shadow:0 0 0 1px rgba(154,123,69,.35),0 0 0 4px rgba(154,123,69,.08)}
body.page-espace .app__brand img,body.page-admin .app__brand img{height:2.5rem}
body.page-espace .app__brand .t,body.page-admin .app__brand .t{letter-spacing:.32em}

/* ── cartes : un seul vocabulaire ── */
body.page-espace .plat .pcard,body.page-admin .plat .pcard,
body.page-espace .plat .rowline,body.page-admin .plat .rowline,
body.page-espace .regle,body.page-admin .regle,
body.page-espace .vis,body.page-admin .vis,
body.page-espace .wa,body.page-admin .wa,
body.page-espace .notice,body.page-admin .notice{border-color:#EAE1CE;box-shadow:0 12px 32px -24px rgba(27,21,18,.28)}
body.page-espace .notice,body.page-admin .notice{background:#FDF9F0;border-radius:12px}
body.page-espace .vis,body.page-admin .vis{border-radius:12px}
body.page-espace .plat .pcard h3,body.page-admin .plat .pcard h3{font-size:1.3rem;letter-spacing:.005em}
body.page-espace .plat .pcard .meta,body.page-admin .plat .pcard .meta{font-size:.53rem;letter-spacing:.22em}
body.page-espace .mono,body.page-admin .mono{box-shadow:0 0 0 1px rgba(154,123,69,.3)}

/* ── badges : petites capitales, filet fin ── */
body.page-espace .badge,body.page-admin .badge{font-size:.48rem;letter-spacing:.18em;padding:.28rem .68rem;border-color:#DFD5BE}
body.page-espace .vbadge,body.page-admin .vbadge{font-size:.5rem;padding:.32rem .7rem}
body.page-espace .count-pill,body.page-admin .count-pill{font-size:.56rem;letter-spacing:.08em}

/* ── détails qui cousent l'ensemble ── */
body.page-espace .app__main,body.page-admin .app__main{scrollbar-width:thin;scrollbar-color:rgba(154,123,69,.3) transparent}
body.page-espace .rowline .nm,body.page-admin .rowline .nm{font-size:1.08rem}
body.page-espace .rowline .sub,body.page-admin .rowline .sub{font-size:.78rem;letter-spacing:.01em}
body.page-espace .fmsg,body.page-admin .fmsg{font-style:italic;font-family:var(--nw)}
body.page-espace .plat .form label,body.page-admin .plat .form label{color:#9A7B45}
body.page-espace .opt-hint,body.page-admin .opt-hint{color:#B3A78E}
body.page-espace .danger-zone,body.page-admin .danger-zone{border-top:1px dashed #E3D9C4}
body.page-espace .authcard,body.page-admin .authcard{border-radius:18px}
body.page-espace .ch__card,body.page-admin .ch__card{border-color:#EAE1CE}
body.page-espace .switch,body.page-admin .switch{flex:none}
body.page-espace .code-input,body.page-admin .code-input{height:3.2rem!important;font-size:1.35rem!important;letter-spacing:.55em}

/* sélecteur de statut sur les lignes (admin) : pilule harmonisée */
body.page-admin .rowline select{height:2.15rem;width:auto;padding:.2rem 2.2rem .2rem 1rem!important;font-size:.78rem;border-radius:999px;font-family:var(--ar);letter-spacing:.04em}


/* états informationnels : cartes parcheminées de la maison */
.etat{grid-column:1/-1;background:#FBF6EA;border:1px solid #EBDFC5;border-radius:14px;padding:2.4rem 1.6rem;text-align:center}
.etat__ic{display:inline-flex;width:2.5rem;height:2.5rem;border:1px solid rgba(154,123,69,.45);border-radius:999px;align-items:center;justify-content:center;color:#9A7B45;background:#fff;font-size:.95rem;margin-bottom:1rem}
.etat__t{font-family:var(--cm);font-weight:350;font-size:1.18rem;color:var(--ink);margin:0 0 .4rem}
.etat__s{font-family:var(--ar);font-size:.85rem;color:#8A7A61;margin:0 auto;max-width:28rem;line-height:1.7}
.etat--min{padding:1.3rem 1rem}
.etat--min .etat__ic{width:1.9rem;height:1.9rem;font-size:.75rem;margin-bottom:.55rem}
.etat--min .etat__t{font-size:1rem}
.etat--err{background:#FBF1EC;border-color:#EBD2C4}
.etat--err .etat__ic{color:#A0524A;border-color:rgba(160,82,74,.4)}
.etat__charge{text-align:center;color:#9A7B45;font-size:1rem;padding:.8rem 0;margin:0;animation:lkPulse 2.2s ease-in-out infinite;display:flex;justify-content:center}

/* sous-sections de l'onglet convives */
.msec{display:flex;align-items:center;gap:.6rem;margin:0 0 .9rem;font-family:var(--ar);text-transform:uppercase;letter-spacing:.24em;font-size:.56rem;color:#9A7B45}
.msec::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(154,123,69,.4),transparent)}

/* ===== annuaire : cartes portrait (photo en avant) ===== */
.pgrid--annuaire{grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:1100px){.pgrid--annuaire{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.pgrid--annuaire{grid-template-columns:1fr}}
.mcard{background:#FFFFFF;border:1px solid #EAE1CE;border-radius:18px;overflow:hidden;transition:border-color .3s,transform .3s,box-shadow .3s}
.mcard:hover{border-color:#D9C9A8;transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(60,45,25,.28)}
.mcard__photo{margin:.85rem .85rem 0;border-radius:12px;overflow:hidden;aspect-ratio:1/1;position:relative;
  background:linear-gradient(160deg,#F7F2E9,#EFE7D4);border:1px solid #EDE4D2}
.mcard__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.mcard:hover .mcard__photo img{transform:scale(1.04)}
.mcard__ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem}
.mcard__ph .ini{font-family:var(--cm);font-style:italic;font-weight:350;font-size:3.4rem;color:#B08F55;
  width:7.5rem;height:7.5rem;display:flex;align-items:center;justify-content:center;border:1px solid #D9C9A8;border-radius:999px}
.mcard__ph .lbl{font-family:var(--ar);text-transform:uppercase;letter-spacing:.22em;font-size:.5rem;color:#A99C86}
.mcard__body{padding:1.05rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.45rem}
.mcard__body h3{font-family:var(--cm);font-weight:350;font-size:1.32rem;margin:0;color:var(--ink)}
.mcard__body .meta{font-family:var(--ar);text-transform:uppercase;letter-spacing:.15em;font-size:.55rem;color:#9A7B45}
.mcard__resume{font-size:.9rem;color:var(--mut);margin:.15rem 0 0;line-height:1.65;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mcard__line{font-size:.84rem;color:var(--mut);margin:0;line-height:1.6}
.mcard__line .k{font-family:var(--ar);text-transform:uppercase;letter-spacing:.16em;font-size:.52rem;color:#9A7B45}


/* fiche convive (annuaire) : surimpression */
.mcard--clic{cursor:pointer}
.fmod{position:fixed;inset:0;z-index:300;background:rgba(27,21,18,.32);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.4rem;animation:panIn .3s ease both}
.fmod__card{position:relative;background:#fff;border:1px solid #EAE1CE;border-radius:18px;box-shadow:0 40px 90px -40px rgba(27,21,18,.55);width:min(34rem,100%);max-height:86vh;overflow-y:auto;padding:2rem 2.1rem}
.fmod__x{position:absolute;top:1rem;right:1rem;background:none;border:1px solid #E3D9C4;border-radius:999px;width:2rem;height:2rem;color:#8A7A61;cursor:pointer;transition:.25s;font-size:.8rem}
.fmod__x:hover{color:#1B1512;border-color:#1B1512}
.fmod__head{display:flex;gap:1rem;align-items:center;margin-bottom:.6rem}
.fmod__head .mono{width:3.6rem;height:3.6rem;font-size:1.3rem}
.fmod__photo{width:3.6rem;height:3.6rem;border-radius:999px;object-fit:cover;border:1px solid #D9C9A8}
.fmod__head h3{font-family:var(--cm);font-weight:350;font-size:1.5rem;color:#1B1512;margin:0}
.fmod__head .meta{font-family:var(--ar);text-transform:uppercase;letter-spacing:.2em;font-size:.53rem;color:#9A7B45;margin-top:.3rem}
.fmod__sect{margin-top:1.1rem}
.fmod__sect .k{display:block;font-family:var(--ar);text-transform:uppercase;letter-spacing:.18em;font-size:.52rem;color:#9A7B45;margin-bottom:.3rem}
.fmod__sect p{font-size:.92rem;color:#5C5245;line-height:1.7;margin:0;white-space:pre-wrap}

/* annuaire : total + ventilation par ville */
.ann-stats{font-family:var(--ar);font-size:.8rem;color:var(--mut);margin:-.8rem 0 1.2rem;line-height:2;display:flex;flex-wrap:wrap;gap:.15rem .5rem;align-items:baseline}
.ann-stats strong{font-family:var(--cm);font-style:italic;font-weight:400;font-size:1.02rem;color:var(--ink)}
.ann-stats .av{white-space:nowrap}
.ann-stats .av em{font-style:normal;color:#9A7B45}

/* ── anti-charabia : suggestion email (wizard) ── */
.wiz__sug{background:none;border:none;color:var(--goldlt);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;padding:0}

/* demandes de couvert (admin) : le nom se clique pour ouvrir la fiche */
.nm--fiche{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;font-family:var(--cm);text-align:left}
.nm--fiche:hover{color:#8A6D3F;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}

/* ── passage back-office ↔ espace convive : simple ligne italique en bas de sidebar ── */
.app__pass{display:inline-flex;align-items:baseline;gap:.45rem;margin:0 0 .35rem;padding:.55rem .85rem;text-decoration:none;transition:.25s}
.app__pass em{font-family:var(--cm);font-style:italic;font-size:.9rem;color:#8A6D3F;border-bottom:1px solid rgba(138,109,63,.35);padding-bottom:2px;transition:border-color .25s}
.app__pass::after{content:'\2192';font-size:.8rem;color:#8A6D3F;opacity:0;transform:translateX(-4px);transition:.25s}
.app__pass:hover em{border-color:#8A6D3F}
.app__pass:hover::after{opacity:1;transform:translateX(0)}
@media(max-width:900px){.app__pass{margin:0}}

/* ── accès Espace convive : bouton contour en haut à droite (demande Alison 15/07) ── */
.nav__links a.nav__espace{border:1px solid var(--line-g);border-radius:999px;padding:.55rem 1.3rem;margin-left:1.1rem;color:var(--goldlt);opacity:1;transition:background .3s,border-color .3s}
.nav__links a.nav__espace::before{display:none}
.nav__links a.nav__espace:hover{background:rgba(180,146,91,.13);border-color:var(--goldlt)}
