:root{
  --navy:#16305C;
  --navy-deep:#0E2140;
  --navy-soft:#2C4A7C;
  --gold:#C9962E;
  --gold-bright:#E0B24A;
  --gold-dim:#A67D22;
  --paper:#FAF8F3;
  --paper-2:#FFFFFF;
  --ink:#1C2430;
  --slate:#5B6472;
  --line:rgba(22,48,92,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:0.001ms !important;} }
body{
  background:var(--paper); color:var(--ink);
  font-family:'Inter', sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
.mono{font-family:'IBM Plex Mono', monospace;}
::selection{background:var(--gold); color:var(--paper-2);}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  border-bottom:1px solid var(--line);
  background:rgba(250,248,243,0.92);
  backdrop-filter:blur(10px);
}
nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 32px; max-width:1180px; margin:0 auto; }
.brand{display:flex; align-items:center; gap:12px;}
.brand img{width:40px; height:40px; object-fit:contain;}
.brand-text{ font-family:'Fraunces', serif; font-weight:700; font-size:16px; color:var(--navy-deep); line-height:1.2; }
.brand-text small{ display:block; font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:0.14em; color:var(--gold-dim); font-weight:400; margin-top:2px; }
.navlinks{display:flex; gap:28px; align-items:center;}
.navlinks a{ font-size:13px; color:var(--slate); transition:color 0.2s ease; }
.navlinks a.active{color:var(--navy-deep); font-weight:600;}
.navlinks a:hover{color:var(--navy);}
.nav-cta{ border:1px solid var(--navy); padding:9px 18px; font-size:12.5px; color:var(--navy); transition:all 0.2s ease; }
.nav-cta:hover{background:var(--navy); color:var(--paper-2);}
@media (max-width: 860px){ .navlinks a:not(.nav-cta){display:none;} }

.page-hero{
  padding:150px 32px 70px;
  background:
    radial-gradient(ellipse 900px 480px at 85% -10%, rgba(201,150,46,0.10), transparent 60%),
    radial-gradient(ellipse 700px 460px at 0% 100%, rgba(22,48,92,0.05), transparent 60%);
}
.page-hero-inner{max-width:820px; margin:0 auto;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--gold-dim); margin-bottom:22px; display:flex; align-items:center; gap:12px;
}
.eyebrow .line{width:32px; height:1px; background:var(--gold-dim);}
.page-hero h1{
  font-family:'Fraunces', serif; font-weight:700; font-size:clamp(34px, 5vw, 54px);
  line-height:1.08; color:var(--navy-deep);
}
.page-hero h1 em{font-style:italic; font-weight:500; color:var(--gold);}
.page-hero p{margin-top:20px; max-width:640px; color:var(--slate); font-size:16.5px; line-height:1.75;}

section{padding:90px 0;}
.section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:50px; border-bottom:1px solid var(--line); padding-bottom:20px; flex-wrap:wrap;}
.section-tag{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.18em; color:var(--gold-dim); text-transform:uppercase;}
.section-head h2{font-family:'Fraunces', serif; font-weight:700; color:var(--navy-deep); font-size:clamp(26px,3vw,38px); margin-top:8px;}
.section-note{max-width:280px; color:var(--slate); font-size:14px; text-align:right;}
@media (max-width:720px){ .section-note{text-align:left; max-width:100%;} section{padding:64px 0;} }

.btn-primary{ background:var(--navy); color:var(--paper-2); padding:14px 28px; font-size:13.5px; font-weight:500; border:1px solid var(--navy); transition:all 0.2s ease; display:inline-block;}
.btn-primary:hover{background:var(--navy-deep);}
.btn-gold{ background:var(--gold); color:var(--navy-deep); padding:14px 28px; font-size:13.5px; font-weight:600; border:1px solid var(--gold); transition:all 0.2s ease; display:inline-block;}
.btn-gold:hover{background:var(--gold-bright);}
.btn-ghost{ padding:13px 24px; font-size:13.5px; color:var(--navy); border:1px solid var(--line); transition:all 0.2s ease; display:inline-block;}
.btn-ghost:hover{border-color:var(--navy);}

/* Leadership */
.leadership{ display:grid; grid-template-columns:130px 1fr; gap:36px; align-items:start; }
.leader-mark{
  width:104px; height:104px; border-radius:50%; background:var(--navy-deep); color:var(--gold-bright);
  display:flex; align-items:center; justify-content:center; font-family:'Fraunces', serif; font-weight:700;
  font-size:32px; border:2px solid var(--gold-dim);
}
.leader-name{font-family:'Fraunces', serif; font-weight:700; font-size:24px; color:var(--navy-deep);}
.leader-title{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-dim); margin:8px 0 16px;}
.leadership p{color:var(--slate); font-size:15.5px; line-height:1.75; max-width:640px; margin-bottom:14px;}
@media (max-width: 620px){ .leadership{grid-template-columns:1fr;} }

/* Cards / grids */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.card{ background:var(--paper-2); padding:34px 28px; transition:background 0.2s ease; }
.card:hover{background:#F3EEE1;}
.card .icon{width:30px; height:30px; margin-bottom:18px; color:var(--gold);}
.card h3{font-family:'Fraunces', serif; font-weight:700; font-size:17.5px; margin-bottom:10px; color:var(--ink);}
.card p{color:var(--slate); font-size:13.5px; line-height:1.65;}
@media (max-width:900px){ .grid-3{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .grid-3, .grid-2{grid-template-columns:1fr;} }

/* Solution card with visual header */
.sol-card{ background:var(--paper-2); display:flex; flex-direction:column; transition:transform 0.2s ease; }
.sol-card:hover{transform:translateY(-3px);}
.sol-visual{ height:130px; position:relative; overflow:hidden; }
.sol-visual svg{width:100%; height:100%;}
.sol-card-body{padding:28px 26px; flex:1; display:flex; flex-direction:column;}
.sol-card-body h3{font-family:'Fraunces', serif; font-weight:700; font-size:18px; color:var(--navy-deep); margin-bottom:10px;}
.sol-card-body p{color:var(--slate); font-size:13.5px; line-height:1.65; margin-bottom:18px; flex:1;}
.sol-card-body a{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-dim);}
.sol-card-body a:hover{color:var(--gold);}

/* Solution detail page */
.sol-hero-visual{ height:220px; border:1px solid var(--line); margin-bottom:12px; overflow:hidden;}
.sol-hero-visual svg{width:100%; height:100%;}
.sol-feature-list{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:20px;}
.sol-feature-row{background:var(--paper-2); padding:20px 26px; display:flex; gap:16px; align-items:flex-start;}
.sol-feature-row .dot{width:6px; height:6px; border-radius:50%; background:var(--gold); margin-top:8px; flex-shrink:0;}
.sol-feature-row p{color:var(--slate); font-size:14.5px; line-height:1.65;}
.sol-feature-row strong{color:var(--navy-deep); font-weight:600;}

/* Forms */
.form-panel{ border:1px solid var(--line); background:var(--paper-2); padding:44px; }
.field{margin-bottom:22px;}
.field label{ display:block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--slate); margin-bottom:8px;}
.field input, .field textarea{
  width:100%; border:1px solid var(--line); background:var(--paper); padding:13px 14px;
  font-family:'Inter', sans-serif; font-size:14.5px; color:var(--ink); resize:vertical;
}
.field input:focus, .field textarea:focus{outline:1.5px solid var(--gold); border-color:var(--gold);}
.field textarea{min-height:130px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:600px){ .form-row{grid-template-columns:1fr;} }
.form-submit{
  background:var(--navy); color:var(--paper-2); border:1px solid var(--navy);
  padding:14px 32px; font-size:13.5px; font-weight:500; cursor:pointer; transition:all 0.2s ease;
}
.form-submit:hover{background:var(--navy-deep);}
.form-note{font-size:12.5px; color:var(--slate); margin-top:14px;}
.form-success{ display:none; padding:20px 24px; background:var(--sky-pale, #EAF6FC); border:1px solid var(--line); color:var(--navy-deep); font-size:14.5px; margin-top:20px;}

footer{ border-top:1px solid var(--line); padding:32px; background:var(--paper-2); }
.footer-inner{ max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; align-items:center; }
.footer-inner .mono{font-size:11px; color:var(--slate);}
.footer-links{display:flex; gap:20px;}
.footer-links a{font-size:12.5px; color:var(--slate);}
.footer-links a:hover{color:var(--navy);}

:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
