/* lp-voyance 1.9.0 · /les-affinites-secretes/ · « vin et champagne » : velours bordeaux, lueur de bougie, or */
.p-sv{--vin:#3A0A16;--velours:#5A0F1E;--nuit:#120408;--champ:#E9D29A;--rose:#D9A08F;--foil:linear-gradient(100deg,#8C6A35 0%,#E9D29A 22%,#C9A86A 40%,#FFF1C9 52%,#B8904F 68%,#F3E2B4 84%,#9C7A40 100%);background:var(--nuit)}
.p-sv .ambient{opacity:.9}
.sv-grain{position:fixed;inset:-50%;z-index:1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .85 0 0 0 0 .8 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:overlay}
.sv-vignette{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(5,1,3,.62) 100%)}
.p-sv main{position:relative;z-index:3}
.p-sv .top{z-index:20}
.sv-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* velours : fond commun aux sections */
.sv-sec,.sv-hero,.sv-scene{position:relative;background:radial-gradient(90% 70% at 30% 0%,rgba(122,20,42,.55),transparent 60%),radial-gradient(80% 60% at 85% 100%,rgba(90,15,30,.5),transparent 62%),linear-gradient(180deg,#1C0610 0%,#12040A 100%)}
.sv-sec:before,.sv-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(115deg,rgba(255,255,255,.012) 0 2px,transparent 2px 5px);opacity:.9}

/* ---------- héros ---------- */
.sv-hero{display:grid;min-height:100svh;padding:84px 0 70px;overflow:hidden}
.sv-hero-art{position:relative;width:100%;max-width:560px;margin:0 auto;padding:0 18px}
.sv-frame{position:relative;border-radius:4px;overflow:hidden;box-shadow:0 50px 120px rgba(0,0,0,.75),0 0 0 1px rgba(233,210,154,.32),0 0 80px rgba(179,20,46,.22)}
.sv-frame:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(233,210,154,.18),inset 0 -120px 120px -40px rgba(18,4,8,.85)}
.sv-frame img{display:block;width:100%;height:auto;aspect-ratio:1440/2037;object-fit:cover}
.sv-sheen{position:absolute;left:30%;top:1%;width:68%;height:86%;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,240,200,.0) 42%,rgba(255,240,200,.34) 50%,rgba(255,240,200,0) 58%,transparent 62%);background-size:260% 100%;background-position:120% 0;mix-blend-mode:screen;animation:sv-sheen 7.5s cubic-bezier(.45,.05,.3,1) 1.2s infinite;-webkit-mask:linear-gradient(#000,#000);transform:rotate(3.6deg);border-radius:3%}
@keyframes sv-sheen{0%{background-position:120% 0}45%,100%{background-position:-60% 0}}
.sv-flame{position:absolute;left:2%;bottom:6%;width:34%;aspect-ratio:1;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(255,196,110,.55) 0%,rgba(255,150,60,.22) 30%,transparent 66%);mix-blend-mode:screen;animation:sv-flicker 3.2s steps(1,end) infinite,sv-breathe 5s ease-in-out infinite}
@keyframes sv-flicker{0%{opacity:.85}12%{opacity:1}19%{opacity:.78}27%{opacity:.95}41%{opacity:.82}55%{opacity:1}63%{opacity:.88}78%{opacity:.97}90%{opacity:.8}}
@keyframes sv-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.sv-hero-txt{position:relative;z-index:2;text-align:center;padding:0 22px;margin-top:-90px}
.sv-pre{font:500 12px/1.4 var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--champ);opacity:.85}
.sv-title{margin:14px 0 0;font:300 clamp(54px,15vw,124px)/.92 var(--serif);letter-spacing:-.01em;color:#F4E9DA;text-shadow:0 10px 40px rgba(0,0,0,.6)}
.sv-title span{display:block}
.sv-title em{display:block;font-style:italic;font-weight:400;background:var(--foil);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;padding:0 .08em .06em;animation:sv-foil 9s ease-in-out infinite;filter:drop-shadow(0 6px 22px rgba(201,168,106,.25))}
@keyframes sv-foil{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.sv-sub{margin-top:18px;font:italic 400 clamp(19px,4.6vw,26px)/1.35 var(--serif);color:var(--rose)}
.sv-br{display:inline}
.sv-sub span{display:none}
.sv-rule{display:block;width:120px;height:1px;margin:22px auto;background:linear-gradient(90deg,transparent,var(--champ),transparent)}
.sv-tag{font:300 clamp(22px,5.4vw,32px)/1.3 var(--serif);color:#F4E9DA}
.sv-ctas{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:30px}
.sv-ctas .btn{min-width:min(100%,320px)}
.sv-note{margin-top:16px;font:500 11px/1.4 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:rgba(233,210,154,.7)}
.sv-down{display:none}

/* ---------- la carte coupée en deux ---------- */
.sv-scene{overflow:clip}
.sv-stage{position:relative;display:grid;justify-items:center;gap:36px;padding:90px 22px}
.sv-card{--p:1;position:relative;width:min(62vw,340px);aspect-ratio:840/1436}
.sv-half{position:absolute;inset:0;border-radius:4.5%;overflow:hidden;filter:drop-shadow(0 30px 60px rgba(0,0,0,.65));transition:transform .1s linear;will-change:transform}
.sv-half img{width:100%;height:100%;object-fit:cover;border-radius:4.5%}
.sv-l{clip-path:polygon(0 0,51.5% 0,48% 6%,52.5% 12%,47.5% 19%,51% 26%,46.5% 33%,52% 40%,48% 47%,53% 54%,47% 61%,51.5% 68%,47.5% 75%,52.5% 82%,48% 89%,51% 95%,49% 100%,0 100%);transform:translateX(calc((1 - var(--p)) * -46%)) translateY(calc((1 - var(--p)) * 4%)) rotate(calc((1 - var(--p)) * -11deg))}
.sv-r{clip-path:polygon(51.5% 0,100% 0,100% 100%,49% 100%,51% 95%,48% 89%,52.5% 82%,47.5% 75%,51.5% 68%,47% 61%,53% 54%,48% 47%,52% 40%,46.5% 33%,51% 26%,47.5% 19%,52.5% 12%,48% 6%);transform:translateX(calc((1 - var(--p)) * 46%)) translateY(calc((1 - var(--p)) * -3%)) rotate(calc((1 - var(--p)) * 9deg))}
.sv-seam{position:absolute;left:46%;top:0;width:8%;height:100%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,236,190,.55),transparent);filter:blur(3px);opacity:clamp(0,calc((var(--p) - .9) * 10),1);mix-blend-mode:screen}
.sv-halo{position:absolute;inset:-18%;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(233,210,154,.28),rgba(179,20,46,.12) 45%,transparent 70%);opacity:clamp(0,calc((var(--p) - .8) * 5),1);transform:scale(calc(.8 + var(--p) * .2))}
.sv-beats{list-style:none;margin:0;padding:0;max-width:520px;display:grid;gap:26px;text-align:center}
.sv-beat{font:300 clamp(24px,6vw,36px)/1.28 var(--serif);color:#F4E9DA}
.sv-beat em{font-style:italic;color:var(--champ)}
.sv-n{display:block;margin-bottom:8px;font:500 12px var(--sans);letter-spacing:.34em;color:var(--rose)}
/* animée (JS, sans « réduire les animations ») */
.sv-anim .sv-scene{height:300vh;overflow:visible}
.sv-anim .sv-stage{position:sticky;top:0;height:100vh;height:100svh;padding:70px 22px 30px;align-content:center;grid-template-rows:auto auto;gap:26px}
.sv-anim .sv-card{width:min(54vw,300px,40svh)}
.sv-anim .sv-beats{position:relative;min-height:6.4em;width:100%}
.sv-anim .sv-beat{position:absolute;inset:0 0 auto;opacity:0;transform:translateY(14px);transition:opacity .7s,transform .7s var(--ease)}
.sv-anim .sv-beat.on{opacity:1;transform:none}
.sv-anim .sv-card.joined .sv-halo{animation:sv-pulse 3.4s ease-in-out infinite}
@keyframes sv-pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.5)}}

/* ---------- sections ---------- */
.sv-sec{padding:100px 20px 90px;text-align:center;overflow:hidden}
.sv-sec .sec-h,.sv-devis .sec-h{position:relative;max-width:720px;margin:0 auto}
.sv-orn{display:block;width:180px;height:14px;margin:0 auto 18px;background:linear-gradient(90deg,transparent,var(--champ) 40%,transparent 40%,transparent 60%,var(--champ) 60%,transparent) center/100% 1px no-repeat;position:relative}
.sv-orn:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border:1px solid var(--champ);transform:translate(-50%,-50%) rotate(45deg)}
.p-sv h2{font:300 clamp(36px,8vw,64px)/1.05 var(--serif);color:#F4E9DA}
.p-sv h2 em{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.p-sv .kick{color:var(--champ)}
.sv-three{display:grid;gap:16px;max-width:1080px;margin:46px auto 0}
.sv-way{position:relative;padding:38px 26px 32px;border:1px solid rgba(233,210,154,.24);border-radius:4px;background:linear-gradient(165deg,rgba(90,15,30,.55),rgba(26,6,12,.9));box-shadow:0 30px 60px rgba(0,0,0,.35)}
.sv-way-c{border-color:rgba(233,210,154,.55);box-shadow:0 30px 70px rgba(0,0,0,.45),0 0 50px rgba(201,168,106,.12)}
.sv-rn{display:block;font:italic 300 54px/1 var(--serif);background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent}
.sv-way h3{margin-top:12px;font:400 30px/1.1 var(--serif);color:#F4E9DA}
.sv-way p{margin-top:10px;color:#CDBFB0;font-size:16px}
.sv-free{max-width:640px;margin:34px auto 0;font:italic 400 20px/1.5 var(--serif);color:var(--rose)}
.sv-fort{position:relative;overflow:hidden;padding:130px 22px;text-align:center;background:radial-gradient(60% 70% at 20% 70%,rgba(255,170,80,.16),transparent 60%),#0D0306}
.sv-fort-bg{position:absolute;left:-6%;bottom:-8%;width:min(70vw,520px);opacity:.42;filter:blur(1px) saturate(1.1);-webkit-mask:radial-gradient(closest-side,#000 40%,transparent);mask:radial-gradient(closest-side,#000 40%,transparent)}
.sv-fort-bg img{width:100%;height:auto}
.sv-quote{position:relative;max-width:900px;margin:0 auto}
.sv-quote blockquote p{margin-top:18px;font:italic 300 clamp(36px,8.4vw,78px)/1.08 var(--serif);color:#F4E9DA}
.sv-quote blockquote em{background:var(--foil);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sv-foil 10s ease-in-out infinite}
.sv-quote figcaption{max-width:560px;margin:26px auto 0;color:#CDBFB0}
.sv-lieu-in{display:grid;gap:34px;max-width:1080px;margin:46px auto 0;align-items:center}
.sv-masque{margin:0 auto;width:min(78vw,380px);border-radius:4px;overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.6),0 0 0 1px rgba(233,210,154,.25)}
.sv-masque img{display:block;width:100%;height:auto}
.sv-gets{list-style:none;margin:0;padding:0;display:grid;gap:0;text-align:left}
.sv-gets li{padding:20px 0;border-top:1px solid rgba(233,210,154,.16);color:#CDBFB0;font-size:16px;line-height:1.6}
.sv-gets li:last-child{border-bottom:1px solid rgba(233,210,154,.16)}
.sv-gets b{display:block;margin-bottom:4px;font:400 25px/1.2 var(--serif);color:#F4E9DA}
.sv-promise{max-width:700px;margin:46px auto 0;font:300 clamp(22px,4.8vw,30px)/1.4 var(--serif);color:#E6D8C6}
.sv-promise em{color:var(--champ)}
.sv-credits{display:grid;gap:34px;max-width:900px;margin:50px auto 0}
.sv-col h3{font:500 12px var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--champ)}
.sv-col ul{list-style:none;margin:16px 0 0;padding:0}
.sv-col li{padding:7px 0;font:400 21px/1.35 var(--serif);color:#F4E9DA}
.sv-col i{color:var(--rose)}
.sv-credits-sep{display:block;width:1px;height:60px;margin:0 auto;background:linear-gradient(transparent,var(--champ),transparent)}
.sv-reel{list-style:none;max-width:680px;margin:70px auto 0;padding:0 0 0 22px;text-align:left;border-left:1px solid rgba(233,210,154,.28)}
.sv-reel li{position:relative;padding:0 0 26px 18px}
.sv-reel li:before{content:"";position:absolute;left:-27px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--nuit);border:1px solid var(--champ)}
.sv-reel time{display:block;font:500 12px var(--sans);letter-spacing:.24em;color:var(--champ);font-variant-numeric:tabular-nums}
.sv-reel b{display:block;margin-top:4px;font:400 24px/1.2 var(--serif);color:#F4E9DA}
.sv-reel span{display:block;margin-top:4px;color:#CDBFB0;font-size:15px}
.sv-fine{max-width:680px;margin:20px auto 0;font-size:14px;color:#A89A8C}
.sv-devis{position:relative;z-index:3;background:radial-gradient(70% 60% at 50% 0%,rgba(122,20,42,.45),transparent 65%),#12040A}
.sv-legal{max-width:640px;margin:26px auto 0;padding:0 20px;text-align:center;font-size:13px;color:#A89A8C}
.sv-back{text-align:center;margin-top:18px}
.p-sv footer{position:relative;z-index:3}
@media (min-width:700px){
 .sv-three{grid-template-columns:repeat(3,1fr);gap:20px}
 .sv-way-c{transform:translateY(-10px)}
 .sv-credits{grid-template-columns:1fr auto 1fr;align-items:start}
 .sv-credits-sep{height:100%;min-height:220px}
 .sv-col:first-child{text-align:right}
 .sv-col:last-child{text-align:left}
}
@media (min-width:960px){
 .sv-hero{grid-template-columns:1fr minmax(0,46vw);align-items:center;padding:100px 5vw 60px;gap:4vw}
 .sv-hero-art{order:2;max-width:none;padding:0}
 .sv-frame{max-height:84vh;aspect-ratio:1440/2037;width:auto;margin-left:auto}
 .sv-frame img{height:100%;max-height:84vh;width:auto}
 .sv-hero-txt{order:1;margin:0;text-align:left;padding:0}
 .sv-rule{margin:26px 0;background:linear-gradient(90deg,var(--champ),transparent)}
 .sv-br{display:none}.sv-sub span{display:inline}
 .sv-ctas{flex-direction:row;align-items:flex-start}
 .sv-ctas .btn{min-width:0}
 .sv-down{display:block;position:absolute;left:50%;bottom:22px;width:22px;height:36px;border:1px solid rgba(233,210,154,.5);border-radius:12px}
 .sv-down span{position:absolute;left:50%;top:7px;width:2px;height:7px;margin-left:-1px;background:var(--champ);border-radius:1px;animation:sv-wheel 2s ease-in-out infinite}
 @keyframes sv-wheel{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
 .sv-anim .sv-stage{grid-template-columns:auto minmax(0,460px);grid-template-rows:none;justify-content:center;gap:7vw}
 .sv-anim .sv-card{width:min(30vw,360px,62vh)}
 .sv-anim .sv-beats{text-align:left;min-height:8em}
 .sv-stage{grid-template-columns:auto minmax(0,460px);justify-content:center;align-items:center;gap:7vw}
 .sv-beats{text-align:left}
 .sv-lieu-in{grid-template-columns:380px 1fr;gap:70px}
 .sv-fort{padding:170px 22px}
}
@media (prefers-reduced-motion:reduce){
 .sv-sheen,.sv-down span{animation:none;display:none}
 .sv-flame{animation:none;opacity:.9}
 .sv-title em,.sv-quote blockquote em{animation:none}
 .sv-half{transition:none}
}
