/* ============================================================
   Bayou Ridge Investigations — brand system
   Southern speakeasy · brass, cream & gold · paper / noir
   ============================================================ */

/* ---- fonts ---- */
/* Playfair Display (display serif) · Newsreader (body serif) · Special Elite (typewriter accents) */

:root{
  /* paper (day) */
  --paper:#f3ede0;
  --paper-2:#ece3d1;
  --paper-3:#e3d9c2;
  --ink:#231d14;
  --ink-soft:#4d4536;
  --muted:#8c8169;
  --gold:#9c7a26;
  --gold-deep:#7c5f18;
  --gold-soft:rgba(156,122,38,.14);
  --line:#c8bda3;
  --hair:#d8cdb4;
  --redact:#1c1810;
  --card:#fbf6ea;
  --shadow:18px 22px 50px -28px rgba(60,46,20,.45);
  --frame:rgba(35,29,20,.55);
  --cream:#f3ede0;
  --navy:#1a2540;
  --navy-deep:#161f38;
  --navy-2:#24314f;

  --f-display:'Playfair Display',Georgia,serif;
  --f-body:'Newsreader',Georgia,serif;
  --f-type:'Special Elite','Courier New',monospace;

  --maxw:1180px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

[data-theme="noir"]{
  --paper:#0f1730;
  --paper-2:#16213e;
  --paper-3:#1d2a4a;
  --ink:#efe4c9;
  --ink-soft:#c4bca6;
  --muted:#8893a8;
  --gold:#d9b860;
  --gold-deep:#e8c97a;
  --gold-soft:rgba(217,184,96,.15);
  --line:#2a3859;
  --hair:#243352;
  --redact:#0a1020;
  --card:#16223f;
  --shadow:18px 24px 60px -28px rgba(0,0,0,.7);
  --frame:rgba(217,184,96,.4);
  --navy-deep:#0a1120;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:18px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background .5s var(--ease),color .5s var(--ease);
  overflow-x:hidden;
}
/* subtle paper grain */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.5;
  background:
    radial-gradient(circle at 20% 10%, rgba(0,0,0,.03), transparent 60%),
    radial-gradient(circle at 85% 80%, rgba(0,0,0,.035), transparent 55%);
  mix-blend-mode:multiply;
}
[data-theme="noir"] body::before{mix-blend-mode:screen;opacity:.25;}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

/* ---- layout ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}
.wrap-tight{max-width:920px;margin:0 auto;padding:0 40px;}
section{position:relative;z-index:2;}
.section{padding:104px 0;}
.section-sm{padding:64px 0;}
.bleed-2{background:var(--paper-2);}
.bleed-3{background:var(--paper-3);}

/* ---- type ---- */
.display{font-family:var(--f-display);font-weight:700;line-height:1.04;letter-spacing:-.01em;}
h1,h2,h3{font-family:var(--f-display);font-weight:700;margin:0;line-height:1.06;}
.h-xl{font-size:clamp(46px,7vw,88px);font-weight:800;letter-spacing:-.015em;}
.h-lg{font-size:clamp(34px,4.6vw,58px);}
.h-md{font-size:clamp(26px,3vw,38px);}
.h-sm{font-size:clamp(21px,2.2vw,27px);}
.lede{font-size:clamp(19px,2vw,23px);line-height:1.6;color:var(--ink-soft);}
em,.italic{font-style:italic;}

.eyebrow{
  font-family:var(--f-type);font-size:12.5px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold-deep);display:inline-flex;align-items:center;gap:12px;
}
[data-theme="noir"] .eyebrow{color:var(--gold);}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.7;}
.eyebrow.center::after{content:"";width:26px;height:1px;background:currentColor;opacity:.7;}
.eyebrow.center{justify-content:center;}

.kicker{font-family:var(--f-type);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.mono{font-family:var(--f-type);letter-spacing:.04em;}

/* ---- rules & ornaments ---- */
.rule{height:1px;background:var(--line);border:0;margin:0;}
.rule-dbl{height:4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;}
.diamond{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);font-size:12px;}
.diamond::before,.diamond::after{content:"";height:1px;width:60px;background:var(--line);}
.dot-diamond{color:var(--gold);letter-spacing:.5em;font-size:11px;}

/* ---- buttons ---- */
.btn{
  font-family:var(--f-type);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:11px;padding:15px 26px;cursor:pointer;
  border:1px solid var(--ink);color:var(--ink);background:transparent;border-radius:2px;
  transition:.28s var(--ease);white-space:nowrap;position:relative;
}
.btn:hover{transform:translateY(-2px);box-shadow:5px 7px 0 -1px var(--frame);}
.btn-solid{background:var(--gold);border-color:var(--gold);color:#1c1407;}
.btn-solid:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#fff;}
[data-theme="noir"] .btn-solid{color:#191307;}
.btn-ghost{border-color:var(--line);color:var(--ink-soft);}
.btn .arw{transition:transform .28s var(--ease);}
.btn:hover .arw{transform:translateX(4px);}
.btn-lg{padding:18px 34px;font-size:14px;}

/* ---- seal / emblem ---- */
.seal{display:inline-grid;place-items:center;border-radius:50%;border:1px solid var(--gold);position:relative;}
.seal .seal-ring{position:absolute;inset:0;animation:spin 60s linear infinite;}
@media (prefers-reduced-motion: reduce){.seal .seal-ring{animation:none;}}
@keyframes spin{to{transform:rotate(360deg);}}
.seal .mono-mark{font-family:var(--f-display);font-weight:800;letter-spacing:.04em;}
.seal text{fill:var(--gold);font-family:var(--f-type);text-transform:uppercase;}

/* ---- image slots ---- */
image-slot{display:block;background:var(--paper-3);}
.slot-frame{position:relative;}
.slot-frame::after{content:"";position:absolute;inset:9px;border:1px solid var(--frame);pointer-events:none;z-index:4;}

/* ---- cards ---- */
.card{
  background:var(--card);border:1px solid var(--line);padding:34px 32px;position:relative;
  transition:.3s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold);}
.tick{position:relative;}
.tick::before,.tick::after{content:"";position:absolute;width:9px;height:9px;border:1px solid var(--gold);}
.tick::before{top:10px;left:10px;border-right:0;border-bottom:0;}
.tick::after{bottom:10px;right:10px;border-left:0;border-top:0;}

.svc-num{font-family:var(--f-type);font-size:12px;letter-spacing:.18em;color:var(--gold-deep);}
[data-theme="noir"] .svc-num{color:var(--gold);}

/* ---- redaction / dossier ---- */
.dossier{background:var(--card);border:1px solid var(--line);padding:30px;position:relative;}
.stamp{
  position:absolute;top:18px;right:18px;font-family:var(--f-type);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-deep);border:1px solid var(--gold-deep);
  padding:5px 10px;transform:rotate(5deg);opacity:.85;border-radius:2px;
}
[data-theme="noir"] .stamp{color:var(--gold);border-color:var(--gold);}
.redact{display:inline;background:var(--redact);color:transparent;border-radius:2px;padding:0 .1em;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;user-select:none;}

/* ---- dark brand sections ---- */
.bg-navy{background:var(--navy-deep);color:var(--cream);}
.brand-emblem{height:34px;width:auto;display:block;flex:none;}
.foot-logo{width:120px;height:auto;display:block;}
.hero-emblem{width:104px;height:auto;margin:0 auto 22px;filter:drop-shadow(0 4px 18px rgba(0,0,0,.45));}

/* ---- nav ---- */
.topstrip{background:var(--ink);color:var(--paper);font-family:var(--f-type);font-size:11.5px;
  letter-spacing:.18em;text-transform:uppercase;text-align:center;padding:9px 16px;position:relative;z-index:30;}
[data-theme="noir"] .topstrip{background:#0a0f1d;color:var(--gold);}
.topstrip span{opacity:.85;}

.nav{
  position:sticky;top:0;z-index:40;background:color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter:saturate(1.1) blur(8px);border-bottom:1px solid var(--line);
  transition:background .4s var(--ease);
}
.nav-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;
  max-width:var(--maxw);margin:0 auto;padding:16px 40px;}
.nav-links{display:flex;gap:22px;font-family:var(--f-type);font-size:12.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-soft);}
.nav-links.right{justify-content:flex-end;align-items:center;}
.nav-links a{position:relative;padding:4px 0;transition:color .2s;}
.nav-links a:hover{color:var(--gold-deep);}
.nav-links a.active{color:var(--ink);}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--gold);transition:right .3s var(--ease);}
.nav-links a:hover::after,.nav-links a.active::after{right:0;}

.brand{display:flex;flex-direction:column;align-items:center;line-height:1;gap:3px;text-align:center;}
.brand .bn{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:.18em;}
.brand .bs{font-family:var(--f-type);font-size:9.5px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold-deep);}
[data-theme="noir"] .brand .bs{color:var(--gold);}

.toggle{width:54px;height:28px;border:1px solid var(--line);border-radius:20px;background:var(--paper-2);
  cursor:pointer;position:relative;flex:none;transition:.3s;}
.toggle::before{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;
  background:var(--gold);transition:.3s var(--ease);display:grid;place-items:center;}
[data-theme="noir"] .toggle::before{left:28px;}
.toggle .ic{position:absolute;top:6px;font-size:11px;line-height:1;color:var(--muted);}
.toggle .sun{right:7px;}.toggle .moon{left:7px;}

.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.burger span{width:24px;height:1.5px;background:var(--ink);display:block;}

/* mobile nav */
.mnav{position:fixed;inset:0;z-index:60;background:var(--paper);transform:translateY(-100%);
  transition:transform .45s var(--ease);display:flex;flex-direction:column;padding:30px 40px;}
.mnav.open{transform:translateY(0);}
.mnav a{font-family:var(--f-display);font-size:34px;padding:14px 0;border-bottom:1px solid var(--line);}
.mnav .mclose{align-self:flex-end;font-family:var(--f-type);font-size:24px;background:none;border:0;cursor:pointer;color:var(--ink);}

/* ---- hero frame ornament ---- */
.framed{position:relative;}
.framed::before{content:"";position:absolute;inset:18px;border:1px solid var(--frame);pointer-events:none;z-index:3;}
.corner{position:absolute;width:22px;height:22px;border:1.5px solid var(--gold);z-index:4;}
.corner.tl{top:10px;left:10px;border-right:0;border-bottom:0;}
.corner.tr{top:10px;right:10px;border-left:0;border-bottom:0;}
.corner.bl{bottom:10px;left:10px;border-right:0;border-top:0;}
.corner.br{bottom:10px;right:10px;border-left:0;border-top:0;}

/* ---- footer ---- */
.foot{background:var(--navy-deep);color:var(--cream);position:relative;z-index:2;}
[data-theme="noir"] .foot{background:#0a0f1d;}
.foot a:hover{color:var(--gold);}
.foot .eyebrow{color:var(--gold);}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding:72px 0 44px;}
.foot h4{font-family:var(--f-type);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:400;margin:0 0 18px;}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.foot ul a,.foot li{color:rgba(243,237,224,.75);font-size:16px;}
.foot-bar{border-top:1px solid rgba(243,237,224,.16);padding:22px 0;display:flex;justify-content:space-between;
  gap:16px;flex-wrap:wrap;font-family:var(--f-type);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(243,237,224,.55);}

/* ---- entrance ---- */
.rise{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.rise.in{opacity:1;transform:none;}
/* hard failsafe — applied by JS if reveal can't animate (throttled/preview iframes) */
.reveal-all .rise{opacity:1 !important;transform:none !important;transition:none !important;}
@media (prefers-reduced-motion: reduce){.rise{opacity:1;transform:none;}}

/* ---- grids ---- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch;}

/* ---- forms ---- */
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.field label{font-family:var(--f-type);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.field input,.field textarea,.field select{
  font-family:var(--f-body);font-size:17px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:2px;padding:13px 15px;transition:.2s;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);}
.field textarea{resize:vertical;min-height:120px;}

/* ---- responsive ---- */
@media (max-width:1160px){
  .nav-links{display:none;}
  .nav-in{display:flex;justify-content:space-between;align-items:center;}
  .burger{display:flex;}
  .nav .toggle{display:none;}
}
@media (max-width:940px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:34px;}
  .g2,.split{grid-template-columns:1fr;gap:36px;}
  .g3{grid-template-columns:1fr;}
  .section{padding:74px 0;}
}
@media (max-width:720px){
  .wrap,.wrap-tight,.nav-in{padding-left:22px;padding-right:22px;}
  .foot-grid{grid-template-columns:1fr;}
}
