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

:root{
  --bg:       #040d06;
  --bg2:      #071008;
  --bg3:      #0a160b;
  --ac:       #7ED98F;
  --ac2:      #5bbf6e;
  --white:    #f5f0e8;
  --muted:    rgba(245,240,232,0.45);
  --border:   rgba(126,217,143,0.18);
  --border2:  rgba(126,217,143,0.08);
  --serif:    'Cormorant Garamond', Georgia, serif;
  --sans:     'DM Sans', sans-serif;
}

html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--white);font-family:var(--sans);font-weight:300;overflow-x:hidden}

/* ─── HERO ─── */
.hero{
  position:relative;min-height:72vh;display:flex;align-items:flex-end;
  background:#040d06;overflow:hidden;
}
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(126,217,143,0.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(126,217,143,0.04) 1px,transparent 1px);
  background-size:60px 60px;
}
.hero-glow{
  position:absolute;top:-20%;left:50%;transform:translateX(-50%);
  width:700px;height:700px;border-radius:50%;
  background:radial-gradient(circle,rgba(126,217,143,0.07) 0%,transparent 70%);
  pointer-events:none;
}
.hero-ring{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:900px;height:900px;border-radius:50%;
  border:1px solid rgba(126,217,143,0.06);
  pointer-events:none;
}
.hero-ring2{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:600px;height:600px;border-radius:50%;
  border:1px solid rgba(126,217,143,0.04);pointer-events:none;
}
.hero-ov{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,transparent 30%,var(--bg) 100%);
}
.hero-content{
  position:relative;z-index:2;padding:0 7vw 8vh;max-width:900px;
  animation:fadeUp .9s ease both;
}
.hero-kicker{
  font-family:var(--sans);font-size:11px;letter-spacing:3px;
  color:var(--ac);text-transform:uppercase;margin-bottom:1.6rem;
  display:flex;align-items:center;gap:12px;
}
.hero-kicker::before{content:'';width:32px;height:1px;background:var(--ac);opacity:.6;}
.hero h1{
  font-family:var(--serif);font-weight:300;font-size:clamp(3rem,6vw,5.5rem);
  line-height:1.08;letter-spacing:-.5px;margin-bottom:1.4rem;
  color:var(--white);
}
.hero h1 em{color:var(--ac);font-style:italic;}
.hero-body{
  font-size:1.05rem;line-height:1.75;color:var(--muted);
  max-width:520px;margin-bottom:2.4rem;
}
.btn-p{
  display:inline-flex;align-items:center;gap:10px;
  padding:.85rem 2.2rem;background:var(--ac);color:#040d06;
  font-family:var(--sans);font-size:.88rem;font-weight:500;
  letter-spacing:.5px;border:none;cursor:pointer;
  transition:background .2s,transform .15s;
}
.btn-p:hover{background:var(--ac2);transform:translateY(-1px);}

/* ─── CONTACT SECTION ─── */
.contact-section{padding:8vh 7vw;position:relative;}
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:start;}
@media(max-width:900px){.contact-wrap{grid-template-columns:1fr;}}

/* Left */
.sec-eyebrow{
  font-size:10px;letter-spacing:3px;text-transform:uppercase;
  color:var(--ac);margin-bottom:1rem;
  display:flex;align-items:center;gap:10px;
}
.sec-eyebrow::before{content:'';width:24px;height:1px;background:var(--ac);opacity:.6;}
.contact-left h2,.contact-right h2{
  font-family:var(--serif);font-weight:300;font-size:clamp(2rem,3.5vw,3rem);
  line-height:1.12;margin-bottom:2.8rem;
}
.contact-left h2 em,.contact-right h2 em{color:var(--ac);font-style:italic;}

/* Location cards */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:2.5rem;}
.loc-card{
  background:var(--bg2);border:1px solid var(--border2);
  padding:1.6rem 1.4rem;position:relative;overflow:hidden;
  transition:border-color .2s,background .2s;
}
.loc-card::before{
  content:'';position:absolute;top:0;left:0;width:3px;height:100%;
  background:var(--ac);opacity:0;transition:opacity .25s;
}
.loc-card:hover{border-color:var(--border);background:var(--bg3);}
.loc-card:hover::before{opacity:1;}
.loc-card.full{grid-column:1/-1;}

.loc-city{
  font-family:var(--serif);font-size:1.25rem;font-weight:400;
  color:var(--white);margin-bottom:1rem;
}
.loc-detail{
  display:flex;align-items:flex-start;gap:8px;
  margin-bottom:.65rem;font-size:.82rem;color:var(--muted);line-height:1.55;
}
.loc-detail svg{width:13px;height:13px;flex-shrink:0;margin-top:2px;stroke:var(--ac);opacity:.7;}
.loc-detail a{color:var(--muted);text-decoration:none;border-bottom:1px solid rgba(126,217,143,.2);padding-bottom:1px;transition:color .2s;}
.loc-detail a:hover{color:var(--ac);}

/* Response table */
.resp-table{border-top:1px solid var(--border2);}
.resp-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:.9rem 0;border-bottom:1px solid var(--border2);
  font-size:.83rem;
}
.resp-lbl{color:var(--muted);}
.resp-val{
  color:var(--ac);font-weight:500;font-size:.78rem;
  letter-spacing:.5px;
}

/* Right — Form */
.form-card{
  background:var(--bg2);border:1px solid var(--border);
  padding:3rem 2.8rem;position:relative;overflow:hidden;
}
.form-card::after{
  content:'';position:absolute;top:-120px;right:-120px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(126,217,143,0.05) 0%,transparent 70%);
  pointer-events:none;
}
.bhc-form{display:flex;flex-direction:column;gap:1.2rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.field{display:flex;flex-direction:column;gap:.45rem;}
.field label{
  font-size:.75rem;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--ac);font-weight:400;
}
.field input,.field select,.field textarea{
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(126,217,143,0.15);
  color:var(--white);font-family:var(--sans);font-size:.9rem;font-weight:300;
  padding:.85rem 1rem;outline:none;width:100%;
  transition:border-color .2s,background .2s;appearance:none;
}
.field input::placeholder,.field textarea::placeholder{color:rgba(245,240,232,.22);}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--ac);background:rgba(126,217,143,.04);
}
.field select option{background:#071008;color:var(--white);}
.field textarea{min-height:120px;resize:vertical;line-height:1.6;}

.submit-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:1rem 2rem;background:var(--ac);color:#040d06;
  font-family:var(--sans);font-size:.9rem;font-weight:500;
  letter-spacing:.5px;border:none;cursor:pointer;
  transition:background .2s,transform .15s;margin-top:.4rem;
}
.submit-btn:hover{background:var(--ac2);transform:translateY(-1px);}
.submit-btn svg{width:16px;height:16px;stroke:#040d06;}
.form-note{
  font-size:.75rem;color:var(--muted);text-align:center;
  padding-top:.3rem;letter-spacing:.3px;
}

/* ─── CTA BAND ─── */
.cta-band{
  position:relative;padding:7vh 7vw;overflow:hidden;
  background:var(--bg2);border-top:1px solid var(--border2);
}
.cta-glow{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:600px;height:200px;
  background:radial-gradient(ellipse,rgba(126,217,143,0.07) 0%,transparent 70%);
  pointer-events:none;
}
.cta-inner{
  position:relative;z-index:1;
  display:flex;justify-content:space-between;align-items:center;gap:3rem;flex-wrap:wrap;
}
.cta-eyebrow{
  font-size:9.5px;letter-spacing:2.5px;color:var(--ac);
  text-transform:uppercase;margin-bottom:.9rem;opacity:.8;
}
.cta-h{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.15;
}
.cta-h em{color:var(--ac);font-style:italic;}
.cta-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.btn-g{
  padding:.85rem 2.2rem;background:transparent;
  border:1px solid rgba(126,217,143,.35);color:var(--white);
  font-family:var(--sans);font-size:.88rem;font-weight:400;
  cursor:pointer;transition:border-color .2s,color .2s;letter-spacing:.3px;
}
.btn-g:hover{border-color:var(--ac);color:var(--ac);}

/* ─── ANIMATIONS ─── */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* ─── NAV STUB ─── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 7vw;border-bottom:1px solid transparent;
  transition:background .3s,border-color .3s;
}
nav.solid{background:rgba(4,13,6,.96);border-color:var(--border2);backdrop-filter:blur(12px);}
.nav-logo{
  font-family:var(--serif);font-size:1.3rem;font-weight:300;
  color:var(--white);letter-spacing:.5px;text-decoration:none;
}
.nav-logo span{color:var(--ac);}
.nav-links{display:flex;gap:2.2rem;list-style:none;}
.nav-links a{
  font-size:.8rem;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted);text-decoration:none;transition:color .2s;
}
.nav-links a:hover,.nav-links a.active{color:var(--ac);}