@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Jost:wght@300;400;500;600&display=swap');

:root {
  --navy:       #151d33;
  --navy-mid:   #1e2a48;
  --navy-light: #243257;
  --gold:       #b8923a;
  --gold-light: #d4ae65;
  --white:      #ffffff;
  --off-white:  #f7f5f0;
  --rule:       rgba(184,146,58,0.22);
  --rule-light: rgba(21,29,51,0.10);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Jost',sans-serif; background:var(--navy); color:var(--white); overflow-x:hidden; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4 { font-family:'Cormorant Garamond',serif; font-weight:400; line-height:1.15; }
p { line-height:1.9; font-size:1.1rem; }
img { max-width:100%; }

/* NAV */
nav { position:fixed; top:0; left:0; right:0; z-index:300; display:flex; align-items:center; justify-content:space-between; padding:1.2rem 4rem; background:rgba(21,29,51,0.97); backdrop-filter:blur(14px); border-bottom:1px solid var(--rule); }
.nav-logo { display:flex; align-items:center; gap:0.65rem; text-decoration:none; flex-shrink:0; }
.nav-cp { font-family:'Jost',sans-serif; font-size:0.7rem; font-weight:400; letter-spacing:0.1em; color:rgba(255,255,255,0.52); white-space:nowrap; }
.nav-sep { color:var(--gold); opacity:0.55; font-size:0.9rem; line-height:1; }
.nav-team { font-family:'Cormorant Garamond',serif; font-size:1rem; font-weight:500; letter-spacing:0.04em; color:var(--gold-light); white-space:nowrap; }
.nav-center { display:flex; align-items:center; gap:2rem; }
.nav-center a { font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.6); text-decoration:none; transition:color 0.2s; white-space:nowrap; }
.nav-center a:hover { color:var(--gold-light); }
.nav-dropdown { position:relative; }
.nav-dropdown > a { display:flex; align-items:center; gap:0.4rem; cursor:pointer; }
.nav-dropdown > a::after { content:''; display:inline-block; width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:4px solid currentColor; transition:transform 0.2s; }
.nav-dropdown:hover > a::after { transform:rotate(180deg); }
.dropdown-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--navy-mid); border:1px solid var(--rule); min-width:220px; padding-top:0.5rem; opacity:0; visibility:hidden; transition:opacity 0.2s,visibility 0.2s; pointer-events:none; }
.nav-dropdown:hover .dropdown-menu { opacity:1; visibility:visible; pointer-events:all; }
.dropdown-menu a { display:block; padding:0.85rem 1.4rem; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.65); text-decoration:none; border-bottom:1px solid var(--rule); transition:background 0.2s,color 0.2s; }
.dropdown-menu a:last-child { border-bottom:none; }
.dropdown-menu a:hover { background:rgba(184,146,58,0.08); color:var(--gold-light); }
.nav-right { display:flex; align-items:center; gap:0.75rem; flex-shrink:0; }
.nav-li { font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.6); text-decoration:none; transition:color 0.2s; white-space:nowrap; }
.nav-li:hover { color:var(--gold-light); }
.nav-cta { font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; padding:0.6rem 1.4rem; border:1px solid var(--gold); color:var(--gold-light); text-decoration:none; transition:all 0.25s; white-space:nowrap; }
.nav-cta:hover { background:var(--gold); color:var(--navy); }

/* HAMBURGER */
.hamburger { display:none; flex-direction:column; justify-content:center; gap:5px; cursor:pointer; padding:6px; background:none; border:none; z-index:400; flex-shrink:0; }
.hamburger span { display:block; width:24px; height:2px; background:var(--gold-light); border-radius:2px; transition:all 0.3s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* MOBILE MENU */
.mobile-menu { display:none; position:fixed; inset:0; background:var(--navy); z-index:299; flex-direction:column; align-items:center; justify-content:center; }
.mobile-menu.open { display:flex; }
.mobile-menu a { width:100%; padding:1.3rem 2rem; text-align:center; font-size:0.8rem; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.7); text-decoration:none; border-bottom:1px solid var(--rule); transition:color 0.2s; }
.mobile-menu a:first-child { border-top:1px solid var(--rule); }
.mobile-menu a:hover,.mobile-menu a:active { color:var(--gold-light); }
.mobile-menu .m-li { color:var(--gold-light); border-bottom:none; margin-top:0.5rem; }
.mobile-menu .m-cta { background:var(--gold); color:var(--navy); font-weight:600; border:none; margin-top:1.5rem; }

/* BUTTONS */
.btn-primary { display:inline-block; padding:1rem 2.4rem; background:var(--gold); color:var(--navy); font-family:'Jost',sans-serif; font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:600; text-decoration:none; transition:all 0.25s; cursor:pointer; }
.btn-primary:hover { background:var(--gold-light); }
.btn-ghost { display:inline-block; padding:1rem 2.4rem; border:1px solid rgba(255,255,255,0.3); color:rgba(255,255,255,0.8); font-family:'Jost',sans-serif; font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; text-decoration:none; transition:all 0.25s; }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold-light); }
.btn-gold-outline { display:inline-block; padding:0.85rem 2rem; border:1px solid var(--gold); color:var(--gold-light); font-family:'Jost',sans-serif; font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:500; text-decoration:none; transition:all 0.25s; }
.btn-gold-outline:hover { background:var(--gold); color:var(--navy); }
.btn-navy { display:inline-block; padding:0.9rem 2rem; background:var(--navy); color:var(--gold-light); font-family:'Jost',sans-serif; font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase; font-weight:600; text-decoration:none; transition:all 0.25s; }

/* SECTIONS */
section { padding:7rem 4rem; }
.section-inner { max-width:1100px; margin:0 auto; }
.section-label { font-size:0.72rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; display:block; font-weight:700; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,4.2vw,3.5rem); font-weight:400; line-height:1.18; margin-bottom:1.5rem; }
.section-title em { font-style:italic; color:var(--gold-light); }
.section-title.dark { color:var(--navy); }
.section-title.dark em { color:var(--gold); }

/* PAGE HERO */
.page-hero { padding:10rem 4rem 6rem; background:var(--navy); position:relative; overflow:hidden; }
.page-hero-bg { position:absolute; inset:0; background:radial-gradient(ellipse 70% 60% at 80% 50%,rgba(184,146,58,0.06) 0%,transparent 70%); }
.page-hero-lines { position:absolute; inset:0; pointer-events:none; background-image:repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(184,146,58,0.035) 79px,rgba(184,146,58,0.035) 80px); }
.page-hero-content { position:relative; z-index:2; max-width:760px; }
.page-hero h1 { font-size:clamp(2.4rem,5.5vw,4.5rem); font-weight:300; margin-bottom:1.5rem; }
.page-hero p { font-size:1.18rem; font-weight:300; line-height:1.9; color:rgba(255,255,255,0.9); max-width:580px; margin-bottom:2.5rem; }

/* BOOKING BANNER */
.booking-banner { background:var(--gold); padding:1.6rem 4rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.booking-banner p { font-family:'Cormorant Garamond',serif; font-size:1.45rem; font-weight:400; color:var(--navy); line-height:1.3; }
.booking-banner p span { font-style:italic; }

/* CHECKLIST */
.checklist { display:flex; flex-direction:column; }
.checklist-item { display:flex; align-items:flex-start; gap:1rem; padding:0.9rem 0; border-bottom:1px solid var(--rule); }
.checklist-item:first-child { border-top:1px solid var(--rule); }
.check-box { width:1.3rem; height:1.3rem; flex-shrink:0; border:1px solid var(--gold); display:grid; place-items:center; margin-top:0.15rem; }
.check-box svg { width:0.65rem; height:0.65rem; stroke:var(--gold); fill:none; stroke-width:2.5; }
.checklist-item span { font-size:1.05rem; font-weight:300; color:rgba(255,255,255,0.92); line-height:1.6; }

/* PROBLEM CARDS */
.problem-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:2rem; }
.problem-card { padding:1.8rem 2rem; background:rgba(255,255,255,0.02); border-left:2px solid transparent; transition:all 0.3s; }
.problem-card:hover { background:rgba(255,255,255,0.04); border-left-color:var(--gold); }
.problem-card h4 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:400; margin-bottom:0.5rem; color:var(--gold-light); }
.problem-card p { font-size:1.05rem; font-weight:300; color:rgba(255,255,255,0.85); line-height:1.82; }

/* PRICING CARD */
.pricing-card { padding:2.5rem 2.2rem; background:rgba(255,255,255,0.02); border-top:2px solid transparent; position:relative; }
.pricing-card.featured { background:linear-gradient(160deg,rgba(184,146,58,0.09) 0%,rgba(255,255,255,0.02) 60%); border-top-color:var(--gold); }
.pricing-card .tier-label { font-size:0.65rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); margin-bottom:0.75rem; display:block; }
.pricing-card h3 { font-size:1.7rem; margin-bottom:0.25rem; }
.price-row { display:flex; align-items:baseline; gap:0.2rem; margin:0.9rem 0 0.25rem; }
.price-row .currency { font-size:1rem; color:var(--gold-light); margin-top:0.3rem; }
.price-row .amount { font-family:'Cormorant Garamond',serif; font-size:2.6rem; font-weight:300; color:var(--gold-light); line-height:1; }
.price-note { font-size:0.7rem; color:rgba(255,255,255,0.38); margin-bottom:1.1rem; line-height:1.5; }
.price-divider { width:2rem; height:1px; background:var(--gold); margin-bottom:1.3rem; }
.pricing-card p { font-size:0.97rem; font-weight:300; color:rgba(255,255,255,0.78); line-height:1.8; margin-bottom:1.4rem; }

/* AUM TABLE */
.aum-table { width:100%; border-collapse:collapse; margin-top:1.5rem; }
.aum-table thead tr { background:var(--navy-mid); }
.aum-table thead th { padding:1rem 1.2rem; font-family:'Cormorant Garamond',serif; font-size:1rem; font-weight:400; color:var(--white); text-align:center; }
.aum-table thead .aum-range { font-size:1.3rem; display:block; color:var(--gold-light); margin-top:0.2rem; }
.aum-table tbody tr { border-bottom:1px solid var(--rule); }
.aum-table tbody tr:hover { background:rgba(184,146,58,0.04); }
.aum-table tbody td { padding:0.85rem 1.2rem; font-size:0.93rem; font-weight:300; color:rgba(255,255,255,0.9); }
.aum-table tbody td:last-child { text-align:right; color:var(--gold-light); font-weight:500; }

/* FOOTER */
footer { background:var(--navy); padding:3rem 4rem; border-top:1px solid var(--rule); }
.footer-inner { max-width:1100px; margin:0 auto; }
.footer-advisors { display:flex; gap:4rem; margin-bottom:2rem; flex-wrap:wrap; }
.footer-advisor { flex:1; min-width:200px; }
.footer-brand { font-family:'Cormorant Garamond',serif; font-size:1rem; margin-bottom:0.4rem; color:var(--gold-light); }
.footer-contact { font-size:0.78rem; font-weight:300; color:rgba(255,255,255,0.42); line-height:1.9; }
.footer-contact a { color:rgba(255,255,255,0.42); text-decoration:none; }
.footer-contact a:hover { color:var(--gold-light); }
.footer-disc { font-size:0.64rem; line-height:1.7; color:rgba(255,255,255,0.26); border-top:1px solid var(--rule); padding-top:1.5rem; }

/* ANIMATIONS */
.fade-up { opacity:0; transform:translateY(18px); transition:opacity 0.6s ease,transform 0.6s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }
.fade-up.d1 { transition-delay:0.1s; }
.fade-up.d2 { transition-delay:0.2s; }
.fade-up.d3 { transition-delay:0.3s; }

/* RESPONSIVE */
@media (max-width:960px) {
  nav { padding:0.9rem 1.25rem; }
  .nav-center { display:none; }
  .nav-right { display:none; }
  .hamburger { display:flex; }
  .nav-cp,.nav-sep { display:none; }
  .nav-team { font-size:0.85rem; }
  section { padding:4rem 1.25rem; }
  .page-hero { padding:7rem 1.25rem 3.5rem; }
  .booking-banner { padding:1.2rem 1.25rem; flex-direction:column; align-items:flex-start; }
  footer { padding:2rem 1.25rem; }
  .footer-advisors { flex-direction:column; gap:2rem; }
  .problem-grid { grid-template-columns:1fr; }
  .aum-table tbody td { font-size:0.78rem; padding:0.65rem 0.75rem; }
}
@media (max-width:540px) {
  .section-title { font-size:1.85rem; }
  .page-hero h1 { font-size:1.95rem; }
  .btn-primary,.btn-ghost,.btn-gold-outline { padding:0.85rem 1.4rem; font-size:0.68rem; }
}

/* Nav booking dropdown */
.nav-book-dropdown { position:relative; }
.nav-book-menu { position:absolute; top:100%; right:0; background:var(--navy-mid); border:1px solid var(--rule); min-width:185px; padding-top:0.4rem; opacity:0; visibility:hidden; transition:opacity 0.2s,visibility 0.2s; pointer-events:none; z-index:400; }
.nav-book-dropdown:hover .nav-book-menu { opacity:1; visibility:visible; pointer-events:all; }
.nav-book-menu a { display:block; padding:0.8rem 1.2rem; font-size:0.67rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.65); text-decoration:none; border-bottom:1px solid var(--rule); transition:background 0.2s,color 0.2s; }
.nav-book-menu a:last-child { border-bottom:none; }
.nav-book-menu a:hover { background:rgba(184,146,58,0.08); color:var(--gold-light); }
/* Footer disclosure paragraphs */
.footer-disc p { margin-bottom:0.6rem; font-size:0.64rem; line-height:1.7; color:rgba(255,255,255,0.26); }
.footer-disc p:last-child { margin-bottom:0; }
.footer-disc a { color:var(--gold-light); text-decoration:none; }

/* Source citation links */
.stat-src { font-size:0.67rem; color:rgba(255,255,255,0.28); font-style:italic; text-decoration:none; margin-top:0.5rem; display:inline-block; letter-spacing:0.02em; }
.stat-src:hover { color:rgba(255,255,255,0.48); text-decoration:none; }
a.stat-src:link, a.stat-src:visited { color:rgba(255,255,255,0.28); text-decoration:none; }
a.stat-src:hover { color:rgba(255,255,255,0.48); }
