@font-face{font-family:'Jost';src:url('../fonts/jost-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Jost';src:url('../fonts/jost-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Jost';src:url('../fonts/jost-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Jost';src:url('../fonts/jost-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Jost';src:url('../fonts/jost-500i.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-300i.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap;}

:root{
  --marron: #0b0402;
  --marron-brun: #4b3317;
  --or-grise: #ddad55;
  --or-grise-sombre: #97723b;
  --or-pastel: #eccd8f;
  --creme: #f7f3ec;
  --blanc: #ffffff;
  --transition: 600ms cubic-bezier(.16,.84,.44,1);
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:'Lato', sans-serif;
  background:var(--creme);
  color:var(--marron);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
  cursor:none;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}

h1,h2,h3,h4,.display{
  font-family:'Jost', sans-serif;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--marron);
}

.eyebrow{
  font-family:'Jost',sans-serif;
  font-size:.72rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--or-grise-sombre);
  font-weight:600;
}

.container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 6vw;
}

/* ============ CUSTOM CURSOR ============ */
.gold-cursor-ring{
  position:fixed;
  top:0;left:0;
  width:40px;height:40px;
  border:1px solid var(--or-grise);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  opacity:0;
  transition:opacity .3s ease, width .3s ease, height .3s ease, border-color .3s ease;
}
.gold-cursor-ring.active{opacity:.75;}
.gold-cursor-ring.hover{width:58px;height:58px;opacity:1;}

.gold-cursor{
  position:fixed;
  top:0;left:0;
  width:19px;height:46px;
  pointer-events:none;
  z-index:9999;
  background-image:url('../images/misc/cursor_46.png');
  background-size:contain;
  background-repeat:no-repeat;
  transform:translate(-3px,-4px);
  opacity:0;
  transition:opacity .3s ease, transform .08s linear;
  mix-blend-mode:normal;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));
}
.gold-cursor.active{opacity:1;}
.gold-cursor.hover{transform:translate(-3px,-4px) scale(1.4);}
@media (hover:none), (pointer:coarse){
  .gold-cursor{display:none;}
  body{cursor:auto;}
}

/* ============ HEADER / NAV ============ */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:500;
  padding:26px 6vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition:background var(--transition), padding var(--transition), box-shadow var(--transition);
}
.site-header.solid{
  background:rgba(11,4,2,.94);
  backdrop-filter:blur(6px);
  padding:16px 6vw;
  box-shadow:0 8px 30px rgba(0,0,0,.25);
}
.brand-logo{
  display:inline-flex;
  align-items:center;
}
.brand-logo-img{
  height:22px;
  width:auto;
  display:block;
}
.brand-logo-img.logo-on-light{display:none;}
.site-header.solid .brand-logo-img.logo-on-dark{display:block;}
.site-header.solid .brand-logo-img.logo-on-light{display:none;}

.main-nav{display:flex;align-items:center;gap:2.4vw;}
.main-nav a, .main-nav button{
  font-family:'Jost',sans-serif;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--creme);
  background:none;
  border:none;
  cursor:none;
  position:relative;
  padding:4px 0;
}
.main-nav a::after, .main-nav button::after{
  content:'';
  position:absolute;left:0;bottom:-2px;
  width:0;height:1px;
  background:var(--or-grise);
  transition:width .35s ease;
}
.main-nav a:hover::after, .main-nav button:hover::after{width:100%;}
.main-nav .insta-link{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;
  border:1px solid var(--or-grise);
  border-radius:50%;
  transition:background .3s ease, transform .3s ease;
}
.main-nav .insta-link:hover{background:var(--or-grise);transform:translateY(-2px);}
.main-nav .insta-link svg{width:16px;height:16px;stroke:var(--or-grise);transition:stroke .3s ease;}
.main-nav .insta-link:hover svg{stroke:var(--marron);}

.nav-toggle{display:none;}

/* Dark text version of header for light-background pages when scrolled at top */
body.light-hero .site-header:not(.solid) .brand-logo-img.logo-on-dark{display:none;}
body.light-hero .site-header:not(.solid) .brand-logo-img.logo-on-light{display:block;}
body.light-hero .site-header:not(.solid) .main-nav a,
body.light-hero .site-header:not(.solid) .main-nav button{color:var(--marron);}
body.light-hero .site-header:not(.solid) .main-nav .insta-link{border-color:var(--marron-brun);}
body.light-hero .site-header:not(.solid) .main-nav .insta-link svg{stroke:var(--marron-brun);}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'Jost',sans-serif;
  font-size:.78rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:600;
  padding:15px 34px;
  border:1px solid var(--or-grise);
  color:var(--marron);
  background:transparent;
  cursor:none;
  transition:background .35s ease, color .35s ease, letter-spacing .35s ease;
}
.btn:hover{background:var(--or-grise);letter-spacing:.28em;}
.btn.btn-dark{border-color:var(--or-grise);color:var(--creme);}
.btn.btn-dark:hover{background:var(--or-grise);color:var(--marron);}
.btn.btn-fill{background:var(--or-grise);color:var(--marron);}
.btn.btn-fill:hover{background:var(--or-pastel);}

/* ============ HERO ============ */
.hero{
  position:relative;
  height:100vh;
  min-height:640px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--marron);
}
.hero-media{
  position:absolute;inset:0;
  overflow:hidden;
}
.hero-media img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.08);
  animation:heroZoom 16s ease-out forwards;
}
@keyframes heroZoom{to{transform:scale(1);}}
.hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,4,2,.25) 0%, rgba(11,4,2,.15) 40%, rgba(11,4,2,.88) 100%);
  pointer-events:none;
}
.hero-content{
  position:relative;z-index:2;
  width:100%;
  padding:0 6vw 8vw;
  color:var(--creme);
  pointer-events:none;
}
.hero-content a, .hero-content button{pointer-events:auto;}
.hero-content .eyebrow{color:var(--or-pastel);margin-bottom:18px;opacity:0;animation:riseFade .9s var(--transition) .4s forwards;}
.hero-title{
  font-size:clamp(3.4rem, 10vw, 8.5rem);
  line-height:.94;
  color:var(--creme);
  opacity:0;
  animation:riseFade 1.1s var(--transition) .6s forwards;
}
.hero-title span{color:var(--or-grise);font-style:italic;font-weight:500;}
.hero-sub{
  max-width:480px;
  margin-top:26px;
  font-weight:300;
  font-size:1.02rem;
  color:rgba(247,243,236,.82);
  opacity:0;
  animation:riseFade 1s var(--transition) .9s forwards;
}
@keyframes riseFade{
  from{opacity:0;transform:translateY(26px);}
  to{opacity:1;transform:translateY(0);}
}
.scroll-cue{
  position:absolute;bottom:36px;right:6vw;z-index:2;
  writing-mode:vertical-rl;
  color:var(--or-pastel);
  font-family:'Jost',sans-serif;
  font-size:.72rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  display:flex;align-items:center;gap:10px;
  opacity:0;animation:riseFade 1s var(--transition) 1.3s forwards;
}
.scroll-cue::after{content:'';width:1px;height:46px;background:linear-gradient(var(--or-pastel),transparent);}

/* ============ SECTIONS ============ */
section{padding:9vw 0;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head .eyebrow{margin-bottom:16px;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.7rem);}
.section-head p{margin-top:18px;color:var(--marron-brun);font-size:1.02rem;max-width:520px;}

.section-dark{background:var(--marron);color:var(--creme);}
.section-dark h2, .section-dark h3, .section-dark .eyebrow{color:var(--or-pastel);}
.section-dark p{color:rgba(247,243,236,.78);}

/* ============ INTRO / SPLIT ============ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;}
.split img{width:100%;}
.split .frame{position:relative;}
.split .frame::after{
  content:'';
  position:absolute;
  inset:18px -18px -18px 18px;
  border:1px solid var(--or-grise);
  z-index:-1;
}

.status-badge{
  position:absolute;top:14px;left:14px;z-index:2;
  padding:6px 15px;
  font-family:'Jost',sans-serif;
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  border-radius:20px;
}
.status-disponible{background:var(--or-grise);color:var(--marron);}
.status-reserve{background:var(--or-pastel);color:var(--marron-brun);border:1px solid var(--marron-brun);}
.status-vendu{background:var(--marron);color:var(--creme);border:1px solid var(--or-grise);}
.work-card.is-vendu img{filter:grayscale(.75) brightness(.75);}
.status-badge-inline{
  display:inline-flex;align-items:center;
  padding:5px 14px;
  font-family:'Jost',sans-serif;
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  border-radius:20px;
}

/* ============ WORKS GRID ============ */
.works-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  background:var(--marron-brun);
}
.work-card{
  position:relative;
  background:var(--marron);
  overflow:hidden;
  aspect-ratio:1/1;
  display:block;
}
.work-card img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1s cubic-bezier(.16,.84,.44,1), opacity .6s ease;
}
.work-card:hover img{transform:scale(1.07);}
.work-card .work-info{
  position:absolute;left:0;right:0;bottom:0;
  padding:26px 26px 24px;
  background:linear-gradient(0deg, rgba(11,4,2,.9), transparent 85%);
  color:var(--creme);
  transform:translateY(8px);
  opacity:.92;
  transition:transform .5s ease;
}
.work-card:hover .work-info{transform:translateY(0);}
.work-info .w-title{font-size:1.1rem;letter-spacing:.08em;color:var(--creme);}
.work-info .w-meta{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-top:6px;
  font-family:'Jost',sans-serif;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--or-pastel);
}
@media(max-width:900px){.works-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.works-grid{grid-template-columns:1fr;}}

/* ============ FOOTER ============ */
.site-footer{
  background:var(--marron);
  color:rgba(247,243,236,.75);
  padding:6vw 0 3vw;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:4vw;
  padding-bottom:5vw;
  border-bottom:1px solid rgba(221,173,85,.2);
}
.footer-grid h4{
  color:var(--or-pastel);
  font-size:.78rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  margin-bottom:20px;
}
.footer-grid .brand-logo{display:inline-flex;margin-bottom:16px;}
.footer-grid .brand-logo-img{height:26px;}
.footer-grid p{font-size:.92rem;}
.footer-grid a{display:block;margin-bottom:10px;font-size:.92rem;transition:color .3s ease;}
.footer-grid a:hover{color:var(--or-grise);}
.footer-signature{max-width:150px;margin-top:18px;opacity:.85;filter:invert(1) brightness(1.6);}
.footer-bottom{
  padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:.76rem;letter-spacing:.05em;
  color:rgba(247,243,236,.45);
}

/* ============ LIGHTBOX ============ */
.lightbox-img{cursor:none;}
.lightbox{
  position:fixed;inset:0;z-index:3000;
  display:flex;align-items:center;justify-content:center;
  padding:5vw;
  background:rgba(11,4,2,.95);
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.lightbox.open{opacity:1;pointer-events:auto;}
.lightbox img{
  max-width:90vw;max-height:88vh;
  width:auto;height:auto;
  object-fit:contain;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
  transform:scale(.96);
  transition:transform .4s cubic-bezier(.16,.84,.44,1);
}
.lightbox.open img{transform:scale(1);}
.lightbox-close{
  position:absolute;top:26px;right:26px;
  width:42px;height:42px;
  border:1px solid var(--or-grise);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:none;background:none;
}
.lightbox-close svg{width:15px;height:15px;stroke:var(--or-grise);}
.lightbox-nav{
  position:absolute;top:50%;
  transform:translateY(-50%);
  width:52px;height:52px;
  border:1px solid var(--or-grise);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:none;background:rgba(11,4,2,.4);
  transition:background .3s ease, transform .3s ease;
}
.lightbox-nav:hover{background:var(--or-grise);}
.lightbox-nav:hover svg{stroke:var(--marron);}
.lightbox-nav svg{width:18px;height:18px;stroke:var(--or-grise);transition:stroke .3s ease;}
.lightbox-prev{left:18px;}
.lightbox-next{right:18px;}
@media(max-width:640px){
  .lightbox-nav{width:42px;height:42px;}
  .lightbox-prev{left:8px;}
  .lightbox-next{right:8px;}
}

/* ============ AGENDA MODAL ============ */
.agenda-modal{
  position:fixed;inset:0;z-index:2000;
  display:flex;align-items:center;justify-content:center;
  padding:5vw 5vw;
  opacity:0;pointer-events:none;
  transition:opacity .4s ease;
}
.agenda-modal.open{opacity:1;pointer-events:auto;}
.agenda-overlay{
  position:absolute;inset:0;
  background:rgba(11,4,2,.85);
  backdrop-filter:blur(4px);
}
.agenda-box{
  position:relative;z-index:2;
  width:100%;max-width:760px;
  max-height:86vh;
  overflow-y:auto;
  background:var(--creme);
  padding:56px 6vw 50px;
  transform:translateY(24px);
  transition:transform .45s cubic-bezier(.16,.84,.44,1);
}
.agenda-modal.open .agenda-box{transform:translateY(0);}
.agenda-close{
  position:absolute;top:22px;right:22px;
  width:38px;height:38px;
  border:1px solid var(--marron-brun);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:none;background:none;
}
.agenda-close svg{width:14px;height:14px;stroke:var(--marron-brun);}
.agenda-box .eyebrow{margin-bottom:12px;}
.agenda-box h3{font-size:1.9rem;margin-bottom:8px;}
.agenda-box>p{color:var(--marron-brun);margin-bottom:34px;max-width:480px;}
.agenda-list{display:flex;flex-direction:column;}
.agenda-item{
  display:grid;
  grid-template-columns:88px 1fr auto;
  gap:22px;
  align-items:center;
  padding:20px 0;
  border-top:1px solid rgba(75,51,23,.18);
}
.agenda-item:last-child{border-bottom:1px solid rgba(75,51,23,.18);}
.agenda-date{
  font-family:'Jost',sans-serif;
  color:var(--or-grise-sombre);
  font-weight:700;
  line-height:1.15;
}
.agenda-date .day{font-size:1.6rem;display:block;}
.agenda-date .month{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;}
.agenda-city{font-family:'Jost',sans-serif;font-size:1.05rem;font-weight:600;}
.agenda-venue{font-size:.86rem;color:var(--marron-brun);margin-top:4px;}
.agenda-range{
  font-family:'Jost',sans-serif;
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--or-grise-sombre);
  text-align:right;
  white-space:nowrap;
}
@media(max-width:640px){
  .agenda-item{grid-template-columns:66px 1fr;}
  .agenda-range{grid-column:2/3;text-align:left;margin-top:6px;}
}

/* ============ PAGE HEADER (interior pages) ============ */
.page-hero{
  position:relative;
  height:58vh;
  min-height:400px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--marron);
}
.page-hero .hero-content{padding-bottom:5vw;}
.page-hero .hero-title{font-size:clamp(2.1rem,5vw,3.6rem);}

/* ============ GENERIC UTILITIES ============ */
.text-center{text-align:center;margin-left:auto;margin-right:auto;}
.mt-lg{margin-top:70px;}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.16,.84,.44,1), transform .9s cubic-bezier(.16,.84,.44,1);}
.reveal.in{opacity:1;transform:translateY(0);}

/* responsive nav */
@media(max-width:880px){
  .main-nav{
    position:fixed;top:0;right:0;bottom:0;
    width:min(78vw,340px);
    background:var(--marron);
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:30px;
    padding:0 12vw;
    transform:translateX(100%);
    transition:transform .5s cubic-bezier(.16,.84,.44,1);
  }
  .main-nav.open{transform:translateX(0);}
  .main-nav a, .main-nav button{font-size:1rem;color:var(--creme);}
  .nav-toggle{
    display:flex;flex-direction:column;gap:5px;
    width:30px;z-index:600;background:none;border:none;cursor:none;
  }
  .nav-toggle span{height:1px;background:var(--or-grise);width:100%;transition:transform .3s ease, opacity .3s ease;}
  .nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  .split{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:8vw;}
}
