/* ─── VARIABLES ─── */
:root {
  --navy: #2B2D42;
  --navy-light: #3D3F54;
  --navy-dark: #1E1F30;
  --accent: #C9A39B;
  --accent-dark: #A8847D;
  --accent-soft: rgba(201,163,155,0.16);
  --cream: #F5F3EE;
  --cream-dark: #EBE8E1;
  --white: #FDFCFA;
  --text: #2B2D42;
  --text-light: #6B6D7E;
  --text-muted: #9A9BAA;
  --line: rgba(43,45,66,0.12);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Outfit', system-ui, sans-serif;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 17px; }

body {
  font-family: var(--sans);
  color: var(--text);
  background: var(--cream);
  line-height: 1.7;
  font-weight: 300;
  overflow-x: hidden;
}

.container { max-width: 1120px; margin: 0 auto; padding: 0 2rem; }

/* ─── ANIMATIONS ─── */
@keyframes fadeUp { from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0}to{opacity:1} }

.reveal { opacity:0; transform:translateY(32px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ─── NAV ─── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 1.1rem 0;
  background: rgba(245,243,238,0.88);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--line);
  transition: padding .3s ease, box-shadow .3s ease;
}
nav.scrolled { padding: .65rem 0; box-shadow: 0 2px 20px rgba(43,45,66,0.06); }
nav .container { display:flex; justify-content:space-between; align-items:center; }

.nav-logo {
  display:flex; align-items:center; gap:.75rem; text-decoration:none;
  font-family:var(--serif); font-size:1.25rem; font-weight:500;
  color:var(--navy); letter-spacing:.02em;
}
.nav-logo img {
  height:52px; width:auto; display:block;
}
.nav-logo span { font-weight:300; margin-left:.35rem; }
nav.scrolled .nav-logo img { height:45px; }

.nav-links { display:flex; gap:2.25rem; align-items:center; list-style:none; }
.nav-links a {
  text-decoration:none; color:var(--text-light);
  font-size:.8rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase;
  transition: color .3s ease;
}
.nav-links a:hover { color:var(--navy); }
.nav-cta {
  background:var(--navy)!important; color:var(--cream)!important;
  padding:.55rem 1.4rem!important; border-radius:100px;
  font-weight:400!important; transition:all .3s ease!important;
}
.nav-cta:hover { background:var(--navy-light)!important; transform:translateY(-1px); }

.mobile-toggle {
  display:none; background:none; border:none; cursor:pointer;
  width:26px; height:18px; position:relative; z-index:110;
}
.mobile-toggle span {
  display:block; width:100%; height:1.5px; background:var(--navy);
  position:absolute; left:0; transition:all .3s ease;
}
.mobile-toggle span:nth-child(1){top:0}
.mobile-toggle span:nth-child(2){top:8px}
.mobile-toggle span:nth-child(3){top:16px}
.mobile-toggle.open span:nth-child(1){top:8px;transform:rotate(45deg)}
.mobile-toggle.open span:nth-child(2){opacity:0}
.mobile-toggle.open span:nth-child(3){top:8px;transform:rotate(-45deg)}

/* ─── BUTTONS ─── */
.btn-primary {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--accent); color:var(--white);
  padding:.95rem 2.1rem; border-radius:100px;
  text-decoration:none; font-size:.88rem; font-weight:400;
  letter-spacing:.04em;
  transition:all .4s cubic-bezier(.22,1,.36,1);
  border:none; cursor:pointer;
}
.btn-primary:hover { background:var(--accent-dark); transform:translateY(-2px); box-shadow:0 8px 28px rgba(201,163,155,.24); }

.btn-secondary {
  display:inline-flex; align-items:center; gap:.5rem;
  background:transparent; color:var(--text);
  padding:.95rem 2.1rem; border-radius:100px;
  text-decoration:none; font-size:.88rem; font-weight:400;
  letter-spacing:.04em; border:1px solid rgba(43,45,66,.2);
  transition:all .4s cubic-bezier(.22,1,.36,1);
}
.btn-secondary:hover { border-color:var(--accent); color:var(--accent-dark); }

.btn-cream {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--cream); color:var(--navy);
  padding:1rem 2.2rem; border-radius:100px;
  text-decoration:none; font-size:.9rem; font-weight:500;
  letter-spacing:.04em;
  transition:all .4s cubic-bezier(.22,1,.36,1);
  border:none; cursor:pointer;
}
.btn-cream:hover { background:var(--white); transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.2); }

/* ─── SECTION HELPERS ─── */
.section-eyebrow {
  font-size:.68rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); margin-bottom:.8rem;
}
.section-title {
  font-family:var(--serif);
  font-size:clamp(1.7rem,2.8vw,2.4rem);
  font-weight:500; color:var(--navy); line-height:1.2; margin-bottom:1rem;
}
.section-subtitle { font-size:1rem; color:var(--text-light); line-height:1.8; }

/* ─── FOOTER ─── */
footer { padding:2.5rem 0; background:var(--navy); }
.footer-inner {
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:1.25rem;
}
.footer-brand { display:flex; align-items:center; gap:.5rem; }
.footer-brand img { height:28px; }
.footer-brand-text {
  font-family:var(--sans); font-size:.68rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase;
  color:rgba(245,243,238,.5);
}
.footer-links { display:flex; gap:1.75rem; align-items:center; }
.footer-links a {
  color:rgba(245,243,238,.35); text-decoration:none;
  font-size:.78rem; letter-spacing:.04em; transition:color .3s ease;
}
.footer-links a:hover { color:var(--cream); }
.footer-social { display:flex; gap:.75rem; }
.footer-social a {
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(245,243,238,.1);
  display:flex; align-items:center; justify-content:center;
  color:rgba(245,243,238,.4); text-decoration:none; transition:all .3s ease;
}
.footer-social a:hover { border-color:rgba(245,243,238,.3); color:var(--cream); }
.footer-social a svg { width:15px; height:15px; }
.footer-bottom {
  text-align:center; margin-top:1.5rem; padding-top:1.25rem;
  border-top:1px solid rgba(245,243,238,.06);
  font-size:.72rem; color:rgba(245,243,238,.2);
}
.footer-bottom a { color:rgba(245,243,238,.3); text-decoration:none; }
.footer-bottom a:hover { color:rgba(245,243,238,.5); }

/* ─── NAVY SECTION (reusable) ─── */
.section-navy {
  padding:6rem 0; background:var(--navy); color:var(--cream);
  position:relative; overflow:hidden;
}
.section-navy::before {
  content:''; position:absolute; top:-30%; right:-20%;
  width:60vw; height:60vw;
  background:radial-gradient(circle,rgba(245,243,238,.04) 0%,transparent 60%);
  border-radius:50%;
}
.section-navy .section-eyebrow { color:rgba(231,210,205,.94); }
.section-navy .section-title { color:var(--cream); }

/* ─── RESPONSIVE ─── */
@keyframes menuItemIn {
  from { opacity:0; transform:translateY(-6px); }
  to   { opacity:1; transform:translateY(0); }
}
@media(max-width:968px) {
  .nav-links { display:none; }
  .nav-links.open {
    display:flex; flex-direction:column;
    position:absolute; top:100%; left:0; right:0;
    background:var(--cream);
    border-bottom:1px solid var(--line);
    box-shadow:0 8px 24px rgba(43,45,66,.06);
    padding:.5rem 2rem 1.25rem;
  }
  .nav-links.open li {
    opacity:0; animation:menuItemIn .22s cubic-bezier(.22,1,.36,1) forwards;
    border-bottom:1px solid var(--line);
  }
  .nav-links.open li:last-child { border-bottom:none; }
  .nav-links.open li:nth-child(1) { animation-delay:.04s; }
  .nav-links.open li:nth-child(2) { animation-delay:.09s; }
  .nav-links.open li:nth-child(3) { animation-delay:.14s; }
  .nav-links.open li:nth-child(4) { animation-delay:.19s; }
  .nav-links.open a { display:block; padding:.75rem 0; font-size:.9rem; }
  .mobile-toggle { display:block; }
}
@media(max-width:480px) {
  .nav-logo img { height:42px; }
  nav.scrolled .nav-logo img { height:38px; }
  .container { padding:0 1.25rem; }
}
