/* Archivo, self-hosted (SIL Open Font License, see ../fonts/OFL.txt). One variable file per
   subset; declared at 400, 600 and 800 only, with the same subsets and unicode ranges as Google
   Fonts, so other weights (e.g. bold = 700) resolve exactly as they did with Google Fonts. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
:root{
  /* Numis-Fin + brand */
  --navy-900:#0E2436; --navy-800:#132E42; --navy-700:#1B3A50;
  --gold-500:#C9A24E; --gold-300:#E4C979; --gold-100:#F4E7C4; --gold-600:#B38D3A;
  /* Numis-Docs */
  --green-900:#1E4A44; --green-800:#2A5C55; --green-700:#2E615A; --green-400:#4E8B7F;
  /* neutrals */
  --cream-100:#F5F2EA; --cream-200:#EDE8DB; --beige:#E6DCC8;
  --bg:#f3f2f2; --surface:#eae9e9; --ink-800:#444141;
  --copper-500:#9B6A3D; /* small kicker text on light ground only */
  --copper-ink:#875C35; /* copper for small text: 4.5:1 or more on the page, bands and white */
  --font:"Archivo",system-ui,sans-serif;
}
/* layout helpers */
:root{--ink:#201e1d;--max:1280px;--edge:48px;
  /* line tokens: use these instead of hard-coded borders */
  --line-hair:1px solid rgba(23,40,58,.14);        /* dividers on light backgrounds */
  --line-hair-dark:1px solid rgba(255,255,255,.14); /* dividers inside navy/green panels */
  --line-strong:1px solid var(--navy-900);          /* outline buttons, focused fields */}
@media (max-width:768px){:root{--edge:24px;}}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  font-family:var(--font);
  font-size:15px;
  line-height:1.55;
  color:var(--ink);
  background:var(--bg) var(--grain);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:var(--font);font-weight:800;line-height:1.12;margin:0 0 .4em 0;letter-spacing:-0.015em;}
p{line-height:1.55;}
a{color:inherit;text-decoration:none;transition:color .12s,background-color .12s,border-color .12s;}
a:hover{color:var(--copper-ink);}
img{max-width:100%;display:block;}
picture{display:contents;} /* <picture> only adds a WebP source; the <img> keeps its layout */
:focus-visible{outline:2px solid #C9A24E;outline-offset:2px;}
::selection{background:#F4E7C4;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--edge);}
.grayscale,.grayscale img{filter:grayscale(1) contrast(1.08);}

/* kicker */
.mint{display:block;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--copper-ink);margin-bottom:16px;}

/* product colour markers (navy = Numis-Fin, green = Numis-Docs) */
.mk{display:inline-block;flex:none;width:10px;height:10px;}
.mk-fin{background:var(--navy-900);}
.mk-docs{background:var(--green-900);}

/* ---------- NAV ---------- */
nav{position:sticky;top:0;z-index:50;background:var(--bg);color:var(--navy-900);border-bottom:var(--line-hair);padding-top:env(safe-area-inset-top);}
.nav-inner{max-width:var(--max);margin:0 auto;padding:18px var(--edge);display:flex;align-items:center;justify-content:space-between;position:relative;gap:28px;}
.brand{display:flex;align-items:center;min-width:0;margin-right:auto;}
.brand img{height:32px;width:auto;flex-shrink:0;}
.brand span{font-weight:800;font-size:20px;white-space:nowrap;}
.nav-menu{display:flex;align-items:center;gap:28px;}
.nav-links{display:flex;align-items:center;gap:24px;}
.nav-links a,.nav-dropdown-toggle{display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--navy-900);border-bottom:2px solid transparent;padding:4px 0;}
.nav-links a:hover,.nav-dropdown-toggle:hover{color:var(--copper-ink);}
.nav-links a.current{border-bottom-color:var(--gold-500);}
.nav-cta{display:flex;align-items:center;gap:8px;}
.nav-toggle{display:none;align-items:center;justify-content:center;background:none;border:var(--line-strong);font-size:22px;color:var(--navy-900);cursor:pointer;padding:4px 8px;min-width:44px;min-height:44px;}
.nav-dropdown{position:relative;}
.nav-dropdown-toggle{background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;}
/* Pricing dropdown: soft card with a gold top line; fades in and slides down 4px */
.nav-dropdown-menu{position:absolute;top:100%;left:-18px;margin-top:12px;min-width:220px;z-index:70;background:var(--bg);border-top:2px solid var(--gold-500);box-shadow:0 8px 24px rgba(23,40,58,.12);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease,visibility 0s linear .15s;}
.nav-dropdown.open .nav-dropdown-menu{opacity:1;visibility:visible;transform:none;transition:opacity .15s ease,transform .15s ease,visibility 0s;}
.nav-dropdown-menu a{display:flex;align-items:center;min-height:44px;padding:12px 18px;font-size:14px;font-weight:400;color:var(--navy-900);border-bottom:none;transition:background-color .15s ease,box-shadow .15s ease;}
.nav-dropdown-menu a + a{border-top:1px solid rgba(14,36,54,.08);}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:rgba(230,220,200,.6);color:var(--navy-900);box-shadow:inset 3px 0 0 var(--gold-500);outline-offset:-2px;}
@media (prefers-reduced-motion:reduce){
  .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu,.nav-dropdown-menu a{transition:none;transform:none;}
}

@media (max-width:1024px){
  .nav-toggle{display:inline-flex;}
  .nav-menu{
    display:none;
    position:absolute;
    top:100%;left:0;right:0;
    margin-top:2px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--bg);
    border-bottom:var(--line-hair);
    max-height:calc(100vh - 100%);
    max-height:calc(100dvh - 100%);
    overflow-y:auto;
  }
  .nav-menu.open{display:flex;}
  .nav-links{flex-direction:column;align-items:stretch;gap:0;padding:0 var(--edge);}
  .nav-links > a,.nav-dropdown-toggle{width:100%;padding:14px 0;border-bottom:var(--line-hair);font-size:16px;min-height:52px;}
  .nav-links a.current{border-bottom:var(--line-hair);color:var(--copper-ink);}
  .nav-dropdown{width:100%;}
  .nav-dropdown-menu{display:none;position:static;border-top:none;border-bottom:var(--line-hair);background:var(--surface);box-shadow:none;padding:0;margin-top:0;min-width:0;opacity:1;visibility:visible;transform:none;transition:none;}
  .nav-dropdown.open .nav-dropdown-menu{display:block;}
  .nav-dropdown-menu a{padding:12px 16px;}
  .nav-cta{flex-direction:column;align-items:stretch;gap:10px;padding:20px var(--edge) 24px;}
  .nav-cta .btn{width:100%;min-height:44px;}
}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:9px 15.4px;border-radius:0;font-family:var(--font);font-size:14px;font-weight:800;line-height:1.2;cursor:pointer;border:1px solid transparent;text-align:center;text-decoration:none;transition:background-color .12s,color .12s,border-color .12s;}
.btn-lg{font-size:16px;padding:16px 20px;border-width:1px;justify-content:space-between;text-align:left;}
.btn-arrow{color:var(--gold-500);}
/* product boxes: lead with the job (title), one line, then the product name as a small label.
   Subgrid lines up the three parts across both boxes, whatever each title's length */
.hero-ctas{grid-template-rows:repeat(3,auto);}
.btn-job{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:6px;justify-items:start;align-content:start;text-align:left;}
.job-title{line-height:1.25;}
.job-line{font-size:15px;font-weight:400;line-height:1.35;color:rgba(245,242,234,.8);}
.job-label{align-self:end;margin-top:8px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-500);}
.job-arrow{display:inline-block;margin-left:4px;transition:transform .15s ease;}
.btn-job:hover .job-arrow{transform:translateX(4px);}
@media (prefers-reduced-motion:reduce){.job-arrow{transition:none;}.btn-job:hover .job-arrow{transform:none;}}
.btn-gold{background:var(--gold-500);border-color:var(--gold-500);color:var(--navy-900);}
.btn-gold:hover{background:var(--gold-300);border-color:var(--gold-300);color:var(--navy-900);}
.btn-gold:active{background:var(--gold-600);border-color:var(--gold-600);}
/* lighter outline button: 1px border, semibold; padding +1px keeps the same height */
.btn-outline-dark{background:transparent;border:var(--line-strong);padding:9px 15.4px;font-weight:600;color:var(--navy-900);}
.btn-outline-dark:hover{background:rgba(230,220,200,.6);color:var(--navy-900);}
.btn-fin{background:var(--navy-900);border-color:var(--navy-900);color:var(--cream-100);}
.btn-fin:hover{background:var(--navy-700);border-color:var(--navy-700);color:var(--cream-100);}
.btn-docs{background:var(--green-900);border-color:var(--green-900);color:var(--cream-100);}
.btn-docs:hover{background:var(--green-800);border-color:var(--green-800);color:var(--cream-100);}
.btn-cream{background:var(--cream-100);border-color:var(--cream-100);color:var(--green-900);}
.btn-cream:hover{background:var(--cream-200);border-color:var(--cream-200);color:var(--green-900);}

/* ---------- SECTION SHELLS ---------- */
section{padding:clamp(48px,9vw,84px) 0;}
section.page{padding:0;}
.section-head{max-width:720px;margin-bottom:clamp(32px,6vw,52px);}
.section-head h2{font-size:56px;line-height:1;letter-spacing:-.04em;color:var(--navy-900);margin:0;}
.section-head h2 + p{margin-top:20px;}
.section-head p{color:var(--ink-800);font-size:17px;margin:0;}

/* ---------- HOME: HERO ---------- */
.hero{padding:64px 0 96px;}
.hero > .wrap{display:flex;flex-direction:column;gap:40px;}
.hero-top{display:flex;flex-direction:column;gap:24px;container-type:inline-size;}
.hero-top .mint{margin:0;}
/* tag strips (Home, Numis-Fin, Numis-Docs): plain text labels, not buttons.
   Square marker first; items joined by a middle dot that stays on the item before it */
.compliance-strip,.prod-tag{--tag:var(--navy-900);display:flex;flex-wrap:wrap;align-items:center;align-self:flex-start;row-gap:4px;font-size:13px;font-weight:600;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--tag);cursor:default;}
.compliance-strip::before,.prod-tag::before{content:"";flex:none;width:10px;height:10px;margin-right:10px;background:var(--tag);}
.compliance-strip span,.prod-tag span{white-space:nowrap;}
.compliance-strip span:not(:last-child)::after,.prod-tag span:not(:last-child)::after{content:"\00B7";margin:0 10px;font-weight:800;}
.compliance-strip .compliance-key,.prod-tag .prod-tag-name{color:var(--copper-ink);font-weight:800;}
.hero h1{font-size:49px;font-size:clamp(28px,5.05cqi,49px);line-height:1.08;letter-spacing:-.04em;color:var(--navy-900);max-width:1060px;margin:0;text-wrap:balance;} /* one sentence, about 72% of the earlier 68px */
/* "AI@Work" at the end of the hero headline: same size, copper, never split */
.hero h1 .h1-tag{color:var(--copper-ink);white-space:nowrap;}
/* controlled line breaks in the hero headline: desktop and tablet only (hidden on phones, 600px and below) */
@media (max-width:600px){.br-desktop{display:none;}}
/* paragraph and product boxes side by side, both starting at the same top line */
.hero-mid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start;}
.hero p.lead{font-size:18px;line-height:1.55;max-width:560px;margin:0;color:var(--ink-800);text-wrap:pretty;}
/* side by side: trim the font's top spacing so the text top = the boxes' top edge */
@media (min-width:901px){.hero p.lead{text-box:trim-start cap alphabetic;}}
.hero-actions{display:flex;flex-direction:column;gap:16px;}
.hero-ctas{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ai-line{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--navy-900);}
.ai-line b{font-weight:800;}
.ai-bar{flex:none;width:48px;height:2px;background:var(--gold-500);}

/* hero product cards */
.hero-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.flow-card{--card-bg:var(--navy-900);--card-rule:var(--navy-700);background:var(--card-bg);color:var(--cream-100);display:flex;flex-direction:column;box-shadow:0 12px 32px rgba(45,43,43,.22);}
.flow-card--docs{--card-bg:var(--green-900);--card-rule:var(--green-700);}
.flow-card-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:18px 24px;border-bottom:var(--line-hair-dark);}
.flow-card-name{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;}
.flow-card-name .mk{background:var(--gold-500);}
.flow-card-in,.flow-card-sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-300);}
.flow-card-sub{display:grid;grid-template-columns:1fr auto;gap:12px;padding:10px 24px;border-bottom:var(--line-hair-dark);}
.flow-card-sub b{font-weight:800;}
.flow-card-rows{list-style:none;margin:0;padding:0;}
.flow-card-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;padding:12px 24px;font-size:15px;}
.flow-card-row + .flow-card-row{border-top:var(--line-hair-dark);}
.row-num{color:var(--gold-300);font-weight:800;font-size:13px;line-height:1.75;}
.row-status{color:var(--gold-300);font-size:14px;}
.flow-card-foot{margin-top:auto;display:grid;grid-template-columns:1fr auto;align-items:center;padding:14px 24px;background:var(--gold-500);color:var(--navy-900);font-weight:800;font-size:15px;}
.flow-card--docs .flow-card-foot{background:var(--cream-100);color:var(--green-900);}

/* ---------- HOME: WHY NUMISORA (bento) ---------- */
#benefits{padding:0 0 96px;}
.section-head.split{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:var(--line-hair);padding-top:40px;margin-bottom:28px;}
.section-head.split .mint{order:2;margin:0;}
.bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.bento-cell h3{margin:0;}
.bento-cell p{margin:0;}
.bento-wide{grid-column:span 2;padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;}
.bento-navy{background:var(--navy-900);color:var(--cream-100);min-height:260px;}
.bento-navy h3{font-size:26px;margin-bottom:10px;}
.bento-navy p{font-size:16px;color:var(--cream-200);}
.bento-display{font-size:120px;font-weight:800;line-height:.8;letter-spacing:-.06em;color:var(--gold-500);}
.bento-surface{background:var(--surface);padding:32px;display:flex;flex-direction:column;gap:12px;justify-content:flex-end;border-top:4px solid var(--gold-500);}
.bento-surface h3{font-size:24px;color:var(--navy-900);}
.bento-surface p{font-size:15px;color:var(--ink-800);}
.bento-num{font-size:14px;font-weight:800;color:var(--copper-ink);}
.bento-beige{background:var(--beige);color:var(--navy-900);}
.bento-beige .bento-title{display:flex;flex-direction:column;gap:10px;}
.bento-beige h3{font-size:26px;}
.bento-beige p{font-size:16px;color:var(--navy-800);}

/* ---------- HOME: TWO PRODUCTS ---------- */
#products{padding:0;}
.products-head{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:end;padding-bottom:40px;}
.products-head h2{font-size:56px;line-height:1;letter-spacing:-.04em;color:var(--navy-900);margin:0;text-wrap:balance;}
.products-head p{font-size:17px;margin:0;color:var(--ink-800);}
.product-panels{display:grid;grid-template-columns:1fr 1fr;}
.product-panel{position:relative;display:grid;grid-template-rows:auto 1fr;background:var(--navy-900);color:var(--cream-100);}
.panel-docs{background:var(--green-900);}
.product-photo{height:280px;position:relative;}
.product-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08);}
.product-body{padding:36px 48px 48px;display:flex;flex-direction:column;gap:14px;border-top:4px solid var(--gold-500);}
.product-tag{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-300);}
.product-name{font-size:56px;line-height:1.12;letter-spacing:-.04em;margin:0;transition:color .12s;}
.product-panel:hover .product-name{color:var(--gold-500);}
.product-body p{font-size:16px;margin:0;color:var(--cream-200);max-width:480px;}
.panel-docs .product-body p{color:var(--cream-100);}
.card-link{align-self:flex-start;display:inline-flex;justify-content:space-between;align-items:center;gap:12px;min-width:200px;padding:12px 16px;line-height:1.2;border:1px solid transparent;margin-top:8px;font-size:14px;font-weight:800;background:var(--gold-500);color:var(--navy-900);}
.card-link::after{content:"\2192";}
.panel-docs .card-link{background:var(--cream-100);color:var(--green-900);}
.product-panel .card-link:hover{color:var(--navy-900);}
.panel-docs .card-link:hover{color:var(--green-900);}
/* the whole panel is clickable through its one link */
.card-link::before{content:"";position:absolute;inset:0;}

/* ---------- HOME: TRUST ---------- */
#trust{padding:96px 0;}
.trust-layout{display:grid;grid-template-columns:4fr 8fr;gap:48px;}
.trust-intro{display:flex;flex-direction:column;gap:20px;}
.trust-intro .mint{margin:0;}
.trust-intro h2{font-size:56px;line-height:1;letter-spacing:-.04em;color:var(--navy-900);margin:0;}
.trust-photo{height:200px;position:relative;margin-top:8px;}
.trust-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:grayscale(1) contrast(1.08);}
.trust-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--line-hair);align-self:end;}
.trust-item{padding:24px 24px 0;display:flex;flex-direction:column;gap:10px;}
.trust-item:first-child{padding-left:0;}
.trust-item:last-child{padding-right:0;}
.trust-item + .trust-item{border-left:var(--line-hair);}
.trust-bar{width:24px;height:4px;background:var(--gold-500);}
.trust-item h3{font-size:22px;color:var(--navy-900);margin:0;}
.trust-item p{margin:0;font-size:15px;color:var(--ink-800);}

@media (max-width:900px){
  .hero-mid{grid-template-columns:1fr;gap:28px;}
  .hero-actions{max-width:640px;}
}
@media (max-width:1024px){
  .bento-navy{grid-template-columns:1fr;gap:24px;}
  .trust-layout{grid-template-columns:1fr;}
}
@media (max-width:768px){
  .hero{padding:40px 0 64px;}
  .section-head h2,.products-head h2,.trust-intro h2{font-size:36px;}
  .compliance-strip{font-size:12px;}
  .hero-mid,.hero-ctas,.hero-cards{grid-template-columns:1fr;}
  .flow-card-row{padding:12px 20px;}
  .flow-card-head,.flow-card-sub,.flow-card-foot{padding-left:20px;padding-right:20px;}
  #benefits{padding-bottom:64px;}
  .section-head.split{flex-direction:column;align-items:flex-start;padding-top:32px;}
  .section-head.split .mint{order:0;}
  .bento{grid-template-columns:1fr;}
  .bento-wide{grid-column:auto;grid-template-columns:1fr;gap:20px;padding:28px 24px;}
  .bento-navy{min-height:0;}
  .bento-display{font-size:72px;}
  .bento-surface{padding:28px 24px;}
  .products-head{grid-template-columns:1fr;gap:16px;}
  .product-panels{grid-template-columns:1fr;}
  .product-photo{height:220px;}
  .product-body{padding:28px var(--edge) 36px;}
  .product-name{font-size:40px;}
  #trust{padding:64px 0;}
  .trust-cols{grid-template-columns:1fr;}
  .trust-item,.trust-item:first-child,.trust-item:last-child{padding:24px 0;}
  .trust-item + .trust-item{border-left:none;border-top:var(--line-hair);}
}

/* ============================================================
   PRODUCT PAGES (numis-fin / numis-docs)
   --pc = product colour: navy on Numis-Fin, green on Numis-Docs
   ============================================================ */
.theme-fin{--pc:var(--navy-900);--pc-hover:var(--navy-700);--pc-rule:var(--navy-700);}
.theme-docs{--pc:var(--green-900);--pc-hover:var(--green-800);--pc-rule:var(--green-700);}
:root{--bg-beige-soft:#EFEBE4; /* section bands, one step warmer than --bg */
  /* guilloche line colours: hero and Custom banner have separate tokens on purpose */
  --rosette-hero-fin:#A7B7C7;  /* Numis-Fin hero (dusty pastel blue) */
  --rosette-hero-docs:#A6AE88; /* Numis-Docs hero (pastel sage) */
  --rosette-banner:#8A7660;    /* Custom pricing banner, both pages (taupe) */
  /* paper grain: warm noise tile, about 1.5% average tint */
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .47 0 0 0 0 .36 0 0 0 0 .22 1 0 0 0 -.25'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.06'/%3E%3C/svg%3E");}
:root{--divider:rgba(32,30,29,.4);--neutral-700:#605d5d;}

.btn-pc{background:var(--pc);border-color:var(--pc);color:var(--cream-100);}
.btn-pc:hover{background:var(--pc-hover);border-color:var(--pc-hover);color:var(--cream-100);}

/* section heading used on inner pages */
.sec-head{display:flex;flex-direction:column;gap:14px;margin-bottom:32px;}
.sec-head .mint{margin:0;}
.sec-head h2{font-size:56px;line-height:1;letter-spacing:-.04em;color:var(--navy-900);margin:0;text-wrap:balance;}
.sec-head.ruled{border-top:var(--line-hair);padding-top:40px;}
.sec-head.split-7-5{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:end;}
.sec-head.split-7-5 > div{display:flex;flex-direction:column;gap:14px;}
.sec-head.split-7-5 > p{font-size:17px;margin:0;color:var(--ink-800);}
.sec-head.split-7-5.wide{grid-template-columns:1fr;} /* heading too long for the 7/12 column */

/* hero */
.prod-hero{padding:64px 0 88px;}
.prod-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;}
.prod-hero-copy{display:flex;flex-direction:column;gap:24px;}
.prod-tag{--tag:var(--pc);font-size:12px;}
.prod-hero-copy{container-type:inline-size;}
.prod-hero h1{font-size:72px;font-size:min(72px,13.6cqi);line-height:.95;letter-spacing:-.045em;color:var(--navy-900);margin:0;text-wrap:balance;}
.prod-hero p.lead{font-size:18px;line-height:1.55;margin:0;color:var(--ink-800);text-wrap:pretty;}
.prod-hero-ctas{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:520px;}
.prod-hero-ctas .btn-outline-dark{padding:15px 19px;border-width:1px;}

/* flow: four steps in one ruled box */
/* "What is" definition under the product hero */
.prod-def{padding:0 0 72px;}
.prod-def p{margin:0;max-width:920px;padding-left:24px;border-left:3px solid var(--pc);font-size:21px;line-height:1.5;color:var(--navy-900);text-wrap:pretty;}
.flow-sec{padding:0 0 96px;}
.flow-box{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:var(--line-hair);}
.flow-step{position:relative;padding:28px 24px 32px;display:flex;flex-direction:column;gap:12px;}
.flow-step + .flow-step{border-left:var(--line-hair);}
.flow-step-top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.flow-eyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--copper-ink);}
.flow-num{font-size:13px;font-weight:800;color:var(--gold-500);}
.flow-chip{align-self:flex-start;background:var(--gold-100);color:var(--navy-900);font-size:11px;font-weight:800;letter-spacing:.04em;padding:3px 8px;}
.flow-step h3{font-size:22px;color:var(--navy-900);margin:0;}
.flow-step p{font-size:15px;color:var(--ink-800);margin:0;}
.flow-step.hitl{background:var(--pc);color:var(--cream-100);}
.flow-step.hitl .flow-eyebrow,.flow-step.hitl .flow-num{color:var(--gold-300);}
.flow-step.hitl h3{color:var(--cream-100);}
.flow-step.hitl p{color:var(--cream-200);}
.flow-arrow{position:absolute;right:-15px;top:28px;z-index:1;width:28px;height:28px;display:grid;place-items:center;background:var(--gold-500);color:var(--navy-900);font-size:14px;font-weight:800;}

/* documents: Numis-Fin ruled 2-column list */
.docs-sec{padding:0 0 96px;}
.doc-list{display:grid;grid-template-columns:1fr 1fr;border-top:var(--line-hair);}
.doc-item{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:22px 32px 22px 0;border-bottom:1px solid var(--divider);}
.doc-item:nth-child(even){padding:22px 0 22px 32px;border-left:var(--line-hair);}
.doc-item:nth-last-child(-n+2){border-bottom:var(--line-hair);}
.doc-num{font-size:14px;font-weight:800;color:var(--gold-500);}
.doc-item h3{font-size:20px;color:var(--navy-900);margin:0 0 6px;}
.doc-item p{font-size:15px;color:var(--ink-800);margin:0;}

/* documents: Numis-Docs 3x3 cards (open the preview modal via data-doc) */
.doc-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.doc-card{display:flex;flex-direction:column;gap:10px;min-height:200px;padding:24px;background:var(--surface);border-top:4px solid var(--green-900);color:var(--navy-900);cursor:pointer;transition:background-color .12s;}
.doc-card:hover{background:var(--beige);color:var(--navy-900);}
.doc-card-num{font-size:13px;font-weight:800;color:var(--gold-500);}
.doc-card h3{font-size:20px;color:var(--navy-900);margin:0;}
.doc-card p{font-size:14px;color:var(--ink-800);margin:0;flex:1;}
.doc-card-cta{font-size:14px;font-weight:800;color:var(--green-900);}
.docs-sec .fine-print{max-width:900px;}

/* document preview modal: square, 2px navy border */
.doc-modal{display:none;position:fixed;inset:0;background:rgba(14,36,54,.8);z-index:200;padding:40px max(20px, env(safe-area-inset-right)) max(40px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));padding-top:max(40px, env(safe-area-inset-top));overflow-y:auto;}
.doc-modal.open{display:block;}
.doc-modal-panel{max-width:720px;margin:0 auto;position:relative;}
.doc-modal-close{position:sticky;top:0;float:right;margin:0 0 8px;background:var(--gold-500);border:var(--line-strong);width:44px;height:44px;font-size:20px;font-weight:800;color:var(--navy-900);cursor:pointer;z-index:2;}
.doc-modal-close:hover{background:var(--gold-300);}
.doc-modal-download{display:block;text-align:center;margin-top:14px;color:var(--cream-100);font-size:15px;font-weight:800;min-height:44px;line-height:44px;}
.doc-modal-download:hover{color:var(--gold-300);}
.doc-paper{position:relative;clear:both;background:#fff;border:var(--line-hair);padding:44px 40px;font-family:var(--font);font-size:12.5px;line-height:1.65;color:#1B2B33;overflow:hidden;}
.doc-watermark{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) rotate(-28deg);font-family:var(--font);font-size:60px;font-weight:800;letter-spacing:6px;color:rgba(14,36,54,.06);pointer-events:none;white-space:nowrap;z-index:0;}
.doc-content{position:relative;z-index:1;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.doc-content .doc-h{font-size:14px;margin:16px 0 6px;font-weight:800;color:var(--navy-900);}
.doc-content p{margin:0 0 10px;}
.doc-letterhead{text-align:center;margin-bottom:16px;}
.doc-letterhead .name{font-weight:800;font-size:13.5px;}
.doc-letterhead .addr{font-size:11px;color:#666;}
.doc-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:10px 0 16px;font-size:11.5px;}
.doc-table th,.doc-table td{border:1px solid #ccc;padding:6px 8px;text-align:left;vertical-align:top;word-break:break-word;overflow-wrap:break-word;}
.doc-table th{background:#f2f2f2;}
.doc-disclaimer{position:relative;z-index:1;margin-top:26px;padding-top:12px;border-top:1px solid #eee;font-size:10px;color:#999;text-align:center;}

/* how it works: product-colour band */
.how-band{background:var(--pc);color:var(--cream-100);padding:80px 0;}
.how-band .sec-head{margin-bottom:40px;}
.how-band .sec-head .mint{color:var(--gold-300);}
.how-band .sec-head h2{color:var(--cream-100);}
.how-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--gold-500);}
.how-step{padding:28px 28px 0 0;display:flex;flex-direction:column;gap:12px;}
.how-step + .how-step{padding-left:28px;border-left:var(--line-hair-dark);}
.how-step:last-child{padding-right:0;}
.how-num{display:flex;align-items:center;gap:14px;font-size:64px;font-weight:800;line-height:.8;letter-spacing:-.05em;color:var(--gold-500);}
.how-num .role-tag{border-radius:0;font-size:11px;font-weight:800;line-height:1.55;letter-spacing:.1em;padding:5px 9px;border:1px solid;}
/* two step tags only: YOU (beige) for every human step, AI (gold) for every AI step */
.how-num .role-you{background:var(--beige);border-color:var(--beige);color:var(--navy-900);}
.how-num .role-ai{background:var(--gold-500);border-color:var(--gold-500);color:var(--navy-900);}
.how-step h3{font-size:24px;margin:0;}
.how-step p{font-size:16px;color:var(--cream-200);margin:0;}

.pricing-sec{padding:96px 0;}
/* pricing: separate soft cards; featured plan has a gold top line */
.price-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch;}
.price-box.cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.price-plan{padding:28px 24px;display:flex;flex-direction:column;gap:14px;background:var(--bg);border:1px solid rgba(14,36,54,.12);transition:box-shadow .15s ease;}
.price-plan:hover{box-shadow:0 8px 24px rgba(23,40,58,.10);}
.price-top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.price-top h3{font-size:22px;color:var(--navy-900);margin:0;}
.price-badge{font-size:10px;font-weight:800;letter-spacing:.1em;padding:3px 8px;background:var(--gold-500);color:var(--navy-900);}
.price-scope{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--copper-ink);}
.price-figure{font-family:var(--font);margin:0;font-size:48px;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--navy-900);}
.price-figure span{font-size:15px;font-weight:400;letter-spacing:0;color:var(--neutral-700);}
.price-features{list-style:none;margin:4px 0 0;padding:0;border-top:1px solid rgba(14,36,54,.12);}
.price-features li{padding:10px 0;border-bottom:1px solid rgba(14,36,54,.08);font-size:14px;color:var(--ink-800);}
.price-features li.price-addon{font-weight:600;}
.price-btn{margin-top:auto;justify-content:space-between;padding:13px 15px;border:var(--line-strong);font-weight:600;color:var(--navy-900);}
.price-btn:hover{background:rgba(230,220,200,.6);color:var(--navy-900);}
.price-btn span{transition:transform .15s ease;}
.price-btn:hover span{transform:translateX(4px);}
/* featured: same edges as the other cards; the gold top line is drawn inside the card */
.price-plan.featured{background:var(--pc);color:var(--cream-100);border:1px solid var(--pc);box-shadow:inset 0 3px 0 var(--gold-500),0 8px 24px rgba(23,40,58,.14);}
.price-plan.featured h3,.price-plan.featured .price-figure{color:var(--cream-100);}
.price-plan.featured .price-scope{color:var(--gold-300);}
.price-plan.featured .price-figure span{color:var(--cream-200);}
.price-plan.featured .price-features{border-top-color:rgba(245,242,234,.22);}
.price-plan.featured .price-features li{border-bottom-color:rgba(245,242,234,.14);color:var(--cream-200);}
.price-plan.featured .price-btn{background:var(--gold-500);border:0;padding:14px 16px;color:var(--navy-900);}
.price-plan.featured .price-btn:hover{background:var(--gold-300);}
.price-plan.featured .price-btn:active{background:var(--gold-600);}
@media (prefers-reduced-motion:reduce){.price-plan,.price-btn span{transition:none;}.price-btn:hover span{transform:none;}}
/* Numis-Fin: the 4 cards share row lines (subgrid), so prices, first dividers and buttons align */
.price-box.cols-4{grid-auto-rows:auto;}
.price-box.cols-4 .price-plan{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:14px;}
.price-box.cols-4 .price-features{align-self:start;}
/* Numis-Fin custom plan: beige banner below the cards */
.custom-banner{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:20px;padding:36px 40px;background:var(--beige);border-left:4px solid var(--gold-500);}
.custom-eyebrow{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-800);} /* copper on beige is only 3.4:1 */
.custom-title{margin:8px 0 10px;font-size:26px;font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--navy-900);}
.custom-features{margin:0;font-size:16px;line-height:1.5;color:var(--navy-800);}
.custom-features span{white-space:nowrap;}
.custom-features span:not(:last-child)::after{content:"\00B7";margin:0 10px;color:var(--copper-500);font-weight:800;}
.custom-btn{flex:none;min-width:240px;justify-content:space-between;padding:14px 16px;border:0;font-weight:600;background:var(--navy-900);color:var(--cream-100);}
.custom-btn:hover{background:var(--navy-700);color:var(--cream-100);}
.custom-btn span{transition:transform .15s ease;}
.custom-btn:hover span{transform:translateX(4px);}
.custom-btn:focus-visible{outline:2px solid var(--navy-900);outline-offset:2px;} /* gold ring is only 1.8:1 on beige */
@media (prefers-reduced-motion:reduce){.custom-btn span{transition:none;}.custom-btn:hover span{transform:none;}}
@media (max-width:1024px){
  .custom-banner{flex-direction:column;align-items:flex-start;gap:24px;}
}
.fine-print{font-size:13px;margin:32px 0 0;color:var(--neutral-700);}

/* cross-link band in the other product's colour */
/* related whitepapers (product pages) */
.related-sec{padding:0 0 96px;}
.related-sec .mint{margin-bottom:16px;}
.related-list{list-style:none;margin:0;padding:0;border-top:var(--line-hair);}
.related-list li{border-bottom:var(--line-hair);}
.related-list a{display:block;padding:16px 0;font-size:18px;font-weight:600;line-height:1.35;color:var(--navy-900);}
.related-list a:hover{color:var(--pc-hover);}
/* FAQ (product pages): native <details>, answers are in the HTML */
.faq-sec{padding:0 0 96px;}
.faq-list{border-top:var(--line-strong);}
.faq-item{border-bottom:var(--line-hair);}
.faq-item summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:22px 0;font-size:20px;font-weight:800;line-height:1.3;letter-spacing:-.01em;color:var(--navy-900);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:26px;font-weight:600;line-height:1;color:var(--pc);}
.faq-item[open] summary::after{content:"\2212";}
.faq-item summary:hover{color:var(--pc-hover);}
.faq-a{padding:0 0 24px;max-width:820px;}
.faq-a p{margin:0;font-size:17px;line-height:1.6;color:var(--ink-800);}
.cross-band{color:var(--cream-100);padding:48px 0;border-top:4px solid var(--gold-500);}
.cross-band.to-docs{background:var(--green-900);}
.cross-band.to-fin{background:var(--navy-900);}
.cross-band .wrap{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;}
.cross-band p{margin:0;font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.1;}
.cross-band .btn{min-width:260px;}

@media (max-width:1199px){
  .price-box.cols-4{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:768px){
  .sec-head h2{font-size:36px;}
  .sec-head.split-7-5{grid-template-columns:1fr;gap:16px;}
  .prod-hero{padding:40px 0 64px;}
  .prod-hero-grid{grid-template-columns:1fr;gap:40px;}
  .prod-hero h1{font-size:48px;font-size:min(48px,13.6cqi);}
  .prod-def{padding:0 0 56px;}
  .prod-def p{font-size:18px;padding-left:16px;}
  .faq-sec{padding:0 0 64px;}
  .related-sec{padding:0 0 64px;}
  .related-list a{font-size:16px;}
  .faq-item summary{font-size:18px;padding:18px 0;}
  .prod-hero-ctas{grid-template-columns:1fr;max-width:none;}
  .flow-sec,.docs-sec{padding-bottom:64px;}
  .flow-box{grid-template-columns:1fr;}
  .flow-step + .flow-step{border-left:none;border-top:var(--line-hair);}
  .flow-arrow{top:auto;right:24px;bottom:-15px;transform:rotate(90deg);}
  .doc-list,.doc-cards{grid-template-columns:1fr;}
  .doc-card{min-height:0;}
  .doc-paper{padding:28px 20px;}
  .doc-watermark{font-size:40px;}
  .doc-modal{padding:20px 12px;}
  .doc-item,.doc-item:nth-child(even){padding:22px 0;border-left:none;}
  .doc-item:nth-last-child(2){border-bottom:1px solid var(--divider);}
  .how-band{padding:64px 0;}
  .how-cols{grid-template-columns:1fr;}
  .how-step,.how-step + .how-step,.how-step:last-child{padding:28px 0;border-left:none;}
  .how-step + .how-step{border-top:var(--line-hair-dark);}
  .pricing-sec{padding:64px 0;}
  .price-box,.price-box.cols-4{grid-template-columns:1fr;}
  .custom-banner{align-items:stretch;padding:32px 24px;}
  .custom-title{font-size:24px;}
  .custom-features span{display:block;white-space:normal;}
  .custom-features span + span{margin-top:4px;}
  .custom-features span:not(:last-child)::after{content:none;}
  .custom-btn{width:100%;min-width:0;}
  .cross-band .wrap{grid-template-columns:1fr;gap:24px;}
  .cross-band p{font-size:26px;}
  .cross-band .btn{min-width:0;width:100%;}
}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-hero{padding:40px 0 32px;border-bottom:var(--line-hair);}
.contact-hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:end;}
.contact-hero-title{display:flex;flex-direction:column;gap:20px;}
.contact-hero-title .mint{margin:0;}
.contact-hero h1{font-size:120px;line-height:.9;letter-spacing:-.05em;color:var(--navy-900);margin:0;}
.contact-hero p.lead{font-size:19px;line-height:1.5;margin:0;color:var(--ink-800);}
/* 404 page */
.nf-sec{padding:56px 0 112px;}
.nf-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px;}
.contact-sec{padding:0;}
.contact-body{max-width:var(--max);margin:0 auto;padding:0 var(--edge);display:grid;grid-template-columns:7fr 5fr;}
.contact-main{padding:56px var(--edge) 80px 0;} /* left grid cell: the form, or the success message in its place */
.contact-form{display:flex;flex-direction:column;gap:22px;}
.contact-form[hidden],.form-success[hidden]{display:none;} /* hidden must win over display:flex */
.contact-form .field{display:flex;flex-direction:column;gap:8px;}
.contact-form label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-900);}
.contact-form input,.contact-form textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:var(--line-hair);border-radius:0;}
.contact-form input{height:48px;padding:0 14px;}
.contact-form textarea{min-height:160px;padding:12px 14px;resize:vertical;}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--navy-900);box-shadow:0 0 0 3px rgba(197,160,89,.25);}
.form-actions{display:flex;align-items:center;gap:20px;}
.form-actions .btn{min-width:240px;}
.form-actions .btn:disabled{opacity:.55;cursor:not-allowed;}
.plan-note{font-size:14px;font-weight:800;color:var(--navy-900);margin:0;}
.form-note{font-size:13px;color:var(--ink-800);margin:0;}
.hp-field{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;} /* honeypot: hidden from people */
.cf-turnstile-box{min-height:65px;} /* reserves the widget height so the button does not jump */
.cf-turnstile-box:empty{min-height:0;}
.form-status{margin:0;padding:12px 14px;font-size:14px;line-height:1.5;color:var(--navy-900);background:#fff;border-left:3px solid var(--copper-ink);}
.form-status:focus{outline:none;box-shadow:0 0 0 3px rgba(197,160,89,.35);}
.form-privacy{margin:0;font-size:13px;line-height:1.5;color:var(--ink-800);}
.form-privacy a{color:var(--navy-900);text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;}
.form-success{display:flex;flex-direction:column;gap:14px;}
.form-success p{margin:0;padding:20px 22px;font-size:18px;line-height:1.5;color:var(--navy-900);background:#fff;border-left:3px solid var(--gold-500);}
.form-success:focus{outline:none;}
.form-again{align-self:flex-start;font:inherit;font-size:14px;padding:0;background:none;border:0;cursor:pointer;color:var(--navy-900);text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;}
.form-again:hover{color:var(--copper-ink);}
.contact-panel{background:var(--navy-900);color:var(--cream-100);padding:40px 40px 48px;display:flex;flex-direction:column;}
.contact-block{display:flex;flex-direction:column;gap:6px;padding:18px 0;border-bottom:1px solid var(--navy-700);}
.contact-block h2{font-size:13px;font-weight:600;line-height:1.55;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-300);margin:0;}
.contact-block p{font-size:17px;line-height:1.5;margin:0;}
.map-frame{margin-top:24px;height:260px;border:2px solid var(--gold-500);overflow:hidden;}
.map-frame iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05);}
/* contact page only: tighter vertical rhythm so the whole form fits above the fold at 1280x800 */
.page-contact .contact-hero{padding:20px 0 16px;}
.page-contact .contact-hero-title{gap:12px;}
.page-contact .contact-main{padding:24px var(--edge) 32px 0;}
.page-contact .contact-form{gap:12px;}
.page-contact .contact-form .field{gap:6px;}
.page-contact .contact-form input{height:44px;}
.page-contact .contact-form textarea{min-height:0;height:calc(4 * 1.55em + 26px);} /* about 4 rows; still resizable */
.page-contact .contact-panel{padding:24px 32px 28px;}
.page-contact .contact-block{padding:12px 0;}
.page-contact .map-frame{margin-top:16px;height:200px;}
@media (max-width:768px){
  .page-contact .contact-hero{padding:28px 0 24px;}
  .page-contact .contact-main{padding:28px 0 40px;}
  .page-contact .contact-form{gap:16px;}
  .page-contact .contact-panel{padding:20px 20px 32px;}
}

@media (max-width:1024px){
  .contact-hero h1{font-size:96px;}
}
@media (max-width:768px){
  .contact-hero{padding:32px 0 28px;}
  .contact-hero-grid,.contact-body{grid-template-columns:1fr;gap:24px;}
  .contact-body{gap:0;}
  .contact-hero h1{font-size:72px;}
  .contact-main{padding:40px 0 56px;}
  .form-actions{flex-direction:column;align-items:stretch;}
  .form-actions .btn{width:100%;min-width:0;}
  .contact-panel{padding:24px 20px 40px;}
}

/* ============================================================
   WHITEPAPERS INDEX
   ============================================================ */
.wp-hero{padding:72px 0 56px;}
.wp-hero-text{display:flex;flex-direction:column;gap:20px;}
.wp-hero-text .mint{margin:0;}
.wp-hero h1{font-size:80px;line-height:.95;letter-spacing:-.045em;color:var(--navy-900);margin:0;text-wrap:balance;}
.wp-hero p.lead{font-size:18px;line-height:1.55;margin:0;color:var(--ink-800);max-width:620px;text-wrap:pretty;}
/* hero photo: monochrome team meeting (scripts/make-hero-image.js team) in its own space, never under
   text. Desktop: right column from 55% of the screen to the right edge, full hero height down to the
   list band, soft fade on its left edge. Below 1024px: a full-width strip under the text. */
.wp-hero-photo{pointer-events:none;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 5%,#000 93%,transparent);mask-image:linear-gradient(180deg,transparent,#000 5%,#000 93%,transparent);}
.wp-hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:68% 15%;}
@media (min-width:1024px){
  .wp-hero{position:relative;min-height:480px;box-sizing:border-box;}
  .wp-hero-text{max-width:calc(55vw - max(var(--edge),(100vw - var(--max)) / 2 + var(--edge)) - 48px);}
  .wp-hero-photo{position:absolute;top:0;right:0;bottom:28px;width:45%;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 15%),linear-gradient(180deg,#000 88%,transparent);
    -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 15%),linear-gradient(180deg,#000 88%,transparent);mask-composite:intersect;}
}
@media (max-width:1023px){.wp-hero-photo{height:400px;margin-top:32px;}.wp-hero-photo img{object-position:50% 11%;}}
@media (max-width:767px){.wp-hero-photo{height:220px;margin-top:28px;}.wp-hero-photo img{object-position:50% 12%;}}
.wp-index{padding:24px 0 96px;}
.wp-index .wrap{display:flex;flex-direction:column;gap:56px;}
.wp-group{--gc:var(--navy-900);display:grid;grid-template-columns:3fr 9fr;gap:32px;padding-top:24px;border-top:4px solid var(--gc);}
.wp-group.docs{--gc:var(--green-900);}
.wp-group-label{display:flex;align-items:center;align-self:flex-start;gap:10px;font-size:22px;font-weight:800;color:var(--gc);}
.wp-group-label .mk{width:12px;height:12px;background:var(--gc);}
.wp-rows{display:flex;flex-direction:column;}
.wp-card{display:grid;grid-template-columns:1fr 200px;gap:32px;padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--divider);color:var(--navy-900);}
.wp-card:last-child{border-bottom:none;}
.wp-card:hover{color:var(--navy-900);}
.wp-card-text{display:flex;flex-direction:column;gap:8px;}
.wp-tag{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--copper-ink);}
.wp-card h2{font-size:26px;line-height:1.15;letter-spacing:-.02em;color:var(--navy-900);margin:0;text-wrap:balance;transition:color .12s;}
.wp-card:hover h2{color:var(--copper-500);}
.wp-card p{font-size:16px;color:var(--ink-800);margin:0;}
.wp-read{align-self:end;justify-self:end;font-size:14px;font-weight:800;white-space:nowrap;color:var(--gc);}

@media (max-width:1024px){
  .wp-hero h1{font-size:64px;}
  .wp-group{grid-template-columns:1fr;gap:20px;}
}
@media (max-width:768px){
  .wp-hero{padding:48px 0 40px;}
  .wp-hero h1{font-size:48px;}
  .wp-index{padding:16px 0 64px;}
  .wp-card{grid-template-columns:1fr;gap:12px;}
  .wp-card h2{font-size:22px;}
  .wp-read{justify-self:start;}
}

/* ============================================================
   ARTICLE TEMPLATE (whitepapers, privacy)
   ============================================================ */
.art-head{padding:56px 0 40px;border-bottom:var(--line-hair);}
.art-head .wrap{display:flex;flex-direction:column;gap:20px;}
.crumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:13px;font-weight:600;}
.crumb a{color:var(--navy-900);text-decoration:underline;text-decoration-color:var(--gold-500);}
.crumb a:hover{color:var(--copper-ink);}
.crumb-sep{color:#7d7979;}
.crumb-tag{display:flex;align-items:center;gap:8px;color:var(--navy-900);}
.crumb-tag.docs{color:var(--green-900);}
.art-head h1{font-size:60px;line-height:1;letter-spacing:-.04em;color:var(--navy-900);max-width:1000px;margin:0;text-wrap:balance;}
/* one hero heading size for inner pages (contact, whitepapers, privacy, 404): clearly smaller than the
   home and product H1s (68 / 72px) */
:is(.contact-hero,.wp-hero,.art-head) h1.page-hero__title{font-size:clamp(36px,calc(3.6vw + 8px),60px);line-height:1;letter-spacing:-.04em;}
.art-dek{font-size:20px;line-height:1.55;color:var(--ink-800);max-width:820px;margin:0;text-wrap:pretty;}
.art-meta{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--copper-ink);}
.art-body{padding:0 0 96px;}
.art-grid{display:grid;grid-template-columns:3fr 9fr;}
.art-toc{padding:40px 24px 0 0;border-right:var(--line-hair);}
.art-toc-inner{display:flex;flex-direction:column;gap:4px;}
.art-toc-title{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-900);}
.art-toc-list{display:flex;flex-direction:column;margin-top:12px;border-top:var(--line-hair);}
.art-toc-list a{display:grid;grid-template-columns:24px 1fr;padding:10px 0;border-bottom:1px solid var(--divider);font-size:14px;color:var(--navy-900);}
.art-toc-list a:hover{color:var(--copper-ink);}
.toc-num{color:var(--gold-500);font-weight:800;}
.art-content{padding:40px 0 0 48px;max-width:808px;display:flex;flex-direction:column;gap:36px;min-width:0;}
.art-sec{display:flex;flex-direction:column;gap:14px;border-top:var(--line-hair);padding-top:18px;}
.art-sec h2{font-size:30px;line-height:1.12;letter-spacing:-.025em;color:var(--navy-900);margin:0;scroll-margin-top:100px;}
.art-sec p{font-size:18px;line-height:1.65;color:#2d2b2b;margin:0;}
.art-sec li{font-size:18px;line-height:1.6;color:#2d2b2b;margin:0;}
.art-sec ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.art-sec li{position:relative;padding:8px 0 8px 20px;}
.art-sec li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:8px;background:var(--gold-500);}
.art-sec strong{color:var(--navy-900);}
.art-sec a{text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;}
.art-sec code{font-size:.88em;background:var(--gold-100);color:var(--navy-900);padding:1px 6px;}
.wp-disclaimer{font-size:14px;line-height:1.6;color:var(--ink-800);margin:0;}
.wp-sources{--sc:var(--navy-900);background:var(--beige);border-top:4px solid var(--sc);padding:24px 28px;display:flex;flex-direction:column;gap:12px;}
.wp-sources.docs{--sc:var(--green-900);}
.wp-sources h3{font-size:18px;color:var(--navy-900);margin:0;}
.wp-sources ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.wp-sources li{padding:8px 0;border-bottom:1px solid #CFC3AA;font-size:15px;color:var(--navy-900);}
.wp-sources a{color:var(--navy-900);text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;}
.wp-sources a:hover{color:var(--copper-ink);}
.wp-product{margin:0;font-size:16px;line-height:1.6;color:var(--navy-900);}
.wp-product a{font-weight:600;color:var(--navy-900);text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;white-space:nowrap;}
.wp-product a:hover{color:var(--copper-ink);}
@media (min-width:1025px){
  .art-toc-inner{position:sticky;top:96px;}
}
@media (max-width:1024px){
  .art-head h1{font-size:48px;}
  .art-grid{grid-template-columns:1fr;}
  .art-toc{border-right:none;padding:32px 0 0;}
  .art-content{padding:32px 0 0;max-width:none;}
}
@media (max-width:768px){
  .art-head{padding:40px 0 32px;}
  .art-head h1{font-size:36px;}
  .art-dek{font-size:18px;}
  .art-body{padding-bottom:64px;}
  .art-sec h2{font-size:26px;}
  .art-sec p,.art-sec li{font-size:17px;}
  .art-sec li::before{top:18px;}
  .wp-sources{padding:20px;}
}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-900);color:var(--cream-100);padding:56px 0 calc(28px + env(safe-area-inset-bottom));}
.foot-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px;padding-bottom:48px;}
.foot-brand{display:flex;align-items:center;margin-bottom:12px;}
.foot-brand img{height:40px;width:auto;}
.foot-brand span{font-weight:800;font-size:18px;}
.foot-tag{font-size:14px;color:var(--cream-200);margin:0;max-width:260px;}
footer h2{line-height:1.55;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-500);margin:0 0 8px;}
footer ul{list-style:none;padding:0;margin:0;}
footer li{font-size:14px;}
footer li + li{margin-top:8px;}
footer li a{display:inline-flex;align-items:center;gap:8px;}
footer a:hover{color:var(--gold-300);}
footer .mk{width:8px;height:8px;}
footer .mk-fin{background:var(--gold-500);}
footer .mk-docs{background:var(--green-400);}
.foot-entity{font-size:13px;line-height:1.6;color:var(--cream-200);margin:0 0 16px;}
.foot-bottom{border-top:var(--line-hair-dark);padding-top:16px;display:flex;justify-content:space-between;font-size:13px;color:var(--cream-200);flex-wrap:wrap;gap:10px;}
@media (max-width:1024px){.foot-top{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){
  .foot-top{grid-template-columns:1fr;gap:28px;}
  .foot-bottom{flex-direction:column;align-items:flex-start;}
}

/* ---------- cookie consent banner (one block, used on every page) ---------- */
.cookie-banner{position:fixed;left:24px;bottom:24px;z-index:1000;width:440px;max-width:calc(100vw - 48px);
  background:#fff;color:var(--navy-900);border:var(--line-strong);border-radius:0;padding:21px;
  font-family:inherit;opacity:0;transition:opacity .12s ease;}
.cookie-banner.is-in{opacity:1;}
.cookie-msg{margin:0;font-size:14px;line-height:1.55;color:var(--navy-900);}
.cookie-msg a{color:var(--navy-900);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;}
.cookie-msg a:hover{color:var(--copper-ink);}
.cookie-prefs{margin-top:14px;border-top:1px solid var(--cream-200);}
.cookie-prefs[hidden]{display:none;}
.cookie-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--cream-200);}
label.cookie-row{cursor:pointer;}
.cookie-row b{display:block;font-size:14px;font-weight:600;color:var(--navy-900);}
.cookie-row span{font-size:12.5px;line-height:1.45;color:#5b6166;}
.cookie-switch{position:relative;flex:none;width:40px;height:22px;}
.cookie-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;}
.cookie-switch input:disabled{cursor:not-allowed;}
.cookie-switch i{position:absolute;inset:0;background:#c9c6c0;border-radius:0;transition:background-color .12s;pointer-events:none;}
.cookie-switch i::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:0;transition:transform .12s;}
.cookie-switch input:checked + i{background:var(--navy-900);}
.cookie-switch input:checked + i::after{transform:translateX(18px);}
.cookie-switch input:disabled + i{opacity:.55;}
.cookie-switch input:focus-visible + i{outline:2px solid var(--gold-500);outline-offset:2px;}
.cookie-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;}
.cookie-btn{font:inherit;font-size:14px;font-weight:600;line-height:1.2;min-height:44px;padding:11px 17px;border:var(--line-strong);border-radius:0;cursor:pointer;transition:background-color .12s,color .12s,border-color .12s;}
/* Accept all and Reject all: same style, equally prominent */
.cookie-choice{flex:1;background:var(--navy-900);color:#fff;}
.cookie-choice:hover{background:var(--navy-700);border-color:var(--navy-700);}
.cookie-manage{background:none;border-color:transparent;color:var(--navy-900);padding:10px 4px;margin-right:auto;text-decoration:underline;text-decoration-color:var(--gold-500);text-underline-offset:3px;}
.cookie-manage:hover{color:var(--copper-ink);}
.cookie-btn:focus-visible{outline:2px solid var(--gold-500);outline-offset:2px;}
@media (max-width:480px){
  .cookie-banner{left:12px;right:12px;bottom:12px;width:auto;max-width:none;padding:16px;}
  .cookie-actions{flex-direction:column;align-items:stretch;}
  .cookie-btn{width:100%;margin-right:0;}
}
@media (prefers-reduced-motion:reduce){.cookie-banner,.cookie-switch i,.cookie-switch i::after{transition:none;}}

/* ---- crafted background textures (decorative only: pseudo-elements, no pointer events) ---- */
/* section bands; each band edge sits in the middle of the gap between sections, so nothing moves */
#benefits,#trust,#flow,#pricing,.related-sec,.contact-sec,.wp-index,.art-head,.nf-sec{position:relative;isolation:isolate;}
#benefits,.related-sec{--band-up:48px;}
#flow{--band-up:36px;}
.wp-index{--band-up:28px;}
#benefits,#flow,#pricing{--band-down:48px;}
#benefits::before,#trust::before,#flow::before,#pricing::before,.related-sec::before,.contact-sec::before,.wp-index::before,.art-head::before,.nf-sec::before{
  content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--band-up,0px));bottom:var(--band-down,0px);
  z-index:-1;pointer-events:none;background:var(--bg-beige-soft) var(--grain);}
/* home headline background: beige duotone of the Marina Bay skyline (scripts/make-hero-image.js)
   behind the label and headline only, lightly washed so the skyline stays recognisable, fading out
   before the paragraph and product boxes; a soft local glow keeps the small lines at 4.5:1 or more
   and AI@Work above 3:1 (large text) */
.hero{overflow-x:clip;} /* the glows may reach past the screen edge on phones */
.hero-top{position:relative;isolation:isolate;}
.hero-top-photo{position:absolute;z-index:-1;inset:-64px calc(50% - 50vw) -40px;pointer-events:none;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 62%,transparent);mask-image:linear-gradient(180deg,#000 62%,transparent);}
.hero-top-photo img{width:100%;height:100%;object-fit:cover;object-position:55% 42%;filter:contrast(.62) brightness(1.1);}
.hero-top-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(243,242,242,.62) 0,rgba(243,242,242,.55) 60%,rgba(243,242,242,.25) 100%);}
@media (max-width:767px){.hero-top-photo::after{background:rgba(243,242,242,.8);}}
/* the glows sit in the .hero-top layer: above the photo, below all text; blurred, no visible edge */
.hero-top .compliance-strip,.hero-top > .mint,.hero h1 .h1-tag{position:relative;}
.hero-top > .mint{width:fit-content;}
.hero-top .compliance-strip::after,.hero-top > .mint::after,.hero h1 .h1-tag::after{content:"";position:absolute;z-index:-1;pointer-events:none;
  inset:-10px -36px;background:rgba(243,242,242,.9);filter:blur(10px);border-radius:40%;}
.hero h1 .h1-tag::after{inset:0 -24px -6px;background:rgba(243,242,242,.82);filter:blur(14px);}
/* guilloche rosettes: the SVG is a mask; the hero colour follows the product page, the banner colour
   is its own token and never follows the page theme; never behind text */
.theme-fin{--rosette-hero:var(--rosette-hero-fin);}
.theme-docs{--rosette-hero:var(--rosette-hero-docs);}
.prod-hero{position:relative;isolation:isolate;overflow-x:clip;}
.prod-hero::after,.custom-banner::after{content:"";position:absolute;z-index:-1;pointer-events:none;
  -webkit-mask:url(../img/guilloche.svg?v=ab727efc) center/contain no-repeat;mask:url(../img/guilloche.svg?v=ab727efc) center/contain no-repeat;}
.prod-hero::after{width:860px;height:860px;right:-300px;top:50%;margin-top:-430px;background:var(--rosette-hero);opacity:.6;}
.custom-banner{position:relative;isolation:isolate;overflow:hidden;}
.custom-banner::after{width:440px;height:440px;right:-150px;top:50%;margin-top:-220px;background:var(--rosette-banner);opacity:.24;}
@media (max-width:1024px){.prod-hero::after,.custom-banner::after{display:none;}}
/* ledger lines behind "What you get, named" (Numis-Fin only) */
.theme-fin .docs-sec{position:relative;isolation:isolate;}
.theme-fin .docs-sec::before,.theme-fin .docs-sec::after{content:"";position:absolute;top:-24px;bottom:24px;z-index:-1;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent);}
.theme-fin .docs-sec::before{left:0;right:0;background:repeating-linear-gradient(to bottom,transparent 0 23px,rgba(14,36,54,.06) 23px 24px);}
.theme-fin .docs-sec::after{width:1px;left:max(calc(var(--edge) - 16px),calc((100% - var(--max)) / 2 + var(--edge) - 20px));background:rgba(155,106,61,.15);}
