/* =========================================================
   IGNASI / PARTNERS — off-market real estate
   Editorial · dark · brass accent
   ========================================================= */

:root{
  --bg:           #0A0A0B;
  --bg-2:         #0E0F11;
  --surface:      #111114;
  --surface-2:    #15171B;
  --line:         rgba(234,228,215,.085);
  --line-strong:  rgba(234,228,215,.18);
  --ink:          #EAE4D7;
  --ink-2:        #C8C3B7;
  --muted:        #85827A;
  --muted-2:      #5C5A55;
  --brass:        #C4A56B;
  --brass-2:      #B0935A;
  --brass-soft:   rgba(196,165,107,.18);

  --maxw: 1280px;
  --pad:  clamp(20px, 4vw, 56px);

  --serif:  "Fraunces", "Times New Roman", Georgia, serif;
  --sans:   "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:   "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --t-ease: cubic-bezier(.2,.7,0,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-weight:400;
  font-feature-settings:"ss01","ss02","cv11";
  line-height:1.55; letter-spacing:-0.005em;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
input,select,textarea{ font:inherit; color:inherit; }
::selection{ background:var(--brass); color:#0A0A0B; }

/* ---------- film grain ---------- */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:9999;
  opacity:.06; mix-blend-mode:overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 180px 180px;
}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:80;
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px var(--pad);
  background: linear-gradient(to bottom, rgba(10,10,11,.85), rgba(10,10,11,.45) 70%, transparent);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  border-bottom:1px solid transparent;
  transition: background .35s var(--t-ease), border-color .35s var(--t-ease), padding .35s var(--t-ease);
}
.nav.scrolled{
  background:rgba(10,10,11,.82);
  border-bottom-color:var(--line);
  padding: 12px var(--pad);
}

.nav-brand{
  display:flex; align-items:baseline; gap:12px;
  font-family:var(--sans);
}
.brand-mark{
  font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  color:var(--brass);
  padding:4px 7px;
  border:1px solid var(--brass-soft);
  border-radius:2px;
}
.brand-word{
  font-family:var(--serif); font-weight:400; font-style:normal;
  font-size:18px; letter-spacing:-.01em; color:var(--ink);
}
.brand-slash{ color:var(--brass); font-style:italic; margin:0 1px; }

.nav-links{
  display:flex; gap:28px; align-items:center;
  font-family:var(--mono); font-size:11.5px;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-2);
}
.nav-links a{ position:relative; padding:6px 0; transition:color .25s; }
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--brass); transition:width .35s var(--t-ease);
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after{ width:100%; }

.nav-tools{ display:flex; align-items:center; gap:14px; }
.lang-toggle{
  font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  color:var(--ink-2); padding:6px 10px;
  border:1px solid var(--line-strong); border-radius:2px;
  transition: border-color .25s, color .25s;
}
.lang-toggle .lang-sep{ color:var(--muted-2); margin:0 4px; }
.lang-toggle .lang-on{ color:var(--ink); }
.lang-toggle .lang-off{ color:var(--muted); }
.lang-toggle:hover{ border-color:var(--brass-soft); }
.lang-toggle.is-en .lang-on{ color:var(--muted); }
.lang-toggle.is-en .lang-off{ color:var(--ink); }

.nav-cta{
  font-family:var(--mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase;
  padding:9px 14px;
  background:var(--ink); color:var(--bg);
  border-radius:2px;
  transition: background .25s, transform .2s;
}
.nav-cta:hover{ background:var(--brass); transform:translateY(-1px); }

@media (max-width: 900px){
  .nav-links{ display:none; }
}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; font-weight:500;
  padding:14px 20px; border-radius:2px;
  transition: transform .2s var(--t-ease), background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.btn svg{ transition: transform .25s var(--t-ease); }
.btn:hover svg{ transform: translateX(3px); }
.btn-primary{ background:var(--ink); color:var(--bg); }
.btn-primary:hover{ background:var(--brass); }
.btn-ghost{
  background:transparent; color:var(--ink);
  border:1px solid var(--line-strong);
}
.btn-ghost:hover{ border-color:var(--brass); color:var(--brass); }
.btn-block{ width:100%; justify-content:center; padding:18px 22px; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:100vh;
  padding: clamp(110px, 16vh, 180px) var(--pad) 80px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background: radial-gradient(120% 80% at 0% 0%, #15171B 0%, var(--bg) 55%);
}
.hero-art{
  position:absolute; right:0; top:0; bottom:0;
  width:min(60%, 880px);
  pointer-events:none;
  mask-image: linear-gradient(to left, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to left, #000 60%, transparent 100%);
}
.hero-svg{ width:100%; height:100%; }
.hero-vignette{
  position:absolute; inset:0;
  background:
    radial-gradient(60% 70% at 70% 30%, transparent 0%, rgba(10,10,11,.4) 70%, var(--bg) 100%),
    linear-gradient(to right, var(--bg) 0%, transparent 35%);
}

.layer-back{ animation: drift-back 24s linear infinite alternate; transform-origin:center; }
.layer-mid{  animation: drift-mid 18s linear infinite alternate; transform-origin:center; }
.layer-front{animation: drift-front 14s ease-in-out infinite alternate; transform-origin:center; }
.crane{      animation: crane-sway 7s ease-in-out infinite alternate; transform-origin: 710px 200px; }
.accent-line{ stroke-dasharray:800; stroke-dashoffset:800; animation: draw-line 4.5s 1.4s var(--t-ease) forwards, brass-glow 5s 6s infinite ease-in-out; }
.accent-dot{ opacity:0; animation: dot-in 0.4s 5.4s forwards; }

@keyframes drift-back  { from{ transform:translateY(0) }    to{ transform:translateY(-4px) } }
@keyframes drift-mid   { from{ transform:translateY(2px) }  to{ transform:translateY(-6px) } }
@keyframes drift-front { from{ transform:translateY(0) }    to{ transform:translateY(-3px) } }
@keyframes crane-sway  { from{ transform:rotate(-0.6deg) }  to{ transform:rotate(0.6deg) } }
@keyframes draw-line   { to  { stroke-dashoffset:0 } }
@keyframes brass-glow  {
  0%,100%{ filter:none }
  50%{ filter: drop-shadow(0 0 6px rgba(196,165,107,.45)) }
}
@keyframes dot-in{ to{ opacity:1 } }

.hero-inner{
  position:relative; z-index:2;
  max-width: var(--maxw); margin:0 auto;
}

.hero-meta{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-2);
  margin-bottom: clamp(28px, 5vh, 48px);
  opacity:0; transform: translateY(8px);
  animation: rise .8s .15s var(--t-ease) forwards;
}
.dot{ width:6px; height:6px; border-radius:50%; background:var(--brass); display:inline-block; box-shadow:0 0 10px var(--brass); }

.hero-title{
  font-family:var(--serif);
  font-weight:300;
  font-size: clamp(40px, 7.4vw, 104px);
  line-height: .98;
  letter-spacing:-.025em;
  margin: 0 0 clamp(24px, 4vh, 44px);
  max-width: 18ch;
  color:var(--ink);
}
.hero-title em{
  font-style:italic; font-weight:400;
  color:var(--brass);
  font-variation-settings: "SOFT" 80;
}
.hero-title .line{
  display:block; opacity:0; transform: translateY(18px);
}
.hero-title .line-1{ animation: rise .9s .35s var(--t-ease) forwards; }
.hero-title .line-2{ animation: rise .9s .55s var(--t-ease) forwards; }
.hero-title .line-3{ animation: rise .9s .75s var(--t-ease) forwards; }

.hero-sub{
  font-family:var(--serif); font-weight:300;
  font-size: clamp(16px, 1.6vw, 21px);
  line-height: 1.5; color:var(--ink-2);
  max-width: 48ch; margin: 0 0 40px;
  opacity:0; transform: translateY(10px);
  animation: rise .9s .95s var(--t-ease) forwards;
}
.hero-sub strong{ color:var(--ink); font-weight:500; font-style:italic; }

.hero-cta{
  display:flex; flex-wrap:wrap; gap:12px;
  opacity:0; transform: translateY(10px);
  animation: rise .9s 1.1s var(--t-ease) forwards;
}

.hero-strip{
  margin-top: clamp(48px, 8vh, 80px);
  padding-top: 24px;
  border-top:1px solid var(--line);
  display:flex; align-items:center; gap:28px;
  flex-wrap:wrap;
  opacity:0; transform: translateY(10px);
  animation: rise .9s 1.35s var(--t-ease) forwards;
}
.strip-label{
  font-family:var(--mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);
}
.strip-list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-wrap:wrap; gap: 24px;
  font-family:var(--serif); font-size:15px; font-style:italic; font-weight:300;
  color:var(--ink-2);
}
.strip-list li{ position:relative; padding-left:18px; }
.strip-list li::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:6px; height:1px; background:var(--brass);
}

.hero-scroll{
  position:absolute; bottom:24px; left:50%; transform: translateX(-50%);
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted);
  animation: scroll-bob 2.2s ease-in-out infinite;
}
@keyframes scroll-bob{
  0%,100%{ transform: translate(-50%, 0) }
  50%   { transform: translate(-50%, 6px) }
}
@keyframes rise{ to{ opacity:1; transform: translateY(0); } }

@media (max-width: 900px){
  .hero-art{ width:100%; opacity:.45; mask-image: linear-gradient(to top, transparent, #000 60%); -webkit-mask-image: linear-gradient(to top, transparent, #000 60%); }
  .hero-title{ font-size: clamp(38px, 11vw, 64px); }
  .hero-scroll{ display:none; }
}

/* =========================================================
   BAND TRUST
   ========================================================= */
.band{
  padding: clamp(60px, 10vh, 110px) var(--pad);
  border-bottom:1px solid var(--line);
  background: var(--bg-2);
}
.band-inner{ max-width: 920px; margin:0 auto; text-align:center; }
.band-quote{
  font-family:var(--serif); font-weight:300; font-style:italic;
  font-size: clamp(22px, 3.2vw, 36px);
  line-height:1.35; letter-spacing:-.01em;
  color:var(--ink);
  margin:0;
}
.quote-mark{
  font-family:var(--serif); color:var(--brass); font-size:1.6em; line-height:0;
  position:relative; top:.18em; margin-right:.05em;
}
.quote-mark.quote-end{ margin-left:.05em; margin-right:0; }

/* =========================================================
   SECTION SCAFFOLD
   ========================================================= */
.section{
  position:relative;
  padding: clamp(80px, 12vh, 140px) var(--pad);
  max-width: var(--maxw); margin: 0 auto;
}
.section + .section, .band + .section{ border-top:1px solid var(--line); }

.section-head{ max-width: 880px; margin-bottom: clamp(50px, 7vh, 80px); }

.section-tag{
  display:inline-flex; align-items:center; gap:14px;
  font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass);
  margin-bottom: 22px;
}
.section-tag span:first-child{
  border:1px solid var(--brass-soft); padding:3px 7px; border-radius:2px;
}
.section-tag span:last-child{ color:var(--ink-2); }

.section-title{
  font-family:var(--serif); font-weight:300;
  font-size: clamp(34px, 5.4vw, 64px);
  line-height:1.02; letter-spacing:-.02em;
  margin:0 0 24px;
  color:var(--ink);
}
.section-title em{
  font-style:italic; font-weight:400; color:var(--brass);
  font-variation-settings: "SOFT" 80;
}

.section-lede{
  font-family:var(--serif); font-weight:300;
  font-size: clamp(16px, 1.5vw, 19px);
  line-height:1.55; color:var(--ink-2);
  max-width: 56ch; margin:0;
}

/* =========================================================
   CARDS GRID (QUÉ HACEMOS)
   ========================================================= */
.cards-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.card{
  position:relative;
  padding: clamp(28px, 3.5vw, 44px);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition: background .35s var(--t-ease);
}
.card::before{
  content:""; position:absolute; left:0; top:0; height:1px; width:0;
  background:var(--brass); transition: width .5s var(--t-ease);
}
.card:hover{ background: var(--surface); }
.card:hover::before{ width:100%; }

.card-num{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  color:var(--brass); margin-bottom:36px;
}
.card-title{
  font-family:var(--serif); font-weight:400;
  font-size: clamp(20px, 1.8vw, 24px);
  line-height:1.2; letter-spacing:-.01em;
  margin:0 0 14px; color:var(--ink);
}
.card-text{
  font-size:14.5px; line-height:1.6; color:var(--ink-2);
  margin:0; max-width: 38ch;
}

@media (max-width: 980px){
  .cards-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .cards-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   ASSETS LIST
   ========================================================= */
.section-assets{ background: linear-gradient(to bottom, transparent, rgba(196,165,107,.025)); }

.assets-list{
  list-style:none; margin:0; padding:0;
  border-top:1px solid var(--line);
}
.asset{
  display:grid;
  grid-template-columns: 80px 1.2fr 2fr 40px;
  align-items:baseline;
  gap: 24px;
  padding: clamp(20px, 2.4vw, 28px) 0;
  border-bottom:1px solid var(--line);
  position:relative;
  transition: padding-left .35s var(--t-ease);
  cursor:default;
}
.asset::after{
  content:"→";
  font-family:var(--mono); color:var(--brass);
  justify-self:end; opacity:0;
  transform: translateX(-6px);
  transition: opacity .35s, transform .35s var(--t-ease);
}
.asset:hover{ padding-left: 14px; }
.asset:hover::after{ opacity:1; transform: translateX(0); }
.asset-num{
  font-family:var(--mono); font-size:11px; letter-spacing:.12em;
  color:var(--muted);
}
.asset-name{
  font-family:var(--serif); font-weight:400;
  font-size: clamp(20px, 2.4vw, 30px);
  letter-spacing:-.01em; color:var(--ink);
}
.asset-desc{
  font-size: 14.5px; line-height:1.5; color:var(--ink-2);
}

.assets-note{
  margin-top: 40px;
  display:flex; align-items:flex-start; gap:12px;
  font-family:var(--serif); font-style:italic; font-weight:300;
  font-size: 15px; color:var(--muted);
  max-width: 64ch;
}
.note-mark{ color:var(--brass); font-size: 22px; line-height:1; }

@media (max-width: 780px){
  .asset{ grid-template-columns: 60px 1fr; grid-template-rows: auto auto; }
  .asset-desc{ grid-column: 2; }
  .asset::after{ display:none; }
}

/* =========================================================
   PROCESS
   ========================================================= */
.process{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns: repeat(4, 1fr); gap:0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  counter-reset: step;
}
.step{
  position:relative;
  padding: clamp(28px, 3vw, 40px);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background: var(--bg);
  transition: background .35s;
}
.step:hover{ background: var(--surface); }
.step-num{
  font-family:var(--serif); font-weight:300;
  font-size: clamp(56px, 7vw, 92px);
  line-height:1; letter-spacing:-.03em;
  color:var(--brass); margin-bottom: 28px;
  font-variation-settings: "SOFT" 50;
}
.step-title{
  font-family:var(--serif); font-weight:400;
  font-size: clamp(18px, 1.6vw, 22px);
  margin:0 0 10px; color:var(--ink); letter-spacing:-.01em;
}
.step-text{
  font-size:14.5px; line-height:1.6; color:var(--ink-2); margin:0;
}

@media (max-width: 980px){ .process{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .process{ grid-template-columns: 1fr; } }

/* =========================================================
   METRICS
   ========================================================= */
.metrics{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom: 80px;
}
.metric{
  padding: clamp(36px, 5vw, 60px) 28px;
  border-right:1px solid var(--line);
  text-align:left;
}
.metric:last-child{ border-right:0; }
.metric-num{
  font-family:var(--serif); font-weight:300;
  font-size: clamp(48px, 6.5vw, 86px);
  line-height:.95; letter-spacing:-.03em;
  color:var(--ink);
  font-variation-settings: "SOFT" 50;
}
.metric-num .unit{
  font-size:.45em; color:var(--brass);
  margin-left:.06em; font-weight:400;
  font-variation-settings: "SOFT" 100;
}
.metric-label{
  margin-top: 16px;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
  max-width: 24ch; line-height:1.55;
}

@media (max-width: 980px){ .metrics{ grid-template-columns: repeat(2,1fr); }
  .metric:nth-child(2){ border-right:0; }
  .metric:nth-child(1),.metric:nth-child(2){ border-bottom:1px solid var(--line); }
}
@media (max-width: 540px){ .metrics{ grid-template-columns: 1fr; }
  .metric{ border-right:0; border-bottom:1px solid var(--line); }
  .metric:last-child{ border-bottom:0; }
}

/* ---- cases ---- */
.cases-head{ margin-bottom: 28px; }
.cases-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brass);
}
.cases-grid{
  display:grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
  background: var(--line);
  border:1px solid var(--line);
}
.case{
  background:var(--bg);
  padding: clamp(28px, 3vw, 40px);
  transition: background .35s;
}
.case:hover{ background: var(--surface); }
.case-meta{
  display:flex; justify-content:space-between; align-items:center;
  font-family:var(--mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom: 22px;
}
.case-id{ color:var(--brass); }
.case-loc{ color:var(--muted); }
.case-title{
  font-family:var(--serif); font-weight:400;
  font-size: clamp(20px, 2vw, 26px);
  letter-spacing:-.01em; line-height:1.25;
  margin:0 0 14px; color:var(--ink);
}
.case-text{
  font-size:14.5px; line-height:1.6; color:var(--ink-2); margin:0 0 18px;
}
.case-foot{
  font-family:var(--mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted-2);
}
.dotsep{ color:var(--brass); margin:0 8px; }

.cases-disclaimer{
  margin-top: 28px;
  font-family:var(--serif); font-style:italic; font-weight:300;
  font-size:13.5px; color:var(--muted);
  max-width: 70ch;
}

@media (max-width: 820px){ .cases-grid{ grid-template-columns: 1fr; } }

/* =========================================================
   WHO (vendor / capital)
   ========================================================= */
.who-grid{
  display:grid; grid-template-columns: 1fr auto 1fr; gap: clamp(20px, 4vw, 60px);
  align-items:stretch;
  border-top:1px solid var(--line);
  padding-top: 40px;
}
.who-col{ padding: 8px 0; }
.who-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brass);
  padding-bottom: 14px; margin-bottom: 20px;
  border-bottom:1px solid var(--line);
}
.who-list{
  list-style:none; padding:0; margin:0;
  font-family:var(--serif); font-weight:400;
  font-size: clamp(18px, 1.8vw, 22px);
  line-height:1.55; color:var(--ink);
}
.who-list li{
  padding: 10px 0; border-bottom:1px dashed var(--line);
  letter-spacing:-.005em;
}
.who-list li:last-child{ border-bottom:0; }

.who-divider{
  display:flex; align-items:center; justify-content:center;
}
.who-arrow{
  font-family:var(--serif); font-style:italic;
  font-size: clamp(36px, 5vw, 64px); color:var(--brass);
  animation: arrow-pulse 3s ease-in-out infinite;
}
@keyframes arrow-pulse{
  0%,100%{ transform: translateX(0); opacity:.85 }
  50%   { transform: translateX(8px); opacity:1 }
}

@media (max-width: 780px){
  .who-grid{ grid-template-columns: 1fr; }
  .who-divider{ transform: rotate(90deg); padding: 12px 0; }
}

/* =========================================================
   CONTACT
   ========================================================= */
.section-contact{
  background:
    radial-gradient(80% 60% at 20% 0%, rgba(196,165,107,.06), transparent 60%),
    var(--bg);
  padding-bottom: clamp(100px, 14vh, 160px);
}
.contact-grid{
  display:grid; grid-template-columns: 1.05fr 1fr;
  gap: clamp(40px, 6vw, 90px);
  align-items:start;
}

.contact-title{
  font-family:var(--serif); font-weight:300;
  font-size: clamp(32px, 5vw, 60px);
  line-height:1.04; letter-spacing:-.02em;
  margin: 26px 0 24px; color:var(--ink);
}
.contact-title em{ font-style:italic; color:var(--brass); font-variation-settings:"SOFT" 80; }

.contact-lede{
  font-family:var(--serif); font-weight:300;
  font-size: 18px; line-height:1.55; color:var(--ink-2);
  max-width: 44ch; margin: 0 0 40px;
}

.contact-direct{
  border-top:1px solid var(--line);
}
.direct-row{
  display:grid; grid-template-columns: 140px 1fr 30px;
  align-items:center; gap: 16px;
  padding: 22px 4px;
  border-bottom:1px solid var(--line);
  transition: padding-left .3s var(--t-ease), background .25s;
}
.direct-row:hover{ padding-left: 14px; background: rgba(196,165,107,.04); }
.direct-info{
  grid-template-columns: 140px 1fr;
  cursor: default;
}
.direct-info:hover{ padding-left: 4px; background: transparent; }
.direct-info .direct-value{
  font-family: var(--sans);
  font-size: clamp(14px, 1.4vw, 17px);
  color: var(--brass);
  font-weight: 400;
  letter-spacing: 0;
}
.direct-label{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted);
}
.direct-value{
  font-family:var(--serif); font-size: clamp(18px, 2.2vw, 26px);
  font-weight:400; letter-spacing:-.01em; color:var(--ink);
}
.direct-arrow{
  font-family:var(--mono); color:var(--brass); justify-self:end;
  transition: transform .3s var(--t-ease);
}
.direct-row:hover .direct-arrow{ transform: translateX(6px); }

/* form */
.contact-form{
  background: var(--surface);
  border:1px solid var(--line);
  padding: clamp(28px, 3vw, 44px);
  border-radius: 3px;
  position:relative;
}
.contact-form::before{
  content:""; position:absolute; left:0; top:0; height:2px; width:60px;
  background: var(--brass);
}
.form-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; margin-bottom: 28px; flex-wrap:wrap;
}
.form-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brass);
}
.form-secure{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);
}
.field{ margin-bottom: 18px; }
.field-row{
  display:grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.field label{
  display:block;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted);
  margin-bottom: 8px;
}
.field input,
.field textarea,
.field select{
  width:100%;
  background: transparent;
  border:0;
  border-bottom:1px solid var(--line-strong);
  padding: 12px 2px;
  font-family:var(--serif); font-weight:400;
  font-size:16px; letter-spacing:-.005em;
  color:var(--ink);
  transition: border-color .25s;
  border-radius:0;
}
.field input:focus,
.field textarea:focus,
.field select:focus{ outline:none; border-bottom-color:var(--brass); }
.field textarea{ resize: vertical; min-height: 100px; font-family:var(--sans); font-size:15px; }
.field input::placeholder{ color:var(--muted-2); font-style:italic; }

.select-wrap{ position:relative; }
.select-wrap select{
  appearance:none; -webkit-appearance:none;
  background:transparent; padding-right: 24px;
  cursor:pointer;
}
.select-wrap select option{ background: var(--surface); color: var(--ink); }
.select-caret{
  position:absolute; right:4px; top:50%; transform: translateY(-50%);
  color:var(--brass); pointer-events:none; font-size:12px;
}

.check{
  display:flex; align-items:flex-start; gap:10px;
  font-size:13px; line-height:1.5; color:var(--ink-2);
  margin: 18px 0 22px;
  cursor:pointer;
}
.check input{
  appearance:none; -webkit-appearance:none;
  width:16px; height:16px; flex:0 0 16px;
  border:1px solid var(--line-strong);
  border-radius:2px; background: transparent;
  position:relative; top:2px; cursor:pointer;
  transition: border-color .2s, background .2s;
}
.check input:checked{ background: var(--brass); border-color: var(--brass); }
.check input:checked::after{
  content:""; position:absolute; left:4px; top:1px;
  width:5px; height:9px;
  border:solid var(--bg); border-width:0 1.8px 1.8px 0;
  transform: rotate(45deg);
}

.form-foot{
  margin: 18px 0 0;
  font-size:12.5px; color:var(--muted); text-align:center;
}
.form-foot a{ color:var(--ink-2); border-bottom:1px solid var(--line-strong); }
.form-foot a:hover{ color:var(--brass); border-bottom-color: var(--brass); }

.form-success{
  margin-top: 18px;
  padding: 16px;
  border:1px solid var(--brass-soft);
  background: rgba(196,165,107,.06);
  font-family:var(--serif); font-size:15px; color:var(--ink);
  border-radius:2px;
}
.form-success strong{ color:var(--brass); margin-right:6px; }

@media (max-width: 900px){
  .contact-grid{ grid-template-columns: 1fr; }
  .direct-row{ grid-template-columns: 110px 1fr 24px; }
}
@media (max-width: 480px){
  .field-row{ grid-template-columns: 1fr; }
  .direct-row{ grid-template-columns: 1fr; gap:4px; padding: 18px 4px; }
  .direct-arrow{ display:none; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  border-top:1px solid var(--line);
  padding: 48px var(--pad) 32px;
  background: var(--bg-2);
}
.footer-top{
  display:flex; justify-content:space-between; gap:24px; align-items:flex-end;
  flex-wrap:wrap;
  padding-bottom: 32px; border-bottom:1px solid var(--line);
  margin-bottom: 24px;
}
.footer-brand{ display:flex; align-items:baseline; gap:12px; }
.footer-tag{
  font-family:var(--serif); font-style:italic; font-weight:300;
  font-size:14.5px; color:var(--muted); max-width: 50ch; margin:0;
}
.footer-bot{
  display:flex; flex-wrap:wrap; gap:6px;
  font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted);
}
.footer-bot a:hover{ color:var(--brass); }

/* =========================================================
   FLOATING ACTIONS
   ========================================================= */
.floating{
  position:fixed; right: clamp(14px, 2vw, 24px); bottom: clamp(14px, 2vw, 24px);
  z-index: 90;
  display:flex; flex-direction:column; gap: 12px;
}
.float-btn{
  position:relative;
  width: 54px; height: 54px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  box-shadow: 0 8px 28px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06) inset;
  transition: transform .25s var(--t-ease);
}
.float-btn:hover{ transform: translateY(-2px) scale(1.04); }
.float-contact{
  background: var(--ink);
  color: var(--bg);
  border: 1px solid var(--brass-soft);
}
.float-contact:hover{
  background: var(--brass);
  color: #0A0A0B;
}
.float-pulse{
  position:absolute; inset:-3px; border-radius:50%;
  border:2px solid var(--brass);
  animation: pulse 2.4s ease-out infinite;
  pointer-events:none;
}
@keyframes pulse{
  0%   { transform: scale(.85); opacity:.8 }
  100% { transform: scale(1.65);  opacity:0   }
}

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0; transform: translateY(20px); transition: opacity .9s var(--t-ease), transform .9s var(--t-ease); }
.reveal.in{ opacity:1; transform: translateY(0); }
.reveal-d1{ transition-delay: .08s; }
.reveal-d2{ transition-delay: .16s; }
.reveal-d3{ transition-delay: .24s; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
