/* Les Gardes — homepage (same visual language as the Journal) */
:root{
  --stone:#ECE6D9;
  --paper:#F6F2EA;
  --stone-deep:#DCD3BF;
  --ink:#2A2A33;
  --ink-soft:rgba(42,42,51,0.74);
  --pine:#445A3C;
  --pine-deep:#2E3F28;
  --gold:#A9803F;
  --line:rgba(42,42,51,0.14);
  --cream:#FBF8F1;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{background:var(--paper);color:var(--ink);font-family:'Work Sans',sans-serif;font-weight:300;line-height:1.75;font-size:1.0625rem;}
img,video{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:300;letter-spacing:0.02em;line-height:1.12;text-wrap:balance;}
.eyebrow{font-size:0.7rem;letter-spacing:0.32em;text-transform:uppercase;font-weight:400;color:var(--gold);}
.rule{width:48px;height:1px;background:var(--gold);margin:1.8rem auto;}
a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* TOP BAR */
.topbar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1.6rem 5vw;color:var(--cream);}
.topbar a{text-decoration:none;}
.brand{font-family:'Cormorant Garamond',serif;font-size:1.35rem;letter-spacing:0.28em;text-transform:uppercase;font-weight:400;}
.topbar nav{display:flex;align-items:center;gap:1.8rem;font-size:0.72rem;letter-spacing:0.24em;text-transform:uppercase;}
.topbar nav a{opacity:0.85;padding-bottom:3px;border-bottom:1px solid transparent;}
.topbar nav a:hover,.topbar nav a.active{opacity:1;border-bottom-color:currentColor;}
.topbar .langs{display:flex;gap:0.9rem;padding-left:1.6rem;border-left:1px solid rgba(251,248,241,0.35);}

/* HERO */
.hero{position:relative;min-height:92vh;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;text-align:center;padding:0 6vw 11vh;color:var(--cream);background:#1b1d16;}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,16,12,0.45) 0%,rgba(15,16,12,0.12) 35%,rgba(15,16,12,0.78) 100%);}
.hero::before{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(900px,120%);height:70%;z-index:1;background:radial-gradient(ellipse at 50% 75%,rgba(12,13,10,0.5) 0%,rgba(12,13,10,0) 70%);}
.hero-inner{position:relative;z-index:2;max-width:820px;display:flex;flex-direction:column;align-items:center;}
.hero .mark{width:64px;height:auto;margin-bottom:1.4rem;box-shadow:0 2px 18px rgba(0,0,0,0.3);}
.hero .eyebrow{color:rgba(251,248,241,0.88);}
.hero h1{font-size:clamp(3.4rem,9vw,6.6rem);margin:0.9rem 0 1.1rem;letter-spacing:0.06em;text-shadow:0 1px 20px rgba(0,0,0,0.4);}
.hero p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.2rem,2.1vw,1.5rem);color:rgba(251,248,241,0.92);max-width:38ch;line-height:1.5;text-shadow:0 1px 18px rgba(0,0,0,0.45);}
.opening{margin-top:2.2rem;display:flex;align-items:center;gap:1rem;font-size:0.72rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--cream);}
.opening::before,.opening::after{content:"";width:36px;height:1px;background:var(--gold);}

/* INTRO */
.intro{max-width:700px;margin:0 auto;padding:13vh 6vw 9vh;text-align:center;}
.intro h2{font-size:clamp(2rem,3.8vw,2.9rem);margin-top:1rem;}
.intro p{color:var(--ink-soft);}

/* FEATURES */
.features{display:grid;grid-template-columns:repeat(4,1fr);max-width:1180px;margin:0 auto 14vh;padding:0 6vw;}
.feature{text-align:center;padding:2.4rem 1.4rem;}
.feature + .feature{border-left:1px solid var(--line);}
.feature svg{width:30px;height:30px;margin:0 auto 1.2rem;stroke:var(--pine-deep);}
.feature .num{display:block;font-size:0.66rem;letter-spacing:0.26em;text-transform:uppercase;color:var(--gold);margin-bottom:0.5rem;}
.feature h3{font-size:1.6rem;margin-bottom:0.5rem;}
.feature p{font-size:0.92rem;color:var(--ink-soft);line-height:1.6;}

/* POOL VIDEO */
.pool{position:relative;height:80vh;min-height:440px;max-height:760px;overflow:hidden;background:#12140f;}
.pool video{width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.pool-caption{position:absolute;left:0;right:0;bottom:0;text-align:center;color:var(--cream);padding:5rem 6vw 3rem;background:linear-gradient(180deg,rgba(12,14,9,0) 0%,rgba(12,14,9,0.6) 60%,rgba(12,14,9,0.82) 100%);}
.pool-caption .eyebrow{color:rgba(251,248,241,0.85);}
.pool-caption h2{font-size:clamp(1.7rem,3.2vw,2.6rem);margin-top:0.8rem;}

/* ROOMS */
.rooms{max-width:1180px;margin:0 auto;padding:16vh 6vw;display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;align-items:center;}
.rooms .photo{aspect-ratio:4/5;overflow:hidden;background:var(--stone-deep);}
.rooms .photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.rooms h2{font-size:clamp(2rem,3.6vw,2.8rem);margin:1rem 0 1.4rem;}
.rooms p{color:var(--ink-soft);margin-bottom:2rem;}
.room-list{list-style:none;margin-bottom:2.4rem;border-top:1px solid var(--line);}
.room-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.05rem 0;border-bottom:1px solid var(--line);}
.room-list li span:first-child{font-family:'Cormorant Garamond',serif;font-size:1.4rem;line-height:1.3;}
.room-list li span:last-child{font-size:0.66rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold);}
.btn{display:inline-block;padding:1rem 2.4rem;border:1px solid var(--ink);color:var(--ink);text-decoration:none;font-size:0.72rem;letter-spacing:0.28em;text-transform:uppercase;transition:background .3s ease,color .3s ease;}
.btn:hover{background:var(--ink);color:var(--paper);}
.btn.solid{background:var(--ink);color:var(--paper);}
.btn.solid:hover{background:var(--pine-deep);border-color:var(--pine-deep);}

/* REGION */
.region{background:var(--stone);padding:14vh 6vw;}
.region-head{max-width:680px;margin:0 auto 4.5rem;text-align:center;}
.region-head h2{font-size:clamp(2rem,3.6vw,2.8rem);margin-top:1rem;}
.region-head p{color:var(--ink-soft);}
.region-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2.6rem;}
.place{text-decoration:none;display:block;}
.place .img-wrap{aspect-ratio:4/5;overflow:hidden;background:var(--stone-deep);margin-bottom:1.3rem;}
.place img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease;}
.place:hover img{transform:scale(1.03);}
.place h3{font-size:1.7rem;margin:0.6rem 0 0.4rem;}
.place p{font-size:0.95rem;color:var(--ink-soft);line-height:1.6;}
.region-cta{text-align:center;margin-top:4rem;}

/* FOLLOW */
.follow{max-width:680px;margin:0 auto;padding:14vh 6vw;text-align:center;}
.follow h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-top:1rem;}
.follow p{color:var(--ink-soft);margin-bottom:2.4rem;}
.links{display:flex;flex-wrap:wrap;justify-content:center;gap:0.8rem 2rem;font-size:0.72rem;letter-spacing:0.26em;text-transform:uppercase;}
.links a{text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:4px;}
.links .mail{text-transform:none;letter-spacing:0.04em;font-size:0.95rem;}

footer{text-align:center;padding:4rem 6vw 4.5rem;border-top:1px solid var(--line);font-size:0.7rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--ink-soft);}
footer img{width:72px;margin:0 auto 1.4rem;opacity:0.9;}
footer .brand{display:block;margin-bottom:1rem;color:var(--ink);}
footer a{text-decoration:none;margin:0 0.7rem;}

@media(max-width:900px){
  .features{grid-template-columns:repeat(2,1fr);}
  .feature:nth-child(3){border-left:none;}
  .feature:nth-child(n+3){border-top:1px solid var(--line);}
  .rooms{grid-template-columns:1fr;gap:3rem;}
  .rooms .photo{aspect-ratio:4/3;}
  .region-grid{grid-template-columns:1fr;gap:3rem;}
  .place .img-wrap{aspect-ratio:4/3;}
}
@media(max-width:560px){
  .topbar{padding:1.2rem 16px;}
  .brand{font-size:1rem;letter-spacing:0.2em;}
  .topbar nav{gap:1rem;font-size:0.64rem;letter-spacing:0.16em;}
  .topbar .langs{padding-left:1rem;gap:0.6rem;}
  .features{grid-template-columns:1fr;}
  .feature + .feature{border-left:none;border-top:1px solid var(--line);}
}
@media(max-width:560px){.room-list li{flex-direction:column;align-items:flex-start;gap:0.15rem;padding:0.9rem 0;}}
@media(prefers-reduced-motion:reduce){.place img,.btn{transition:none;}}
