:root{
  --green:#0F2F2A;
  --green-deep:#080F0D;
  --green-mid:#1A4A42;
  --gold:#B9AD84;
  --gold-light:#D4C99A;
  --gold-dim:#8A7F5E;
  --cream:#F3F1EA;
  --cream-dark:#E8E4D9;
  --cream-deep:#D8D2C4;
  --text:#0E2F2A;
  --text-mid:#2B4A43;
  --text-light:#5A7A72;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;color:var(--text);background:var(--cream);overflow-x:hidden;}
::selection{background:rgba(185,173,132,0.3);color:var(--green);}

/* SCROLLBAR */
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--cream);}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px;}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}

.animate-up{animation:fadeUp 0.8s both;}
.a1{animation-delay:0.1s;}
.a2{animation-delay:0.2s;}
.a25{animation-delay:0.25s;}
.a3{animation-delay:0.3s;}
.a4{animation-delay:0.4s;}
.a5{animation-delay:0.5s;}
.a6{animation-delay:0.6s;}
.page-enter{animation:fadeIn 0.4s ease both;}

/* REVEAL */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-d1{transition-delay:0.1s;}
.reveal-d2{transition-delay:0.2s;}
.reveal-d3{transition-delay:0.3s;}

/* NAV */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:0 40px;
  transition:background 0.5s,border-color 0.5s,backdrop-filter 0.5s;
  border-bottom:1px solid transparent;
}
#nav.scrolled{
  background:rgba(243,241,234,0.97);
  border-color:rgba(185,173,132,0.3);
  backdrop-filter:blur(16px);
}
.nav-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:76px;}
.nav-logo{display:flex;align-items:center;gap:14px;cursor:pointer;text-decoration:none;}
.nav-logo-name{font-family:'Cinzel',serif;font-size:16px;font-weight:700;letter-spacing:0.06em;line-height:1.1;transition:color 0.3s;}
.nav-logo-tag{font-family:'Cinzel',serif;font-size:10px;letter-spacing:0.22em;transition:color 0.3s;}
.nav-links{display:flex;align-items:center;gap:0;}
.nav-link{
  font-family:'Cinzel',serif;font-size:12px;letter-spacing:0.18em;
  text-transform:uppercase;cursor:pointer;border:none;background:none;
  transition:color 0.3s;padding:8px 16px;
}
.nav-link:hover{color:var(--gold)!important;}
.nav-cta{
  font-family:'Cinzel',serif;font-size:12px;letter-spacing:0.16em;
  font-weight:700;cursor:pointer;border:none;padding:11px 26px;
  border-radius:2px;margin-left:16px;transition:all 0.3s;
  position:relative;overflow:hidden;
}
.nav-cta::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.1);transform:translateX(-100%);transition:transform 0.4s;}
.nav-cta:hover::before{transform:translateX(0);}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(185,173,132,0.3);}

/* BUTTONS */
.btn-gold{background:var(--gold);color:var(--green);font-family:'Cinzel',serif;font-size:12px;letter-spacing:0.16em;font-weight:700;padding:17px 40px;border:none;border-radius:2px;cursor:pointer;transition:all 0.3s;position:relative;overflow:hidden;}
.btn-gold::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.15);transform:translateX(-100%);transition:transform 0.4s;}
.btn-gold:hover::before{transform:translateX(0);}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(185,173,132,0.3);}
.btn-green{background:var(--green);color:var(--gold);font-family:'Cinzel',serif;font-size:12px;letter-spacing:0.16em;font-weight:700;padding:17px 40px;border:none;border-radius:2px;cursor:pointer;transition:all 0.3s;position:relative;overflow:hidden;}
.btn-green::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.08);transform:translateX(-100%);transition:transform 0.4s;}
.btn-green:hover::before{transform:translateX(0);}
.btn-green:hover{transform:translateY(-2px);box-shadow:0 20px 60px rgba(15,47,42,0.25);}
.btn-outline{background:transparent;color:var(--cream);font-family:'Cinzel',serif;font-size:12px;letter-spacing:0.16em;font-weight:400;padding:17px 28px;border:1px solid rgba(185,173,132,0.4);border-radius:2px;cursor:pointer;transition:all 0.3s;}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}

/* ORNAMENT DIVIDER */
.ornament-divider{display:flex;align-items:center;gap:16px;}
.ornament-divider .line{flex:1;height:1px;}
.ornament-divider .line-left{background:linear-gradient(90deg,transparent,var(--gold));}
.ornament-divider .line-right{background:linear-gradient(90deg,var(--gold),transparent);}
.ornament-divider.faded .line-left{background:linear-gradient(90deg,transparent,rgba(185,173,132,0.5));}
.ornament-divider.faded .line-right{background:linear-gradient(90deg,rgba(185,173,132,0.5),transparent);}

/* CARD HOVER */
.card-hover{transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),box-shadow 0.4s;}
.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(15,47,42,0.15);}

/* GRID TEXTURE */
.grid-texture{position:absolute;inset:0;opacity:0.04;background-image:linear-gradient(var(--gold) 1px,transparent 1px),linear-gradient(90deg,var(--gold) 1px,transparent 1px);background-size:60px 60px;}

/* SECTIONS */
section{position:relative;}
.container{max-width:1200px;margin:0 auto;}

/* FORM */
.input-field{
  width:100%;padding:14px 16px;
  border:1px solid var(--cream-dark);background:var(--cream);
  font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--text);
  outline:none;transition:border-color 0.3s,box-shadow 0.3s;border-radius:2px;
}
.input-field:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(185,173,132,0.2);}
.input-field::placeholder{color:var(--text-light);}
.input-field.error{border-color:#CC4444;}
select.input-field{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%238A7F5E'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-color:var(--cream);
}
.field-label{display:block;font-family:'Cinzel',serif;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:7px;color:var(--gold-dim);}
.field-label.error{color:#CC4444;}
.field-error{font-family:'Cinzel',serif;font-size:10px;color:#CC4444;letter-spacing:0.08em;margin-top:5px;}
.field-wrap{margin-bottom:20px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.full-width{grid-column:1/-1;}

/* PAGES */
.page{display:none;}
.page.active{display:block;}

/* FOOTER */
footer{background:var(--green-deep);padding:60px 40px;}
.footer-inner{max-width:1200px;margin:0 auto;}
.footer-nav-btn{font-family:'Cinzel',serif;font-size:10px;color:rgba(243,241,234,0.55);letter-spacing:0.1em;background:none;border:none;cursor:pointer;padding:4px 0;transition:color 0.3s;}
.footer-nav-btn:hover{color:var(--gold);}

/* SPINNER */
.spinner{width:48px;height:48px;border:2px solid var(--gold);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;}

/* RESPONSIVE HELPERS */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.grid-2-start{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-3-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;position:relative;}
.gap-4{display:grid;grid-template-columns:1fr 1fr;gap:4px;}

@media(max-width:768px){
  #nav{padding:0 20px;}
  .nav-links{display:none;}
  .grid-2,.grid-2-start,.grid-3,.grid-3-steps,.gap-4,.form-grid{grid-template-columns:1fr;}
  .full-width{grid-column:auto;}
  section{padding-left:20px!important;padding-right:20px!important;}
  .hero-section{padding:120px 20px 80px!important;}
}
