/* Stripe/DocuSign-inspired light theme + fast nav dropdowns (no heavy JS) */
:root{
  --bg:#ffffff;
  --fg:#0b1220;
  --muted:#51606f;
  --border:rgba(15,23,42,.12);
  --card:#ffffff;
  --shadow:0 12px 35px rgba(15,23,42,.10);
  --shadow2:0 8px 20px rgba(15,23,42,.08);
  --radius:16px;
  --radius2:12px;
  --accent:#635bff; /* Stripe-ish purple */
  --accent2:#0ea5e9; /* soft blue */
  --link:#0b1220;
}

.service-matrix .center-col{
  text-align:center;
  font-weight:500;
  position:relative;
  left:-5ch;
}

/* Mobile: slightly smaller left shift to avoid wrapping */
@media (max-width: 600px){
  .service-matrix .center-col{
  left:-3ch;
  }
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--fg);
  background:
  radial-gradient(1200px 600px at 15% -10%, rgba(99,91,255,.14), transparent 60%),
  radial-gradient(900px 500px at 85% 0%, rgba(14,165,233,.12), transparent 55%),
  #fff;
}

/* Layout helpers */
.wrap{max-width:1120px; margin:0 auto; padding:0 20px;}
a{color:inherit}

/* Header (smaller, cleaner) */
header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.82); backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid var(--border)}
.topbar{display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:14px 0;}
.brand .name{font-weight:800; letter-spacing:.2px; font-size:20px; line-height:1.1}
.brand .tag{color:var(--muted); font-size:13px; line-height:1.25; margin-top:4px}

/* Desktop nav */
.navwrap{display:flex; align-items:center; gap:12px}
/* Prevent desktop nav from wrapping (wrap causes "missing" items on a hidden 2nd line). */
.navlinks{display:flex; align-items:center; gap:10px; flex-wrap:nowrap; justify-content:flex-end}

@media (max-width: 900px){
  .navlinks{flex-wrap:wrap}
}
.navtop{
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 10px;
  border-radius:10px;
  text-decoration:none;
  color:var(--link);
  font-weight:600;
  font-size:14px;
}
.navtop:hover{background:rgba(15,23,42,.05)}
.navitem{position:relative; display:inline-flex; align-items:center}
.dropdown{
  display:none;
  position:absolute;
  /* Keep the dropdown "attached" to the trigger so the cursor can move down
  without crossing a dead gap (prevents flicker / disappearing menus). */
  top:100%;
  left:0;
  min-width:420px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:14px;
  transform: translateY(10px);
}
.dropdown::before{
  /* Invisible hover bridge between the top link and the menu panel */
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-12px;
  height:12px;
}
.navitem:hover .dropdown,
.navitem:focus-within .dropdown{display:block}
.ddgrid{display:grid; grid-template-columns: 1fr 1fr; gap:14px}

/*
  Guides dropdown: use two independent vertical stacks (left: Core+Governance,
  right: Process+Topics) so there is no large blank space under "After Preservation".
*/
.dropdown-guides .ddgrid.ddgrid-stacks{ display:flex; gap:14px; }
.dropdown-guides .ddgrid.ddgrid-stacks .ddstack{ flex:1; display:flex; flex-direction:column; gap:14px; }
.dropdown-guides .ddgrid.ddgrid-stacks .ddcol{ padding:8px 10px; border-radius:14px; }

@media (max-width: 640px){
  .dropdown-guides .ddgrid.ddgrid-stacks{ flex-direction:column; }
}
.ddcol{padding:8px 10px; border-radius:14px}
.ddh{font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px}
.ddlink{display:block; padding:6px 0; border-radius:10px; text-decoration:none; font-weight:500; font-size:14px; color:var(--fg)}
.ddlink:hover{background:rgba(159,183,201,.10); color:#9fb7c9}
.ddlink:focus-visible{outline:2px solid rgba(159,183,201,.35); outline-offset:2px}

.ddfoot{border-top:1px solid var(--border); margin-top:10px; padding-top:10px}
.ddfoot .ddlink{font-weight:700}

/* CTA */
.navcta{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  text-decoration:none;
  background:var(--accent);
  color:#fff;
  font-weight:800;
  font-size:14px;
  box-shadow:0 10px 25px rgba(99,91,255,.22);
}
.navcta:hover{filter:brightness(.97)}

/* Existing details "Menu" becomes mobile-only */
.menu{display:none}
.menu-btn{cursor:pointer}

/* Cards / sections (gentle polish without breaking your layout) */
main .card, .card, .panel, .box{
  background:rgba(255,255,255,.9);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
}

/* Links list (if present) */
.navlink{color:var(--fg); text-decoration:none}
.navlink:hover{text-decoration:underline}

/* Mobile */
@media (max-width: 980px){
  .navlinks{display:none}
  .menu{display:block}

  /* Stack brand + menu on mobile (Menu sits BELOW the tagline, not pinned right). */
  .topbar{flex-direction:column; align-items:stretch; gap:12px}

  .dropdown{position:static; display:block; min-width:unset; border:none; box-shadow:none; padding:0; transform:none}
  header{backdrop-filter:none}

  .navwrap{width:100%}
  .menu{width:100%; margin-left:0}

  .menu > summary.menu-btn{
    width:100%;
    display:block;
    padding:16px 18px;
    border-radius:18px;
    font-weight:800;
    font-size:22px;
    text-align:left;
    background: rgba(90, 150, 195, .85);
    color:#06121f;
    border: 1px solid rgba(255,255,255,.18);
  }
}

/* Improve tap targets + avoid overflow */
@media (max-width: 520px){
  .brand .name{font-size:18px}
  .brand .tag{font-size:12px}
}

/* Mobile menu panel sections */
.menu-panel{padding:12px; background:#fff; border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow2); margin-top:10px}
.menusec{padding:10px 6px}
.menutitle{font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:6px 4px}
.menu-panel .navlink{display:block; padding:10px 10px; border-radius:12px; font-weight:700; text-decoration:none}
.menu-panel .navlink:hover{background:rgba(15,23,42,.05)}

/* --- Start Intake (navcta) text color override --- */
.navcta{
  color:#000000 !important;
}
.navcta:hover,
.navcta:focus,
.navcta:active{
  color:#000000 !important;
  text-decoration:none;
}

/* Table annotations / legal qualifiers */
td.legal-note {
  padding-left: 5.0rem;
}


/* Documentation note (legal optics) */
.documentation-note{font-size:13px; color:var(--muted); opacity:1; margin-top:1rem; line-height:1.5;}
.documentation-note strong{color:var(--text); font-weight:650;}


/* Article byline (Insights) */
.article-byline{
  margin-top:.35rem;
  margin-bottom:1.05rem;
  color:var(--muted);
  font-size:.95rem;
  line-height:1.35;
}
.article-byline .dot{
  margin:0 .45rem;
  opacity:.7;
}

/* ------------------------------------------------------------------
  Intake form layout (Preliminary intake)
  Without explicit layout rules, labels/fields can render inline and appear
  to "pop out" or overlap.
------------------------------------------------------------------- */
.card form .formrow{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; margin:12px 0; }
.card form .formrow.full{ grid-template-columns: 1fr; }
.card form label{ display:block; font-weight:600; margin:0 0 6px; }
.card form input[type="text"],
.card form input[type="email"],
.card form input[type="date"],
.card form select,
.card form textarea{
  width:100%;
  box-sizing:border-box;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(7,12,20,.55);
  color:#eef2ff;
  padding:10px 12px;
}
.card form textarea{ min-height: 120px; resize: vertical; }

/* Ensure native select dropdown options are readable on Windows/Chrome */
.card form select option,
.card form select optgroup{
  color:#0b1320;
  background:#ffffff;
}

/* Visible focus (WCAG 2.1 AA - 2.4.7 Focus Visible) */
:where(a, button, input, select, textarea):focus-visible{
  outline: 3px solid rgba(130, 193, 255, .85);
  outline-offset: 2px;
}
.card form .btnbar{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }

@media (max-width: 860px){
  .card form .formrow{ grid-template-columns: 1fr; }
}


/* Skip link for keyboard users */
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:9999;
  padding:10px 12px;
  background:#ffffff;
  color:#0b1320;
  border-radius:10px;
}
.skip-link:focus{
  left:12px;
  top:12px;
}


/* Accessibility: show focus ring only for keyboard navigation */
:focus:not(:focus-visible){outline:none}

@media (max-width: 430px){
  /* Narrower Menu toggle so it wraps like the old 56.zip header */
  .menu > summary.menu-btn{ width: 34px; min-width: 34px; padding: 6px 2px; }
}


/* v6: Mobile Menu button should sit AFTER header text (in flow), not pinned right */
@media (max-width: 980px){
  .navwrap{flex-direction:column; align-items:stretch;}
  .menu{margin-left:0 !important; width:100% !important; }
  .menu > summary.menu-btn{
    width:100% !important;
    min-width:unset !important;
    height:auto !important;
    padding: 14px 18px !important;
    display:block !important;
    text-align:left !important;
    line-height:1.2 !important;
    border-radius:18px !important;
  }
}
@media (max-width: 430px){
  .menu > summary.menu-btn{width:100% !important;}
}