/* Location Lioran — couche de finition visuelle */
:root{--cursor-x:50vw;--cursor-y:50vh;--scroll-progress:0%;--ease-signature:cubic-bezier(.22,1,.36,1)}
::selection{background:var(--copper);color:#fff}
html{scroll-padding-top:92px}
body{overflow-x:hidden}
body:before{content:"";position:fixed;z-index:9998;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");mix-blend-mode:multiply}
.signature-progress{position:fixed;z-index:1001;left:0;top:0;width:var(--scroll-progress);height:2px;background:linear-gradient(90deg,#d39a65,#f0cda9);box-shadow:0 0 15px rgba(211,154,101,.45);pointer-events:none}
.header{position:fixed!important;transition:background .45s var(--ease-signature),box-shadow .45s var(--ease-signature),transform .45s var(--ease-signature),backdrop-filter .45s}
.header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);opacity:.7}
body.is-scrolled .header{background:rgba(8,35,30,.82);box-shadow:0 14px 40px rgba(5,25,21,.13);backdrop-filter:blur(18px) saturate(135%)}
body.is-scrolled .header .nav{height:76px;border-bottom-color:transparent}
.nav{transition:height .45s var(--ease-signature)}
.brand-main{position:relative}.brand-main:after{content:"";position:absolute;left:50%;bottom:-5px;width:24px;height:1px;background:var(--copper);transform:translateX(-50%);transition:width .35s var(--ease-signature)}.brand:hover .brand-main:after{width:52px}
.nav-link{position:relative}.nav-link:before{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:1px;background:var(--copper);transition:right .35s var(--ease-signature)}.nav-link:hover:before,.nav-link.is-current:before{right:0}.nav-link.is-current{color:#ecc6a1;opacity:1}
.book-top{overflow:hidden;position:relative;transition:color .35s,border-color .35s}.book-top:before{content:"";position:absolute;z-index:-1;inset:0;background:var(--copper);transform:translateY(102%);transition:transform .4s var(--ease-signature)}.book-top:hover:before{transform:none}.book-top:hover{border-color:var(--copper)}
.button,.read-more,.ski-text-link,.apartment-link{will-change:transform}
.button{position:relative;overflow:hidden;transition:transform .4s var(--ease-signature),background .3s,color .3s,border-color .3s,box-shadow .3s}.button:after{content:"";position:absolute;top:-50%;left:-80%;width:45%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:left .65s var(--ease-signature)}.button:hover:after{left:135%}.button:hover{box-shadow:0 14px 30px rgba(10,45,38,.16)}
.room,.article-card,.feature-card,.webcam-card,.calendar-panel{transition:transform .55s var(--ease-signature),box-shadow .55s var(--ease-signature)}.room:hover,.article-card:hover,.feature-card:hover,.webcam-card:hover{transform:translateY(-7px);box-shadow:0 28px 65px rgba(8,36,30,.15)}
.room:before{content:"";position:absolute;z-index:2;inset:14px;border:1px solid rgba(255,255,255,.0);pointer-events:none;transition:border-color .45s}.room:hover:before{border-color:rgba(255,255,255,.3)}
.media-frame,.gallery-grid figure,.apartment-story__image,.ski-panorama__image{position:relative}.media-frame:after,.gallery-grid figure:after,.apartment-story__image:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 48%,rgba(255,255,255,.12) 56%,transparent 64%);transform:translateX(-140%);transition:transform 1s var(--ease-signature)}.media-frame:hover:after,.gallery-grid figure:hover:after,.apartment-story__image:hover:after{transform:translateX(140%)}
.kicker:before{transform-origin:left;animation:signature-line 1.1s var(--ease-signature) both}@keyframes signature-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.signature-ready [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-signature),transform .8s var(--ease-signature)}.signature-ready [data-reveal="left"]{transform:translateX(-34px)}.signature-ready [data-reveal="right"]{transform:translateX(34px)}.signature-ready [data-reveal].is-visible{opacity:1;transform:none}
.signature-ready [data-reveal-delay="1"]{transition-delay:.08s}.signature-ready [data-reveal-delay="2"]{transition-delay:.16s}.signature-ready [data-reveal-delay="3"]{transition-delay:.24s}
.signature-spotlight{position:fixed;z-index:9997;left:var(--cursor-x);top:var(--cursor-y);width:360px;height:360px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(202,142,87,.075),transparent 67%);transform:translate(-50%,-50%);mix-blend-mode:multiply}
.facts,.numbers,.ski-numbers,.apartment-facts{position:relative}.facts:after,.numbers:after,.ski-numbers:after,.apartment-facts:after{content:"";position:absolute;left:0;bottom:-1px;width:var(--scroll-accent,0%);height:1px;background:var(--copper);transition:width 1.2s var(--ease-signature)}.is-visible .facts:after,.facts.is-visible:after,.is-visible .numbers:after,.numbers.is-visible:after,.is-visible .ski-numbers:after,.ski-numbers.is-visible:after,.is-visible .apartment-facts:after,.apartment-facts.is-visible:after{--scroll-accent:100%}
@media(pointer:fine) and (min-width:981px){a,button{cursor:pointer}.signature-cursor{position:fixed;z-index:10000;left:0;top:0;width:9px;height:9px;border-radius:50%;background:var(--copper);pointer-events:none;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s;mix-blend-mode:difference}.signature-cursor.is-active{width:34px;height:34px;background:#fff}}
@media(max-width:980px){body.is-scrolled .header .nav{height:70px}.header:after{opacity:.35}.nav.is-open .nav-link.is-current{color:#efbd8f}.signature-spotlight{display:none}}
@media(max-width:680px){html{scroll-padding-top:76px}.signature-ready [data-reveal]{transform:translateY(18px)}.signature-progress{height:2px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.signature-ready [data-reveal]{opacity:1;transform:none;transition:none}.kicker:before{animation:none}.signature-cursor,.signature-spotlight{display:none}.button,.room,.article-card,.feature-card,.webcam-card{transition:none}}
