/* ============================================================
   NOLA WEALTH FINANCIAL GROUP — design system.
   Traditional corporate finance: light paper background, navy-led
   with gold accents, conservative serif headlines. Built to read
   like a private bank or law firm's site, not an editorial/tech one.
   ============================================================ */

:root{
  --bg:         #faf8f3;
  --bg2:        #f1ece1;
  --bg3:        #e5ddc9;
  --navy:       #16294c;
  --navy-deep:  #0c1a30;
  --navy-soft:  #48597a;
  --gold:       #9c7f3f;
  --gold-bright:#b8953f;
  --gold-dim:   #7a6432;
  --ink:        #22262c;
  --ink-dim:    #5a5f66;
  --ink-faint:  #8b8f94;
  --hairline:   rgba(22,41,76,.15);
  --hairline2:  rgba(22,41,76,.30);
  --white:      #ffffff;
  --serif:'PT Serif',Georgia,'Times New Roman',serif;
  --serif-alt:'PT Serif',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans); font-weight:400; font-size:1rem; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--navy); color:var(--white);}
a{color:var(--navy);}
.k{font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-dim);}
.wrap{max-width:1040px; margin:0 auto; padding:0 32px;}
.sans{font-family:var(--sans);}

/* ---- crest mark ---- */
.crescent{display:inline-block; flex:0 0 auto;}
.crescent svg{display:block;}

/* ---- header / crest ---- */
header.site{
  padding:0; border-bottom:3px solid var(--gold);
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.055) 1px, transparent 0) 0 0/18px 18px,
    var(--navy);
}
.crest-row{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:24px 0;}
.crest-id{display:flex; align-items:center; gap:16px;}
.crest-mark{width:44px; height:44px;}
.crest-text{font-family:var(--sans); font-size:.66rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold-bright);}
.crest-text b{color:var(--white); font-weight:700; display:block; font-size:.84rem; letter-spacing:.09em; margin-bottom:3px; font-family:var(--serif);}
.crest-nav{display:flex; gap:28px; flex-wrap:wrap;}
.crest-nav a{font-family:var(--sans); font-size:.78rem; font-weight:500; letter-spacing:.02em; color:#dbe1ea; text-decoration:none; padding-bottom:2px; border-bottom:1px solid transparent;}
.crest-nav a:hover{color:var(--white); border-color:var(--gold);}
.divider{height:1px; background:rgba(255,255,255,.14);}
.divider-arc{display:none;}

/* ---- hero (sits inside the navy header band -- text needs light-on-navy colors, not the page's usual light-on-white ones) ---- */
.hero{padding:58px 0 52px;}
.hero .k{font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-bright); margin-bottom:18px;}
.hero h1{font-family:var(--serif); font-weight:700; font-size:clamp(2.1rem,4.2vw,3.1rem); letter-spacing:-.005em; line-height:1.22; max-width:760px; color:var(--white);}
.hero h1 em{font-style:italic; color:var(--gold-bright); font-weight:700;}
.hero .lede{font-family:var(--sans); font-size:1.02rem; color:#b9c2d1; max-width:620px; margin-top:22px; line-height:1.75;}
.hero-ctas{display:flex; gap:16px; margin-top:30px; flex-wrap:wrap;}
.back-link{font-family:var(--sans); font-size:.78rem; font-weight:500; color:#9fb0c9; text-decoration:none; display:inline-flex; align-items:center; gap:6px; margin-top:24px;}
.back-link:hover{color:var(--white);}

.btn{font-family:var(--sans); font-size:.78rem; font-weight:600; letter-spacing:.04em; text-decoration:none; padding:13px 26px; display:inline-block; text-transform:uppercase; transition:all .2s var(--ease); border-radius:2px;}
.btn-primary{background:var(--navy); color:var(--white); border:1px solid var(--navy);}
.btn-primary:hover{background:var(--navy-deep); border-color:var(--navy-deep);}
.btn-ghost{border:1px solid var(--hairline2); color:var(--navy); background:transparent;}
.btn-ghost:hover{border-color:var(--navy); background:var(--bg2);}
/* hero sits on navy -- the default navy-on-white button styles above are invisible there */
.hero-ctas .btn-primary{background:var(--gold); color:var(--navy-deep); border:1px solid var(--gold);}
.hero-ctas .btn-primary:hover{background:var(--gold-bright); border-color:var(--gold-bright);}
.hero-ctas .btn-ghost{border:1px solid rgba(255,255,255,.4); color:var(--white);}
.hero-ctas .btn-ghost:hover{border-color:var(--white); background:rgba(255,255,255,.08);}

/* ---- section heads ---- */
.section-head{margin-bottom:34px;}
.section-head .k{font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:10px;}
.section-head h2{font-family:var(--serif); font-weight:700; font-size:1.65rem; line-height:1.35; max-width:660px; color:var(--navy-deep);}

/* ---- practice / card grid ---- */
.practices{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hairline2); border:1px solid var(--hairline2);}
@media (max-width:820px){.practices{grid-template-columns:1fr;}}
.practice{background:var(--white); padding:34px 28px; transition:background .2s var(--ease); position:relative; border-top:2px solid transparent;}
.practice:hover{background:var(--bg2); border-top-color:var(--gold);}
.practice-icon{width:34px; height:34px; margin-bottom:16px;}
.practice .num{font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.1em; color:var(--gold-dim); margin-bottom:16px; display:block;}
.practice h2, .practice h3{font-family:var(--serif); font-weight:700; font-size:1.25rem; margin-bottom:12px; line-height:1.3; color:var(--navy-deep);}
.practice p{font-family:var(--sans); font-size:.86rem; color:var(--ink-dim); line-height:1.7; margin-bottom:18px;}
.practice .fee-note{font-family:var(--sans); font-size:.72rem; color:var(--ink-faint); border-top:1px solid var(--hairline); padding-top:13px; margin-bottom:16px;}
.practice a.cta{font-family:var(--sans); font-size:.8rem; color:var(--navy); text-decoration:none; font-weight:700; display:inline-flex; align-items:center; gap:6px;}
.practice a.cta:hover{color:var(--gold-dim);}
.practice .sublinks{margin-top:14px; display:flex; flex-direction:column; gap:7px;}
.practice .sublinks a{font-family:var(--sans); font-size:.74rem; color:var(--navy-soft); text-decoration:none;}
.practice .sublinks a:hover{color:var(--gold-dim);}

.all-practices{margin-top:28px; text-align:center;}
.all-practices a{font-family:var(--sans); font-size:.84rem; color:var(--navy); text-decoration:none; font-weight:700; border-bottom:1px solid var(--gold);}
.all-practices a:hover{color:var(--gold-dim);}

/* ---- principles strip ---- */
.principles{padding:56px 0; background:var(--bg2); border-top:1px solid var(--hairline2); border-bottom:1px solid var(--hairline2); margin-top:60px;}
.principles-inner{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
@media (max-width:820px){.principles-inner{grid-template-columns:1fr; gap:28px;}}
.principle .k{font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:10px;}
.principle .v{font-family:var(--serif); font-size:1.08rem; font-weight:400; color:var(--navy-deep); line-height:1.5;}

/* ---- tech-note / misc text blocks ---- */
.tech-note{padding:54px 0; text-align:center;}
.tech-note p{font-family:var(--sans); font-size:.85rem; color:var(--ink-faint); max-width:560px; margin:0 auto; line-height:1.8;}
.tech-note a{color:var(--navy); text-decoration:none; border-bottom:1px solid var(--gold);}

/* ---- cards (contact / about structure blocks) ---- */
.card{background:var(--white); border:1px solid var(--hairline2); border-left:3px solid var(--navy); padding:34px 32px; margin-bottom:24px; position:relative;}
.card .k{font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:14px;}
.card .email{font-family:var(--serif); font-weight:700; font-size:1.4rem; color:var(--navy-deep); text-decoration:none;}
.card .email:hover{color:var(--gold-dim);}
.card p{font-family:var(--sans); font-size:.85rem; color:var(--ink-dim); margin-top:15px; line-height:1.75;}

.practices-mini{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:10px;}
@media (max-width:640px){.practices-mini{grid-template-columns:1fr;}}
.practices-mini a{font-family:var(--sans); font-size:.82rem; color:var(--ink-dim); text-decoration:none; border:1px solid var(--hairline2); padding:17px; display:block; transition:border-color .2s; background:var(--white);}
.practices-mini a:hover{border-color:var(--navy);}
.practices-mini a:hover b{color:var(--navy);}
.practices-mini a b{display:block; color:var(--navy-deep); font-family:var(--serif); font-weight:700; font-size:1rem; margin-bottom:5px;}

.structure{border:1px solid var(--hairline2); background:var(--white); padding:28px; margin-top:16px;}
.structure .row{display:flex; justify-content:space-between; gap:20px; padding:11px 0; border-bottom:1px solid var(--hairline);}
.structure .row:last-child{border-bottom:none;}
.structure .row .l{color:var(--ink-faint); font-family:var(--sans); font-size:.78rem;}
.structure .row .r{color:var(--navy-deep); font-family:var(--sans); font-size:.85rem; font-weight:600; text-align:right;}

/* ---- legal / long-form prose pages ---- */
main.prose{padding:50px 0 84px; font-family:var(--sans); font-size:.92rem; color:var(--ink-dim);}
main.prose section{margin-bottom:32px; max-width:680px;}
main.prose h2{font-family:var(--serif); font-weight:700; font-size:1.18rem; color:var(--navy-deep); margin-bottom:13px;}
main.prose p{margin-bottom:11px; line-height:1.8;}
main.prose b{color:var(--navy-deep); font-weight:700;}
main.prose a{color:var(--navy); text-decoration:underline; text-decoration-color:var(--gold);}
.eff{font-family:var(--sans); font-size:.8rem; color:var(--ink-faint); margin-top:12px;}

/* ---- dossier pages: masthead, market chips, fee table, process box ---- */
.masthead{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:10px; border-bottom:1px solid var(--hairline2); padding-bottom:20px; margin-bottom:6px;}
.masthead .name{font-family:var(--sans); font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; color:var(--navy); font-weight:700;}
.masthead .op{font-family:var(--sans); font-size:.68rem; letter-spacing:.07em; color:var(--ink-faint);}

.markets{display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--hairline2); border-bottom:1px solid var(--hairline2); padding:16px 0; margin:26px 0 40px;}
.markets span{font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.02em; color:var(--navy-deep); padding:0 18px 0 0; margin-right:18px; border-right:1px solid var(--hairline2);}
.markets span:last-child{border-right:none; margin-right:0;}

table.schedule{width:100%; border-collapse:collapse; margin-bottom:8px;}
table.schedule th{text-align:left; font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--navy-soft); padding:0 12px 12px 0; border-bottom:2px solid var(--navy);}
table.schedule td{padding:15px 12px 15px 0; border-bottom:1px solid var(--hairline); font-size:.95rem; vertical-align:top; color:var(--ink); font-family:var(--serif);}
table.schedule td.muted{color:var(--ink-dim); font-family:var(--sans); font-size:.84rem;}
table.schedule td.num{font-family:var(--sans); font-variant-numeric:tabular-nums; text-align:right; color:var(--navy-deep); white-space:nowrap; font-weight:700;}

.process{border:1px solid var(--hairline2); border-left:3px solid var(--gold); padding:30px 32px; margin:40px 0; background:var(--bg2);}
.process ol{margin:0; padding-left:1.2em;}
.process li{margin-bottom:11px; color:var(--ink-dim); font-family:var(--sans); font-size:.89rem; line-height:1.7;}
.process li::marker{font-family:var(--sans); color:var(--navy); font-size:.85rem; font-weight:700;}
.process li:last-child{margin-bottom:0;}

.cta-row{display:flex; align-items:center; gap:18px; margin:36px 0 10px; flex-wrap:wrap;}
.cta-note{font-family:var(--sans); font-size:.78rem; color:var(--ink-faint);}
.fine{color:var(--ink-faint); font-family:var(--sans); font-size:.81rem; line-height:1.75; margin-top:24px; max-width:64ch;}

.lead-form{border:1px solid var(--hairline2); padding:30px 32px; margin:40px 0 10px; background:var(--white); max-width:520px;}
.lead-form label{display:block; font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--navy-soft); margin:15px 0 7px;}
.lead-form label:first-of-type{margin-top:0;}
.lead-form input, .lead-form textarea{width:100%; background:var(--bg); border:1px solid var(--hairline2); color:var(--ink); font-family:var(--sans); font-size:.92rem; padding:11px 13px;}
.lead-form input:focus, .lead-form textarea:focus{outline:none; border-color:var(--navy);}
.lead-form textarea{resize:vertical; min-height:60px;}
.lead-form .req{color:var(--gold-dim);}
.lead-status{font-family:var(--sans); font-size:.8rem; margin-top:15px;}
.lead-status.ok{color:#3f7a4f;}
.lead-status.err{color:#a83f3f;}
button.btn{font-family:var(--sans); cursor:pointer;}
button.btn:disabled{opacity:.55; cursor:default;}

/* ---- registry / market-note pages: legend, channel cards, callouts ---- */
.doc-meta{font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:8px;}
.doc-date{font-family:var(--sans); font-size:.72rem; color:var(--ink-faint); margin-bottom:8px;}

.legend{display:flex; gap:22px; flex-wrap:wrap; font-family:var(--sans); font-size:.76rem; color:var(--ink-dim); border-top:1px solid var(--hairline2); border-bottom:1px solid var(--hairline2); padding:15px 0; margin:22px 0 40px;}
.legend span::before{content:'●'; margin-right:7px; font-size:.7em; vertical-align:middle;}
.legend .lv::before{color:#3f7a4f;}
.legend .ls::before{color:var(--gold);}
.legend .lu::before{color:var(--ink-faint);}

.country{margin-bottom:56px; max-width:100%;}
.country h2{font-family:var(--serif); font-weight:700; font-size:1.3rem; color:var(--navy-deep); margin:0 0 4px;}
.country .assess{color:var(--ink); font-family:var(--serif); font-style:italic; border-left:2px solid var(--gold); padding:2px 0 2px 18px; margin:16px 0 26px; max-width:68ch; font-size:1rem;}

table.customs{width:100%; border-collapse:collapse; margin-bottom:8px;}
table.customs td{padding:9px 12px 9px 0; border-bottom:1px solid var(--hairline); font-size:.88rem; vertical-align:top; color:var(--ink-dim); font-family:var(--sans);}
table.customs td.k{font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--navy-soft); width:30%; padding-right:16px;}

.chan{border:1px solid var(--hairline2); padding:16px 20px; margin-bottom:10px; background:var(--white);}
.chan .row{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap;}
.chan .cname{font-weight:700; font-size:.98rem; font-family:var(--serif); color:var(--navy-deep);}
.chan .status{font-family:var(--sans); font-size:.64rem; letter-spacing:.05em; text-transform:uppercase; padding:3px 9px; white-space:nowrap; font-weight:700;}
.status.v{color:var(--white); background:#3f7a4f;}
.status.s{color:var(--white); background:var(--gold-dim);}
.status.u{color:var(--ink-dim); background:var(--bg2); border:1px solid var(--hairline2);}
.chan a{color:var(--navy); font-family:var(--sans); font-size:.79rem; word-break:break-all;}
.chan .note{color:var(--ink-faint); font-family:var(--sans); font-size:.85rem; margin-top:9px; line-height:1.65;}
.empty-cat{color:var(--ink-faint); font-family:var(--sans); font-size:.85rem; font-style:italic;}

table.data{width:100%; border-collapse:collapse; margin:18px 0 8px;}
table.data th{text-align:left; font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--navy-soft); padding:0 12px 12px 0; border-bottom:2px solid var(--navy);}
table.data td{padding:15px 12px 15px 0; border-bottom:1px solid var(--hairline); font-size:.92rem; vertical-align:top; color:var(--ink); font-family:var(--serif);}
table.data td.num{font-family:var(--sans); font-variant-numeric:tabular-nums; text-align:right; color:var(--navy-deep); white-space:nowrap; font-weight:700;}
table.data td.muted{color:var(--ink-dim); font-family:var(--sans); font-size:.84rem;}

.callout{border-left:2px solid var(--gold); padding:5px 0 5px 22px; margin:30px 0;}
.callout p{color:var(--navy-deep); font-family:var(--serif); font-style:italic; font-size:1.05rem; margin:0; line-height:1.65;}

/* ---- footer ---- */
footer.site{padding:36px 0; background:var(--navy-deep); margin-top:16px;}
.foot-grid{display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap;}
footer .foot-note{font-family:var(--sans); font-size:.76rem; color:#a9b3c4; max-width:480px; line-height:1.7;}
footer a{color:var(--gold-bright); text-decoration:none; border-bottom:1px solid rgba(184,149,63,.4);}

/* ---- mobile: tables have no responsive handling by default -- a 3-column
   fee/customs/data table with sentence-length "Detail" cells will overflow
   or wrap unreadably on a phone-width viewport. Every table on the site
   shares these 3 classes, so this one fix covers all 5 pages that use them. ---- */
@media (max-width:640px){
  table.schedule, table.customs, table.data{
    display:block; overflow-x:auto; -webkit-overflow-scrolling:touch;
    white-space:nowrap;
  }
  table.schedule td.muted, table.customs td, table.data td.muted{white-space:normal; min-width:220px;}
  .wrap{padding:0 20px;}
}
.foot-links{display:flex; gap:20px; flex-wrap:wrap;}
.foot-links a{font-family:var(--sans); font-size:.76rem; color:#c3cad6; border:none;}
.foot-links a:hover{color:var(--gold-bright);}
