[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
img{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
a{color:inherit}

:root{
  --noir:#0F0F0D;          /* fond du logo */
  --noir-2:#1A1916;
  --ivoire:#ECEBE7;        /* lettres NESTY */
  --page:#F7F5F0;
  --lin:#EFEBE3;
  --or:#A69064;            /* couronne */
  --or-clair:#C9B68E;
  --violet:#8E69AE;        /* BRIDAL */
  --violet-fonce:#4E3766;
  --encre:#1A1916;
  --gris:#6D685F;
  --filet:rgba(26,25,22,.14);
  --filet-clair:rgba(236,235,231,.18);
  --titre:"Gilda Display",Georgia,"Times New Roman",serif;
  --texte:"Albert Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --ease:cubic-bezier(.65,0,.2,1);
  --entete:72px;
}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--entete) + 8px)}
body{margin:0;background:var(--page);color:var(--encre);font-family:var(--texte);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.fige{position:fixed;left:0;right:0;overflow:hidden}

/* ---------- bandeau maquette ---------- */
.bandeau{background:#26231F;color:#B8B2A6;font-size:11.5px;letter-spacing:.02em;text-align:center;padding:7px 16px;line-height:1.45}

/* ---------- typo commune ---------- */
.surtitre{font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--or);margin:0 0 14px;display:flex;align-items:center;gap:12px}
.surtitre::before{content:"";width:28px;height:1px;background:currentColor}
.surtitre--clair{color:var(--or-clair)}
.surtitre--violet{color:#B596D2}
.titre{font-family:var(--titre);font-weight:400;font-size:clamp(2rem,3.6vw,3.25rem);line-height:1.08;margin:0;letter-spacing:-.005em}
.script{font-family:var(--script);font-weight:400;letter-spacing:0;line-height:.8}
.script--violet{color:var(--violet);font-size:1.25em}
.tete{max-width:1240px;margin:0 auto 48px;padding:0 24px}
.tete--ligne{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;flex-wrap:wrap}
.tete--clair{color:var(--ivoire)}

.perles{display:block;width:150px;height:18px;fill:var(--encre)}
.perles--or{fill:var(--or)}
.perles circle{opacity:1}
.js .perles.attend circle{opacity:0;transform:translateY(-4px);transform-box:fill-box}
.js .perles.vue circle{animation:perle .5s var(--ease) forwards;animation-delay:calc(var(--i) * 45ms)}
@keyframes perle{to{opacity:1;transform:none}}

.coin{position:absolute;width:64px;height:64px;color:var(--or);opacity:.55;pointer-events:none}
.coin--hg{top:20px;left:20px}
.coin--bd{bottom:20px;right:20px;transform:rotate(180deg)}
.coin--or{color:var(--or)}

/* ---------- boutons ---------- */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 26px;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;transition:background .35s,color .35s,border-color .35s;white-space:nowrap;cursor:pointer}
.bouton--ivoire{background:var(--ivoire);color:var(--noir)}
.bouton--ivoire:hover{background:var(--or-clair)}
.bouton--filet{border-color:rgba(236,235,231,.45);color:var(--ivoire)}
.bouton--filet:hover{border-color:var(--ivoire);background:rgba(236,235,231,.06)}
.bouton--noir{background:var(--noir);color:var(--ivoire)}
.bouton--noir:hover{background:var(--violet-fonce)}
.bouton--noir[aria-disabled="true"]{background:#8E8A82;cursor:not-allowed}
.bouton--filet-noir{border-color:var(--encre);color:var(--encre)}
.bouton--filet-noir:hover{background:var(--encre);color:var(--ivoire)}

/* ---------- en-tête ---------- */
.entete{position:sticky;top:0;z-index:50;background:var(--noir);color:var(--ivoire);border-bottom:1px solid var(--filet-clair)}
.entete__in{max-width:1320px;margin:0 auto;height:var(--entete);padding:0 24px;display:flex;align-items:center;gap:32px}
.entete__logo img{height:56px;width:auto}
.entete__nav{display:flex;gap:32px;margin-left:auto}
.entete__nav a{text-decoration:none;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#CFCBC2;position:relative;padding:6px 0}
.entete__nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--or-clair);transform:scaleX(0);transition:transform .4s var(--ease)}
.entete__nav a:hover{color:var(--ivoire)}
.entete__nav a:hover::after{transform:scaleX(1)}
.entete__cta{height:42px;padding:0 20px;font-size:12px}
.entete__burger{display:none;width:44px;height:44px;margin-left:auto;position:relative}
.entete__burger span{position:absolute;left:10px;right:10px;height:1.5px;background:var(--ivoire)}
.entete__burger span:first-child{top:17px}
.entete__burger span:last-child{top:26px;left:18px}

/* ---------- menu mobile plein écran ---------- */
.menu{position:fixed;inset:0;z-index:80;background:var(--noir);color:var(--ivoire);display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 24px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto;animation:menu .45s var(--ease)}
@keyframes menu{from{opacity:0}to{opacity:1}}
.menu__haut{display:flex;align-items:center;justify-content:space-between;height:var(--entete);flex:none}
.menu__logo{height:52px;width:auto}
.menu__fermer{width:44px;height:44px;position:relative}
.menu__fermer span,.vision__fermer span{position:absolute;left:11px;right:11px;top:21px;height:1.5px;background:currentColor;transform:rotate(45deg)}
.menu__fermer span:last-child,.vision__fermer span:last-child{transform:rotate(-45deg)}
.menu__liens{display:flex;flex-direction:column;margin:auto 0;padding:32px 0}
.menu__liens a{font-family:var(--titre);font-size:34px;line-height:1.2;text-decoration:none;padding:14px 0;border-bottom:1px solid var(--filet-clair);display:flex;align-items:baseline;gap:18px}
.menu__liens small{font-family:var(--texte);font-size:12px;color:var(--or-clair);letter-spacing:.1em;width:22px}
.menu__pied{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8E8A82;margin:0}

/* ---------- HERO ---------- */
.hero{background:var(--noir);color:var(--ivoire);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:clamp(600px,calc(100vh - var(--entete) - 30px),900px);min-height:clamp(600px,calc(100svh - var(--entete) - 30px),900px);position:relative;overflow:hidden}
.hero__texte{padding:72px clamp(24px,6vw,96px) 64px;display:flex;flex-direction:column;justify-content:center;max-width:680px;margin-left:auto;width:100%}
.hero__couronne{width:84px;height:46px;color:var(--or);margin-bottom:28px}
.hero__couronne path{stroke-dasharray:420;stroke-dashoffset:0}
.js .hero__couronne path{stroke-dashoffset:420;animation:trace 2.4s var(--ease) .3s forwards}
.js .hero__couronne circle{opacity:0;animation:apparait .6s ease 2.2s forwards}
@keyframes trace{to{stroke-dashoffset:0}}
@keyframes apparait{to{opacity:1}}
.hero__titre{font-family:var(--titre);font-weight:400;font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.04;margin:0 0 26px;letter-spacing:-.01em}
.hero__titre .script{display:inline-block;font-size:1.9em;color:var(--or-clair);vertical-align:-.12em;margin-left:.06em;padding-right:.1em}
.js .hero__titre .script{clip-path:inset(0 100% 0 0);animation:ecrit 1.8s var(--ease) 1s forwards}
@keyframes ecrit{to{clip-path:inset(0 -10% 0 0)}}
.hero__intro{font-size:17px;color:#BDB8AE;max-width:30em;margin:0 0 36px;font-weight:300}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.hero__perles{margin-top:48px;width:130px}

.hero__scene{margin:0;position:relative;overflow:hidden;min-height:520px;background:#1d1b18}
.hero__photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;opacity:0;transition:opacity 1.2s ease}
.hero__photos img.actif{opacity:1}
.hero__photos img.actif{animation:respire 9s ease-out both}
@keyframes respire{from{transform:scale(1.06)}to{transform:scale(1)}}

/* Le voile : un tulle ivoire, tramé, au bord festonné, qui se soulève */
.voile{position:absolute;left:-2%;right:-2%;top:0;height:104%;z-index:2;pointer-events:none;transform:translateY(-104%);will-change:transform}
.voile__tulle{position:absolute;inset:0 0 26px 0;background:
  radial-gradient(circle at 50% 50%,rgba(255,255,255,.55) .7px,transparent 1.2px) 0 0/6px 6px,
  linear-gradient(180deg,rgba(247,245,240,.7),rgba(247,245,240,.82) 70%,rgba(247,245,240,.9));
  -webkit-backdrop-filter:blur(7px) saturate(.85);backdrop-filter:blur(7px) saturate(.85)}
.voile__bord{position:absolute;left:0;right:0;bottom:0;height:26px;background:rgba(247,245,240,.9);
  -webkit-mask:radial-gradient(circle at 18px 0,#000 17px,transparent 17.6px) 0 0/36px 26px repeat-x;
          mask:radial-gradient(circle at 18px 0,#000 17px,transparent 17.6px) 0 0/36px 26px repeat-x;
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.voile__bord::after{content:"";position:absolute;left:0;right:0;top:15px;height:6px;background:radial-gradient(circle,rgba(166,144,100,.9) 1.4px,transparent 1.8px) 18px 0/36px 6px repeat-x}
.js .voile{transform:translateY(0)}
.js .voile.leve{transform:translateY(-104%);transition:transform 2.6s var(--ease)}
.js .voile.tombe{transform:translateY(0);transition:transform 1.1s cubic-bezier(.5,0,.6,1)}

.hero__legende{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:64px 28px 22px;background:linear-gradient(transparent,rgba(15,15,13,.72));display:grid;grid-template-columns:auto 1fr;gap:2px 16px;align-items:end}
.hero__num{font-size:11px;letter-spacing:.2em;color:var(--or-clair);grid-row:1}
.hero__nom{font-family:var(--titre);font-size:20px;grid-column:1/-1;grid-row:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero__barres{grid-row:1;grid-column:2;justify-self:end;display:flex;gap:6px}
.hero__barres i{display:block;width:34px;height:2px;background:rgba(236,235,231,.25);position:relative;overflow:hidden}
.hero__barres i::after{content:"";position:absolute;inset:0;background:var(--ivoire);transform:scaleX(0);transform-origin:left}
.hero__barres i.fait::after{transform:scaleX(1)}
.hero__barres i.encours::after{animation:barre var(--duree,7s) linear forwards}
@keyframes barre{to{transform:scaleX(1)}}

/* ---------- MANIFESTE ---------- */
.manifeste{position:relative;padding:clamp(88px,12vw,150px) 24px;text-align:center;background:var(--page)}
.manifeste__in{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.manifeste .surtitre{justify-content:center}
.manifeste .surtitre::after{content:"";width:28px;height:1px;background:currentColor}
.manifeste__texte{font-family:var(--titre);font-size:clamp(1.6rem,3.1vw,2.6rem);line-height:1.32;margin:6px 0 40px;color:var(--encre)}
.js .manifeste__texte .mot{color:rgba(26,25,22,.18);transition:color .5s ease}
.js .manifeste__texte .mot.encre{color:var(--encre)}
.devise{display:flex;flex-direction:column;align-items:center;gap:10px;margin:30px 0 0;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.devise svg{width:44px;height:24px;color:var(--or)}

/* ---------- UNIVERS ---------- */
.univers{padding:0 0 clamp(80px,10vw,128px)}
.univers__panneaux{max-width:1320px;margin:0 auto;padding:0 24px;display:flex;gap:12px;height:clamp(460px,64vh,620px)}
.panneau{flex:1;position:relative;overflow:hidden;text-align:left;color:var(--ivoire);transition:flex .9s var(--ease);min-width:0}
.panneau img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform 1.4s var(--ease)}
.panneau__voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,15,13,0) 40%,rgba(15,15,13,.82))}
.panneau__texte{position:absolute;left:0;right:0;bottom:0;padding:28px;display:flex;flex-direction:column;gap:4px}
.panneau small{font-size:11px;letter-spacing:.2em;color:var(--or-clair)}
.panneau strong{font-family:var(--titre);font-weight:400;font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1.1}
.panneau em{font-style:normal;font-size:14px;color:#CFCBC2;max-width:22em}
.panneau__lien{margin-top:12px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;display:flex;gap:10px;align-items:center;opacity:.8}
.panneau__lien i{font-style:normal;transition:transform .5s var(--ease)}
.panneau::after{content:"";position:absolute;inset:12px;border:1px solid rgba(201,182,142,.0);transition:border-color .6s ease;pointer-events:none}
@media (hover:hover){
  .univers__panneaux:hover .panneau{flex:.8}
  .univers__panneaux .panneau:hover{flex:1.5}
  .panneau:hover img{transform:scale(1.05)}
  .panneau:hover::after{border-color:rgba(201,182,142,.6)}
  .panneau:hover .panneau__lien i{transform:translateX(6px)}
}
.panneau:focus-visible{outline:2px solid var(--violet);outline-offset:3px}

/* ---------- CRÉATIONS ---------- */
.creations{padding:clamp(80px,10vw,120px) 0;background:var(--lin);border-top:1px solid var(--filet)}
.onglets{display:flex;gap:6px;flex-wrap:wrap}
.onglets button{height:40px;padding:0 16px;font-size:13px;letter-spacing:.06em;border:1px solid var(--filet);background:transparent;transition:background .3s,color .3s,border-color .3s}
.onglets button sup{font-size:10px;color:var(--gris);margin-left:2px}
.onglets button[aria-selected="true"]{background:var(--noir);color:var(--ivoire);border-color:var(--noir)}
.onglets button[aria-selected="true"] sup{color:var(--or-clair)}
.onglets button:hover:not([aria-selected="true"]){border-color:var(--encre)}
.creations__note{max-width:1240px;margin:-24px auto 40px;padding:0 24px;color:var(--gris);font-size:14.5px}
.grille{list-style:none;margin:0 auto;padding:0 24px;max-width:1240px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px}
.carte{display:block;width:100%;text-align:left;cursor:pointer}
.carte__photo{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;background:#ddd6ca}
.carte__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;transition:transform 1.2s var(--ease)}
.carte__photo::before,.carte__photo::after{content:"";position:absolute;width:36px;height:36px;z-index:2;opacity:0;transition:opacity .5s ease,transform .6s var(--ease);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M2 78 V40 Q2 30 10 30 Q2 22 10 14 Q14 6 24 10 Q30 2 40 2 H78' fill='none' stroke='%23ECEBE7' stroke-width='2.4'/%3E%3Ccircle cx='10' cy='30' r='2.6' fill='%23ECEBE7'/%3E%3Ccircle cx='24' cy='10' r='2.6' fill='%23ECEBE7'/%3E%3C/svg%3E") no-repeat center/contain}
.carte__photo::before{top:14px;left:14px;transform:translate(6px,6px)}
.carte__photo::after{bottom:14px;right:14px;transform:rotate(180deg) translate(6px,6px)}
.carte__vues{position:absolute;left:14px;bottom:14px;z-index:2;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ivoire);background:rgba(15,15,13,.6);padding:6px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.carte__meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--filet)}
.carte__num{font-size:11px;letter-spacing:.18em;color:var(--or)}
.carte__cat{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.carte__nom{font-family:var(--titre);font-size:22px;line-height:1.2;margin:8px 0 0}
@media (hover:hover){
  .carte:hover .carte__photo img{transform:scale(1.04)}
  .carte:hover .carte__photo::before,.carte:hover .carte__photo::after{opacity:1}
  .carte:hover .carte__photo::before{transform:none}
  .carte:hover .carte__photo::after{transform:rotate(180deg)}
}
.carte:focus-visible{outline:2px solid var(--violet);outline-offset:4px}
.grille li{animation:entree .6s var(--ease) both;animation-delay:calc(var(--i,0) * 50ms)}
@keyframes entree{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- DÉTAILS ---------- */
.details{background:var(--noir);padding:clamp(80px,10vw,120px) 0 64px;overflow:hidden}
.details__rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 max(24px,calc((100vw - 1240px)/2));scroll-padding-inline:max(24px,calc((100vw - 1240px)/2));scrollbar-width:none}
.details__rail::-webkit-scrollbar{display:none}
.detail{flex:0 0 clamp(240px,26vw,340px);margin:0;scroll-snap-align:start;color:var(--ivoire)}
.detail__cadre{display:block;overflow:hidden;aspect-ratio:3/4}
.detail img{width:100%;height:100%;object-fit:cover}
.detail figcaption{padding-top:16px;font-size:14px;color:#A9A49A;border-top:1px solid var(--filet-clair);margin-top:16px}
.detail b{display:block;font-family:var(--titre);font-weight:400;font-size:21px;color:var(--ivoire);margin-bottom:2px}
.details__nav{max-width:1240px;margin:32px auto 0;padding:0 24px;display:flex;gap:10px;justify-content:flex-end}
.details__nav button{width:48px;height:48px;border:1px solid var(--filet-clair);color:var(--ivoire);font-size:18px;transition:background .3s,border-color .3s}
.details__nav button:hover{border-color:var(--or-clair);background:rgba(236,235,231,.06)}

/* ---------- SUR MESURE ---------- */
.mesure{padding:clamp(88px,11vw,140px) 24px}
.mesure__grille{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,104px);align-items:center}
.mesure__photo{position:relative}
.mesure__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.mesure__photo .coin{top:-14px;left:-14px;opacity:.9}
.mesure__photo::after{content:"";position:absolute;inset:16px;border:1px solid rgba(236,235,231,.55);pointer-events:none}
.etapes{list-style:none;margin:40px 0 0;padding:0;position:relative}
.etapes::before{content:"";position:absolute;left:21px;top:20px;bottom:20px;width:1px;background:var(--filet)}
.etapes::after{content:"";position:absolute;left:21px;top:20px;width:1px;height:calc((100% - 40px) * var(--fil,0));background:var(--or)}
.etape{display:grid;grid-template-columns:44px 1fr;gap:22px;padding:0 0 30px;position:relative;z-index:1}
.etape:last-child{padding-bottom:0}
.etape__num{width:44px;height:44px;border-radius:50%;background:var(--page);border:1px solid var(--or);color:var(--or);display:grid;place-items:center;font-family:var(--titre);font-size:16px;transition:background .5s,color .5s}
.etape.vue .etape__num{background:var(--noir);color:var(--or-clair);border-color:var(--noir)}
.etape h3{font-family:var(--titre);font-weight:400;font-size:24px;margin:6px 0 6px;line-height:1.2}
.etape p{margin:0;color:var(--gris);max-width:32em}
.mesure__note{margin:36px 0 0;font-size:13.5px;color:var(--gris);padding-top:18px;border-top:1px solid var(--filet)}

/* ---------- ACADÉMIE ---------- */
.academie{position:relative;background:linear-gradient(180deg,var(--noir) 0%,#16121B 100%);color:var(--ivoire);padding:clamp(88px,11vw,140px) 24px clamp(72px,9vw,110px);overflow:hidden}
.academie__couronne{position:absolute;right:-60px;top:40px;width:440px;height:240px;color:rgba(142,105,174,.10);pointer-events:none}
.academie__grille{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,7vw,96px);align-items:center;position:relative}
.academie__texte>p{color:#BDB8AE;max-width:34em;margin:22px 0 0}
.modules{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--filet-clair);border-bottom:1px solid var(--filet-clair)}
.modules li{padding:20px 18px 20px 0;font-family:var(--titre);font-size:19px;line-height:1.25}
.modules li+li{padding-left:18px;border-left:1px solid var(--filet-clair)}
.modules span{display:block;font-family:var(--texte);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#B596D2;margin-bottom:6px}
.academie__date{font-size:12.5px!important;letter-spacing:.18em;text-transform:uppercase;color:var(--or-clair)!important;margin:26px 0 30px!important}
.academie__note{font-size:13px!important;color:#8E8A82!important;margin-top:16px!important}
.academie__photo{margin:0;position:relative}
.academie__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%}
.academie__photo::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1px solid rgba(142,105,174,.55);z-index:-1}
.academie__photo figcaption{font-size:12.5px;color:#8E8A82;margin-top:14px}
.promo{max-width:1240px;margin:clamp(64px,8vw,96px) auto 0;position:relative}
.promo__titre{font-family:var(--titre);font-size:24px;margin:0 0 22px}
.promo__rang{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.promo__rang img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 25%;filter:saturate(.92)}

/* ---------- RENDEZ-VOUS ---------- */
.rdv{padding:clamp(88px,11vw,140px) 24px;background:var(--page)}
.rdv__grille{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,96px);align-items:start}
.rdv__intro>p{color:var(--gris);margin:22px 0 0;max-width:30em}
.coord{list-style:none;padding:0;margin:40px 0 0;border-top:1px solid var(--filet)}
.coord li{display:grid;grid-template-columns:120px 1fr;gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--filet);font-size:15px}
.coord span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--or);padding-top:3px}
.coord em{font-style:normal;color:var(--gris);font-size:13.5px;grid-column:2}
.coord a{color:var(--violet-fonce)}
.carte-rdv{position:relative;background:#fff;border:1px solid var(--filet);padding:clamp(28px,4vw,48px)}
.carte-rdv .coin{width:52px;height:52px;opacity:.6}
.carte-rdv .coin--hg{top:10px;left:10px}
.carte-rdv .coin--bd{bottom:10px;right:10px}
.champ{border:0;padding:0;margin:0 0 22px;min-width:0}
.champ label,.champ legend{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gris);margin-bottom:8px;padding:0}
.champ input:not([type=radio]),.champ textarea{width:100%;font:inherit;font-size:16px;color:var(--encre);background:transparent;border:0;border-bottom:1px solid rgba(26,25,22,.3);padding:8px 0;border-radius:0;transition:border-color .3s}
.champ textarea{resize:vertical;min-height:96px}
.champ input:focus,.champ textarea:focus{outline:none;border-bottom-color:var(--violet)}
.puces{display:flex;flex-wrap:wrap;gap:8px}
.puces label{margin:0;cursor:pointer;text-transform:none;letter-spacing:0}
.puces input{position:absolute;opacity:0;pointer-events:none}
.puces span{display:inline-flex;align-items:center;height:38px;padding:0 14px;border:1px solid var(--filet);font-size:14px;color:var(--encre);transition:all .3s}
.puces input:checked+span{background:var(--noir);color:var(--ivoire);border-color:var(--noir)}
.puces input:focus-visible+span{outline:2px solid var(--violet);outline-offset:2px}
.carte-rdv__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.carte-rdv__etat{font-size:13px;color:var(--gris);margin:18px 0 0}
.carte-rdv__etat a{color:var(--violet-fonce)}
.carte-rdv__etat.ok{color:#3E6B3A}

/* ---------- PIED ---------- */
.pied{background:var(--noir);color:#A9A49A;padding:72px 24px calc(32px + env(safe-area-inset-bottom,0px));text-align:center}
.pied__in{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.pied__logo{width:200px;height:auto}
.pied__devise{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--or-clair);margin:18px 0 36px}
.pied__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 32px;padding:26px 0;border-top:1px solid var(--filet-clair);border-bottom:1px solid var(--filet-clair);width:100%}
.pied__nav a{text-decoration:none;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.pied__nav a:hover{color:var(--ivoire)}
.pied__bas{font-size:12px;margin:26px 0 0;color:#77736B}

/* ---------- VISIONNEUSE ---------- */
.vision{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:24px}
.vision__fond{position:absolute;inset:0;background:rgba(15,15,13,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:menu .4s ease}
.vision__boite{position:relative;background:var(--page);width:min(1120px,100%);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);animation:boite .5s var(--ease)}
@keyframes boite{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.vision__fermer{position:absolute;top:10px;right:10px;width:44px;height:44px;z-index:3;color:var(--encre);background:var(--page)}
.vision__scene{position:relative;background:#1d1b18;min-height:0}
.vision__scene img{width:100%;height:100%;max-height:calc(100dvh - 48px);object-fit:contain;transition:opacity .35s ease}
.vision__fleche{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;background:rgba(247,245,240,.88);color:var(--encre);font-size:18px}
.vision__fleche--g{left:12px}.vision__fleche--d{right:12px}
.vision__info{padding:48px 40px 32px;overflow-y:auto;display:flex;flex-direction:column}
.vision__num{font-size:11px;letter-spacing:.2em;color:var(--or);margin:0}
.vision__nom{font-family:var(--titre);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.12;margin:10px 0 6px}
.vision__cat{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gris);margin:0 0 18px}
.vision__desc{color:#4A463F;margin:18px 0 22px}
.vision__vues{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.vision__vues button{width:62px;aspect-ratio:3/4;overflow:hidden;opacity:.5;transition:opacity .3s;outline-offset:2px}
.vision__vues button[aria-current="true"]{opacity:1;outline:1px solid var(--encre)}
.vision__vues img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.vision__nav{display:flex;justify-content:space-between;margin-top:auto;padding-top:26px;border-top:1px solid var(--filet);font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.vision__nav button:hover{color:var(--violet-fonce)}

/* ---------- apparitions (blocs secondaires seulement) ---------- */
.js .apparait.attend{opacity:0;transform:translateY(24px)}
.js .apparait{transition:opacity 1s ease,transform 1s var(--ease)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .entete__nav{display:none}
  .entete__cta{margin-left:auto}
  .grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .promo__rang{grid-template-columns:repeat(4,minmax(0,1fr))}
  .promo__rang img:nth-child(n+5){display:none}
}
@media (max-width:820px){
  :root{--entete:62px}
  .entete__in{gap:12px;padding:0 16px}
  .entete__logo img{height:46px}
  .entete__cta{display:none}
  .entete__burger{display:block}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__scene{order:-1;min-height:0;height:72vh;height:72svh;max-height:620px}
  .hero__texte{padding:44px 20px 56px;margin:0;max-width:none}
  .hero__couronne{width:64px;height:35px;margin-bottom:20px}
  .hero__titre{font-size:clamp(2.4rem,10vw,3.4rem)}
  .hero__intro{font-size:16px;margin-bottom:28px}
  .hero__actions .bouton{flex:1 1 200px}
  .hero__perles{margin-top:36px}
  .hero__legende{padding:48px 20px 16px}
  .hero__nom{font-size:18px}
  .tete{padding:0 20px;margin-bottom:32px}
  .univers__panneaux{flex-direction:column;height:auto;padding:0 20px;gap:10px}
  .panneau{flex:none;height:300px}
  .creations__note{padding:0 20px;margin-top:-12px}
  .grille{padding:0 20px;gap:36px 14px}
  .carte__nom{font-size:18px}
  .carte__vues{font-size:10px;padding:5px 8px;left:10px;bottom:10px}
  .carte__meta{flex-direction:column;gap:2px;align-items:flex-start}
  .details__rail{padding:0 20px;scroll-padding-inline:20px;gap:12px}
  .detail{flex-basis:72vw}
  .details__nav{padding:0 20px}
  .mesure,.rdv,.academie{padding-left:20px;padding-right:20px}
  .mesure__grille,.academie__grille,.rdv__grille{grid-template-columns:1fr}
  .mesure__photo{max-width:440px}
  .modules{grid-template-columns:1fr}
  .modules li,.modules li+li{padding:16px 0;border-left:0}
  .modules li+li{border-top:1px solid var(--filet-clair)}
  .academie__photo{max-width:420px;margin-left:14px}
  .academie__texte .bouton{width:100%;white-space:normal;text-align:center;height:auto;min-height:50px;padding:12px 20px}
  .promo__rang{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .promo__rang img:nth-child(n+4){display:block}
  .promo__rang img:nth-child(n+7){display:none}
  .coord li{grid-template-columns:96px 1fr}
  .carte-rdv__actions .bouton{flex:1 1 100%}
  .vision{padding:0}
  .vision__boite{grid-template-columns:1fr;max-height:100dvh;height:100dvh;overflow-y:auto;grid-template-rows:auto auto}
  .vision__scene{height:62vh;height:62svh}
  .vision__scene img{max-height:none}
  .vision__info{padding:28px 20px calc(24px + env(safe-area-inset-bottom,0px));overflow:visible}
  .vision__fermer{position:fixed;top:calc(10px + env(safe-area-inset-top,0px))}
  .coin{width:48px;height:48px}
}
@media (max-width:400px){
  .grille{grid-template-columns:1fr 1fr}
  .hero__actions .bouton{flex-basis:100%}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}
  .js .voile,.js .voile.leve,.js .voile.tombe{transform:translateY(-104%)}
  .js .hero__couronne path{stroke-dashoffset:0}
  .js .hero__couronne circle{opacity:1}
  .js .hero__titre .script{clip-path:none}
  .js .manifeste__texte .mot{color:var(--encre)}
  .js .apparait.attend{opacity:1;transform:none}
  .js .perles.attend circle{opacity:1;transform:none}
}
