.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:0;left:50%;transform:translateX(-50%);width:auto;height:auto;padding:.8rem 1.5rem;margin:0;overflow:visible;clip:auto;white-space:normal;background:var(--burgundy);color:var(--gold);font-family:"Montserrat",sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;z-index:99999;border-radius:0 0 4px 4px}
:root{
  --or-bohem:#dbb778;          
  --noir-bohem:#242221;        
  --brun-luberon:#a86c3a;      
  --rouge-prune:#452724;       
  --beige-argile:#d7ccb8;      
  --burgundy:#452724;
  --burgundy-deep:#452724;
  --burgundy-light:#a86c3a;
  --gold:#dbb778;
  --gold-light:#e5cc9a;
  --gold-pale:#d7ccb8;
  --cream:#ede8df;
  --cream-dark:#d7ccb8;
  --white:#f7f4ef;
  --black:#242221;
  --text-dark:#242221;
  --text-muted:#6b5f52;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;overflow-x:hidden}
@font-face{font-family:'Alta';src:url('../fonts/Alta_light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Alta';src:url('../fonts/Alta_regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Alta';src:url('../fonts/Alta_caption.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-300i.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-400i.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/Montserrat-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
body{font-family:'Montserrat',sans-serif;background:var(--white);color:var(--text-dark);overflow-x:hidden;cursor:none}
::selection{background:var(--gold);color:var(--burgundy-deep)}
a,button,input,select,textarea{cursor:none}
img{max-width:100%;height:auto}
.cursor{position:fixed;top:0;left:0;width:12px;height:12px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:99999;mix-blend-mode:difference;transition:width .3s,height .3s,background .3s;transform:translate(-50%,-50%)}
.cursor-follower{position:fixed;top:0;left:0;width:40px;height:40px;border:1px solid var(--gold);border-radius:50%;pointer-events:none;z-index:99998;opacity:.5;transition:width .4s,height .4s,opacity .4s;transform:translate(-50%,-50%)}
.cursor.hover{width:60px;height:60px;background:rgba(219,183,120,.15);mix-blend-mode:normal}
.cursor-follower.hover{width:70px;height:70px;opacity:.8}
.cursor.img-hover{width:80px;height:80px;background:var(--gold);mix-blend-mode:normal;opacity:.12}
.cursor-follower.img-hover{width:90px;height:90px;opacity:.3}
.loader{position:fixed;inset:0;background:#452724;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;animation:loaderFallback 0s 4s forwards}
@keyframes loaderFallback{to{opacity:0;visibility:hidden;pointer-events:none}}
.loader-logo{font-family:'Alta',serif;font-size:clamp(3rem,6vw,5rem);font-weight:300;color:var(--gold);letter-spacing:.12em;opacity:0}
.loader-sub{font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-pale);opacity:0}
.loader-line{width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1.8rem 3.5rem;display:flex;align-items:center;justify-content:space-between;transition:padding .5s,background .5s}
.nav.scrolled{background:rgba(69,39,36,.94);backdrop-filter:blur(20px);padding:1rem 3.5rem;box-shadow:0 4px 40px rgba(0,0,0,.12)}
.nav-logo{display:flex;align-items:center;text-decoration:none;transition:opacity .3s;gap:10px}
.nav-logo:hover{opacity:.8}
.nav-links{display:flex;align-items:center;gap:2.5rem;list-style:none}
.nav-links a{font-family:'Montserrat',sans-serif;font-size:.68rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-pale);text-decoration:none;position:relative;transition:color .3s;padding:.2rem 0}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--gold);transition:width .5s cubic-bezier(.25,.46,.45,.94)}
.nav-links a:hover{color:var(--gold)}
.nav-links a:hover::after{width:100%}
.nav-links a.active{color:var(--gold)}
.nav-links a.active::after{width:100%}
.nav-cta{font-size:.65rem!important;font-weight:500!important;letter-spacing:.35em!important;color:var(--burgundy-deep)!important;background:var(--gold);padding:.85rem 2.2rem;position:relative;overflow:hidden;transition:all .5s}
.nav-cta::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s}
.nav-cta:hover::before{left:100%}
.nav-cta:hover{background:var(--gold-light);transform:translateY(-1px)}
.nav-cta::after{display:none!important}
.nav-hamburger{display:none;flex-direction:column;cursor:none;z-index:1002;position:relative;width:30px;height:20px}
.nav-hamburger span{width:30px;height:1px;background:var(--gold);transition:all .4s;position:absolute;left:0}
.nav-hamburger span:nth-child(1){top:0}
.nav-hamburger span:nth-child(2){top:50%}
.nav-hamburger span:nth-child(3){top:100%}
.nav-hamburger.active span:nth-child(1){top:50%;transform:rotate(45deg)}
.nav-hamburger.active span:nth-child(2){opacity:0}
.nav-hamburger.active span:nth-child(3){top:50%;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;background:var(--burgundy-deep);z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;opacity:0;visibility:hidden;transition:all .6s}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu a{font-family:'Alta',serif;font-size:2rem;font-weight:300;color:var(--gold);text-decoration:none;letter-spacing:.08em;opacity:0;transform:translateY(30px);transition:all .4s}
.mobile-menu.open a{opacity:1;transform:translateY(0)}
.mobile-menu.open a:nth-child(1){transition-delay:.1s}
.mobile-menu.open a:nth-child(2){transition-delay:.15s}
.mobile-menu.open a:nth-child(3){transition-delay:.2s}
.mobile-menu.open a:nth-child(4){transition-delay:.25s}
.mobile-menu.open a:nth-child(5){transition-delay:.3s}
.hero{height:100vh;min-height:750px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-bg{position:absolute;inset:-5%;background-size:cover;background-position:center 30%;background-repeat:no-repeat;will-change:transform}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(69,39,36,.6) 0%,rgba(69,39,36,.45) 30%,rgba(69,39,36,.5) 60%,rgba(69,39,36,.7) 100%);z-index:1}
.hero-grain{position:absolute;inset:0;z-index:2;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat}
.hero-content{position:relative;z-index:3;text-align:center;padding:0 2rem;width:100%}
.hero-eyebrow{font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:400;letter-spacing:.55em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem;overflow:hidden}
.hero-eyebrow-inner,.hero-title-inner,.hero-subtitle-inner{display:inline-block}
.hero-title{font-family:'Alta',serif;font-size:clamp(3.5rem,9vw,8rem);font-weight:300;letter-spacing:.1em;line-height:1;color:var(--cream);overflow:hidden}
.hero-subtitle{font-family:'Montserrat',sans-serif;font-size:.7rem;font-weight:300;letter-spacing:.65em;text-transform:uppercase;color:var(--gold);margin-top:.8rem;margin-bottom:3rem;overflow:hidden}
.hero-tagline{font-family:'Montserrat',sans-serif;font-size:clamp(.85rem,1.5vw,1.05rem);font-weight:300;font-style:italic;color:var(--gold-pale);max-width:520px;margin:0 auto 2.5rem;line-height:1.9}
.hero-cta,.btn-primary{display:inline-block;font-family:'Montserrat',sans-serif;font-size:.68rem;font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:var(--burgundy-deep);background:var(--gold);padding:1.2rem 3.8rem;text-decoration:none;position:relative;overflow:hidden;transition:all .5s}
.hero-cta::before,.btn-primary::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:left .7s}
.hero-cta:hover::before,.btn-primary:hover::before{left:100%}
.hero-cta:hover,.btn-primary:hover{background:var(--cream);box-shadow:0 10px 40px rgba(0,0,0,.2)}
.hero-scroll{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.8rem;color:var(--gold);z-index:3}
.hero-scroll span{font-family:'Montserrat',sans-serif;font-size:.55rem;letter-spacing:.35em;text-transform:uppercase}
.hero-scroll-line{width:1px;height:50px;position:relative;overflow:hidden}
.hero-scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:1px;height:100%;background:var(--gold);animation:scrollLine 2.2s cubic-bezier(.65,0,.35,1) infinite}
@keyframes scrollLine{0%{top:-100%}50%{top:0}100%{top:100%}}
.page-hero{height:50vh;min-height:400px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.page-hero .hero-overlay{background:linear-gradient(180deg,rgba(69,39,36,.5) 0%,rgba(69,39,36,.65) 100%)}
.marquee-wrap{background:var(--burgundy-deep);padding:1.8rem 0;overflow:hidden;border-top:1px solid rgba(219,183,120,.12);border-bottom:1px solid rgba(219,183,120,.12)}
.marquee{display:flex;gap:3.5rem;width:max-content;will-change:transform}
.marquee-item{font-family:'Alta',serif;font-size:1rem;font-weight:300;font-style:italic;color:var(--gold);white-space:nowrap;opacity:.5}
.marquee-dot{color:var(--gold);opacity:.2;font-size:.7rem;display:flex;align-items:center}
.section{padding:9rem 3.5rem}
.section-dark{background:var(--burgundy-deep);color:var(--cream)}
.section-cream{background:var(--cream)}
.section-eyebrow{font-family:'Montserrat',sans-serif;font-size:.6rem;font-weight:400;letter-spacing:.55em;text-transform:uppercase;color:var(--gold);margin-bottom:1.8rem}
.section-title{font-family:'Alta',serif;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:300;letter-spacing:.04em;line-height:1.2;margin-bottom:2rem}
.section-title .line{display:block;overflow:hidden}
.section-title .line-inner{display:inline-block}
.section-text{font-family:'Montserrat',sans-serif;font-size:.92rem;font-weight:300;line-height:2;color:var(--text-muted);max-width:500px}
.section-dark .section-text{color:var(--gold-pale);opacity:.8}
.section-link{display:inline-flex;align-items:center;gap:1rem;font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);text-decoration:none;margin-top:3rem;transition:gap .4s}
.section-link:hover{gap:1.8rem}
.section-link-line{width:35px;height:1px;background:var(--gold);transition:width .4s}
.section-link:hover .section-link-line{width:50px}
.divider{display:flex;align-items:center;gap:1.5rem;padding:.5rem 0 1.5rem}
.divider-line{width:50px;height:1px;background:var(--gold);opacity:.35}
.divider-diamond{width:5px;height:5px;border:1px solid var(--gold);transform:rotate(45deg);opacity:.45}
.divider-center{justify-content:center}
.hotel-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;align-items:center}
.hotel-image-wrap{position:relative;overflow:hidden;aspect-ratio:3/4}
.hotel-image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.25,.46,.45,.94)}
.hotel-image-wrap:hover img{transform:scale(1.04)}
.hotel-image-reveal{position:absolute;inset:0;background:var(--burgundy-deep);transform-origin:top;z-index:2}
.hotel-image-accent{position:absolute;bottom:-25px;right:-25px;width:180px;height:180px;border:1px solid var(--gold);opacity:0;pointer-events:none}
.parallax-banner{height:70vh;min-height:450px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.parallax-banner-bg{position:absolute;inset:-30%;background-size:cover;background-position:center 30%;background-repeat:no-repeat;will-change:transform}
.parallax-banner-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(69,39,36,.5) 0%,rgba(69,39,36,.6) 100%);z-index:1}
.parallax-banner-content{position:relative;z-index:2;text-align:center;max-width:650px;padding:0 2rem}
.parallax-banner-content .section-title{color:var(--cream)}
.rooms-grid{max-width:1280px;margin:0 auto}
.rooms-header{text-align:center;margin-bottom:5rem}
.rooms-header .section-text{margin:1rem auto 0}
.rooms-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.room-card{position:relative;overflow:hidden}
.room-card-image{aspect-ratio:3/4;overflow:hidden;position:relative}
.room-card-image img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.25,.46,.45,.94)}
.room-card:hover .room-card-image img{transform:scale(1.06)}
.room-card-image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(36,34,33,.4) 100%);opacity:0;transition:opacity .5s}
.room-card:hover .room-card-image-overlay{opacity:1}
.room-card-info{padding:1.5rem 0}
.room-card-name{font-family:'Alta',serif;font-size:1.6rem;font-weight:300;margin-bottom:.4rem;color:var(--cream);letter-spacing:.04em}
.room-card-detail{font-family:'Montserrat',sans-serif;font-size:.62rem;font-weight:300;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);opacity:.7}
.room-card-price{font-family:'Montserrat',sans-serif;font-size:.75rem;color:var(--gold-pale);margin-top:.4rem;opacity:.6}
.room-detail{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:5rem;align-items:center;padding:2rem 0}
.room-detail.reverse{direction:rtl}
.room-detail.reverse>*{direction:ltr}
.room-detail-images{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.room-detail-images.single{grid-template-columns:1fr}
.room-detail-images img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.room-detail-images img:first-child{grid-row:span 2;aspect-ratio:3/5}
.room-detail-images.landscape img{aspect-ratio:4/3}
.room-detail-images.landscape img:first-child{grid-row:span 1;aspect-ratio:4/3}
.room-detail-images.wide img{aspect-ratio:4/3}
.room-detail-images.wide img:first-child{grid-column:span 2;grid-row:span 1;aspect-ratio:16/9}
.room-amenities{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}
.room-amenity{font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:300;letter-spacing:.12em;color:var(--gold);border:1px solid rgba(219,183,120,.25);padding:.5rem 1.2rem;text-transform:uppercase}
.room-detail .btn-primary{margin-top:2.5rem}
.booking-bar{background:var(--white);padding:3rem 3.5rem;border-top:1px solid rgba(219,183,120,.15);border-bottom:1px solid rgba(219,183,120,.15)}
.booking-bar-inner{max-width:1100px;margin:0 auto;display:flex;align-items:end;gap:2rem;justify-content:center}
.booking-field{display:flex;flex-direction:column;gap:.5rem}
.booking-field label{font-family:'Montserrat',sans-serif;font-size:.55rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--text-muted)}
.booking-field input,.booking-field select{font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:300;padding:.85rem 1.3rem;border:1px solid var(--cream-dark);border-radius:0;background:transparent;color:var(--text-dark);min-width:175px;transition:border-color .4s;-webkit-appearance:none}
.booking-field input:focus,.booking-field select:focus{border-color:var(--gold)}
.booking-submit{font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--cream);background:var(--burgundy-deep);border:none;padding:1rem 2.5rem;cursor:none;transition:all .5s;white-space:nowrap;position:relative;overflow:hidden}
.booking-submit::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(219,183,120,.15),transparent);transition:left .6s}
.booking-submit:hover::before{left:100%}
.booking-submit:hover{background:var(--burgundy)}
.exp-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.15fr 1fr;gap:5rem;align-items:center}
.exp-images{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.exp-img{overflow:hidden;position:relative}
.exp-img:first-child{grid-row:span 2;aspect-ratio:2/3}
.exp-img:nth-child(2),.exp-img:nth-child(3){aspect-ratio:1/1}
.exp-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.25,.46,.45,.94)}
.exp-img:hover img{transform:scale(1.05)}
.exp-img-reveal{position:absolute;inset:0;background:var(--cream);transform-origin:left;z-index:2}
.services-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}
.service-card{text-align:center;padding:3rem 2rem}
.service-card-icon{font-size:2.5rem;margin-bottom:1.5rem;color:var(--gold)}
.service-card h3{font-family:'Alta',serif;font-size:1.4rem;font-weight:400;margin-bottom:1rem;color:var(--cream)}
.service-card p{font-family:'Montserrat',sans-serif;font-size:.82rem;font-weight:300;line-height:2;color:var(--text-muted)}
.gallery-grid{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,300px);gap:.8rem}
.gallery-item{overflow:hidden;position:relative}
.gallery-item:first-child{grid-column:span 2;grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.25,.46,.45,.94)}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item::after{content:'';position:absolute;inset:0;background:rgba(36,34,33,0);transition:background .5s}
.gallery-item:hover::after{background:rgba(36,34,33,.2)}
.quote-section{padding:10rem 3.5rem;background:var(--burgundy-deep);text-align:center;position:relative;overflow:hidden}
.quote-mark{font-family:'Alta',serif;font-size:clamp(8rem,15vw,18rem);color:var(--gold);opacity:.04;line-height:.6;position:absolute;top:3rem;left:50%;transform:translateX(-50%);pointer-events:none}
.quote-text{font-family:'Alta',serif;font-size:clamp(1.4rem,2.8vw,2.1rem);font-weight:300;font-style:italic;color:var(--cream);max-width:680px;margin:0 auto 2.5rem;line-height:1.7;position:relative;z-index:1}
.quote-author{font-family:'Montserrat',sans-serif;font-size:.6rem;font-weight:400;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);position:relative;z-index:1}
.contact-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
.contact-detail{font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:300;color:var(--text-muted);line-height:2.1}
.contact-detail strong{font-weight:500;color:var(--text-dark);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.contact-detail a{color:var(--gold);text-decoration:none;transition:color .3s}
.contact-detail a:hover{color:var(--burgundy)}
.section-dark .contact-detail{color:var(--gold-pale)}
.section-dark .contact-detail strong{color:var(--gold)}
.section-dark .contact-detail a{color:var(--gold-light)}
.contact-form{display:flex;flex-direction:column;gap:1.8rem}
.form-group{position:relative}
.form-group input,.form-group textarea{width:100%;font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:300;padding:1.1rem 0 .8rem;border:none;border-bottom:1px solid var(--cream-dark);background:transparent;color:var(--text-dark);transition:border-color .4s}
.section-dark .form-group input,.section-dark .form-group textarea{color:var(--cream);border-bottom-color:rgba(219,183,120,.2)}
.form-group label{position:absolute;top:0;left:0;font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);pointer-events:none;transition:all .3s;transform:translateY(1rem);opacity:.6}
.form-group input:focus~label,.form-group input:not(:placeholder-shown)~label,.form-group textarea:focus~label,.form-group textarea:not(:placeholder-shown)~label{transform:translateY(0);opacity:1;font-size:.55rem}
.form-group input:focus,.form-group textarea:focus{border-bottom-color:var(--gold)}
.form-group textarea{resize:vertical;min-height:80px}
.form-submit{align-self:flex-start;font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--cream);background:var(--burgundy-deep);border:none;padding:1.2rem 3.2rem;cursor:none;transition:all .5s;position:relative;overflow:hidden}
.form-submit::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(219,183,120,.12),transparent);transition:left .6s}
.form-submit:hover::before{left:100%}
.form-submit:hover{background:var(--burgundy)}
.footer{background:var(--burgundy-deep);padding:6rem 3.5rem 2.5rem;border-top:1px solid rgba(219,183,120,.08)}
.footer-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:4rem}
.footer-brand .nav-logo{display:inline-flex;margin-bottom:1.5rem}
.footer-brand p{font-family:'Montserrat',sans-serif;font-size:.82rem;font-weight:300;color:var(--gold-pale);line-height:1.9;max-width:290px;opacity:.5}
.footer-col h4{font-family:'Montserrat',sans-serif;font-size:.6rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem}
.footer-col a{display:block;font-family:'Montserrat',sans-serif;font-size:.82rem;font-weight:300;color:var(--gold-pale);text-decoration:none;margin-bottom:.9rem;opacity:.45;transition:opacity .4s}
.footer-col a:hover{opacity:1}
.footer-hotels{text-align:center;padding:2rem 0 0;max-width:1280px;margin:0 auto}
.footer-hotels p{font-family:'Montserrat',sans-serif;font-size:.6rem;font-weight:300;letter-spacing:.18em;color:var(--gold-pale);opacity:.3;margin-bottom:1rem}
.footer-hotels-links a{font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.2em;color:var(--gold);text-decoration:none;opacity:.4;transition:opacity .3s}
.footer-hotels-links a:hover{opacity:1}
.footer-hotels-links span{color:var(--gold);opacity:.15;margin:0 .6rem}
.footer-bottom{max-width:1280px;margin:2rem auto 0;padding-top:2rem;border-top:1px solid rgba(219,183,120,.08);display:flex;align-items:center;justify-content:space-between}
.footer-bottom p,.footer-bottom a{font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:300;color:var(--gold-pale);opacity:.3;text-decoration:none}
.footer-bottom a:hover{opacity:.7}
.footer-vesper{font-weight:400!important;letter-spacing:.25em;text-transform:uppercase;opacity:.45!important}
.footer-seo{max-width:900px;margin:3rem auto 0;padding:2.5rem 2rem;border-top:1px solid rgba(219,183,120,.06)}
.footer-seo h2{font-family:'Alta',serif;font-size:1.1rem;font-weight:400;color:var(--gold);letter-spacing:.08em;margin-bottom:1.2rem;text-align:center}
.footer-seo p{font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:300;color:var(--gold-pale);opacity:.35;line-height:2;text-align:center}
.footer-dev{text-align:center;padding:2rem 0 0;margin-top:1rem}
.footer-dev p{font-family:'Montserrat',sans-serif;font-size:.6rem;font-weight:300;letter-spacing:.12em;color:var(--gold-pale);opacity:.35;line-height:1.8}
.footer-dev a{color:var(--gold);opacity:.7;text-decoration:none;transition:opacity .3s}
.footer-dev a:hover{opacity:1}
.page-transition{position:fixed;inset:0;z-index:9999;pointer-events:none;animation:loaderFallback 0s 4.2s forwards}
.page-transition-panel{position:absolute;top:0;width:25%;height:100%;background:var(--burgundy-deep);transform:scaleY(0)}
.page-transition-panel:nth-child(1){left:0}
.page-transition-panel:nth-child(2){left:25%}
.page-transition-panel:nth-child(3){left:50%}
.page-transition-panel:nth-child(4){left:75%}

.read-more-wrap{max-height:0;overflow:hidden;opacity:0;transition:max-height .8s cubic-bezier(.25,.46,.45,.94),opacity .6s}
.read-more-wrap.open{max-height:600px;opacity:1}
.read-more-btn{display:inline-block;font-family:'Montserrat',sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);cursor:pointer;border:none;background:none;padding:.8rem 0;transition:color .3s;margin-top:.8rem}
.read-more-btn:hover{color:var(--gold-light)}
.read-more-btn::after{content:' +';transition:transform .3s}
.read-more-btn.open::after{content:' −'}
.booking-hero{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:4;width:92%;max-width:850px}
.booking-hero .booking-bar-inner{background:rgba(69,39,36,.8);backdrop-filter:blur(12px);padding:1.2rem 2rem;border:1px solid rgba(219,183,120,.12);display:flex;align-items:end;gap:1rem;justify-content:center;flex-wrap:wrap}
.booking-hero .booking-field label{color:var(--gold)}
.booking-hero .booking-field input,.booking-hero .booking-field select{background:rgba(255,255,255,.08);border-color:rgba(219,183,120,.2);color:var(--cream);min-width:120px;max-width:160px;padding:.7rem .8rem;font-size:.78rem}
.booking-hero .booking-field input:focus,.booking-hero .booking-field select:focus{border-color:var(--gold)}
.booking-hero .booking-submit{padding:.85rem 2rem}
.nav-contact{position:relative;z-index:2;padding:.85rem 0;font-size:.65rem!important;font-weight:400!important;letter-spacing:.28em!important;color:var(--gold-pale)!important;padding:.2rem 0;transition:color .3s}
.nav-contact:hover{color:var(--gold)!important}
.nav-contact::after{display:none!important}
.room-universe{display:flex;align-items:center;gap:.8rem;margin-bottom:.4rem}
.room-universe-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.room-universe-name{font-family:'Alta',serif;font-size:1rem;font-weight:300;letter-spacing:.04em}
.room-universe-desc{font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:300;color:var(--gold-pale);opacity:.6;margin-bottom:1.5rem;padding-left:18px;line-height:1.6}
.room-card a{text-decoration:none;color:inherit;display:block}
.room-card-info .room-card-name{transition:color .3s}
.room-card:hover .room-card-name{color:var(--gold)}
@media(max-width:1024px){
  .hotel-grid,.exp-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}
  .rooms-cards{grid-template-columns:repeat(2,1fr)}
  .room-detail{grid-template-columns:1fr;gap:3rem}
  .room-detail.reverse{direction:ltr}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,220px)}
  .gallery-item:first-child{grid-column:span 2;grid-row:span 1}
  .footer-grid{grid-template-columns:1fr 1fr}
  .booking-bar-inner{flex-wrap:wrap;gap:1.5rem}
}
@media(max-width:768px){
  .section{padding:5rem 1.5rem}
  .nav{padding:1.2rem 1.5rem}
  .nav.scrolled{padding:1rem 1.5rem}
  .nav-links{display:none}
  .nav-hamburger{display:flex}
  .cursor,.cursor-follower{display:none!important}
  body{cursor:auto}
  a,button,input,select,textarea{cursor:auto}
  .hero{min-height:100svh;height:auto;flex-direction:column;justify-content:center;gap:0;padding:5rem 0 1.5rem}
  .hero-bg{inset:0}
  .hero-content{padding:0 1.2rem}
  .hero-title{font-size:clamp(2.8rem,12vw,4.5rem);letter-spacing:.06em}
  .hero-eyebrow{font-size:.55rem;letter-spacing:.3em;margin-bottom:1.5rem}
  .hero-subtitle{font-size:.6rem;letter-spacing:.4em;margin-bottom:2rem}
  .hero-tagline{font-size:.78rem;margin-bottom:1rem;max-width:90vw}
  .booking-hero{position:relative;bottom:auto;left:auto;transform:none;width:100%;max-width:100%;margin-top:.8rem;padding:0 .8rem}
  .booking-hero .booking-bar-inner{display:grid;grid-template-columns:1fr 1fr;align-items:end;padding:1rem;gap:.6rem;background:rgba(69,39,36,.9)}
  .booking-hero .booking-field{width:100%}
  .booking-hero .booking-field input,.booking-hero .booking-field select{min-width:auto!important;max-width:none!important;width:100%!important;padding:.6rem .8rem;font-size:.8rem}
  .booking-hero .booking-submit{grid-column:1/-1;width:100%;text-align:center;padding:.8rem;white-space:normal;font-size:.6rem;margin-top:.2rem}
  .section-title{font-size:clamp(1.6rem,6vw,2.2rem)}
  .section-title .line{display:inline}
  .section-title .line-inner{display:inline}
  .section-title .line::after{content:' '}
  .hotel-grid{gap:2.5rem}
  .rooms-cards{grid-template-columns:1fr;max-width:380px;margin:0 auto}
  .services-grid{grid-template-columns:1fr}
  .room-detail{gap:2.5rem}
  .room-detail.reverse{direction:ltr}
  .room-detail-images{grid-template-columns:1fr}
  .room-detail-images img:first-child{grid-row:span 1;grid-column:span 1;aspect-ratio:4/3}
  .gallery-grid{grid-template-columns:1fr;grid-template-rows:repeat(5,200px)}
  .gallery-item:first-child{grid-column:span 1;grid-row:span 1}
  .footer-grid{grid-template-columns:1fr}
  .booking-bar{padding:2rem 1.5rem}
  .booking-bar-inner{flex-direction:column;align-items:stretch}
  .booking-field input,.booking-field select{min-width:auto;width:100%}
  .exp-images{grid-template-columns:1fr 1fr}
  .exp-img:first-child{grid-row:span 1;aspect-ratio:1/1}
  .footer-bottom{flex-direction:column;gap:1rem;text-align:center}
  .page-hero{height:40vh;min-height:300px}
}


.hero-logo-img{max-width:clamp(280px,45vw,500px);height:auto;margin-bottom:1.5rem}
@media(max-width:768px){.booking-hero .booking-field label{font-size:.5rem;letter-spacing:.25em;margin-bottom:.2rem}}
.section-cream .service-card h3{color:var(--noir-bohem)}
.section-cream .service-card p{color:var(--text-dark);opacity:.7}
.section-cream .service-card-icon{color:var(--rouge-prune)!important}.booking-field input:focus-visible,.booking-field select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.form-group input:focus-visible,.form-group textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.nav-lang{font-size:.65rem!important;font-weight:500!important;letter-spacing:.22em!important;color:var(--gold-pale)!important;padding:.6rem .9rem!important;margin-right:1rem;line-height:1;border:none!important;background:transparent!important;transition:color .35s}
.nav-lang:hover{color:var(--gold)!important;background:transparent!important}
.nav-lang::after{display:none!important}
.nav-lang::before{display:none!important}
.nav-cta::before{display:none!important}
.nav-cta{margin-left:.6rem}
.cursor-follower.hover{transition:width 0s,height 0s,opacity 0s}
.access-note{display:flex;align-items:flex-start;gap:.85rem;margin:1.75rem 0 0;padding:1rem 1.25rem;border-left:2px solid var(--gold);background:rgba(219,183,120,.06);font-size:.82rem;line-height:1.65;font-family:'Montserrat',sans-serif}
.access-note strong{color:var(--gold);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:.72rem}
.access-note sup{font-size:.65em;vertical-align:super}
.access-note-icon{font-size:1.35rem;color:var(--gold);line-height:1;flex-shrink:0;margin-top:-.05rem}
.section-dark .access-note{background:rgba(219,183,120,.09);color:var(--cream)}
