:root{
  --bg:#0B3D2E;
  --bg-alt:#082E22;
  --bg-soft:#0F4A38;
  --sage:#8FBC8F;
  --sage-soft:#A9CDA9;
  --sage-dim:#6B926B;
  --amber:#DAA520;
  --amber-soft:#E8B838;
  --amber-dim:#B88A1A;
  --white:#F4F1E8;
  --border:rgba(143,188,143,0.25);
  --border-amber:rgba(218,165,32,0.4);
  --shadow:0 10px 30px rgba(0,0,0,0.35);
  --shadow-lift:0 20px 50px rgba(0,0,0,0.5);
  --serif:'Libre Baskerville',Georgia,'Times New Roman',serif;
  --sans:'Karla','Helvetica Neue',Arial,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--sage);
  line-height:1.7;
  font-size:17px;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:400;color:var(--white);line-height:1.2;letter-spacing:0.5px;margin-bottom:0.6em}
h1{font-size:clamp(2.4rem,5.5vw,4.2rem)}
h2{font-size:clamp(1.9rem,3.8vw,2.9rem)}
h3{font-size:clamp(1.4rem,2.4vw,1.8rem)}
h4{font-size:1.25rem}
p{margin-bottom:1.2em;max-width:68ch}
a{color:var(--amber);text-decoration:none;transition:color .3s ease}
a:hover{color:var(--amber-soft)}
img{max-width:100%;height:auto;display:block;object-fit:cover}
ul,ol{margin-bottom:1.2em;padding-left:1.5em}
li{margin-bottom:0.4em}
strong{color:var(--white);font-weight:700}
em{color:var(--sage-soft)}
::selection{background:var(--amber);color:var(--bg)}

/* HEADER / NAV */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  padding:1.4rem 0;
  background:transparent;
  transition:background .4s ease,padding .4s ease,box-shadow .4s ease;
}
.site-header.scrolled{
  background:rgba(8,46,34,0.96);
  padding:0.85rem 0;
  box-shadow:0 4px 24px rgba(0,0,0,0.4);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.nav-wrap{
  max-width:1280px;
  margin:0 auto;
  padding:0 2rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.logo{
  font-family:var(--serif);
  font-size:1.55rem;
  color:var(--white);
  letter-spacing:1px;
  line-height:1.1;
  display:flex;
  flex-direction:column;
}
.logo .logo-main{font-weight:400}
.logo .logo-sub{
  font-family:var(--sans);
  font-size:0.62rem;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--amber);
  margin-top:2px;
  font-weight:700;
}
.logo:hover{color:var(--white)}
.logo:hover .logo-sub{color:var(--amber-soft)}

.nav-links{
  display:flex;
  align-items:center;
  gap:0.4rem;
  list-style:none;
  margin:0;padding:0;
}
.nav-links a{
  display:block;
  padding:0.6rem 1.1rem;
  color:var(--sage-soft);
  font-size:0.88rem;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  border:2px solid transparent;
  transition:color .3s ease,border-color .3s ease,background .3s ease;
}
.nav-links a:hover{color:var(--amber);border-color:var(--border-amber)}
.nav-links a.active,.nav-links a[aria-current="page"]{
  color:var(--amber);
  border-color:var(--amber);
}

.nav-toggle{
  display:none;
  background:transparent;
  border:2px solid var(--sage);
  color:var(--sage);
  width:46px;height:46px;
  cursor:pointer;
  font-size:1.3rem;
  line-height:1;
  padding:0;
  transition:border-color .3s,color .3s;
}
.nav-toggle:hover{border-color:var(--amber);color:var(--amber)}
.nav-toggle:focus{outline:2px solid var(--amber);outline-offset:2px}

/* HERO */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:8rem 2rem 6rem;
  background:linear-gradient(160deg,var(--bg) 0%,var(--bg-soft) 55%,var(--bg-alt) 100%);
  position:relative;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 70% 30%,rgba(218,165,32,0.08),transparent 55%);
  pointer-events:none;
}
.hero-inner{max-width:880px;position:relative;z-index:2}
.hero h1{
  color:var(--white);
  margin-bottom:1.4rem;
  text-shadow:0 2px 20px rgba(0,0,0,0.3);
}
.hero h1 .accent{color:var(--amber);font-style:italic}
.hero .subtitle{
  font-size:clamp(1.05rem,2vw,1.35rem);
  color:var(--sage-soft);
  margin:0 auto 2.6rem;
  max-width:620px;
  line-height:1.6;
}
.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* BUTTONS */
.btn{
  display:inline-block;
  padding:0.95rem 2.2rem;
  font-family:var(--sans);
  font-size:0.82rem;
  font-weight:700;
  letter-spacing:2.5px;
  text-transform:uppercase;
  border:2px solid var(--amber);
  border-radius:0;
  background:transparent;
  color:var(--amber);
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,background .3s ease,color .3s ease;
  text-align:center;
  line-height:1.2;
}
.btn:hover{
  transform:scale(1.04);
  box-shadow:0 8px 24px rgba(218,165,32,0.3);
  background:var(--amber);
  color:var(--bg);
}
.btn:focus-visible{outline:3px solid var(--amber-soft);outline-offset:3px}
.btn-primary{background:var(--amber);color:var(--bg)}
.btn-primary:hover{background:var(--amber-soft);border-color:var(--amber-soft);color:var(--bg)}
.btn-outline-sage{border-color:var(--sage);color:var(--sage)}
.btn-outline-sage:hover{background:var(--sage);color:var(--bg);box-shadow:0 8px 24px rgba(143,188,143,0.3)}
.btn-large{padding:1.15rem 2.8rem;font-size:0.9rem}

/* SECTIONS */
.section{
  padding:6rem 2rem;
  position:relative;
}
.section-alt{background:var(--bg-alt)}
.section-soft{background:var(--bg-soft)}
.section-dark{background:#061F17}
.container{max-width:1280px;margin:0 auto}
.container-narrow{max-width:860px;margin:0 auto}
.section-header{text-align:center;margin-bottom:4rem}
.section-header h2{margin-bottom:0.8rem}
.section-header p{color:var(--sage-soft);margin:0 auto;max-width:620px;font-size:1.1rem}
.eyebrow{
  display:inline-block;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:1rem;
  padding-bottom:0.5rem;
  border-bottom:2px solid var(--amber);
}

/* CARDS / GRID */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:2.5rem;
}
.card{
  background:var(--bg-soft);
  border:1px solid var(--border);
  padding:2.5rem 2rem;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
  display:flex;
  flex-direction:column;
}
.section-alt .card{background:var(--bg)}
.card:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-lift);
  border-color:var(--border-amber);
}
.card-icon{
  width:64px;height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.8rem;
  border:2px solid var(--amber);
  color:var(--amber);
  margin-bottom:1.5rem;
  font-family:var(--serif);
}
.card h3{color:var(--white);margin-bottom:0.8rem}
.card p{color:var(--sage);font-size:0.98rem;flex-grow:1;margin-bottom:1.5rem}
.card .btn{align-self:flex-start;padding:0.7rem 1.6rem;font-size:0.76rem}

/* IMAGE CARD */
.card-image{padding:0;overflow:hidden}
.card-image .card-img-wrap{overflow:hidden;aspect-ratio:16/10}
.card-image .card-img-wrap img{
  width:100%;height:100%;
  transition:transform .6s ease;
}
.card-image:hover .card-img-wrap img{transform:scale(1.08)}
.card-image .card-body{padding:2rem}

/* CONTENT ROW */
.content-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}
.content-row.reverse .content-text{order:2}
.content-row.reverse .content-media{order:1}
.content-media img{
  width:100%;
  aspect-ratio:4/3;
  border:1px solid var(--border);
}
.content-text h2{margin-bottom:1.2rem}
.content-text p{margin-bottom:1.2rem;color:var(--sage-soft)}
.content-text .btn{margin-top:0.6rem}

/* CONTACT / ADDRESS */
.contact-block{
  background:var(--bg-soft);
  border:1px solid var(--border);
  padding:3.5rem 3rem;
  max-width:760px;
  margin:0 auto;
}
.contact-block h2{text-align:center;margin-bottom:2.5rem}
.address-block{
  font-style:normal;
  font-size:1.08rem;
  line-height:2;
  color:var(--sage-soft);
  margin-bottom:2rem;
}
.address-block strong{
  display:block;
  color:var(--white);
  font-family:var(--serif);
  font-size:1.3rem;
  margin-bottom:0.8rem;
  font-weight:400;
}
.address-block .addr-line{display:block;margin-bottom:0.3rem}
.address-block .addr-label{
  display:inline-block;
  width:90px;
  color:var(--amber);
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
}
.contact-list{list-style:none;padding:0;margin:2rem 0}
.contact-list li{
  display:flex;
  align-items:baseline;
  gap:1rem;
  margin-bottom:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--border);
}
.contact-list li:last-child{border-bottom:none}
.contact-list .contact-label{
  color:var(--amber);
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  min-width:100px;
}
.contact-list a{color:var(--sage-soft);font-weight:600}
.contact-list a:hover{color:var(--amber)}

/* FORM */
.contact-form{display:grid;gap:1.4rem;margin-top:2rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.form-group{display:flex;flex-direction:column}
.form-group label{
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:0.5rem;
}
.form-group input,.form-group textarea,.form-group select{
  background:var(--bg-alt);
  border:1px solid var(--border);
  border-radius:0;
  padding:0.9rem 1rem;
  color:var(--sage-soft);
  font-family:var(--sans);
  font-size:1rem;
  transition:border-color .3s ease,background .3s ease;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  outline:none;
  border-color:var(--amber);
  background:rgba(15,74,56,0.6);
}
.form-group textarea{resize:vertical;min-height:140px}

/* MAP / FIGURE */
.map-embed{
  margin-top:3rem;
  border:1px solid var(--border);
  overflow:hidden;
  aspect-ratio:21/9;
}
.map-embed iframe{width:100%;height:100%;border:0;filter:grayscale(0.3) sepia(0.2)}

/* FOOTER */
.site-footer{
  background:#04150E;
  color:var(--sage);
  padding:4.5rem 2rem 2rem;
  border-top:3px solid var(--amber);
}
.footer-wrap{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:3rem;
  margin-bottom:3rem;
}
.footer-brand .logo{margin-bottom:1.2rem}
.footer-brand p{color:var(--sage-dim);font-size:0.95rem;max-width:320px}
.footer-col h4{
  color:var(--amber);
  font-family:var(--sans);
  font-size:0.82rem;
  font-weight:700;
  letter-spacing:2.5px;
  text-transform:uppercase;
  margin-bottom:1.4rem;
}
.footer-col ul{list-style:none;padding:0;margin:0}