*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: #FFFFFF;
  color: #3A3F47;
  line-height: 1.72;
  overflow-x: hidden;
}
:root {
  --bg: #FFFFFF;
  --bg-soft: #F6F7F9;
  --border: #E4E7EC;
  --border-light: #EEF0F4;
  --accent: #1A2B4A;
  --accent-light: rgba(26,43,74,0.06);
  --text-muted: #6B7280;
  --text-heading: #111827;
  --gold: #8B7355;
}
h1, h2, h3 { color: var(--text-heading); font-weight: 600; line-height: 1.25; }
h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
h3 { font-size: 1.05rem; }
a { color: var(--accent); text-decoration: none; transition: opacity .2s; }
a:hover { opacity: .7; }
/* Inline links inside content areas — visible underline */
.about-text a, .team-card a, .contact-intro a,
.project-body a, .section-desc a, p a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.about-text a:hover, .team-card a:hover, .contact-intro a:hover,
.project-body a:hover, .section-desc a:hover, p a:hover {
  opacity: .7;
}
.container { max-width: 1120px; margin: 0 auto; padding: 0 1.5rem; }
section { padding: 5rem 0; }
/* NAV */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border-light);
  transition: box-shadow .3s;
}
nav.scrolled { box-shadow: 0 1px 12px rgba(0,0,0,.07); }
.nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 1120px; margin: 0 auto; padding: .6rem 1.5rem;
}
.nav-logo { display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.nav-logo img { height:40px; width:auto; display:block; }
.nav-logo-name { font-size:.8rem; color:var(--text-muted); line-height:1.35; }
.nav-logo-name strong { color:var(--text-heading); font-size:.92rem; font-weight:700; display:block; letter-spacing:.03em; }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a { color:var(--text-muted); font-size:.78rem; font-weight:500; text-transform:uppercase; letter-spacing:.07em; transition:color .2s; }
.nav-links a:hover { color:var(--text-heading); opacity:1; }
.nav-toggle { display:none; cursor:pointer; }
.nav-toggle span { display:block; width:20px; height:2px; background:#374151; margin:4px 0; }
/* HERO */
.hero {
  min-height: 90vh; display:flex; align-items:center;
  background:var(--bg-soft); border-bottom:1px solid var(--border-light); padding-top:4.5rem;
}
.hero-inner { display:grid; grid-template-columns:1fr 220px; align-items:center; gap:4rem; }
.hero-label { font-size:.67rem; font-weight:600; text-transform:uppercase; letter-spacing:.15em; color:var(--gold); margin-bottom:.9rem; display:block; }
.hero h1 { margin-bottom:.9rem; }
.hero p { font-size:.98rem; color:var(--text-muted); margin-bottom:1.8rem; max-width:560px; }
.hero-cta {
  display:inline-block; padding:.65rem 1.6rem;
  background:var(--accent); color:#fff; font-weight:600; font-size:.82rem;
  letter-spacing:.03em; border-radius:3px; transition:transform .18s, box-shadow .18s;
}
.hero-cta:hover { transform:translateY(-1px); box-shadow:0 4px 14px rgba(26,43,74,.14); opacity:1; color:#fff; }
.hero-stats { display:flex; gap:2.5rem; margin-top:2.8rem; padding-top:1.6rem; border-top:1px solid var(--border); }
.stat-num { font-size:1.7rem; font-weight:700; color:var(--accent); display:block; }
.stat-label { font-size:.67rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.07em; }
.hero-logo-wrap { text-align:center; opacity:.9; }
.hero-logo-wrap img { width:200px; height:auto; }
/* SECTION HEADERS */
.section-label { font-size:.65rem; font-weight:600; text-transform:uppercase; letter-spacing:.15em; color:var(--gold); margin-bottom:.4rem; display:block; }
.section-title { margin-bottom:.55rem; }
.section-desc { color:var(--text-muted); max-width:520px; margin-bottom:2.4rem; font-size:.92rem; }
/* SERVICES */
#services { background:var(--bg); }
.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); gap:1.2rem; }
.service-card { background:var(--bg-soft); border:1px solid var(--border-light); border-radius:6px; padding:1.6rem 1.4rem; transition:border-color .25s, transform .25s; }
.service-card:hover { border-color:var(--border); transform:translateY(-2px); }
.service-icon { width:38px; height:38px; display:flex; align-items:center; justify-content:center; background:var(--accent-light); border-radius:4px; margin-bottom:.85rem; }
.service-icon svg { width:18px; height:18px; stroke:var(--accent); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.service-card h3 { margin-bottom:.38rem; font-size:1rem; }
.service-card p { font-size:.84rem; color:var(--text-muted); }
/* NUMBERS */
.numbers-strip { padding:2.6rem 0; background:var(--bg-soft); border-top:1px solid var(--border-light); border-bottom:1px solid var(--border-light); }
.numbers-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center; }
.numbers-grid .stat-num { font-size:1.95rem; }
.numbers-grid .stat-label { margin-top:.12rem; }
/* PORTFOLIO */
#portfolio { background:var(--bg); }
.portfolio-filters { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1.8rem; }
.filter-btn { padding:.36rem .9rem; font-size:.72rem; font-weight:500; color:var(--text-muted); background:transparent; border:1px solid var(--border); border-radius:3px; cursor:pointer; transition:.18s; font-family:inherit; }
.filter-btn:hover { border-color:#9CA3AF; color:#374151; }
.filter-btn.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.portfolio-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:1.2rem; }
.project-card { background:var(--bg); border:1px solid var(--border-light); border-radius:6px; overflow:hidden; transition:border-color .25s, box-shadow .25s, transform .25s; }
.project-card:hover { border-color:var(--border); box-shadow:0 4px 18px rgba(0,0,0,.05); transform:translateY(-2px); }
.project-img { width:100%; height:215px; object-fit:cover; display:block; }
.project-body { padding:1.15rem 1.35rem; }
.project-sector { font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--gold); margin-bottom:.28rem; }
.project-body h3 { font-size:.96rem; margin-bottom:.32rem; }
.project-body p { font-size:.82rem; color:var(--text-muted); }
/* ABOUT */
#about { background:var(--bg-soft); border-top:1px solid var(--border-light); border-bottom:1px solid var(--border-light); }
.about-layout { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start; }
.about-text p { margin-bottom:.95rem; color:var(--text-muted); font-size:.92rem; }
.team-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.team-card { background:var(--bg); border:1px solid var(--border-light); border-radius:6px; padding:1.4rem; }
.team-card h3 { margin-bottom:.08rem; font-size:.96rem; }
.team-role { font-size:.77rem; color:var(--gold); margin-bottom:.45rem; font-weight:500; }
.team-card p { font-size:.81rem; color:var(--text-muted); }
/* CONTACT */
#contact { background:var(--bg); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.contact-intro { color:var(--text-muted); margin-bottom:1.2rem; font-size:.92rem; }
.contact-detail { display:flex; align-items:flex-start; gap:.8rem; margin-bottom:1rem; }
.ci-icon { width:34px; height:34px; min-width:34px; display:flex; align-items:center; justify-content:center; background:var(--accent-light); border-radius:4px; }
.ci-icon svg { width:16px; height:16px; stroke:var(--accent); fill:none; stroke-width:1.5; }
.ci-text { font-size:.87rem; }
.ci-text strong { color:var(--text-heading); display:block; margin-bottom:.08rem; font-size:.73rem; text-transform:uppercase; letter-spacing:.05em; }
.contact-form { background:var(--bg-soft); border:1px solid var(--border-light); border-radius:6px; padding:1.5rem; }
.form-group { margin-bottom:.85rem; }
.form-group label { display:block; font-size:.71rem; font-weight:500; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.28rem; }
.form-group input, .form-group textarea { width:100%; padding:.58rem .78rem; font-size:.86rem; font-family:inherit; background:var(--bg); border:1px solid var(--border); border-radius:3px; color:var(--text-heading); outline:none; transition:border-color .18s; }
.form-group input:focus, .form-group textarea:focus { border-color:var(--accent); }
.form-group textarea { resize:vertical; min-height:90px; }
.form-submit { padding:.58rem 1.5rem; background:var(--accent); color:#fff; font-weight:600; font-size:.82rem; border:none; border-radius:3px; cursor:pointer; font-family:inherit; transition:transform .18s, box-shadow .18s; }
.form-submit:hover { transform:translateY(-1px); box-shadow:0 3px 10px rgba(26,43,74,.12); }
/* FOOTER */
footer { padding:1.5rem 0; border-top:1px solid var(--border-light); text-align:center; font-size:.71rem; color:var(--text-muted); }
/* RESPONSIVE */
@media (max-width:960px) { .hero-inner { grid-template-columns:1fr; } .hero-logo-wrap { display:none; } }
@media (max-width:860px) { .about-layout, .contact-grid { grid-template-columns:1fr; gap:2rem; } .numbers-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px) {
  .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:rgba(255,255,255,.98); padding:.9rem 1.5rem; gap:.65rem; border-bottom:1px solid var(--border-light); }
  .nav-links.open { display:flex; }
  .nav-toggle { display:block; }
  .portfolio-grid, .team-grid { grid-template-columns:1fr; }
  .hero-stats { flex-wrap:wrap; gap:1.2rem; }
}
.fade-up { opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease; }
.fade-up.visible { opacity:1; transform:none; }
/* WordPress overrides — neutralise common theme interference */
.wp-block, .wp-site-blocks, .entry-content { all: unset; }
body.wp-front-page { margin-top: 0 !important; padding-top: 0 !important; }
#wpadminbar ~ nav { top: 32px; }
@media screen and (max-width:782px) { #wpadminbar ~ nav { top: 46px; } }
