/* CHANGE LOG
   File: /var/www/html/winnie.nsgia.com/static/css/site.css
   Purpose: Institutional deal-room styling for the Winnie microsite
   Version History:
   2026-06-28 v1.0 - Initial creation */

:root{
  --navy:#14315a; --navy-deep:#0f2542; --green:#2f6b4f; --green-soft:#e7efe9;
  --ink:#1f2730; --gray:#535c68; --line:#bcc6cf; --line-soft:#e2e8ed;
  --panel:#f4f6f7; --white:#ffffff; --sidebar-w:248px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; color:var(--ink); background:var(--white);
  font-family:Georgia,"Times New Roman",serif; line-height:1.6; font-size:17px;
}
h1,h2,h3,.eyebrow,.label,.brand p,.btn,nav a,th{
  font-family:Arial,Helvetica,sans-serif;
}

/* ---- sidebar ---- */
.sidebar{
  position:fixed; top:0; left:0; width:var(--sidebar-w); height:100vh;
  background:var(--navy-deep); color:#dfe6ee; padding:28px 22px; overflow-y:auto;
}
.sidebar .brand .eyebrow{
  text-transform:uppercase; letter-spacing:.12em; font-size:11px; color:#9fb2c8;
}
.sidebar .brand h1{ margin:6px 0 2px; font-size:30px; color:#fff; letter-spacing:.01em;}
.sidebar .brand p{ margin:0 0 22px; font-size:13px; color:#aebfd2; letter-spacing:.08em;}
.sidebar nav{ display:flex; flex-direction:column; border-top:1px solid #25405f; }
.sidebar nav a{
  color:#cdd9e6; text-decoration:none; font-size:13.5px; padding:9px 0;
  border-bottom:1px solid #1d3450; letter-spacing:.02em;
}
.sidebar nav a:hover{ color:#fff; }

/* ---- page ---- */
.page{ margin-left:var(--sidebar-w); padding:0 0 60px; }
section{ padding:46px 56px; border-bottom:1px solid var(--line-soft); scroll-margin-top:10px;}
section.alt{ background:var(--panel); }
.label{
  text-transform:uppercase; letter-spacing:.13em; font-size:11px; color:var(--green);
  font-weight:bold; margin:0 0 8px;
}
h2{ color:var(--navy); font-size:26px; margin:0 0 18px; font-weight:700; letter-spacing:.01em;}
h3{ color:var(--navy); font-size:17px; margin:22px 0 8px; }
p{ margin:0 0 14px; max-width:62ch; }
.lead{ font-size:19px; color:var(--ink); }
.callout{
  border-left:3px solid var(--green); background:var(--green-soft);
  padding:12px 18px; margin:18px 0; font-size:16px; max-width:62ch;
}
.muted{ color:var(--gray); font-size:14px; }

/* ---- hero ---- */
.hero{ padding:0; border-bottom:1px solid var(--line);}
.hero .hero-img{
  width:100%; height:340px; object-fit:cover; object-position:center;
  display:block; background:var(--panel);
}
.hero .hero-cap{ font-size:12.5px; color:var(--gray); padding:8px 56px 0; }
.hero .hero-body{ padding:38px 56px 40px; }
.hero-grid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);
  gap:64px; align-items:start; max-width:1180px; }
.hero-main p, .hero-main .sub, .hero-main .callout{ max-width:none; }
.hero-side .snap{ border:1px solid var(--line); background:var(--panel); padding:18px 20px; }
.hero-side .snap .label{ margin:0 0 10px; }
.snap-t{ width:100%; border-collapse:collapse; font-size:14px; }
.snap-t td{ padding:6px 0; border-bottom:1px solid var(--line); }
.snap-t td:first-child{ color:var(--gray); }
.snap-t td:last-child{ text-align:right; font-weight:600; color:var(--navy); white-space:nowrap; }
.snap-total{ margin-top:16px; font-size:42px; font-weight:800; color:var(--green); line-height:1; letter-spacing:-.01em; }
.snap-bridge{ font-size:13px; font-weight:700; color:var(--navy); margin-top:7px; }
.snap-cap2{ font-size:12px; font-weight:600; color:var(--gray); margin-top:2px; }
.snap-fine{ font-size:11.5px; color:var(--gray); margin:9px 0 0; line-height:1.45; max-width:none; }
.snap-btn{ display:block; text-align:center; margin-top:14px; }
@media (max-width:880px){ .hero-grid{ grid-template-columns:1fr; gap:22px; max-width:none; } }
.hero h2{ font-size:34px; line-height:1.2; margin-bottom:10px; }
.hero .sub{ font-size:18px; color:var(--gray); max-width:64ch; }
.btnrow{ margin-top:22px; display:flex; flex-wrap:wrap; gap:10px; }
.btn{
  display:inline-block; padding:10px 16px; font-size:13px; letter-spacing:.03em;
  text-decoration:none; border:1px solid var(--navy); color:var(--navy);
  background:var(--white);
}
.btn:hover{ background:var(--navy); color:#fff; }
.btn.solid{ background:var(--navy); color:#fff; }
.btn.solid:hover{ background:var(--navy-deep); }

/* ---- cards ---- */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.card{ border:1px solid var(--line); background:var(--white); padding:18px 18px 20px; }
.card .k{ text-transform:uppercase; letter-spacing:.1em; font-size:10.5px; color:var(--green); font-weight:bold;}
.card h3{ margin:6px 0 8px; font-size:16px; }
.card p{ font-size:14.5px; margin:0; color:var(--gray); }

/* ---- tables ---- */
table.t{ border-collapse:collapse; width:100%; max-width:760px; margin:8px 0 14px; font-size:15px;}
table.t th,table.t td{ border:1px solid var(--line); padding:9px 12px; text-align:left; vertical-align:top;}
table.t th{ background:var(--navy); color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.05em; font-weight:600;}
table.t tr:nth-child(even) td{ background:#fafcfd; }

/* ---- figures ---- */
figure{ margin:18px 0; }
figure img{ width:100%; max-width:860px; border:1px solid var(--line); display:block; background:var(--panel); }
figcaption{ font-size:12.5px; color:var(--gray); margin-top:6px; }
.plate{ max-width:860px; margin:22px 0; }
.plate figcaption{ max-width:760px; }
.imggrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; max-width:880px;}
.imggrid img{ width:100%; border:1px solid var(--line); background:var(--panel);}

/* ---- evidence ---- */
.docrow{ display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.contact-block{ font-size:16px; line-height:1.8; }
.site-foot{ padding:22px 56px; color:var(--gray); font-size:12px; letter-spacing:.04em; text-transform:uppercase;}

/* ---- mobile ---- */
@media (max-width:880px){
  .sidebar{ position:static; width:100%; height:auto; padding:18px 22px; }
  .sidebar nav{ flex-flow:row wrap; border-top:1px solid #25405f; gap:0 16px; }
  .sidebar nav a{ border-bottom:none; padding:6px 0; }
  .page{ margin-left:0; }
  section,.hero .hero-body,.site-foot{ padding-left:22px; padding-right:22px; }
  .hero h2{ font-size:27px; }
}

/* ---- workbook viewer modal (2026-06-28) ---- */
.wb-overlay{ display:none; position:fixed; inset:0; z-index:50;
  background:rgba(12,28,48,.55); }
.wb-overlay.open{ display:flex; align-items:center; justify-content:center; }
.wb-modal{ width:96vw; max-width:1320px; height:93vh; background:var(--white);
  border-radius:6px; display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.4); }
.wb-bar{ display:flex; align-items:center; gap:14px; padding:10px 14px;
  background:var(--navy); color:#fff; flex:0 0 auto; }
.wb-heading{ font-weight:700; font-size:14px; white-space:nowrap; }
.wb-tabs{ display:flex; gap:4px; flex:1 1 auto; flex-wrap:wrap; }
.wb-tab{ background:rgba(255,255,255,.12); color:#dce6f2; border:none;
  padding:6px 11px; border-radius:4px; font-size:12.5px; cursor:pointer; }
.wb-tab:hover{ background:rgba(255,255,255,.22); color:#fff; }
.wb-tab.active{ background:#fff; color:var(--navy); font-weight:600; }
.wb-dl{ color:#fff; text-decoration:underline; font-size:12.5px; white-space:nowrap; }
.wb-close{ background:none; border:none; color:#fff; font-size:24px; line-height:1;
  cursor:pointer; padding:0 4px; }
.wb-body{ flex:1 1 auto; overflow:auto; padding:16px 18px; background:#fbfdfe; }
.wb-empty{ color:var(--gray); padding:24px; }
.wb-panel{ display:none; }
.wb-panel.active{ display:block; }
.wb-table{ border-collapse:collapse; width:100%; font-size:13px; }
.wb-table th,.wb-table td{ border:1px solid var(--line); padding:6px 9px;
  text-align:left; vertical-align:top; white-space:nowrap; }
.wb-table th{ background:var(--navy); color:#fff; position:sticky; top:0; }
.wb-table td.wb-title{ background:var(--panel); color:var(--navy);
  font-weight:700; white-space:normal; }
.wb-table tr:nth-child(even) td:not(.wb-title){ background:#f4f8fb; }
@media(max-width:860px){
  .wb-modal{ width:100vw; height:100vh; border-radius:0; }
  .wb-heading{ display:none; }
}

/* ---- patent-pending badge + opportunity metrics (2026-06-28) ---- */
.pp{ display:inline-block; margin-left:8px; padding:2px 8px; border-radius:10px;
  background:var(--brass,#b8862e); color:#fff; font-size:10px; letter-spacing:.08em;
  text-transform:uppercase; font-weight:700; vertical-align:middle; }
.opp{ border:1px solid var(--line); background:var(--panel); padding:18px 20px;
  margin:18px 0; }
.opp .label{ margin-top:0; }
.metrics{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:14px; margin:6px 0 12px; }
.metric{ background:var(--white); border:1px solid var(--line); padding:12px 14px; }
.metric .n{ font-size:26px; font-weight:700; color:var(--navy); line-height:1; }
.metric .l{ font-size:12.5px; color:var(--gray); margin-top:5px; }
.opp p{ margin:0; font-size:14.5px; }
@media(max-width:860px){ .hero .hero-cap{ padding-left:22px; padding-right:22px; } }

/* shorter hero on mobile (2026-06-28) */
@media(max-width:860px){ .hero .hero-img{ height:210px; } }

/* ---- profit number cards (2026-06-28) ---- */
.pcards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:14px; margin:6px 0 14px; }
.pcard{ border:1px solid var(--line); background:var(--white); padding:18px 18px 16px;
  border-top:3px solid var(--navy); }
.pcard.win{ border-top-color:var(--green); background:var(--panel); }
.pcard .pn{ font-size:32px; font-weight:800; color:var(--navy); line-height:1; letter-spacing:-.01em; }
.pcard.win .pn{ color:var(--green); }
.pcard .pn .yr{ font-size:15px; font-weight:600; color:var(--gray); }
.pcard .pl{ font-size:13.5px; font-weight:600; color:var(--ink); margin-top:8px; }
.pcard .pnote{ font-size:12px; color:var(--gray); margin-top:3px; }
.pframe{ font-size:14.5px; color:var(--ink); margin:0 0 14px; }
@media(max-width:860px){ .pcard .pn{ font-size:27px; } }

/* ---- two-case profit: case headers + combined total bar (2026-06-28) ---- */
.case-h{ font-size:13px; font-weight:700; color:var(--navy); letter-spacing:.02em;
  margin:16px 0 8px; padding-bottom:5px; border-bottom:1px solid var(--line); }
.total-bar{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;
  background:var(--navy); color:#fff; padding:16px 20px; margin:16px 0 12px;
  border-left:5px solid var(--green); }
.total-bar .tb-n{ font-size:34px; font-weight:800; color:#fff; line-height:1; }
.total-bar .tb-l{ font-size:14px; font-weight:600; color:#dce6f2; }
.total-bar .tb-l span{ display:block; font-weight:400; color:#aebfd6; font-size:12.5px; margin-top:3px; }
@media(max-width:860px){ .total-bar .tb-n{ font-size:28px; } }

/* snapshot: separate facts from economics (2026-06-28) */
.snap-t tr.sep td{ border-top:2px solid var(--line); padding-top:9px; }

/* snapshot: two-sale profit block (2026-06-28) */
.snap-sub{ font-size:12px; font-weight:700; color:var(--navy); letter-spacing:.03em;
  text-transform:uppercase; margin:16px 0 6px; }
.snap-t td{ padding:7px 0; }
@media(max-width:860px){ .snap-total{ font-size:34px; } }

/* representative-example banner (2026-06-28) */
.exbanner{background:#eef2f7;border-left:4px solid #1f3a5f;color:#1f3a5f;
  font-size:.86rem;font-weight:600;padding:.6rem .9rem;margin:0 0 1.1rem;border-radius:3px;line-height:1.4;}

/* lightbox affordance (2026-06-28) */
figure{ position:relative; }
figure img, img.zoomable{ cursor:zoom-in; }
figure::after{ content:"\2922  click to enlarge"; position:absolute; top:8px; right:8px;
  background:rgba(31,58,95,.88); color:#fff; font-size:11px; font-weight:600;
  padding:3px 8px; border-radius:3px; pointer-events:none; opacity:.92; }

/* rate-comp screenshot strip (2026-06-28) */
.shots{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:720px; margin:10px 0 6px; }
.shots figure{ margin:0; }
.shots figure::after{ content:none; }
.shots figure img{ width:100%; height:auto; }
.shots figcaption{ font-size:12px; text-align:center; }
@media (max-width:680px){ .shots{ grid-template-columns:1fr 1fr; max-width:none; } }

/* --- template placeholders (missing elements; fill or remove) --- 2026-06-30 --- */
.ph-group{margin:22px 0 6px;padding:14px 16px;border:1px solid #e7d9bd;background:#fffaf0;border-radius:8px}
.ph-grouphd{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a6d1f}
.ph{display:block;border:2px dashed #b5832a;background:#fdf8ef;padding:10px 13px;margin:8px 0;border-radius:6px}
.ph-tag{display:inline-block;background:#b5832a;color:#fff;font-size:9.5px;font-weight:700;letter-spacing:.09em;padding:2px 7px;border-radius:3px;margin-right:9px;text-transform:uppercase;vertical-align:middle}
.ph strong{color:#1f2730;font-size:14.5px}
.ph-need{display:block;margin-top:4px;color:#7a5a14;font-size:12.5px;line-height:1.45}

.phs{display:none}

/* --- filled iVerify content --- 2026-06-30 --- */
.iv-source{margin:0 0 18px;padding:12px 16px;border-left:3px solid #14542b;background:#f7f9fb;font-size:14px;line-height:1.55;color:#1f2730}
.iv-source a{color:#14542b;font-weight:600}
.ivtbl{width:100%;border-collapse:collapse;margin:10px 0 6px;font-size:13.5px}
.ivtbl th,.ivtbl td{border:1px solid #e2e8ed;padding:6px 9px;text-align:left;vertical-align:top}
.ivtbl th{background:#f4f6f7;font-weight:700}
.iv-note{font-size:12px;color:#5b6675;margin:4px 0 14px}
