/* =========================================================
   João Select — styles
   Tudo em unidades fluidas (clamp / vw / vh / %) para
   transição perfeita entre desktop, tablet e celular.
   ========================================================= */

:root{
  --ink:#0a0a0c;
  --bone:#f3eee4;
  --gold:#c8a96a;
  --champ:#d8c39a;

  --page-bg:#0a0a0c;
  --page-fg:#f3eee4;

  /* tipografia fluida */
  --t-hero:  clamp(3.2rem, 12vw, 12rem);
  --t-h2:    clamp(2.2rem, 6.5vw, 6rem);
  --t-h3:    clamp(1.8rem, 4.5vw, 3.6rem);
  --t-lead:  clamp(1rem, 1.6vw, 1.4rem);
  --t-body:  clamp(0.95rem, 1.2vw, 1.1rem);
  --t-label: clamp(0.7rem, 0.95vw, 0.82rem);

  --pad-x: clamp(1.25rem, 6vw, 8rem);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-font-smoothing:antialiased; }
body{
  background:var(--page-bg);
  color:var(--page-fg);
  overflow-x:hidden;
  transition: background-color 0.9s var(--ease), color 0.9s var(--ease);
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
em{ font-style:italic; }

/* esconde scrollbar nativo mas mantém scroll */
body::-webkit-scrollbar{ width:0; height:0; }

/* ===== Lenis ===== */
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

/* =========================================================
   GRÃO / TEXTURA GLOBAL
   ========================================================= */
.grain{
  position:fixed; inset:-50%;
  width:200%; height:200%;
  pointer-events:none; z-index:9990;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(8) infinite;
}
@keyframes grain{
  0%,100%{transform:translate(0,0)} 10%{transform:translate(-5%,-5%)}
  30%{transform:translate(3%,-8%)} 50%{transform:translate(-7%,3%)}
  70%{transform:translate(5%,5%)} 90%{transform:translate(-3%,7%)}
}

/* =========================================================
   PRELOADER
   ========================================================= */
.preloader{
  position:fixed; inset:0; z-index:9999;
  background:var(--ink); color:var(--bone);
  display:flex; align-items:center; justify-content:center;
}
.preloader__inner{ text-align:center; width:min(86%,30rem); }
.preloader__brand{
  font-family:"Cormorant Garamond",serif;
  line-height:.92; margin-bottom:clamp(1.5rem,4vh,2.5rem);
  overflow:hidden;
}
.preloader__joao, .preloader__select{
  display:block; font-size:clamp(2.6rem,9vw,5.5rem); font-weight:500;
  transform:translateY(110%); opacity:0;
}
.preloader__select{ color:var(--gold); font-style:italic; }
.preloader__line{
  width:100%; height:1px; background:rgba(243,238,228,.18); overflow:hidden;
}
.preloader__line span{
  display:block; height:100%; width:0%; background:var(--gold);
}
.preloader__count{
  margin-top:1rem; font-family:Manrope; font-weight:300;
  letter-spacing:.1em; font-size:.8rem; color:rgba(243,238,228,.6);
}
.preloader__tag{
  margin-top:.4rem; font-size:.62rem; letter-spacing:.45em;
  color:rgba(243,238,228,.35);
}
.preloader.is-done{ pointer-events:none; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; top:0; left:0; width:100%; z-index:9000;
  display:flex; align-items:center; justify-content:space-between;
  padding: clamp(1rem,2.4vh,1.8rem) var(--pad-x);
  transition: background-color .5s var(--ease), padding .5s var(--ease), backdrop-filter .5s;
  mix-blend-mode:difference; color:#fff;
}
.nav.is-solid{
  mix-blend-mode:normal;
  background:rgba(10,10,12,.72);
  backdrop-filter:blur(14px);
  padding-top:clamp(.7rem,1.6vh,1rem); padding-bottom:clamp(.7rem,1.6vh,1rem);
  color:var(--bone);
}
.nav__logo{ display:flex; flex-direction:column; line-height:1; }
.nav__logo-main{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.3rem,2vw,1.7rem); font-weight:600; letter-spacing:.02em; }
.nav__logo-sub{ font-size:.56rem; letter-spacing:.42em; text-transform:uppercase; opacity:.7; margin-top:.15rem; }
.nav__links{ display:flex; gap:clamp(1.2rem,2.4vw,2.6rem); }
.nav__links a{ font-size:.78rem; letter-spacing:.04em; position:relative; padding:.3rem 0; }
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:currentColor; transition:width .4s var(--ease);
}
.nav__links a:hover::after{ width:100%; }
.nav__cta{
  font-size:.74rem; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid currentColor; padding:.6rem 1.2rem; border-radius:2rem;
  transition: background-color .4s, color .4s;
}
.nav__cta:hover{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
.nav__burger{ display:none; background:none; border:0; flex-direction:column; gap:.4rem; cursor:pointer; }
.nav__burger span{ width:1.7rem; height:1.5px; background:currentColor; transition:transform .4s var(--ease), opacity .3s; }
body.menu-open .nav__burger span:nth-child(1){ transform:translateY(.45rem) rotate(45deg); }
body.menu-open .nav__burger span:nth-child(2){ transform:translateY(-.45rem) rotate(-45deg); }

@media (max-width:860px){
  .nav__links, .nav__cta{ display:none; }
  .nav__burger{ display:flex; }
}

/* ===== MENU MOBILE ===== */
.mobile-menu{
  position:fixed; inset:0; z-index:8500;
  background:var(--ink); color:var(--bone);
  display:flex; flex-direction:column; justify-content:center;
  padding: var(--pad-x);
  clip-path: inset(0 0 100% 0);
  transition: clip-path .8s var(--ease);
  pointer-events:none;
}
body.menu-open .mobile-menu{ clip-path: inset(0 0 0% 0); pointer-events:auto; }
.mobile-menu__links{ display:flex; flex-direction:column; gap:clamp(.6rem,2vh,1.2rem); }
.mobile-menu__links a{
  font-family:"Cormorant Garamond",serif; font-size:clamp(2.2rem,11vw,4rem);
  font-weight:500; display:flex; align-items:baseline; gap:1rem;
  opacity:0; transform:translateY(30px); transition:opacity .5s, transform .5s;
}
.mobile-menu__links a i{ font-size:.8rem; font-family:Manrope; font-style:normal; color:var(--gold); letter-spacing:.1em; }
body.menu-open .mobile-menu__links a{ opacity:1; transform:none; }
body.menu-open .mobile-menu__links a:nth-child(1){ transition-delay:.25s; }
body.menu-open .mobile-menu__links a:nth-child(2){ transition-delay:.32s; }
body.menu-open .mobile-menu__links a:nth-child(3){ transition-delay:.39s; }
body.menu-open .mobile-menu__links a:nth-child(4){ transition-delay:.46s; }
body.menu-open .mobile-menu__links a:nth-child(5){ transition-delay:.53s; }
.mobile-menu__foot{ position:absolute; bottom:var(--pad-x); left:var(--pad-x); display:flex; flex-direction:column; gap:.3rem; font-size:.8rem; opacity:.6; }

/* =========================================================
   BOTÕES
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase;
  padding:1rem 2rem; border-radius:2.5rem; border:1px solid transparent;
  transition: transform .5s var(--ease), background-color .4s, color .4s, border-color .4s;
  will-change:transform; white-space:nowrap;
}
.btn--solid{ background:var(--gold); color:var(--ink); }
.btn--solid:hover{ background:var(--champ); }
.btn--ghost{ border-color:currentColor; color:inherit; }
.btn--ghost:hover{ background:var(--page-fg); color:var(--page-bg); }
.btn--sm{ padding:.7rem 1.4rem; font-size:.72rem; }
.btn--block{ width:100%; }

/* =========================================================
   LABELS / HELPERS
   ========================================================= */
.section-label{
  display:inline-block; font-size:var(--t-label); letter-spacing:.4em;
  text-transform:uppercase; opacity:.55; margin-bottom:clamp(1rem,2.4vh,1.8rem);
}
.section-label::before{ content:"— "; color:var(--gold); opacity:1; }

/* reveal base (fallback p/ quando GSAP não carrega) */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible, .no-gsap .reveal{ opacity:1; transform:none; }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; height:100svh; min-height:34rem; overflow:hidden; display:flex; align-items:flex-end; }
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__video, .hero__fallback{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero__video{ z-index:1; opacity:0; transition:opacity 1.2s ease; }
.hero__video.is-ready{ opacity:1; }
.hero__veil{
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(to top, rgba(10,10,12,.85) 0%, rgba(10,10,12,.15) 45%, rgba(10,10,12,.35) 100%),
    radial-gradient(120% 90% at 80% 10%, rgba(200,169,106,.16), transparent 55%);
}
.hero__content{
  position:relative; z-index:3; width:100%;
  padding: 0 var(--pad-x) clamp(4rem,12vh,8rem);
}
.hero__eyebrow{ font-size:var(--t-label); letter-spacing:.3em; text-transform:uppercase; color:var(--champ); margin-bottom:clamp(.8rem,2vh,1.4rem); }
.hero__title{
  font-family:"Cormorant Garamond",serif; font-weight:500;
  font-size:var(--t-hero); line-height:.86; letter-spacing:-.01em;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line span{ display:block; transform:translateY(110%); }
.hero__title em{ color:var(--gold); }
.hero__lead{ max-width:34rem; margin-top:clamp(1.2rem,3vh,2rem); font-size:var(--t-lead); font-weight:300; color:rgba(243,238,228,.82); line-height:1.5; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:clamp(1.6rem,4vh,2.6rem); }
.hero__scroll{
  position:absolute; right:var(--pad-x); bottom:clamp(2rem,6vh,4rem); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:.8rem;
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(243,238,228,.6);
}
.hero__scroll-line{ width:1px; height:3.5rem; background:rgba(243,238,228,.3); position:relative; overflow:hidden; }
.hero__scroll-line::after{ content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold); animation:scrollline 2.2s var(--ease) infinite; }
@keyframes scrollline{ 0%{top:-100%} 60%,100%{top:100%} }
.hero__index{
  position:absolute; left:var(--pad-x); bottom:clamp(2rem,6vh,4rem); z-index:3;
  display:flex; flex-direction:column; gap:.3rem;
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(243,238,228,.5);
}
@media (max-width:860px){ .hero__index{ display:none; } }

/* =========================================================
   MANIFESTO
   ========================================================= */
.manifesto{ position:relative; padding: clamp(6rem,18vh,14rem) var(--pad-x); overflow:hidden; }
.manifesto__inner{ position:relative; z-index:2; max-width:60rem; }
.manifesto__text{
  font-family:"Cormorant Garamond",serif; font-weight:500;
  font-size:clamp(1.8rem,4.6vw,4rem); line-height:1.12; letter-spacing:-.01em;
}
.manifesto__text .word{ display:inline-block; opacity:.12; transition:opacity .5s; }
.manifesto__sign{ margin-top:clamp(2rem,5vh,3.5rem); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; opacity:.6; }
.manifesto__mesh{
  position:absolute; inset:0; z-index:1; opacity:.5;
  background:
    radial-gradient(40% 50% at 85% 15%, rgba(200,169,106,.35), transparent 60%),
    radial-gradient(45% 55% at 10% 90%, rgba(58,31,36,.25), transparent 60%);
  filter:blur(10px);
}

/* =========================================================
   NÚMEROS
   ========================================================= */
.stats{ padding: clamp(4rem,12vh,8rem) var(--pad-x); }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.5rem,3vw,3rem); }
.stat{ border-top:1px solid rgba(243,238,228,.16); padding-top:1.4rem; }
.stat__num{ font-family:"Cormorant Garamond",serif; font-size:clamp(2.6rem,7vw,5.5rem); line-height:1; color:var(--gold); }
.stat__label{ margin-top:.6rem; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; opacity:.6; }
@media (max-width:760px){ .stats__grid{ grid-template-columns:repeat(2,1fr); gap:2rem 1.5rem; } }

/* =========================================================
   SELEÇÃO INTRO
   ========================================================= */
.sel-intro{ padding: clamp(6rem,16vh,12rem) var(--pad-x) clamp(2rem,6vh,4rem); }
.sel-intro__title{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:var(--t-h2); line-height:.95; }
.sel-intro__title em{ color:var(--gold); }

/* =========================================================
   PROPERTY (cada imóvel)
   ========================================================= */
.property{
  position:relative; display:grid; grid-template-columns:55% 45%;
  align-items:stretch; min-height:92svh; overflow:hidden;
}
.property--reverse{ grid-template-columns:45% 55%; }
.property--reverse .property__media{ order:2; }
.property--reverse .property__body{ order:1; }

.property__media{ position:relative; overflow:hidden; }
.property__img, .property__video{
  position:absolute; inset:0; width:100%; height:120%; top:-10%;
  object-fit:cover; will-change:transform;
}
.property__video{ z-index:1; opacity:0; transition:opacity 1s ease; }
.property__video.is-ready{ opacity:1; }
.property__scrim{
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(to right, transparent 40%, rgba(10,10,12,.55) 100%);
}
.property--reverse .property__scrim{ background:linear-gradient(to left, transparent 40%, rgba(10,10,12,.55) 100%); }
.property__scrim--light{ mix-blend-mode:normal; }

.property__body{
  display:flex; flex-direction:column; justify-content:center;
  padding: clamp(2.5rem,6vw,6rem); position:relative;
}
.property__no{
  position:absolute; top:clamp(1.5rem,4vh,3rem); right:clamp(1.5rem,4vw,3rem);
  font-family:"Cormorant Garamond",serif; font-size:clamp(3rem,8vw,7rem);
  line-height:1; opacity:.1;
}
.property__loc{ font-size:var(--t-label); letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:clamp(.8rem,2vh,1.2rem); }
.property__name{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:var(--t-h3); line-height:1; }
.property__desc{ margin-top:clamp(1rem,2.4vh,1.6rem); font-size:var(--t-body); font-weight:300; line-height:1.6; opacity:.82; max-width:34rem; }
.property__specs{ list-style:none; display:flex; gap:clamp(1.4rem,3vw,2.6rem); margin-top:clamp(1.4rem,3.2vh,2.2rem); flex-wrap:wrap; }
.property__specs li{ display:flex; flex-direction:column; }
.property__specs b{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:clamp(1.4rem,3vw,2.1rem); line-height:1; }
.property__specs span{ font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; opacity:.55; margin-top:.35rem; }
.property__foot{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:clamp(1.8rem,4vh,2.8rem); flex-wrap:wrap; }
.property__price{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.5rem,3.4vw,2.4rem); color:var(--gold); }

@media (max-width:860px){
  .property, .property--reverse{ grid-template-columns:1fr; min-height:auto; }
  .property--reverse .property__media, .property--reverse .property__body{ order:initial; }
  .property__media{ height:62svh; }
  .property__img, .property__video{ height:100%; top:0; }
  .property__scrim, .property--reverse .property__scrim{ background:linear-gradient(to top, rgba(10,10,12,.6), transparent 60%); }
}

/* =========================================================
   GALERIA HORIZONTAL (PIN)
   ========================================================= */
.gallery{ position:relative; }
.gallery__pin{ height:100svh; overflow:hidden; display:flex; align-items:center; }
.gallery__track{ display:flex; gap:clamp(1rem,2vw,2rem); padding:0 var(--pad-x); align-items:center; height:74vh; will-change:transform; }
.gallery__head{ flex:0 0 auto; width:clamp(16rem,30vw,26rem); padding-right:2vw; }
.gallery__head h2{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:clamp(2.4rem,6vw,5rem); line-height:.92; margin:1rem 0; }
.gallery__head em{ color:var(--gold); }
.gallery__head p{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; opacity:.5; }
.gallery__item{ flex:0 0 auto; width:clamp(18rem,34vw,32rem); height:60vh; position:relative; overflow:hidden; }
.gallery__item--tall{ height:74vh; }
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__item figcaption{ position:absolute; left:1rem; bottom:1rem; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; background:rgba(10,10,12,.5); backdrop-filter:blur(6px); padding:.4rem .8rem; }
.gallery__dots{ display:none; justify-content:center; gap:.5rem; margin-top:1.5rem; padding:0 var(--pad-x); }
.gallery__dots button{ width:.5rem; height:.5rem; border-radius:50%; border:0; padding:0; background:rgba(243,238,228,.3); cursor:pointer; transition:background .3s, transform .3s; }
.gallery__dots button.is-active{ background:var(--gold); transform:scale(1.4); }
@media (max-width:860px){
  .gallery__pin{ height:auto; flex-direction:column; padding:clamp(3rem,8vh,5rem) 0; }
  .gallery__track{
    flex-direction:row; height:auto; width:100%; gap:1rem;
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:0 var(--pad-x);
    scroll-padding:0 var(--pad-x);
  }
  .gallery__track::-webkit-scrollbar{ display:none; }
  .gallery__head{ width:80vw; padding-right:0; scroll-snap-align:center; }
  .gallery__item, .gallery__item--tall{ width:80vw; height:62svh; margin:0; scroll-snap-align:center; }
  .gallery__dots{ display:flex; }
}

/* =========================================================
   SPOTLIGHT
   ========================================================= */
.spotlight{ position:relative; height:100svh; min-height:32rem; display:flex; align-items:center; overflow:hidden; }
.spotlight__media{ position:absolute; inset:0; z-index:0; }
.spotlight__video, .spotlight__fallback{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.spotlight__video{ z-index:1; opacity:0; transition:opacity 1s ease; }
.spotlight__video.is-ready{ opacity:1; }
.spotlight__veil{ position:absolute; inset:0; z-index:2; background:linear-gradient(to right, rgba(10,10,12,.85), rgba(10,10,12,.25) 70%); }
.spotlight__content{ position:relative; z-index:3; padding:0 var(--pad-x); max-width:44rem; }
.spotlight__title{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:var(--t-h2); line-height:.95; }
.spotlight__title em{ color:var(--gold); }
.spotlight__lead{ margin:clamp(1.2rem,3vh,2rem) 0; font-size:var(--t-lead); font-weight:300; line-height:1.6; opacity:.85; }

/* =========================================================
   CURADOR
   ========================================================= */
.curator{ padding: clamp(5rem,14vh,10rem) var(--pad-x); }
.curator__inner{ display:grid; grid-template-columns:42% 58%; gap:clamp(2rem,5vw,5rem); align-items:center; }
.curator__media{ position:relative; overflow:hidden; aspect-ratio:4/5; }
.curator__media img{ width:100%; height:100%; object-fit:cover; }
.curator__title{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:var(--t-h2); line-height:.95; margin-bottom:clamp(1.2rem,3vh,2rem); }
.curator__title em{ color:#9a7b3e; }
.curator__text p{ font-size:var(--t-body); font-weight:300; line-height:1.7; margin-bottom:1.1rem; max-width:36rem; opacity:.85; }
.curator__sign{ margin-top:1.6rem; display:flex; flex-direction:column; }
.curator__name{ font-family:"Cormorant Garamond",serif; font-size:1.6rem; }
.curator__role{ font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; opacity:.6; margin-top:.2rem; }
@media (max-width:860px){ .curator__inner{ grid-template-columns:1fr; } .curator__media{ aspect-ratio:3/4; } }

/* =========================================================
   CONCIERGE
   ========================================================= */
.concierge{ padding: clamp(5rem,14vh,10rem) var(--pad-x); }
.concierge__head{ margin-bottom:clamp(2.5rem,6vh,4rem); }
.concierge__head h2{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:var(--t-h2); line-height:.95; }
.concierge__head em{ color:var(--gold); }
.concierge__steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.5rem,2.5vw,2.5rem); }
.step{ border-top:1px solid rgba(243,238,228,.16); padding-top:1.4rem; }
.step__no{ font-family:"Cormorant Garamond",serif; font-size:2rem; color:var(--gold); }
.step h3{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:1.6rem; margin:.6rem 0 .8rem; }
.step p{ font-size:.92rem; font-weight:300; line-height:1.6; opacity:.78; }
@media (max-width:860px){ .concierge__steps{ grid-template-columns:1fr 1fr; gap:2rem 1.5rem; } }
@media (max-width:520px){ .concierge__steps{ grid-template-columns:1fr; } }

/* =========================================================
   CONTATO
   ========================================================= */
.contact{ padding: clamp(5rem,14vh,10rem) var(--pad-x); }
.contact__inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,6rem); align-items:start; }
.contact__title{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:var(--t-h2); line-height:.95; margin-bottom:clamp(1.2rem,3vh,1.8rem); }
.contact__title em{ color:var(--gold); }
.contact__left p{ font-size:var(--t-body); font-weight:300; line-height:1.7; opacity:.82; max-width:30rem; }
.contact__direct{ margin-top:clamp(1.8rem,4vh,2.6rem); display:flex; flex-direction:column; gap:.7rem; font-size:1rem; }
.contact__direct a:hover{ color:var(--gold); }
.contact__wa{ color:var(--gold); }
.contact__form{ display:flex; flex-direction:column; gap:1.4rem; }
.field{ position:relative; }
.field input, .field textarea, .field select{
  width:100%; background:transparent; border:0; border-bottom:1px solid rgba(243,238,228,.25);
  color:var(--page-fg); font-family:Manrope; font-size:1rem; padding:.9rem 0; outline:none;
  transition:border-color .4s;
}
.field select{ color:inherit; }
.field select option{ background:var(--ink); color:var(--bone); }
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--gold); }
.field label{
  position:absolute; left:0; top:.9rem; font-size:1rem; opacity:.5;
  pointer-events:none; transition:.3s var(--ease);
}
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label{
  top:-.7rem; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; opacity:.75; color:var(--gold);
}
.contact__ok{ color:var(--gold); font-size:.9rem; }
@media (max-width:860px){ .contact__inner{ grid-template-columns:1fr; } }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ padding: clamp(4rem,10vh,7rem) var(--pad-x) clamp(1.5rem,4vh,2.5rem); }
.footer__top{ display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; padding-bottom:clamp(2rem,5vh,3.5rem); border-bottom:1px solid rgba(243,238,228,.12); }
.footer__logo{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.8rem,3vw,2.6rem); }
.footer__brand p{ max-width:20rem; margin-top:.6rem; font-size:.86rem; font-weight:300; opacity:.6; }
.footer__nav, .footer__social{ display:flex; flex-direction:column; gap:.7rem; font-size:.82rem; }
.footer__nav a:hover, .footer__social a:hover{ color:var(--gold); }
.footer__bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:1.6rem; font-size:.68rem; opacity:.45; letter-spacing:.04em; }
.footer__note{ max-width:30rem; text-align:right; }
@media (max-width:600px){ .footer__note{ text-align:left; } }

/* =========================================================
   MODAL
   ========================================================= */
.modal{ position:fixed; inset:0; z-index:9800; display:none; align-items:center; justify-content:center; padding:clamp(1rem,4vw,3rem); }
.modal.is-open{ display:flex; }
.modal__overlay{ position:absolute; inset:0; background:rgba(6,6,8,.82); backdrop-filter:blur(8px); opacity:0; transition:opacity .5s; }
.modal.is-open .modal__overlay{ opacity:1; }
.modal__panel{
  position:relative; z-index:2; width:min(100%,72rem); max-height:90svh; overflow:auto;
  background:var(--coal,#121217); color:var(--bone);
  display:grid; grid-template-columns:1.2fr 1fr;
  transform:translateY(24px) scale(.98); opacity:0; transition:transform .6s var(--ease), opacity .5s;
}
.modal.is-open .modal__panel{ transform:none; opacity:1; }
.modal__close{ position:absolute; top:1rem; right:1rem; z-index:5; width:2.6rem; height:2.6rem; border-radius:50%; background:rgba(243,238,228,.1); border:0; color:var(--bone); font-size:1.4rem; cursor:pointer; transition:background-color .3s; }
.modal__close:hover{ background:var(--gold); color:var(--ink); }
.modal__gallery{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:#000; }
.modal__gallery img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.modal__gallery img:first-child{ grid-column:1/-1; aspect-ratio:16/9; }
.modal__info{ padding:clamp(1.8rem,3vw,3rem); display:flex; flex-direction:column; justify-content:center; }
.modal__loc{ font-size:.72rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:.8rem; }
.modal__name{ font-family:"Cormorant Garamond",serif; font-weight:500; font-size:clamp(2rem,4vw,3.2rem); line-height:1; }
.modal__desc{ margin-top:1.1rem; font-size:.96rem; font-weight:300; line-height:1.7; opacity:.82; }
.modal__specs{ list-style:none; display:flex; flex-wrap:wrap; gap:1.4rem 2.2rem; margin-top:1.6rem; }
.modal__specs li{ display:flex; flex-direction:column; }
.modal__specs b{ font-family:"Cormorant Garamond",serif; font-size:1.5rem; }
.modal__specs span{ font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; opacity:.55; margin-top:.25rem; }
.modal__foot{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem; margin-top:2rem; flex-wrap:wrap; }
.modal__price{ font-family:"Cormorant Garamond",serif; font-size:1.8rem; color:var(--gold); }
@media (max-width:760px){
  .modal__panel{ grid-template-columns:1fr; }
  .modal__gallery{ grid-template-columns:1fr 1fr; }
}

/* =========================================================
   ACESSIBILIDADE / MOVIMENTO REDUZIDO
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition-duration:.001ms !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .hero__title .line span, .preloader__joao, .preloader__select{ transform:none !important; opacity:1 !important; }
  .grain{ display:none; }
}
