/* ============================================================
   Marrero Compliance & Risk — Institutional Stylesheet
   Author: Marino A. Marrero B.
   Version: 1.0
   License: All rights reserved.
   ============================================================ */

/* ---------- Tokens ---------- */
:root {
  --c-bg:            #ffffff;
  --c-bg-alt:        #fafafa;
  --c-bg-soft:       #f4f5f7;
  --c-fg:            #0a0a0a;
  --c-fg-soft:       #262626;
  --c-fg-muted:      #525252;
  --c-fg-faint:      #737373;
  --c-border:        #e5e5e5;
  --c-border-strong: #d4d4d4;
  --c-accent:        #0a2540;
  --c-accent-2:      #1e3a5f;
  --c-accent-link:   #0b3a82;
  --c-highlight:     #f7f9fc;
  --c-rule:          #c8a96a;

  --f-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-serif: "Source Serif 4", "IBM Plex Serif", Georgia, "Times New Roman", serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --max-w: 1240px;
  --max-w-prose: 720px;

  --shadow-1: 0 1px 0 rgba(10,37,64,0.04);
  --shadow-2: 0 6px 24px -8px rgba(10,37,64,0.10);

  --t: 200ms ease;
}

[data-theme="dark"] {
  --c-bg:            #0a0e14;
  --c-bg-alt:        #0e131b;
  --c-bg-soft:       #131922;
  --c-fg:            #f4f5f7;
  --c-fg-soft:       #d4d4d4;
  --c-fg-muted:      #a3a3a3;
  --c-fg-faint:      #737373;
  --c-border:        #1f2733;
  --c-border-strong: #2a3340;
  --c-accent:        #e8edf3;
  --c-accent-2:      #b8c4d3;
  --c-accent-link:   #8aa9d8;
  --c-highlight:     #121822;
  --c-rule:          #c8a96a;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-fg);font-family:var(--f-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11","kern";transition:background var(--t),color var(--t)}
img,svg{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:var(--c-accent-link);text-decoration:none;transition:color var(--t)}
a:hover{text-decoration:underline;text-underline-offset:3px}
hr{border:0;border-top:1px solid var(--c-border);margin:3rem 0}

h1,h2,h3,h4,h5,h6{font-family:var(--f-sans);color:var(--c-fg);letter-spacing:-0.01em;line-height:1.2;margin:0 0 .75rem;font-weight:600}
h1{font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-0.025em;font-weight:600}
h2{font-size:clamp(1.5rem,2.4vw,2.125rem);letter-spacing:-0.02em}
h3{font-size:1.375rem;letter-spacing:-0.015em}
h4{font-size:1.125rem;letter-spacing:-0.01em}
p{margin:0 0 1rem}
small{font-size:.8125rem;color:var(--c-fg-muted)}
.serif{font-family:var(--f-serif)}
.mono{font-family:var(--f-mono);font-size:.875rem;letter-spacing:.02em}

/* ---------- Layout ---------- */
.container{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}
.container-narrow{max-width:920px;margin:0 auto;padding:0 1.5rem}
.prose{max-width:var(--max-w-prose);margin:0 auto;padding:0 1.5rem}
.section{padding:5rem 0}
.section-sm{padding:3rem 0}
.section-lg{padding:7rem 0}
.eyebrow{display:inline-block;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--c-fg-muted);margin-bottom:1rem;padding-bottom:.4rem;border-bottom:1px solid var(--c-rule)}
.lead{font-size:1.1875rem;line-height:1.65;color:var(--c-fg-soft);max-width:60ch}
.grid{display:grid;gap:2rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
@media (min-width:600px) and (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.92);backdrop-filter:saturate(150%) blur(10px);-webkit-backdrop-filter:saturate(150%) blur(10px);border-bottom:1px solid var(--c-border)}
[data-theme="dark"] .site-header{background:rgba(10,14,20,0.85)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}
/* ---- Brand lockup: sigil + editorial divider + stacked wordmark ---- */
.brand{display:flex;align-items:center;gap:.875rem;color:var(--c-fg);text-decoration:none}
.brand:hover{text-decoration:none}
.brand-mark{width:44px;height:25px;flex-shrink:0;display:block;background-image:url("../img/sigil-light.svg");background-repeat:no-repeat;background-position:center;background-size:contain}
[data-theme="dark"] .brand-mark{background-image:url("../img/sigil-dark.svg")}
.brand-divider{display:inline-block;width:1px;height:28px;background:var(--c-border-strong);flex-shrink:0}
.brand-name{display:flex;flex-direction:column;gap:3px;line-height:1}
.brand-name b{font-weight:600;font-size:.875rem;letter-spacing:.14em;color:var(--c-fg);text-transform:uppercase}
.brand-name span{font-weight:400;font-size:.625rem;letter-spacing:.22em;color:var(--c-fg-muted);text-transform:uppercase;margin:0}
@media (max-width:600px){.brand-name span{display:none}.brand-divider{display:none}}
.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none;margin:0;padding:0}
.nav-links a{color:var(--c-fg-soft);font-size:.875rem;font-weight:500;letter-spacing:.01em}
.nav-links a:hover{color:var(--c-accent-link);text-decoration:none}
.nav-cta{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;padding:.5rem 1rem;border:1px solid var(--c-border-strong);color:var(--c-fg);border-radius:2px}
.nav-cta:hover{background:var(--c-fg);color:var(--c-bg);text-decoration:none}
.theme-toggle{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--c-border);border-radius:2px;color:var(--c-fg-muted)}
.theme-toggle:hover{color:var(--c-fg);border-color:var(--c-border-strong)}
.theme-toggle svg{width:16px;height:16px}
.theme-toggle .icon-moon{display:none}
[data-theme="dark"] .theme-toggle .icon-sun{display:none}
[data-theme="dark"] .theme-toggle .icon-moon{display:block}
.menu-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center}
.menu-toggle span{display:block;width:18px;height:1.5px;background:var(--c-fg);position:relative}
.menu-toggle span::before,.menu-toggle span::after{content:"";position:absolute;left:0;width:100%;height:1.5px;background:var(--c-fg)}
.menu-toggle span::before{top:-6px}.menu-toggle span::after{top:6px}

@media (max-width:900px){
  .nav-links{position:fixed;top:72px;left:0;right:0;background:var(--c-bg);border-bottom:1px solid var(--c-border);flex-direction:column;align-items:flex-start;padding:1.5rem;gap:1rem;transform:translateY(-110%);transition:transform var(--t);box-shadow:var(--shadow-2)}
  .nav-links.open{transform:translateY(0)}
  .menu-toggle{display:inline-flex}
  .nav-cta{display:none}
}

/* ---------- Hero ---------- */
.hero{padding:6rem 0 5rem;border-bottom:1px solid var(--c-border);background:linear-gradient(180deg,var(--c-bg) 0%,var(--c-bg-alt) 100%)}
.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:5rem;align-items:end}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:2.5rem}}
.hero-title{font-size:clamp(2.25rem,4.6vw,3.75rem);font-weight:600;letter-spacing:-0.028em;line-height:1.08;margin:0 0 1.5rem;color:var(--c-fg)}
.hero-title em{font-style:normal;color:var(--c-fg-muted);font-weight:400}
.hero-sub{font-size:1.0625rem;color:var(--c-fg-soft);max-width:52ch;margin-bottom:2rem}
.hero-meta{font-family:var(--f-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:var(--c-fg-faint);display:flex;gap:1.25rem;flex-wrap:wrap;border-top:1px solid var(--c-border);padding-top:1rem;margin-top:2rem}
.hero-meta span+span{position:relative}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.4rem;font-size:.875rem;font-weight:500;letter-spacing:.01em;border-radius:2px;border:1px solid transparent;transition:all var(--t);cursor:pointer}
.btn-primary{background:var(--c-fg);color:var(--c-bg);border-color:var(--c-fg)}
.btn-primary:hover{background:var(--c-accent);border-color:var(--c-accent);text-decoration:none}
[data-theme="dark"] .btn-primary{background:var(--c-fg);color:var(--c-bg)}
.btn-ghost{background:transparent;color:var(--c-fg);border-color:var(--c-border-strong)}
.btn-ghost:hover{border-color:var(--c-fg);text-decoration:none}
.btn .arrow{transition:transform var(--t)}
.btn:hover .arrow{transform:translateX(3px)}

/* ---------- Cards ---------- */
.card{background:var(--c-bg);border:1px solid var(--c-border);padding:1.75rem;transition:border-color var(--t),transform var(--t);height:100%;display:flex;flex-direction:column}
.card:hover{border-color:var(--c-border-strong)}
.card-tag{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-fg-muted);margin-bottom:.75rem}
.card h3{font-size:1.1875rem;line-height:1.3;margin-bottom:.65rem}
.card h3 a{color:var(--c-fg)}
.card h3 a:hover{color:var(--c-accent-link);text-decoration:none}
.card p{color:var(--c-fg-muted);font-size:.9375rem;line-height:1.6;margin:0 0 1rem}
.card-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-fg-faint);padding-top:1rem;border-top:1px solid var(--c-border)}

.feature-card{padding:2rem 0;border-top:1px solid var(--c-border)}
.feature-card .num{font-family:var(--f-mono);font-size:.75rem;color:var(--c-fg-faint);letter-spacing:.18em}
.feature-card h3{margin-top:.75rem}
.feature-card p{color:var(--c-fg-muted);font-size:.9375rem;max-width:46ch}

/* ---------- Article (Insights) ---------- */
.article{padding:4rem 0 6rem}
.article-header{max-width:var(--max-w-prose);margin:0 auto 3rem;padding:0 1.5rem}
.article-header .eyebrow{margin-bottom:1.5rem}
.article-title{font-size:clamp(1.875rem,3.4vw,2.75rem);letter-spacing:-0.025em;line-height:1.15;margin-bottom:1.5rem;font-weight:600}
.article-deck{font-size:1.1875rem;color:var(--c-fg-soft);line-height:1.6;margin-bottom:2rem}
.article-meta{display:flex;flex-wrap:wrap;gap:1.5rem;padding-top:1.5rem;border-top:1px solid var(--c-border);font-family:var(--f-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-fg-muted)}
.article-meta b{color:var(--c-fg);font-weight:500}

.article-body{display:grid;grid-template-columns:220px minmax(0,var(--max-w-prose)) 220px;gap:3rem;max-width:1240px;margin:0 auto;padding:0 1.5rem}
@media (max-width:1100px){.article-body{grid-template-columns:200px minmax(0,1fr);gap:2.5rem}.article-body aside.right{display:none}}
@media (max-width:900px){.article-body{grid-template-columns:1fr}.article-body aside{display:none}}

.article-body aside{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.06em;line-height:1.7}
.toc{position:sticky;top:96px;align-self:start}
.toc-label{font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-fg-faint);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--c-border)}
.toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.toc a{color:var(--c-fg-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem;border-left:1px solid var(--c-border);padding-left:.75rem;display:block}
.toc a:hover{color:var(--c-fg);border-left-color:var(--c-rule);text-decoration:none}

.article-content{font-size:1.0625rem;line-height:1.78;color:var(--c-fg-soft);font-family:var(--f-serif)}
.article-content h2{font-family:var(--f-sans);font-size:1.5rem;margin:3rem 0 1rem;letter-spacing:-0.015em;color:var(--c-fg)}
.article-content h3{font-family:var(--f-sans);font-size:1.1875rem;margin:2rem 0 .75rem;color:var(--c-fg)}
.article-content p{margin:0 0 1.4rem}
.article-content ul,.article-content ol{margin:0 0 1.4rem;padding-left:1.25rem}
.article-content li{margin-bottom:.5rem}
.article-content blockquote{margin:2rem 0;padding:1rem 1.5rem;border-left:3px solid var(--c-rule);background:var(--c-bg-alt);font-style:italic;color:var(--c-fg-soft)}
.article-content code{font-family:var(--f-mono);font-size:.9em;background:var(--c-bg-soft);padding:.1em .35em;border-radius:2px;border:1px solid var(--c-border)}
.article-content strong{color:var(--c-fg);font-weight:600}
.article-content a{color:var(--c-accent-link);border-bottom:1px solid var(--c-border-strong);padding-bottom:1px}
.article-content table{width:100%;border-collapse:collapse;margin:2rem 0;font-family:var(--f-sans);font-size:.9375rem}
.article-content th,.article-content td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--c-border);vertical-align:top}
.article-content th{font-weight:600;color:var(--c-fg);background:var(--c-bg-alt);text-transform:uppercase;font-size:.75rem;letter-spacing:.08em}
.callout{margin:2rem 0;padding:1.5rem;border:1px solid var(--c-border);background:var(--c-bg-alt);font-family:var(--f-sans);font-size:.9375rem}
.callout-title{font-family:var(--f-sans);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-fg-muted);margin-bottom:.5rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--c-bg-alt);border-top:1px solid var(--c-border);margin-top:6rem;padding:4rem 0 2rem;color:var(--c-fg-muted);font-size:.875rem}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:3rem;max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr}}
.footer-grid h4{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-fg);margin-bottom:1rem;font-weight:600}
.footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.footer-grid a{color:var(--c-fg-muted)}
.footer-grid a:hover{color:var(--c-fg);text-decoration:none}
.footer-meta{max-width:var(--max-w);margin:3rem auto 0;padding:2rem 1.5rem 0;border-top:1px solid var(--c-border);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.75rem;color:var(--c-fg-faint);letter-spacing:.04em}
.footer-disclaimer{max-width:var(--max-w);margin:1.5rem auto 0;padding:0 1.5rem;font-size:.75rem;line-height:1.7;color:var(--c-fg-faint)}

/* ---------- Lists ---------- */
.insight-list{display:flex;flex-direction:column;border-top:1px solid var(--c-border)}
.insight-list a.item{display:grid;grid-template-columns:120px 1fr auto;gap:2rem;padding:1.75rem 0;border-bottom:1px solid var(--c-border);align-items:start;color:inherit}
.insight-list a.item:hover{text-decoration:none;background:var(--c-bg-alt)}
.insight-list .date{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-fg-faint)}
.insight-list .body h3{font-size:1.125rem;font-weight:600;margin:0 0 .35rem;letter-spacing:-0.005em;color:var(--c-fg)}
.insight-list .body p{margin:0;color:var(--c-fg-muted);font-size:.9375rem}
.insight-list .body .tag{display:inline-block;font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-accent-link);margin-bottom:.4rem}
.insight-list .arrow{font-family:var(--f-mono);color:var(--c-fg-faint);align-self:center}
@media (max-width:700px){.insight-list a.item{grid-template-columns:1fr;gap:.5rem}}

/* ---------- Tag chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.chip{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-fg-muted);padding:.4rem .75rem;border:1px solid var(--c-border);border-radius:2px}
.chip.active,.chip:hover{color:var(--c-fg);border-color:var(--c-fg);text-decoration:none}

/* ---------- KPI strip ---------- */
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border)}
@media (max-width:700px){.kpi{grid-template-columns:repeat(2,1fr)}}
.kpi-item{padding:1.75rem 1.25rem;border-right:1px solid var(--c-border)}
.kpi-item:last-child{border-right:0}
.kpi-num{font-size:1.875rem;font-weight:600;letter-spacing:-0.02em;color:var(--c-fg);font-family:var(--f-sans)}
.kpi-label{font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-fg-muted);margin-top:.4rem}

/* ---------- Forms ---------- */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
@media (max-width:600px){.form-row{grid-template-columns:1fr}}
label{display:block;font-family:var(--f-mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-fg-muted);margin-bottom:.5rem}
input,textarea,select{width:100%;font-family:var(--f-sans);font-size:.9375rem;padding:.85rem 1rem;border:1px solid var(--c-border-strong);background:var(--c-bg);color:var(--c-fg);border-radius:2px;transition:border-color var(--t)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--c-accent)}
textarea{min-height:160px;resize:vertical}

/* ---------- Utilities ---------- */
.text-muted{color:var(--c-fg-muted)}
.text-center{text-align:center}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mb-5{margin-bottom:2.5rem}.mb-6{margin-bottom:3rem}
.mt-0{margin-top:0}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-6{margin-top:3rem}.mt-8{margin-top:4rem}
.divider{height:1px;background:var(--c-border);margin:2rem 0}
.divider-strong{background:var(--c-fg);height:2px;width:48px;margin:0 0 1.5rem}
.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:1rem}.gap-3{gap:1.5rem}

/* ---------- Page intro band ---------- */
.page-intro{padding:5rem 0 3rem;border-bottom:1px solid var(--c-border);background:var(--c-bg-alt)}
.page-intro .container{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:end}
@media (max-width:900px){.page-intro .container{grid-template-columns:1fr;gap:1.5rem}}
.page-intro h1{margin-bottom:0;font-size:clamp(2rem,3.6vw,3rem)}
.page-intro p{font-size:1.0625rem;color:var(--c-fg-soft);margin:0;max-width:54ch}

/* ---------- Print ---------- */
@media print{
  .site-header,.site-footer,.theme-toggle,.menu-toggle{display:none}
  body{color:#000;background:#fff}
  a{color:#000}
}
