:root{
  --bg:#f7f8fa;
  --ink:#0f172a;
  --muted:#475569;
  --card:#ffffff;
  --line:#e2e8f0;
  --nav:#ffffffcc;
  --gold:#d8b15a;
  --blue:#0b2a3c;
  --blue2:#0a2230;
  --radius:18px;
  --shadow: 0 12px 40px rgba(15, 23, 42, .10);
  --max: 1180px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.45;
}

a{color:inherit;text-decoration:none}
.container{width:min(var(--max), calc(100% - 40px)); margin:0 auto}

.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: var(--nav);
  border-bottom: 1px solid var(--line);
}

.navwrap{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
  gap:16px;
}

.brand{display:flex; align-items:center; gap:12px}
.brandMark{
  width:44px;height:44px;border-radius:12px;
  display:grid;place-items:center;
  background:var(--blue);
  color:#fff;font-weight:800;
}
.brandName{font-weight:800}
.brandTag{font-size:.92rem;color:var(--muted)}

.menu{display:flex;align-items:center;gap:18px}
.menu a{padding:10px 14px;border-radius:12px}
.menu a.active{background:#f0e6cf}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:14px;padding:12px 18px;font-weight:700;border:1px solid transparent;cursor:pointer}
.btnGold{background:var(--gold);color:#0b2230}
.btnPrimary{background:var(--blue);color:#fff}
.btnGhost{background:transparent;border-color:#ffffff55;color:#fff}
.textLink{color:var(--blue);font-weight:700}
.full{width:100%}

.hero{
  position:relative;
  overflow:hidden;
  padding:42px 0 42px;
  background: linear-gradient(180deg, #e9eef3, #f7f8fa);
}

.heroGrid{
  display:grid;
  grid-template-columns: 1.25fr .95fr;
  gap:28px;
  align-items:stretch;
}

.heroMedia{
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(10,34,48,.88), rgba(10,34,48,.55)),
    url("assets/images/hero.jpg");
  background-size:cover;
  background-position:center;
  filter:saturate(1.02);
}

.hero .container{position:relative}

.heroCopy{
  padding:26px 26px 18px;
  border-radius: var(--radius);
  color:#fff;
  background: rgba(11,42,60,.35);
  border: 1px solid rgba(255,255,255,.10);
}

.kicker{margin:0 0 10px; font-weight:700; opacity:.95}
.heroCopy h1{
  font-family: "Playfair Display", serif;
  font-size: clamp(2.2rem, 4.2vw, 3.6rem);
  line-height:1.05;
  margin:0 0 12px;
}
.lead{margin:0 0 18px; font-size:1.05rem; color:#e8eef5}

.heroCtas{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 18px}

.trustRow{display:flex;gap:10px;flex-wrap:wrap}
.pill{
  padding:10px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.15);
  font-size:.95rem;
}

.heroCard{
  background: var(--card);
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding:20px;
  border:1px solid var(--line);
}

.heroCard h3{margin:0 0 6px; font-size:1.25rem}
.muted{color:var(--muted)}
.heroCard .muted{margin:0 0 16px}

.cardGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}

.cardMini{
  border:1px solid var(--line);
  border-radius: 16px;
  padding:14px;
  background:#fff;
  min-height:96px;
}

.miniTitle{color:var(--muted); font-weight:700; font-size:.92rem}
.miniValue{
  margin-top:6px;
  font-weight:800;
  font-size:1.05rem;
  line-height:1.25;

  /* fixes squashed/wrapped phone + email */
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.miniHint{margin-top:6px; color:var(--muted); font-size:.92rem}

.section{padding:56px 0}
.sectionHead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.sectionHead h2{margin:0;font-size:1.9rem}
.sectionHead p{margin:6px 0 0}

.grid4{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:16px;
}

.serviceCard{
  border:1px solid var(--line);
  border-radius: 22px;
  overflow:hidden;
  background:#fff;
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
}

.serviceImg{height:150px;background-size:cover;background-position:center}
.serviceBody{padding:16px}
.serviceBody h3{margin:0 0 8px}
.serviceBody p{margin:0 0 10px;color:var(--muted)}
.serviceBody a{font-weight:800;color:var(--blue)}

.imgConvey{background-image:url("assets/images/conveyancing.jpg")}
.imgLit{background-image:url("assets/images/litigation.jpg")}
.imgFam{background-image:url("assets/images/familylaw.jpg")}
.imgEst{background-image:url("assets/images/estates.jpg")}

/* fallback if an image is missing */
.serviceImg,
.heroMedia,
.splitImg,
.pageHero::before{
  background-color:#0b2a3c;
}

.section.alt{background: #ffffff}
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:22px;
  align-items:center;
}

.splitImg{
  min-height: 360px;
  border-radius: 26px;
  background:
    linear-gradient(180deg, rgba(10,34,48,.10), rgba(10,34,48,.35)),
    url("assets/images/office.jpg");
  background-size: cover;
  background-position: center;
  border:1px solid var(--line);
}

.splitCopy h2{margin:0 0 10px;font-size:2rem}
.checklist{margin:14px 0 18px;padding-left:18px;color:var(--muted)}
.row{display:flex;gap:12px;flex-wrap:wrap}

.cta{padding:30px 0 70px}
.ctaBox{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:22px;
  background: linear-gradient(90deg, #0b2a3c, #0a2230);
  color:#fff;
  border-radius: 26px;
  box-shadow: var(--shadow);
}
.ctaBox h2{margin:0 0 6px}
.ctaBox p{margin:0;color:#dbe7f3}

.footer{
  padding:26px 0;
  border-top:1px solid var(--line);
  background:#fff;
}
.footGrid{display:flex;align-items:center;justify-content:space-between;gap:12px}
.tiny{font-size:.92rem}
.footLinks{display:flex;gap:14px}
.footLinks a{color:var(--muted);font-weight:700}

/* generic inner page hero */
.pageHero{
  position:relative;
  padding:48px 0;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:#f7f8fa;
}
.pageHero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.92), rgba(255,255,255,.62)),
    url("assets/images/about-hero.jpg");
  background-size:cover;
  background-position:center;
}
.pageHero .container{position:relative}
.pageHero h1{margin:0 0 10px;font-size:2.4rem}
.pageHero p{margin:0;color:var(--muted);max-width:70ch}

.cardsRow{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:16px;
  padding:26px 0 10px;
}
.infoCard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  box-shadow: 0 10px 26px rgba(15,23,42,.05);
}
.infoCard h3{margin:0 0 8px}
.infoCard p{margin:0;color:var(--muted)}

@media (max-width: 980px){
  .heroGrid{grid-template-columns:1fr}
  .grid4{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .cardsRow{grid-template-columns:1fr 1fr}
}
@media (max-width: 520px){
  .grid4{grid-template-columns:1fr}
  .cardsRow{grid-template-columns:1fr}
  .menu{gap:8px}
  .menu a{padding:10px 10px}
}








