/* Layout: navy masthead on a faint drawing grid, then quiet white sections; the logo's
   vertical bar (navy with steel-blue ends) recurs as the heading mark. */
:root{
  --navy:#0F2742;      /* logo wordmark */
  --steel:#1F4B82;     /* logo bar ends */
  --slate:#6B7280;     /* "CONSULTING LTD" */
  --bg:#FFFFFF;
  --bg-alt:#F3F5F8;
  --fg:#18212E;
  --muted:#556070;
  --rule:#DDE2EA;
  --field:#FFFFFF;
  --heading:var(--navy);
  --link:var(--steel);
  --band:#0F2742;
  --band-fg:#E8EDF4;
  --band-muted:#A9B6C7;
  --band-grid:rgba(255,255,255,.055);
  --bar-mid:var(--navy);
  --bar-end:var(--steel);
  --ok:#1E6B45;
  --logo-light:block; --logo-dark:none;
  --f-display:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-body:"IBM Plex Sans",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --maxw:1040px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0C1522; --bg-alt:#111D2E; --fg:#E3E9F1; --muted:#9AA8BA; --rule:#22324A; --field:#0F1A2A;
    --heading:#F1F5FA; --link:#8DB2E3; --band:#081120; --band-fg:#E8EDF4; --band-muted:#93A3B8;
    --band-grid:rgba(255,255,255,.045); --bar-mid:#E3E9F1; --bar-end:#7FA6D8; --ok:#7BC9A0;
    --logo-light:none; --logo-dark:block; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0C1522; --bg-alt:#111D2E; --fg:#E3E9F1; --muted:#9AA8BA; --rule:#22324A; --field:#0F1A2A;
  --heading:#F1F5FA; --link:#8DB2E3; --band:#081120; --band-fg:#E8EDF4; --band-muted:#93A3B8;
  --band-grid:rgba(255,255,255,.045); --bar-mid:#E3E9F1; --bar-end:#7FA6D8; --ok:#7BC9A0;
  --logo-light:none; --logo-dark:block; color-scheme:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-display);color:var(--heading);line-height:1.15;margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
a{color:var(--link);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:700px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}

/* Header */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px}
.brand{display:block;line-height:0}
.brand img{height:60px;width:auto}
.brand .l{display:var(--logo-light)} .brand .d{display:var(--logo-dark)}
.links{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.links a{font-family:var(--f-display);font-weight:600;font-size:.98rem;color:var(--heading);text-decoration:none;padding:8px 12px;border-radius:4px}
.links a:hover{background:var(--bg-alt)}
.links a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--bar-end);border-radius:0}
.links a.cta{background:var(--navy);color:#fff;margin-left:6px}
.links a.cta:hover{background:var(--steel)}
.links a.cta[aria-current="page"]{box-shadow:none;background:var(--steel)}
:root[data-theme="dark"] .links a.cta{background:var(--steel)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .links a.cta{background:var(--steel)}}
@media (max-width:640px){
  .nav{flex-direction:column;align-items:flex-start;gap:10px;padding-block:14px 8px}
  .brand img{height:48px}
  .links{justify-content:flex-start;margin-left:-12px}
  .links a{padding:6px 10px;font-size:.92rem}
}

/* Masthead band */
.band{background-color:var(--band);color:var(--band-fg)}
.band .wrap{padding-block:72px 64px}
.band.small .wrap{padding-block:52px 44px}
.eyebrow{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted)}
.band h1{color:#fff;font-size:clamp(1.9rem,4vw,2.5rem);font-weight:800}
.band .lede{font-size:1.15rem;color:var(--band-muted);max-width:56ch;margin-top:18px}
.band .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-block;font-family:var(--f-display);font-weight:600;font-size:1rem;text-decoration:none;padding:12px 22px;border-radius:4px;border:1.5px solid transparent;cursor:pointer}
.btn.light{background:#fff;color:#0F2742}
.btn.light:hover{background:#DCE6F2}
.btn.ghost{border-color:rgba(255,255,255,.4);color:#fff}
.btn.ghost:hover{border-color:#fff}
.btn.solid{background:var(--navy);color:#fff}
.btn.solid:hover{background:var(--steel)}
:root[data-theme="dark"] .btn.solid{background:var(--steel)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.solid{background:var(--steel)}}

/* Sections */
section.sec{padding-block:68px}
section.alt{background:var(--bg-alt)}
.mark{display:flex;gap:14px;align-items:stretch}
.mark::before{content:"";flex:0 0 5px;background:linear-gradient(var(--bar-end) 0 15%,var(--bar-mid) 15% 85%,var(--bar-end) 85%)}
.mark h2{font-size:clamp(1.5rem,3vw,1.95rem);font-weight:700;padding-block:2px}
.intro{color:var(--muted);max-width:62ch;margin-top:14px}

.svc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:36px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.svc > div{padding:26px 26px 30px}
.svc > div:first-child{padding-left:0}
.svc > div:last-child{padding-right:0}
.svc > div + div{border-left:1px solid var(--rule)}
.svc h3{font-size:1.2rem;font-weight:700}
.svc p{color:var(--muted);margin-top:8px}
@media (max-width:760px){.svc{grid-template-columns:1fr}.svc > div{padding:22px 0}.svc > div + div{border-left:none;border-top:1px solid var(--rule)}}

.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:34px}
.three h3{font-size:1.1rem;font-weight:700}
.three p{color:var(--muted);margin-top:8px}
@media (max-width:760px){.three{grid-template-columns:1fr;gap:24px}}

.who{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding:0;list-style:none}
.who li{font-family:var(--f-display);font-weight:500;font-size:.95rem;border:1px solid var(--rule);background:var(--bg);padding:7px 14px;border-radius:999px}

.closing{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.closing p{font-family:var(--f-display);font-size:1.35rem;font-weight:600;color:var(--heading)}

/* About */
.about{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start}
.prose{max-width:62ch;display:grid;gap:18px}
.prose h3{font-size:1.2rem;margin-top:14px}
.facts{border:1px solid var(--rule);background:var(--bg);font-size:.95rem;margin:0}
.facts div{display:grid;grid-template-columns:112px 1fr;gap:12px;padding:12px 16px;border-top:1px solid var(--rule)}
.facts div:first-child{border-top:none}
.facts dt{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.facts dd{margin:0;font-weight:500}
@media (max-width:820px){.about{grid-template-columns:1fr;gap:36px}}

/* Contact */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.cards{display:grid;gap:14px}
.ci{border:1px solid var(--rule);padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--bg)}
.ci .k{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ci .v{font-family:var(--f-display);font-size:1.2rem;font-weight:600;color:var(--heading);user-select:all;word-break:break-word}
.ci .v a{color:inherit;text-decoration:none}
.copy{font-family:var(--f-body);font-size:.85rem;font-weight:500;background:transparent;color:var(--link);border:1px solid var(--rule);border-radius:4px;padding:6px 12px;cursor:pointer}
.copy:hover{border-color:var(--link)}
form.inq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;margin-top:22px}
form.inq .full{grid-column:1 / -1}
form.inq label{display:block;font-family:var(--f-display);font-weight:600;font-size:.9rem;color:var(--heading);margin-bottom:6px}
form.inq label .opt{font-weight:400;color:var(--muted)}
form.inq input,form.inq textarea{width:100%;font:inherit;font-size:1rem;color:var(--fg);background:var(--field);border:1px solid var(--rule);border-radius:4px;padding:11px 13px}
form.inq input:focus,form.inq textarea:focus{border-color:var(--link);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--link) 22%,transparent)}
form.inq textarea{min-height:150px;resize:vertical}
form.inq .hint{font-size:.85rem;color:var(--muted);margin-top:6px}
form.inq .row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.status{font-size:.95rem}
.status.ok{color:var(--ok);font-weight:500}
.status.err{color:#B4232A}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:820px){.contact{grid-template-columns:1fr;gap:40px}}
@media (max-width:520px){form.inq{grid-template-columns:1fr}}

/* Footer */
footer{background:var(--band);color:var(--band-muted);font-size:.92rem}
footer .wrap{padding-block:44px 28px}
.ftop{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:center}
.ftop img{height:68px;width:auto}
.fcon{line-height:1.8}
.fcon a{color:var(--band-fg);text-decoration:none}
.fcon a:hover{text-decoration:underline}
.fbase{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);font-size:.82rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
