/* ============================================
   VÉRTICE — Design tokens
   ============================================ */
:root{
  --gold: #CE9E3C;
  --gold-light: #E7C583;
  --gold-dark: #9C7526;
  --ink: #15130F;
  --graphite: #221F19;
  --graphite-soft: #2C2822;
  --cream: #FAF6EF;
  --cream-dim: #F0E9DA;
  --line: rgba(21,19,15,0.12);
  --line-light: rgba(250,246,239,0.18);

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --wrap: min(1240px, 92vw);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3{ font-family: var(--serif); font-weight:500; margin:0; letter-spacing:-0.01em; }
p{ margin:0; }

.wrap{ width: var(--wrap); margin-inline:auto; }

/* subtle film-grain overlay for texture, never intrusive */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:9999;
  opacity:0.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.eyebrow{
  display:inline-block;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-light);
  margin-bottom: 1.25rem;
}
.eyebrow-dark{ color: var(--gold-dark); }

/* ============================================
   Buttons
   ============================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 0.95rem 1.9rem;
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  border-radius: 2px;
  border: 1px solid transparent;
  cursor:pointer;
  transition: all 0.35s var(--ease);
  white-space: nowrap;
}
.btn-gold{ background: var(--gold); color: var(--ink); }
.btn-gold:hover{ background: var(--gold-light); transform: translateY(-2px); }
.btn-ink{ background: var(--ink); color: var(--cream); }
.btn-ink:hover{ background: var(--graphite); transform: translateY(-2px); }
.btn-outline-light{ border-color: var(--line-light); color: var(--cream); }
.btn-outline-light:hover{ border-color: var(--gold-light); color: var(--gold-light); }
.btn-outline-dark{ border-color: var(--line); color: var(--ink); }
.btn-outline-dark:hover{ border-color: var(--gold-dark); color: var(--gold-dark); }
.btn-ghost{ color: var(--cream); border-color: rgba(250,246,239,0.35); padding: 0.7rem 1.4rem; }
.btn-ghost:hover{ border-color: var(--gold); color: var(--gold); }
.btn-full{ width:100%; }
.btn-lg{ padding: 1.2rem 2.6rem; font-size:0.95rem; gap:0.7rem; }
.btn-whatsapp svg{ width:22px; height:22px; }

/* ============================================
   Header
   ============================================ */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 1000;
  padding: 1.4rem 0;
  transition: all 0.4s var(--ease);
}
.site-header.is-scrolled{
  background: rgba(21,19,15,0.92);
  backdrop-filter: blur(10px);
  padding: 0.9rem 0;
  box-shadow: 0 1px 0 var(--line-light);
}
.header-inner{ display:flex; align-items:center; gap:2.5rem; }
.brand-mark{ height: 34px; width:auto; }
.nav{ display:flex; gap:2.2rem; margin-left:auto; font-size:0.85rem; letter-spacing:0.02em; }
.nav a{ color: var(--cream); opacity:0.85; position:relative; padding-bottom:4px; }
.nav a:hover{ opacity:1; color: var(--gold-light); }
.header-cta{ margin-left: 0.5rem; }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:0.4rem; margin-left:auto; }
.nav-toggle span{ display:block; width:22px; height:2px; background:var(--cream); margin:5px 0; transition: all 0.3s var(--ease); }

/* ============================================
   Hero — full-bleed video background
   ============================================ */
.hero{
  position:relative; min-height: 100svh; display:flex; align-items:flex-end;
  overflow:hidden; color: var(--cream);
}
.hero-media{ position:absolute; inset:0; background: var(--ink); }
.hero-media video{
  width:100%; height:100%; object-fit:cover;
}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(21,19,15,0.6) 0%, rgba(21,19,15,0.3) 32%, rgba(21,19,15,0.6) 68%, rgba(21,19,15,0.94) 100%);
}
.hero-content{ position:relative; z-index:2; padding-bottom: 6.5rem; padding-top: 12rem; }
.hero-title{
  font-size: clamp(2.1rem, 4.6vw, 4.1rem);
  max-width: 15ch; line-height: 1.12; color: var(--cream);
}
.hero-caption{
  margin-top: 1.4rem;
  font-size: 0.75rem; letter-spacing:0.14em; text-transform:uppercase;
  color: rgba(250,246,239,0.5);
}
.hero-sub{
  margin-top: 1.4rem;
  max-width: 40ch;
  font-size: 1.05rem;
  color: rgba(250,246,239,0.82);
}
.hero-actions{
  margin-top: 2.6rem; display:flex; gap:1rem; flex-wrap:wrap;
}

.scroll-cue{
  position: fixed; left: 3rem; bottom: 2.4rem; z-index:500;
  display:flex; flex-direction:column; align-items:center; gap:0.6rem;
  color: rgba(250,246,239,0.6); font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase;
  transition: opacity 0.3s ease;
}
.scroll-cue-line{ width:1px; height:38px; background: linear-gradient(180deg, var(--gold), transparent); }

/* ============================================
   Manifesto
   ============================================ */
.manifesto{ padding: 8.5rem 0; background: var(--graphite); }
.manifesto-grid{
  display:grid; grid-template-columns: 0.9fr 2.1fr; gap: 4rem; align-items:start;
}
.manifesto-mark{ position:sticky; top:8rem; color: var(--gold-light); }
.manifesto-logo{ width: 96px; height:auto; margin-bottom:1.2rem; }
.manifesto-label{
  display:block; font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; color: var(--cream); opacity:0.55;
}
.manifesto-copy p{
  font-family: var(--sans); font-weight:400;
  font-size: 1.08rem; line-height:1.75; color: rgba(250,246,239,0.78);
  margin-bottom: 1.6rem; max-width: 46ch;
}
.manifesto-lead{
  font-size:1.3rem !important; line-height:1.6 !important;
  color: var(--cream) !important; font-weight:500 !important;
}
.manifesto-signature{ color: var(--gold-light) !important; font-style: italic; }

/* ============================================
   Como atuamos
   ============================================ */
.criterio{ background: var(--gold); color: var(--ink); padding: 8.5rem 0; }
.criterio .eyebrow{
  color: rgba(21,19,15,0.62); display:block; text-align:center;
  font-size: 0.85rem;
}
.section-title{
  font-size: clamp(1.8rem, 3.2vw, 2.7rem); line-height:1.25;
  max-width: 20ch; margin-bottom: 4.5rem; color: inherit;
}
.criterio-head{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap: 1.5rem; margin-bottom: 5.5rem;
}
.criterio-head .section-title{ margin:0 auto; max-width: 32ch; }
.criterio-support{
  max-width: 44ch; font-size:1.05rem; line-height:1.6;
  color: rgba(21,19,15,0.62); text-align:center;
  margin: 0 auto; border:none; padding:0;
}

.pillars{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.pillar{
  position:relative; background: var(--ink); color: var(--cream);
  padding: 2.4rem 2.2rem 2.6rem; border-radius: 4px; overflow:hidden;
  box-shadow: 0 20px 40px rgba(21,19,15,0.18);
}
.pillar::after{
  content:""; position:absolute; top:0; left:0; width:0%; height:3px;
  background: var(--gold); transition: width 1s var(--ease) 0.2s;
}
.pillar.in-view::after{ width:100%; }
.pillar-mark{
  display:block; font-family: var(--serif); font-weight:300;
  font-size: 3.2rem; line-height:1; letter-spacing:0.02em;
  color: rgba(206,158,60,0.45); margin-bottom:1.4rem;
  transition: color 0.4s var(--ease);
}
.pillar:hover .pillar-mark{ color: var(--gold); }
.pillar h3{
  font-size:1.3rem; margin-bottom:0.9rem; color: var(--cream);
  display:flex; align-items:center; gap:0.5rem;
  transition: transform 0.4s var(--ease);
}
.pillar:hover h3{ transform: translateX(6px); }
.pillar h3::after{
  content:"→"; color: var(--gold); font-size:1.1rem;
  opacity:0; transform: translateX(-6px);
  transition: all 0.4s var(--ease);
}
.pillar:hover h3::after{ opacity:1; transform:translateX(0); }
.pillar p{ color: rgba(250,246,239,0.68); font-size:0.95rem; max-width:32ch; }

/* ============================================
   Lançamentos
   ============================================ */
.lancamentos{ background: var(--ink); padding: 8.5rem 0 6rem; }
.launch-cards{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 1.75rem; margin-top:1rem; align-items:center; }
.launch-card{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height: 420px; border: 1px solid var(--line-light); overflow:hidden;
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.launch-card--active{
  min-height: 480px; z-index:2;
  border-color: var(--gold);
  box-shadow: 0 26px 55px rgba(0,0,0,0.4);
}
.launch-card--active:hover{ transform: translateY(-6px); box-shadow: 0 30px 60px rgba(0,0,0,0.5); }
.launch-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition: transform 0.8s var(--ease);
}
.launch-card--active:hover img{ transform: scale(1.06); }
.launch-card-info{
  position:relative; z-index:2; padding: 1.8rem;
}
.launch-card--active .launch-card-info{
  background: linear-gradient(0deg, rgba(21,19,15,0.9) 10%, transparent 100%);
  color: var(--cream); width:100%;
}
.launch-card--active h3{ font-size:1.4rem; margin: 0.5rem 0 0.3rem; color: var(--cream); }
.launch-card--active p{ font-size:0.85rem; opacity:0.8; }
.launch-cta-btn{
  display:inline-flex; align-items:center; gap:0.6rem;
  margin-top: 1.3rem; pointer-events:none;
}
.launch-cta-arrow{ display:inline-block; margin-left:0.5rem; transition: transform 0.4s var(--ease); }
.launch-card--active:hover .launch-cta-btn{ background: var(--gold-light); transform: translateY(-2px); }
.launch-card--active:hover .launch-cta-arrow{ transform: translateX(5px); }
.launch-tag{
  display:inline-block; font-size:0.68rem; letter-spacing:0.15em; text-transform:uppercase;
  color: var(--ink); background: var(--gold); padding: 0.3rem 0.7rem;
}
.launch-card--ghost{
  border: 1px dashed var(--line-light); background: var(--graphite-soft); align-items:flex-start; justify-content:center;
}
.launch-card--ghost .launch-card-info{ text-align:center; width:100%; }
.launch-card--ghost h3{ font-size:1.1rem; color: rgba(250,246,239,0.45); margin: 0.6rem 0 0.3rem; }
.launch-card--ghost p{ font-size:0.82rem; color: rgba(250,246,239,0.35); }
.launch-tag--ghost{ background:none; border:1px solid rgba(250,246,239,0.25); color: rgba(250,246,239,0.45); }

/* ============================================
   Jardins showcase
   ============================================ */
.jardins{ background: var(--ink); color: var(--cream); padding: 8.5rem 0; }
.jardins-intro{ margin-bottom: 4rem; }
.jardins-intro-grid{ display:grid; grid-template-columns: 1.3fr 1fr; gap: 3rem; align-items:center; }
.jardins-intro-logo{ display:flex; justify-content:center; }
.jardins-intro-logo img{
  width:100%; max-width: 380px; height:auto;
  border-radius: 8px; border: 1px solid rgba(231,197,131,0.28);
  box-shadow: 0 30px 60px rgba(0,0,0,0.45);
}
.jardins-title{ font-size: clamp(1.9rem, 3.4vw, 2.9rem); max-width: 22ch; margin-bottom: 2.5rem; color: var(--cream); }
.jardins-copy{ display:flex; flex-direction:column; gap: 1.4rem; }
.jardins-copy p{ color: rgba(250,246,239,0.75); font-size:1rem; max-width: 46ch; }

.jardins-feature{ width:100%; margin-bottom: 4.5rem; display:flex; justify-content:center; background: var(--ink); }
.jardins-feature-inner{ position:relative; width:100%; max-width:1280px; }
.jardins-feature img, .jardins-feature video{
  width:100%; height:auto; display:block;
}

/* ============================================
   Gradual blur — layered backdrop-blur + mask
   gradient, softens an edge instead of a hard cut.
   ============================================ */
.blur-fade{
  --blur-max: 2rem;
  position:absolute; left:0; right:0; bottom:0; height:8rem;
  pointer-events:none; isolation:isolate; z-index:3;
}
.blur-fade--sm{ --blur-max: 1rem; height:4rem; }
.blur-fade > div{ position:absolute; inset:0; }
.blur-fade > div:nth-child(1){
  backdrop-filter: blur(calc(var(--blur-max) * 0.077)); -webkit-backdrop-filter: blur(calc(var(--blur-max) * 0.077));
  mask-image: linear-gradient(to bottom, transparent 0%, black 16.7%, black 33.3%, transparent 50%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 16.7%, black 33.3%, transparent 50%);
}
.blur-fade > div:nth-child(2){
  backdrop-filter: blur(calc(var(--blur-max) * 0.128)); -webkit-backdrop-filter: blur(calc(var(--blur-max) * 0.128));
  mask-image: linear-gradient(to bottom, transparent 16.7%, black 33.3%, black 50%, transparent 66.7%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 16.7%, black 33.3%, black 50%, transparent 66.7%);
}
.blur-fade > div:nth-child(3){
  backdrop-filter: blur(calc(var(--blur-max) * 0.25)); -webkit-backdrop-filter: blur(calc(var(--blur-max) * 0.25));
  mask-image: linear-gradient(to bottom, transparent 33.3%, black 50%, black 66.7%, transparent 83.3%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 33.3%, black 50%, black 66.7%, transparent 83.3%);
}
.blur-fade > div:nth-child(4){
  backdrop-filter: blur(calc(var(--blur-max) * 0.489)); -webkit-backdrop-filter: blur(calc(var(--blur-max) * 0.489));
  mask-image: linear-gradient(to bottom, transparent 50%, black 66.7%, black 83.3%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 50%, black 66.7%, black 83.3%, transparent 100%);
}
.blur-fade > div:nth-child(5){
  backdrop-filter: blur(calc(var(--blur-max) * 0.815)); -webkit-backdrop-filter: blur(calc(var(--blur-max) * 0.815));
  mask-image: linear-gradient(to bottom, transparent 66.7%, black 83.3%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 66.7%, black 83.3%, black 100%);
}
.blur-fade > div:nth-child(6){
  backdrop-filter: blur(var(--blur-max)); -webkit-backdrop-filter: blur(var(--blur-max));
  mask-image: linear-gradient(to bottom, transparent 83.3%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 83.3%, black 100%);
}

.jardins-specs{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap:1.5rem;
  border-top:1px solid var(--line-light); border-bottom:1px solid var(--line-light);
  padding: 2.2rem 0; margin-bottom: 4.5rem;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, sans-serif;
}
.jardins-specs li{ display:flex; flex-direction:column; gap:0.4rem; }
.jardins-specs strong{ font-weight:700; font-size:1.7rem; color: var(--gold); font-variant-numeric: tabular-nums; }
.jardins-specs span{ font-size:0.8rem; color: rgba(250,246,239,0.65); }

.infra{ text-align:center; margin-bottom: 5.5rem; }
.infra-title{
  font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height:1.35;
  letter-spacing:0.03em; text-transform:uppercase; color: var(--cream);
  margin-bottom: 3.5rem;
}
.infra-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem;
}
.infra-item{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:0.9rem;
  background: var(--graphite-soft); border-radius:4px; overflow:hidden;
  padding: 2.1rem 1.3rem 1.7rem;
  transition: transform 0.4s var(--ease), background 0.4s var(--ease);
}
.infra-item::after{
  content:""; position:absolute; top:0; left:0; width:0%; height:2px;
  background: var(--gold); transition: width 1s var(--ease) 0.2s;
}
.infra-item.in-view::after{ width:100%; }
.infra-item:hover{ background: var(--graphite); transform: translateY(-4px); }
.infra-item svg{
  width: 30px; height:30px; color: var(--gold);
  fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round;
}
.infra-item p{ font-size:0.88rem; color: rgba(250,246,239,0.75); max-width:22ch; line-height:1.45; }

.gallery-title{
  font-family: var(--serif); font-weight:400; font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  max-width: 46ch; color: var(--cream); margin-bottom: 2.2rem; line-height:1.4;
}
.gallery-carousel{ position:relative; margin-bottom: 4rem; }
.gallery-track{
  display:flex; gap: 1rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding-bottom: 0.5rem;
  scrollbar-width:none; -ms-overflow-style:none;
}
.gallery-track::-webkit-scrollbar{ display:none; }
.gallery-slide{
  flex: 0 0 auto; width: 84%; margin:0;
  scroll-snap-align:start;
}
.gallery-slide-img{
  aspect-ratio: 4 / 3; border-radius: 4px; overflow:hidden;
}
.gallery-slide img{
  width:100%; height:100%; object-fit:cover; filter: saturate(0.96);
  transition: transform 0.6s var(--ease), filter 0.4s ease;
}
.gallery-slide img:hover{ transform: scale(1.03); filter: saturate(1.05); }
.gallery-slide figcaption{
  margin-top: 0.9rem; text-align:center; font-size:0.82rem;
  letter-spacing: 0.03em; color: rgba(250,246,239,0.6);
}

.gallery-nav{
  position:absolute; top:50%; transform: translateY(-50%); z-index:2;
  width:48px; height:48px; border-radius:50%; border:1px solid rgba(250,246,239,0.35);
  background: rgba(21,19,15,0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  color: var(--cream); font-size:1.2rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition: all 0.3s var(--ease);
}
.gallery-nav:hover{ background: var(--gold); color: var(--ink); border-color: var(--gold); }
.gallery-nav--prev{ left: -4px; }
.gallery-nav--next{ right: -4px; }

.gallery-dots{ display:flex; gap:0.6rem; justify-content:center; margin-top:1.4rem; }
.gallery-dots button{
  width:8px; height:8px; border-radius:50%; border:none; padding:0;
  background: rgba(250,246,239,0.3); cursor:pointer; transition: background 0.3s ease, transform 0.3s ease;
}
.gallery-dots button.is-active{ background: var(--gold); transform: scale(1.3); }

.jardins-cta{ text-align:center; }

.criterio-cta{
  text-align:center; margin-top: 5.5rem; padding-top: 3.5rem;
  border-top: 1px solid rgba(21,19,15,0.18);
}
.criterio-cta-text{
  font-family: var(--serif); font-weight:400; font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  color: var(--ink); margin-bottom: 1.8rem;
}

.location{ margin-top: 6rem; }
.location-title{
  font-family: var(--serif); font-weight:400; font-size: clamp(1.3rem, 2.2vw, 1.7rem);
  max-width: 46ch; color: var(--cream); margin-bottom: 2.2rem; line-height:1.4;
}
.location-media{
  border-radius: 8px; overflow:hidden; border: 1px solid rgba(231,197,131,0.28);
  box-shadow: 0 30px 60px rgba(0,0,0,0.45);
}
.location-media img{ width:100%; height:auto; display:block; }

/* ============================================
   Contato
   ============================================ */
.contato{
  background: var(--ink);
  padding: 8.5rem 0;
}
.contato-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.contato-copy h2{ font-size: clamp(1.9rem, 3vw, 2.6rem); margin-bottom:1.5rem; color: var(--cream); }
.contato-lead{ font-size:1.02rem; color: rgba(250,246,239,0.72); max-width: 40ch; display:block; margin-bottom: 1rem; }
.contato-extra{ font-size:1.02rem; color: rgba(250,246,239,0.72); max-width: 40ch; margin-bottom: 1rem; }
.contato-extra:last-of-type{ margin-bottom: 2.2rem; }
.contato-links{ display:flex; gap:1rem; flex-wrap:wrap; }

.contato-form{ display:flex; flex-direction:column; gap:1.3rem; }
.field{ display:flex; flex-direction:column; gap:0.5rem; }
.field label{ font-size:0.78rem; letter-spacing:0.05em; color: rgba(250,246,239,0.6); }
.field input, .field select{
  font-family: var(--sans); font-size:0.95rem; padding: 0.85rem 1rem;
  border: 1px solid var(--line); background: var(--cream); color: var(--ink);
  border-radius:2px; outline:none; transition: border-color 0.3s ease;
}
.field input:focus, .field select:focus{ border-color: var(--gold-dark); }
.form-note{ font-size:0.85rem; color: var(--gold-light); min-height:1.2em; }

/* ============================================
   WhatsApp floating button
   ============================================ */
.whatsapp-fab{
  position: fixed; right: 1.75rem; bottom: 1.75rem; z-index: 900;
  width: 58px; height: 58px; border-radius: 50%;
  background: #25D366; color: #fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 10px 26px rgba(0,0,0,0.35);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.whatsapp-fab:hover{ transform: translateY(-3px) scale(1.05); box-shadow: 0 14px 32px rgba(0,0,0,0.4); }
.whatsapp-fab svg{ width: 30px; height: 30px; }

/* ============================================
   Footer
   ============================================ */
.site-footer{ background: var(--ink); color: rgba(250,246,239,0.6); padding: 3.5rem 0; }
.footer-inner{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.footer-mark{ height:26px; width:auto; opacity:0.9; }
.footer-tagline{ font-family: var(--serif); font-size:1rem; color: var(--gold-light); }
.footer-social{ font-size:0.85rem; letter-spacing:0.03em; }
.footer-social:hover{ color: var(--gold); }

/* ============================================
   Scroll reveal
   ============================================ */
.reveal{ opacity:0; transform: translateY(22px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.reveal.in-view{ opacity:1; transform:none; }

/* Titles blur into focus word by word once scrolled into view. */
@keyframes blurTitleIn{
  0%   { filter: blur(10px); opacity:0;   transform: translateY(-30px); }
  50%  { filter: blur(5px);  opacity:0.5; transform: translateY(4px); }
  100% { filter: blur(0);    opacity:1;   transform: translateY(0); }
}
.blur-title .blur-word{
  display:inline-block;
  filter: blur(10px); opacity:0; transform: translateY(-30px);
  animation: blurTitleIn 0.9s var(--ease) forwards;
  animation-play-state: paused;
}
.blur-title.blur-in-view .blur-word{ animation-play-state: running; }

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 980px){
  .manifesto-grid{ grid-template-columns:1fr; gap:2.5rem; }
  .manifesto-mark{ position:static; display:flex; align-items:center; gap:1rem; }
  .manifesto-logo{ margin-bottom:0; width:56px; }
  .pillars{ grid-template-columns:1fr; gap:2.5rem; }
  .launch-cards{ grid-template-columns:1fr; }
  .jardins-intro-grid{ grid-template-columns:1fr; gap:2.5rem; }
  .jardins-intro-logo img{ max-width:260px; }
  .jardins-specs{ grid-template-columns: repeat(2,1fr); row-gap:1.6rem; }
  .infra-grid{ grid-template-columns: repeat(2, 1fr); }
  .gallery-slide{ width: 60%; }
  .contato-grid{ grid-template-columns:1fr; gap:3rem; }
}

@media (max-width: 760px){
  .nav, .header-cta{ display:none; }
  .nav-toggle{ display:block; }
  .site-header.nav-open .nav{
    display:flex; position:fixed; inset:0; flex-direction:column; justify-content:center; align-items:center;
    background: var(--ink); gap:2rem; font-size:1.3rem;
  }
  .hero-content{ padding-top:9rem; padding-bottom:4.5rem; }
  .scroll-cue{ display:none; }
  .jardins-specs{ grid-template-columns:1fr 1fr; }
  .infra-grid{ grid-template-columns: 1fr; gap:2.2rem; }
  .gallery-slide{ width: 82%; }
  .gallery-nav{ width:40px; height:40px; font-size:1rem; }
}
