:root{
	--color-primary: #002349; /* deep navy */
	--color-accent: #C29840; /* gold */
	--color-muted: #999999; /* gray */
	--color-bg: #f9fbfc;
	--card-shadow: 0 6px 18px rgba(2,17,36,0.06);
}

*{box-sizing:border-box}
a{color:var(--color-primary);text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1100px;margin:0 auto;padding:24px}

/* Elegant typography */
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,sans-serif;margin:0;color:#222;line-height:1.6;background:#fff}
h1,h2,h3,h4{font-family:'Playfair Display',serif;color:var(--color-primary);margin:0}
h1{font-weight:700}
h2{font-weight:600}
p{color:#333}
a{color:var(--color-primary);text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1100px;margin:0 auto;padding:24px}
.site-header{background:#fff;color:var(--color-primary);border-bottom:1px solid rgba(2,17,36,0.06)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding:20px 24px}
.brand h1{margin:0;font-size:1.4rem;letter-spacing:0.5px}
.tag{opacity:.85;margin:0;color:var(--color-muted);font-size:0.95rem}
.top-nav a{margin-left:20px;color:var(--color-primary);font-weight:600}

.broker-link{color:var(--color-primary);text-decoration:underline;font-weight:600}
.hero{padding:64px 0 80px;background:var(--color-bg)}
.hero-grid{display:grid;grid-template-columns:1fr 420px;gap:36px;align-items:center}
.hero-text h2{margin:0 0 18px;font-size:2.2rem;color:var(--color-primary);line-height:1.05}
.hero-text p{font-size:1.05rem;color:#334}
.cta-row .btn{margin-right:12px}
.hero-photo img{border-radius:12px;box-shadow:var(--card-shadow)}
.hero-text p{margin:0 0 12px}
.cta-row .btn{margin-right:12px}
.hero-photo img{border-radius:8px;box-shadow:var(--card-shadow)}
.about, .listings, .contact{padding:64px 0}
.listings .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.card{background:#fff;border-radius:10px;overflow:hidden;border:1px solid rgba(2,17,36,0.04)}
.card-body{padding:18px}
.card-body h4{margin:0 0 8px;color:var(--color-primary);font-size:1.05rem}
.card-body p{color:var(--color-muted);margin:0}
.book .calendly-inline-widget{min-height:420px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid rgba(2,17,36,0.04)}
.contact .form-row{display:flex;gap:12px;margin-bottom:12px}
.contact input,.contact textarea,.contact select{flex:1;padding:12px;border-radius:8px;border:1px solid rgba(2,17,36,0.06)}
.contact textarea{min-height:140px}
.btn{display:inline-block;padding:10px 18px;border-radius:8px;background:#fff;border:1px solid rgba(2,17,36,0.06);color:var(--color-primary);font-weight:600}
.btn.primary{background:var(--color-accent);color:var(--color-primary);border-color:rgba(0,0,0,0.06);box-shadow:0 6px 20px rgba(194,152,64,0.08)}
.btn.ghost{background:transparent;border:1px solid rgba(2,17,36,0.06);color:var(--color-primary)}
.btn.ghost{background:transparent;border:1px solid rgba(0,0,0,0.08);color:var(--color-primary)}
.muted{color:var(--color-muted)}
.site-footer{background:transparent;color:var(--color-muted);padding:48px 0;margin-top:48px;border-top:1px solid rgba(2,17,36,0.04)}
.site-footer p{margin:6px 0}
.small-muted{opacity:.85;color:var(--color-muted)}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;}.contact .form-row{flex-direction:column}}

/* Calendly inline widget sizing */
.calendly-inline-widget{min-width:320px;height:700px}

/* Reveal animations */
.reveal{opacity:0;transform:translateY(18px) scale(.995);transition:opacity .6s ease,var(--reveal-transform,transform) .6s cubic-bezier(.2,.9,.2,1);will-change:opacity,transform}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1)}

/* subtle hover for cards */
.card{transition:transform .35s cubic-bezier(.2,.9,.2,1),box-shadow .35s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(2,17,36,0.12)}

/* refined hero photo */
.hero-photo img{border-radius:12px;transform-origin:center center;transition:transform .6s cubic-bezier(.2,.9,.2,1),box-shadow .6s}
.hero-photo img:hover{transform:scale(1.02);box-shadow:0 28px 60px rgba(2,17,36,0.12)}

/* button micro interactions */
.btn{transition:transform .18s ease,box-shadow .18s ease}
.btn:active{transform:translateY(1px)}
.btn.primary:hover{box-shadow:0 10px 30px rgba(194,152,64,0.15);transform:translateY(-2px)}

/* Modern header layout */
.modern-header .header-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
}
.header-profile {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  margin-right: 18px;
  box-shadow: var(--card-shadow);
}
.brand {
  display: flex;
  align-items: center;
  gap: 18px;
}

/* Modern hero section */
.modern-hero {
  background: var(--color-bg);
  padding: 72px 0 64px;
  text-align: center;
}
.hero-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.hero-profile {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: var(--card-shadow);
  margin-bottom: 12px;
}
.hero-profile.large-profile {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: var(--card-shadow);
  margin-bottom: 12px;
}
.hero-title {
  font-size: 2.3rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.hero-desc {
  font-size: 1.15rem;
  color: #334;
  margin-bottom: 8px;
}
.hero-signature {
  width: 180px;
  margin: 18px 0 0 0;
  opacity: 0.92;
}
.hero-signature.bottom-signature {
  display: block;
  margin: 32px auto 0 auto;
  width: 220px;
  opacity: 0.95;
}
.cta-row {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin: 18px 0 0 0;
}
.contact-small {
  font-size: 1.05rem;
  color: var(--color-muted);
  margin-top: 8px;
}

/* Footer logo */
.footer-logos-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-bottom: 8px;
}
.footer-logo {
  width: 180px;
  height: auto;
  max-height: 60px;
  object-fit: contain;
}
.footer-logos-row .footer-logo:last-child {
  width: 220px;
  max-height: 80px;
}
.site-footer {
  background: var(--color-primary);
  color: #fff;
  text-align: center;
  padding: 36px 0 24px;
}
.broker-link {
  color: #fff;
  font-weight: 600;
  margin-bottom: 8px;
}
.footer-copy {
  color: #eee;
  font-size: 0.95rem;
}

.hero-split {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
}
.hero-text-col {
  flex: 1 1 0;
  min-width: 0;
}
.hero-img-col {
  flex: 0 0 320px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.hero-img-col .hero-profile.large-profile {
  width: 320px;
  height: 320px;
  max-width: 100%;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: var(--card-shadow);
}
@media (max-width: 900px) {
  .hero-split {
    flex-direction: column;
    gap: 24px;
  }
  .hero-img-col .hero-profile.large-profile {
    width: 180px;
    height: 180px;
  }
}

@media (max-width: 700px) {
  .modern-hero {
    padding: 48px 0 32px;
  }
  .hero-profile {
    width: 90px;
    height: 90px;
  }
  .hero-profile.large-profile {
    width: 120px;
    height: 120px;
  }
  .hero-title {
    font-size: 1.4rem;
  }
  .hero-signature.bottom-signature {
    width: 140px;
    margin-top: 18px;
  }
  .footer-logo {
    width: 110px;
    max-height: 38px;
  }
  .header-profile {
    width: 38px;
    height: 38px;
  }
  .footer-logos-row .footer-logo:last-child {
    width: 140px;
    max-height: 48px;
  }
}

.site-header.modern-header {
  background: var(--color-primary);
  color: #fff;
  border-bottom: none;
}
.site-header .brand h1,
.site-header .tag,
.site-header .top-nav a {
  color: #fff;
}
.site-header .top-nav a {
  font-weight: 600;
}
.site-header .header-profile {
  border: 2px solid #fff;
}
