:root{ --bg:#ffffff; --text:#0b1220; --muted:#0b1220; --border:#e2e8f0; --soft:#f8fafc; --card:#ffffff; /* Brand */ --brand:#0b1220; --brandAccent:#0ea5e9; --brandAccent2:#22c55e; --brandWarn:#f59e0b; --radius:16px; --shadow: 0 12px 28px rgba(15, 23, 42, .10);
} *{box-sizing:border-box}
html{scroll-behavior:smooth}
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(--text); background:var(--bg); line-height:1.55;
} a{color:inherit; text-decoration:none}
a:hover{opacity:.92} .container{ width:min(1120px, calc(100% - 32px)); margin-inline:auto;
} header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9); backdrop-filter: blur(10px); border-bottom:1px solid var(--border);
} .navbar{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; gap:16px;
} .brand{ display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.02em;
}
.brand-mark{ width:34px; height:34px; border-radius:12px; background:var(--brand); display:grid; place-items:center; overflow:hidden;
}
.brand-mark img{width:24px;height:24px;display:block} nav{ display:flex; gap:18px; font-size:14px; color:var(--muted);
}
nav a{padding:8px 10px; border-radius:12px}
nav a.active{ color:var(--text); background:rgba(15,23,42,.04); border:1px solid var(--border);
} .cta{ display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:12px; border:1px solid var(--border); font-size:14px; font-weight:700; background:#fff;
}
.cta.primary{ background:var(--brand); color:#fff; border-color:var(--brand);
}
.cta.primary:hover{background:#0a162a} .mobile-toggle{ display:none; border:1px solid var(--border); background:#fff; padding:10px 12px; border-radius:12px; font-weight:800;
} .mobile-nav{display:none;border-top:1px solid var(--border)}
.mobile-nav a{display:block;padding:14px 0;border-bottom:1px solid var(--border);color:var(--muted)}
.mobile-nav a.active{color:var(--text);font-weight:800} .section{padding:56px 0}
.section.border-top{border-top:1px solid var(--border)}
.section.soft{background:var(--soft)} .grid{display:grid;gap:18px}
.grid.two{grid-template-columns: 1.15fr .85fr}
.grid.three{grid-template-columns: repeat(3, 1fr)}
.grid.four{grid-template-columns: repeat(4, 1fr)}
@media (max-width: 980px){ .grid.two, .grid.three, .grid.four{grid-template-columns: 1fr} nav{display:none} .mobile-toggle{display:inline-flex} .mobile-nav.open{display:block}
} .kicker{ font-size:12px; font-weight:900; color:var(--muted); text-transform:uppercase; letter-spacing:.12em;
}
h1{margin:.35rem 0 0 0;font-size:46px;line-height:1.08;letter-spacing:-.04em}
h2{margin:0;font-size:32px;letter-spacing:-.03em}
p{margin:.65rem 0 0 0;color:var(--muted)}
.lede{font-size:18px;color:var(--muted);max-width:62ch} .card{ border:1px solid var(--border); background:var(--card); border-radius:var(--radius); padding:20px; box-shadow: var(--shadow);
}
.card.flat{box-shadow:none}
.card h3{margin:0;font-size:18px;letter-spacing:-.02em}
.card p{font-size:14px} .hero{padding:64px 0;border-bottom:1px solid var(--border)}
.hero-art{ border:1px solid var(--border); border-radius:var(--radius); aspect-ratio: 4 / 3; position:relative; overflow:hidden; background: var(--brand);
}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay{ position:absolute; inset:0; background: linear-gradient(90deg, rgba(11,18,32,.22), rgba(11,18,32,.00));
}
.hero-badge{ position:absolute;left:18px;bottom:18px; background:rgba(255,255,255,.92); border:1px solid rgba(226,232,240,.9); border-radius:14px; padding:14px; width:min(260px, 78%); box-shadow: var(--shadow);
}
.hero-badge .small{font-size:12px;color:var(--muted);margin:0}
.hero-badge .big{font-weight:900;margin:4px 0 0 0;color:var(--text)} .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px} .tiles{display:grid;grid-template-columns: repeat(4, 1fr);gap:14px;margin-top:26px}
@media (max-width:980px){.tiles{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tiles{grid-template-columns:1fr}} .tile{ border:1px solid var(--border); background:#fff; border-radius:14px; padding:14px;
}
.tile .t{font-weight:900;font-size:14px;color:var(--text)}
.tile .d{font-size:13px;color:var(--muted);margin-top:4px} .list{margin:10px 0 0 0;padding:0 0 0 18px;color:var(--muted)}
.list li{margin:6px 0} .footer{border-top:1px solid var(--border);padding:40px 0;background:#fff}
.footer-grid{display:grid;grid-template-columns: 1.3fr 1fr 1fr;gap:20px}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr}}
.footer small{color:var(--muted)}
.footer a{color:var(--muted)}
.footer a:hover{color:var(--text)}
.footer-links{display:grid;gap:10px;font-size:14px} .form{display:grid;gap:12px;margin-top:16px}
input, textarea{width:100%;padding:12px 12px;border-radius:12px;border:1px solid var(--border);font:inherit}
textarea{min-height:120px;resize:vertical}
.note{font-size:13px;color:var(--muted)}
.badge{ display:inline-flex; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background:#fff; font-size:12px; color:var(--muted); font-weight:800;
}
.project-img{ border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:#0b1220;
}
.project-img img{width:100%;height:auto;display:block} /* Responsive logo sizing (big on desktop, scales down on mobile) */
.brand-logo{ height: clamp(56px, 10vw, 180px); width: auto; max-width: 520px; display: block;
}
@media (max-width: 980px){ .brand-logo{ height: clamp(44px, 14vw, 120px); max-width: 420px; }
}
@media (max-width: 520px){ .brand-logo{ height: clamp(40px, 18vw, 96px); max-width: 320px; }
} .footer-logo{ height: clamp(48px, 7vw, 140px); width: auto; max-width: 520px; display:block;
}
@media (max-width: 980px){ .footer-logo{ height: clamp(40px, 10vw, 110px); max-width: 420px; }
}
@media (max-width: 520px){ .footer-logo{ height: clamp(36px, 12vw, 90px); max-width: 320px; }
} /* Brand-aligned typography */
h1, h2, h3, h4, h5, h6 { color: #0b1220;
} p, li, a, span { color: #0b1220;
} .hero.banner::before { content: ""; position: absolute; inset: 0; background: rgba(11,18,32,0.55); /* FORGELEA navy overlay */
}
.hero.banner .container { position: relative; z-index: 2;
}
@media (max-width: 980px){ .hero.banner{ min-height: 540px; }
}
@media (max-width: 520px){ .hero.banner{ min-height: 540px; }
} /* Wide hero banner using construction clouds image */
.hero.banner { position: relative; min-height: 540px; background-image: url('../img/hero-construction-clouds.jpg'); background-size: cover; background-position: center bottom;
} .hero.banner::before { content: ""; position: absolute; inset: 0; background: rgba(255,255,255,0.35); /* light overlay so black text is readable */
} .hero.banner .container { position: relative; z-index: 2;
} @media (max-width: 980px){ .hero.banner{ min-height: 540px; }
}
@media (max-width: 520px){ .hero.banner{ min-height: 540px; }
} /* Banner inner layout */
.hero.banner .hero-inner{ padding: 64px 0;
}
@media (max-width: 980px){ .hero.banner .hero-inner{ padding: 48px 0; }
}
@media (max-width: 520px){ .hero.banner .hero-inner{ padding: 36px 0; }
} .hero .cta:not(.primary) { background: transparent; color: #0b1220 !important; border-color: #0b1220;
} .cta.primary { background: #0b1220; color: #ffffff !important;
} .cta:hover { opacity: 0.9;
} /* === SINGLE SOURCE OF TRUTH: CTA BUTTONS === */
.cta { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 36px; font-size: 18px; font-weight: 600; border-radius: 10px; border: 3px solid #0b1220; background: transparent; color: #0b1220; box-sizing: border-box; white-space: nowrap;
} /* Primary CTA */
.cta.primary { background: #0b1220; color: #ffffff !important;
} /* Hover (identical behaviour) */
.cta:hover { opacity: 0.92;
} /* Ensure hero CTAs do not get overridden */
.hero .cta,
.hero .cta.primary { background-clip: padding-box;
} /* === Banner text should be black, but CTAs must keep their button colours === */
.hero.banner .kicker,
.hero.banner h1,
.hero.banner h2,
.hero.banner h3,
.hero.banner p { color: #000000 !important;
} /* Banner CTAs (override any banner link colouring) */
.hero.banner a.cta { color: #0b1220 !important; background: transparent !important; border-color: #0b1220 !important;
} .hero.banner a.cta.primary { background: #0b1220 !important; color: #ffffff !important; border-color: #0b1220 !important;
}
