:root {
  --blue-dark: #12445c;
  --blue: #0c587d;
  --ink: #153344;
  --muted: #5f707a;
  --paper: #ffffff;
  --soft: #f3f7f9;
  --line: #dce5e9;
  --max: 1180px;
  --shadow: 0 18px 45px rgba(18, 68, 92, .11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }

.site-header {
  position: sticky; top: 0; z-index: 30;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(18,68,92,.08);
  backdrop-filter: blur(12px);
}
.header-inner { min-height: 76px; display:flex; align-items:center; justify-content:space-between; gap: 30px; }
.brand img { width: 172px; height: 74px; object-fit: contain; object-position:left center; }
.main-nav { display:flex; gap: 38px; font-size:.98rem; }
.main-nav a { position:relative; }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--blue); transition:right .2s ease; }
.main-nav a:hover::after { right:0; }
.menu-toggle { display:none; border:0; background:none; color:var(--blue-dark); }

.hero { position:relative; min-height: 570px; overflow:hidden; display:grid; align-items:center; }
.hero-media {
  position:absolute; inset:0;
  background-color: #fff;
}
.hero-media::before {
  content:""; position:absolute; inset:0 0 0 40%;
  background:url("../assets/Hero-imag.png") center 60% / cover no-repeat;
  mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.06) 12.5%, rgba(0,0,0,.22) 33.75%, rgba(0,0,0,.92) 65%, #000 100%);
}
.hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0, 1fr) 240px; gap: 70px; align-items:center; }
.hero-copy { max-width: 690px; padding: 92px 0; }
.eyebrow { margin:0 0 14px; color:var(--blue); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.eyebrow.small { font-size:.68rem; }
.eyebrow-light { color:#d9edf6; }
h1, h2, h3 { margin:0; font-weight:500; letter-spacing:-.025em; }
h1 { font-size:clamp(2.7rem, 5.0vw, 5.0rem); line-height:.98; color:var(--blue-dark); }
h2 { font-size:clamp(2.0rem, 3.5vw, 3.0rem); line-height:1.05; color:var(--blue-dark); }
h3 { font-size:1.28rem; line-height:1.15; color:var(--blue-dark); }
.hero-lead { max-width:660px; font-size:clamp(1.05rem, 1.8vw, 1.28rem); margin: 26px 0 30px; color:#23485b; }
.hero-topics { align-self:start; margin-top:76px; border-left:2px solid rgba(18,68,92,.5); padding:12px 20px; display:grid; gap:0; text-transform:uppercase; letter-spacing:.08em; font-size:.9rem; color:#365d6f; background:rgba(255, 255, 255, 0.25); }
.hero-topics span { padding:10px 0; border-bottom:2px solid rgba(18,68,92,.5); }
.button { display:inline-flex; align-items:center; gap:18px; min-height:48px; padding:0 22px; border:0; cursor:pointer; }
.button-primary { background:var(--blue); color:#fff; }
.button-primary:hover { background:var(--blue-dark); }

.section { padding: 74px 0 84px; }
.section-soft { background: linear-gradient(180deg, #f7fafb, #eef5f8); }
.section-heading { margin-bottom:34px; }
.split-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; }
.split-heading > p { margin:0 0 5px; color:var(--muted); max-width:520px; }
.advisory-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.service-card { min-width:0; }
.advisory-image { width:100%; object-fit:cover; }
.service-card p { color:var(--muted); margin:10px 0 14px; }
.service-card > a { color:var(--blue); font-size:1.35rem; }
.card-visual { aspect-ratio: 1.62; margin-bottom:16px; border:1px solid var(--line); overflow:hidden; }
.photo-placeholder { background-color:#dfeaf0; position:relative; }
.photo-placeholder::before { content:""; position:absolute; inset:0; background:linear-gradient(165deg, transparent 0 42%, rgba(18,68,92,.18) 43% 57%, transparent 58%), linear-gradient(180deg,#dcecf4 0 58%,#7ea5b7 59% 100%); }
.photo-placeholder::after { content:""; position:absolute; left:12%; right:12%; bottom:17%; height:22%; background:var(--blue-dark); clip-path:polygon(0 55%, 72% 20%, 100% 50%, 88% 76%, 18% 78%); opacity:.78; }
.photo-port::after { clip-path:polygon(4% 30%, 38% 30%, 38% 15%, 43% 15%, 43% 80%, 47% 80%, 47% 42%, 70% 42%, 70% 20%, 75% 20%, 75% 80%, 100% 80%, 100% 100%, 0 100%); opacity:.55; }
.photo-manager::after { width:33%; left:56%; right:auto; height:68%; bottom:0; clip-path:ellipse(46% 50% at 50% 52%); }
.photo-coast::after { clip-path:polygon(0 68%, 18% 50%, 32% 68%, 51% 41%, 72% 65%, 100% 49%, 100% 100%, 0 100%); opacity:.48; }
.chart-visual { background:#eff5f7; position:relative; padding:18px; display:flex; flex-direction:column; justify-content:space-between; }
.chart-legend { display:grid; gap:5px; font-size:.72rem; color:#58717e; }
.chart-legend span::before { content:""; width:7px; height:7px; display:inline-block; margin-right:7px; border-radius:50%; background:var(--blue); }
.bars { height:70%; display:flex; align-items:end; gap:12px; padding:0 12px 2px; border-bottom:1px solid #b8cbd4; }
.bars i { flex:1; height:var(--h); background:linear-gradient(180deg,#8db7c9,#0c587d); }

.tools-grid { display:grid; grid-template-columns:.85fr 1.15fr .78fr; gap:30px; align-items:stretch; }
.tools-intro { padding:4px 18px 10px 0; }
.tools-intro > p:not(.eyebrow) { color:var(--muted); margin:22px 0 26px; }
.feature-card { background:rgba(255,255,255,.8); border:1px solid rgba(18,68,92,.08); padding:24px; }
.feature-card p { color:var(--muted); }
.line-chart { width:100%; height:auto; margin:6px 0 10px; overflow:visible; }
.line-chart line { stroke:#aac0ca; stroke-width:1; }
.line-chart polyline { fill:none; stroke:var(--blue); stroke-width:2; opacity:.9; }
.line-chart polyline:nth-of-type(2) { opacity:.72; }
.line-chart polyline:nth-of-type(3) { opacity:.52; }
.line-chart polyline:nth-of-type(4) { opacity:.33; }
.insight-image { aspect-ratio:1.8; margin:8px 0 16px; }
.tools-image { width:100%; height:auto; aspect-ratio:1.62; object-fit:cover; margin:8px 0 16px; }
.insight-card a { color:var(--blue); font-weight:600; }

.about-band { position:relative; overflow:hidden; color:#fff; background:var(--blue-dark); }
.about-media { position:absolute; inset:0; background:linear-gradient(90deg, rgba(18,68,92,.98), rgba(18,68,92,.68)), radial-gradient(circle at 60% 30%, #4b8298, #123f54 56%, #082b3b); }
.about-media::after { content:""; position:absolute; left:42%; top:28%; width:26%; height:18%; background:#c7dde7; opacity:.65; clip-path:polygon(0 55%, 75% 15%, 100% 48%, 84% 72%, 18% 78%); transform:rotate(-7deg); }
.about-grid { position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:80px; padding-top:72px; padding-bottom:72px; align-items:center; }
.about-grid h2 { color:#fff; }
.about-copy { border-left:1px solid rgba(255,255,255,.35); padding-left:36px; }
.about-copy p { margin-top:0; color:#e5f0f4; }
.about-copy a { color:#fff; }

.site-footer { padding:34px 0 20px; background:#fff; color:#36505e; font-size:.9rem; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr .65fr; gap:40px; align-items:start; }
.footer-brand img { width:180px; height:100px; object-fit:contain; object-position:left top; }
.footer-nav { display:grid; gap:8px; }
.site-footer a:hover { color:var(--blue); }
.footer-meta { margin-top:28px; padding-top:18px; border-top:1px solid var(--line); display:flex; justify-content:space-between; color:#758790; font-size:.8rem; }

.contact-dialog { width:min(620px, calc(100% - 30px)); border:0; padding:0; box-shadow:var(--shadow); }
.contact-dialog::backdrop { background:rgba(7,28,38,.55); backdrop-filter:blur(4px); }
.contact-card { padding:34px; position:relative; }
.contact-card h2 { font-size:2.3rem; }
.dialog-intro { color:var(--muted); margin:12px 0 22px; }
.dialog-close { position:absolute; right:16px; top:12px; border:0; background:none; font-size:2rem; color:var(--muted); cursor:pointer; }
.contact-card label { display:grid; gap:6px; margin:14px 0; font-size:.85rem; color:#395868; }
.contact-card input,.contact-card textarea { width:100%; border:1px solid #cbd9df; padding:11px 12px; color:var(--ink); background:#fff; }
.contact-card input:focus,.contact-card textarea:focus { outline:2px solid rgba(12,88,125,.16); border-color:var(--blue); }
.form-note { font-size:.78rem; color:#7a8d97; }

@media (max-width: 980px) {
  .hero { min-height:530px; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-topics { display:none; }
  .hero-copy { max-width:650px; }
  .advisory-grid { grid-template-columns:repeat(2,1fr); }
  .tools-grid { grid-template-columns:1fr 1fr; }
  .tools-intro { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; column-gap:30px; }
  .tools-intro .eyebrow,.tools-intro h2 { grid-column:1; }
  .tools-intro > p:not(.eyebrow),.tools-intro .button { grid-column:2; }
  .tools-intro > p:not(.eyebrow) { grid-row:1 / span 2; margin:24px 0 14px; }
  .tools-intro .button { align-self:end; justify-self:start; }
}

@media (max-width: 720px) {
  .hero-media::before { display:none; }
  .container { width:min(calc(100% - 28px), var(--max)); }
  .header-inner { min-height:66px; }
  .brand img { width:145px; height:62px; }
  .menu-toggle { display:block; }
  .main-nav { position:absolute; left:0; right:0; top:66px; display:none; flex-direction:column; gap:0; background:#fff; border-bottom:1px solid var(--line); }
  .main-nav.is-open { display:flex; }
  .main-nav a { padding:15px 20px; border-top:1px solid #edf2f4; }
  .hero { min-height:610px; align-items:end; }
  .hero-media { background:linear-gradient(180deg, transparent 0, transparent 160px, rgba(255,255,255,.5) 230px, #fff 330px), url("../assets/Hero-imag.png") center top / auto 340px no-repeat; background-color:#fff; }
  .hero-copy { padding:330px 0 60px; }
  h1 { font-size:clamp(2.5rem, 11.7vw, 4.3rem); }
  .hero-lead { font-size:1rem; }
  .section { padding:58px 0 64px; }
  .split-heading { grid-template-columns:1fr; gap:18px; }
  .advisory-grid { grid-template-columns:1fr; gap:34px; }
  .tools-grid { grid-template-columns:1fr; }
  .tools-intro { display:block; }
  .tools-intro > p:not(.eyebrow) { margin:20px 0 24px; }
  .about-grid { grid-template-columns:1fr; gap:30px; }
  .about-copy { border-left:0; border-top:1px solid rgba(255,255,255,.3); padding:26px 0 0; }
  .footer-grid { grid-template-columns:1fr; gap:20px; }
  .footer-meta { flex-direction:column; gap:8px; }
}
