/* =========================================================
   AON GROUP — shared stylesheet
   ========================================================= */

:root{
  --aon-black:#1a1a1a;
  --aon-red:#e2211c;
  --aon-red-dark:#b91916;
  --aon-white:#ffffff;
  --aon-grey:#f4f4f5;
  --aon-grey-mid:#9a9a9a;
  --aon-grey-line:#e6e6e8;

  --aqua-navy:#02303f;
  --aqua-navy-dark:#011f29;
  --aqua-steel:#83afb7;
  --aqua-steel-light:#c8dee1;

  --font-body: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-head: "Segoe UI Semibold", "Helvetica Neue", Arial, sans-serif;
  --font-logo: "Baloo 2", "Segoe UI", sans-serif;

  --max-width: 1180px;
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  font-family:var(--font-body);
  color:var(--aon-black);
  background:var(--aon-white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

ul{ list-style:none; }

.wrap{
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 32px;
}

h1,h2,h3{
  font-family:var(--font-head);
  font-weight:700;
  letter-spacing:-0.01em;
}

h1{ font-size:clamp(2.2rem, 5vw, 3.4rem); line-height:1.08; }
h2{ font-size:clamp(1.6rem, 3vw, 2.2rem); margin-bottom:1rem; }
h3{ font-size:1.2rem; margin-bottom:.5rem; }

p{ color:#4a4a4a; }

.eyebrow{
  display:inline-block;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:14px;
}

.section{ padding:88px 0; }
.section-tight{ padding:56px 0; }
.section-alt{ background:var(--aon-grey); }

.center{ text-align:center; }

.lede{
  max-width:640px;
  font-size:1.08rem;
}
.center .lede{ margin-left:auto; margin-right:auto; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 30px;
  border-radius:2px;
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.02em;
  border:2px solid transparent;
  transition:all .15s ease;
  cursor:pointer;
}
.btn-red{ background:var(--aon-red); color:#fff; }
.btn-red:hover{ background:var(--aon-red-dark); }
.btn-outline-light{ border-color:#fff; color:#fff; }
.btn-outline-light:hover{ background:#fff; color:var(--aon-black); }
.btn-outline-dark{ border-color:var(--aon-black); color:var(--aon-black); }
.btn-outline-dark:hover{ background:var(--aon-black); color:#fff; }
.btn-steel{ background:var(--aqua-steel); color:var(--aqua-navy-dark); }
.btn-steel:hover{ background:var(--aqua-steel-light); }
.btn-outline-steel{ border-color:var(--aqua-steel); color:#fff; }
.btn-outline-steel:hover{ background:var(--aqua-steel); color:var(--aqua-navy-dark); }

/* ---------- header / nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:#fff;
  border-bottom:1px solid var(--aon-grey-line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:78px;
}
.group-brand{
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-head); font-weight:800;
  font-size:1.05rem; letter-spacing:.01em;
}
.aon-logo{
  display:inline-flex; align-items:center;
}
.aon-mark{
  display:block;
  width:38px; height:38px;
  flex-shrink:0;
}
.aon-wordmark{
  display:block;
  height:24px; width:auto;
  margin-left:2px;
  flex-shrink:0;
}
.group-brand small{
  display:block; font-size:.62rem; font-weight:600; letter-spacing:.12em;
  color:var(--aon-grey-mid); text-transform:uppercase; margin-top:2px;
}

.main-nav ul{ display:flex; gap:30px; align-items:center; }
.main-nav a{
  font-size:.88rem; font-weight:600; color:#333;
  padding:6px 2px; border-bottom:2px solid transparent;
  transition:border-color .15s ease, color .15s ease;
}
.main-nav a:hover, .main-nav a.active{ border-color:var(--aon-red); color:var(--aon-black); }

.nav-toggle{ display:none; }

/* ---------- hero (group homepage) ---------- */
.hero-group{
  background:var(--aon-black);
  color:#fff;
  padding:120px 0 100px;
  position:relative;
  overflow:hidden;
}
.hero-group::after{
  content:"";
  position:absolute; right:-10%; top:-30%;
  width:600px; height:600px;
  background:var(--aon-red);
  opacity:.12;
  border-radius:50%;
}
.hero-group .eyebrow{ color:var(--aon-red); }
.hero-group p.lede{ color:#c9c9c9; margin-top:20px; }
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }

/* ---------- hero background photography ---------- */
.hero-photo{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-photo::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(26,26,26,.95) 0%, rgba(26,26,26,.87) 34%, rgba(26,26,26,.62) 60%, rgba(26,26,26,.3) 100%);
  z-index:0;
}
.hero-photo.brand-aqua::before{
  background:linear-gradient(100deg, rgba(2,48,63,.95) 0%, rgba(2,48,63,.87) 34%, rgba(2,48,63,.62) 60%, rgba(2,48,63,.3) 100%);
}
.hero-photo::after{ display:none; }
.hero-photo .wrap{ position:relative; z-index:1; }

/* ---------- hero decorative pattern (no photo available) ---------- */
.hero-decorative{ position:relative; overflow:hidden; }
.hero-decorative::after{
  content:"";
  position:absolute; right:-8%; top:-25%;
  width:520px; height:520px;
  background:var(--aon-red);
  opacity:.12;
  border-radius:50%;
}
.hero-decorative.brand-aqua::after{ background:var(--aqua-steel); opacity:.15; }

/* ---------- company cards on homepage ---------- */
.company-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
  margin-top:20px;
}
.company-card{
  border:1px solid var(--aon-grey-line);
  background:#fff;
  padding:36px;
  display:flex; flex-direction:column; gap:14px;
  transition:box-shadow .2s ease, transform .2s ease;
}
.company-card:hover{ box-shadow:0 18px 40px rgba(0,0,0,.08); transform:translateY(-3px); }
.company-card .tag{
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--aon-red);
}
.company-card.brand-aqua .tag{ color:var(--aqua-navy); }
.company-card h3{ font-size:1.35rem; }
.company-card p{ font-size:.95rem; flex-grow:1; }
.company-card .card-link{
  font-weight:700; font-size:.85rem;
  display:inline-flex; align-items:center; gap:6px;
  color:var(--aon-black);
}
.company-card .card-link:hover{ color:var(--aon-red); }
.card-logo-row{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.card-logo-row .aon-mark{ width:40px; height:40px; }
.card-logo-row .aon-wordmark{ height:26px; }
.card-logo-row .tag{ display:block; }
.card-logo-row .aqua-mark{
  width:44px; height:44px;
  background:var(--aqua-navy);
  display:flex; align-items:center; justify-content:center;
  color:var(--aqua-steel); font-weight:800; font-size:1.05rem;
  flex-shrink:0;
}

/* ---------- company hero (sub-pages) ---------- */
.hero-company{
  padding:110px 0 90px;
  color:#fff;
  position:relative;
  overflow:hidden;
}
.hero-company.brand-aon{ background:var(--aon-black); }
.hero-company.brand-aqua{ background:var(--aqua-navy); }
.hero-company .eyebrow{ color:rgba(255,255,255,.65); }
.hero-company.brand-aon .eyebrow{ color:var(--aon-red); }
.hero-company.brand-aqua .eyebrow{ color:var(--aqua-steel); }
.hero-company p.lede{ color:rgba(255,255,255,.78); margin-top:18px; }
.hero-company .hero-actions{ margin-top:30px; }

.brand-strip{ height:6px; width:100%; }
.brand-strip.brand-aon{ background:var(--aon-red); }
.brand-strip.brand-aqua{ background:var(--aqua-steel); }

/* ---------- feature list / offerings ---------- */
.offer-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px;
  margin-top:20px;
}
.offer-card{
  border:1px solid var(--aon-grey-line);
  padding:30px 28px;
  background:#fff;
}
.offer-card .num{
  font-family:var(--font-head); font-weight:800; font-size:1.6rem;
  color:var(--aon-grey-line);
  margin-bottom:10px;
}
.brand-aqua-section .offer-card .num{ color:#dbe9eb; }
.offer-card h3{ font-size:1.1rem; }
.offer-card p{ font-size:.93rem; }

/* ---------- project galleries ---------- */
.project-block{ margin-top:10px; }
.project-block-next{ margin-top:64px; padding-top:56px; border-top:1px solid var(--aon-grey-line); }
.project-header{
  display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px;
  margin-bottom:26px;
}
.project-header h3{ font-size:1.5rem; margin-bottom:4px; }
.project-header .project-location{
  font-size:.85rem; font-weight:600; color:var(--aon-grey-mid); text-transform:uppercase; letter-spacing:.06em;
}
.project-tags{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.project-tag{
  display:inline-flex; align-items:center;
  font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:6px 14px; border-radius:2px; white-space:nowrap;
}
.project-tag.tag-residential{ background:var(--aon-red); color:#fff; }
.project-tag.tag-pbsa{ background:var(--aon-black); color:#fff; }
.project-tag.tag-office{ background:var(--aon-grey-mid); color:#fff; }
.project-tag.tag-country{ background:transparent; color:var(--aon-grey-mid); border:1px solid var(--aon-grey-line); }
.project-stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
  margin-bottom:32px;
  padding:24px 0;
  border-top:1px solid var(--aon-grey-line);
  border-bottom:1px solid var(--aon-grey-line);
}
.pstat-num{
  font-family:var(--font-head); font-weight:800; font-size:1.4rem;
  color:var(--aon-red);
}
.pstat-label{
  font-size:.82rem; color:var(--aon-grey-mid); margin-top:4px;
}

.project-gallery{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:150px;
  gap:12px;
  margin-bottom:16px;
}
.project-gallery .g-item{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, #2a2a2a, var(--aon-black));
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.55);
  font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  text-align:center; padding:10px;
}
.project-gallery .g-item img{
  width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
}
.project-gallery .g-wide{ grid-column:span 2; }
.project-gallery .g-tall{ grid-row:span 2; }
.project-gallery.brand-aqua .g-item{ background:linear-gradient(135deg, var(--aqua-navy-dark), var(--aqua-navy)); color:rgba(255,255,255,.5); }
.project-note{ font-size:.82rem; color:var(--aon-grey-mid); font-style:italic; }

@media (max-width: 860px){
  .project-gallery{ grid-template-columns:repeat(2, 1fr); grid-auto-rows:130px; }
  .project-gallery .g-wide{ grid-column:span 2; }
}

/* ---------- region selector cards (AON Prop) ---------- */
.region-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
  margin-top:20px;
}
.region-card{
  border:1px solid var(--aon-grey-line);
  background:#fff;
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:box-shadow .2s ease, transform .2s ease;
}
.region-card:hover{ box-shadow:0 18px 40px rgba(0,0,0,.08); transform:translateY(-3px); }
.region-card .region-thumb{
  height:190px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, #2a2a2a, var(--aon-black));
}
.region-card .region-thumb img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.region-card.coming-soon .region-thumb{
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.4); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
.region-card .region-body{ padding:26px; display:flex; flex-direction:column; gap:8px; flex-grow:1; }
.region-card .region-count{
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--aon-red);
}
.region-card h3{ font-size:1.3rem; }
.region-card p{ font-size:.93rem; flex-grow:1; }
.region-card .card-link{
  font-weight:700; font-size:.85rem;
  display:inline-flex; align-items:center; gap:6px;
  color:var(--aon-black);
}
.region-card .card-link:hover{ color:var(--aon-red); }

/* ---------- region sub-nav (on region sub-pages) ---------- */
.region-subnav{ display:flex; gap:10px; margin-top:28px; flex-wrap:wrap; }
.region-subnav a{
  padding:9px 20px; border:1px solid rgba(255,255,255,.3); border-radius:2px;
  font-size:.82rem; font-weight:600; color:rgba(255,255,255,.75);
}
.region-subnav a.active{ background:var(--aon-red); border-color:var(--aon-red); color:#fff; }
.region-subnav a:hover{ border-color:#fff; color:#fff; }
.back-link{ font-size:.85rem; font-weight:600; color:var(--aon-grey-mid); display:inline-flex; align-items:center; gap:6px; margin-bottom:18px; }
.back-link:hover{ color:var(--aon-red); }

@media (max-width: 860px){
  .region-grid{ grid-template-columns:1fr; }
}

/* ---------- regions / stats strip ---------- */
.stats-strip{
  display:flex; flex-wrap:wrap; gap:0;
  border-top:1px solid var(--aon-grey-line);
  border-bottom:1px solid var(--aon-grey-line);
}
.stat{
  flex:1 1 200px;
  padding:32px 30px;
  border-right:1px solid var(--aon-grey-line);
}
.stat:last-child{ border-right:none; }
.stat .stat-num{ font-family:var(--font-head); font-weight:800; font-size:2rem; color:var(--aon-red); }
.stat.brand-aqua .stat-num{ color:var(--aqua-navy); }
.stat .stat-label{ font-size:.85rem; color:var(--aon-grey-mid); margin-top:4px; }

/* ---------- two column split ---------- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}
.split .panel{
  min-height:320px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:var(--font-head); font-weight:800;
  font-size:1.4rem; text-align:center;
  padding:40px;
}
.panel.brand-aon{ background:linear-gradient(135deg, var(--aon-black), #333); }
.panel.brand-aqua{ background:linear-gradient(135deg, var(--aqua-navy), var(--aqua-steel)); }
.panel.brand-red{ background:linear-gradient(135deg, var(--aon-red-dark), var(--aon-red)); }

/* ---------- contact / footer ---------- */
.contact-block{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:30px;
  margin-top:10px;
}
.contact-item .label{
  font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--aon-grey-mid); margin-bottom:6px;
}
.contact-item .value{ font-size:1.05rem; font-weight:600; }
.contact-item.on-dark .label{ color:rgba(255,255,255,.55); }
.contact-item.on-dark .value{ color:#fff; }

.site-footer{
  background:var(--aon-black);
  color:#c9c9c9;
  padding:56px 0 30px;
  font-size:.9rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(4, 1fr);
  gap:30px;
  padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-grid h4{
  color:#fff; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
  margin-bottom:14px; font-weight:700;
}
.footer-grid a{ color:#aaa; display:block; margin-bottom:8px; }
.footer-grid a:hover{ color:#fff; }
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding-top:22px; font-size:.8rem; color:#7a7a7a;
}

/* ---------- responsive ---------- */
@media (max-width: 860px){
  .main-nav{
    position:fixed; top:78px; left:0; right:0; bottom:0;
    background:#fff; padding:20px 32px;
    transform:translateY(-110%);
    transition:transform .2s ease;
    z-index:99;
    overflow-y:auto;
  }
  .main-nav.open{ transform:translateY(0); }
  .main-nav ul{ flex-direction:column; align-items:flex-start; gap:6px; }
  .main-nav a{ display:block; padding:12px 0; width:100%; }
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px; justify-content:center;
    width:32px; height:28px; background:none; border:none; cursor:pointer;
  }
  .nav-toggle span{ height:2px; background:var(--aon-black); display:block; }

  .project-stats{ grid-template-columns:repeat(2, 1fr); }
  .company-grid{ grid-template-columns:1fr; }
  .offer-grid{ grid-template-columns:1fr; }
  .split{ grid-template-columns:1fr; }
  .contact-block{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .stat{ flex:1 1 50%; border-bottom:1px solid var(--aon-grey-line); }
}
