*{box-sizing:border-box}
:root{
  --navy:#102d42;
  --navy-2:#173f59;
  --blue:#2d607d;
  --blue-soft:#eaf1f5;
  --blue-pale:#f4f7f8;
  --ink:#17232d;
  --muted:#68757e;
  --cream:#faf9f5;
  --white:#fff;
  --line:#d9e0e4;
  --gold:#b29361;
  --max:1240px;
  --serif:"Playfair Display",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.65}
a{color:inherit;text-decoration:none}
img{display:block;width:100%}
.site-header{position:sticky;top:0;z-index:20;background:rgba(250,249,245,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{width:min(var(--max),calc(100% - 64px));min-height:84px;margin:auto;display:flex;align-items:center;gap:32px}
.brand{display:flex;align-items:center;margin-right:auto;min-width:210px}
.logo{max-width:190px;max-height:63px;object-fit:contain;object-position:left center}
.nav{display:flex;gap:28px;font-size:.82rem;font-weight:600}
.nav a{padding:10px 0;position:relative}
.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:1px;background:var(--navy);transition:.25s}
.nav a:hover:after{right:0}
.languages{display:flex;gap:4px;color:#8b969d;font-size:.75rem}
.lang{border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:4px}
.lang.active{color:var(--navy);font-weight:700}
.menu-toggle{display:none;border:0;background:none;font-size:1.4rem}
.hero{background:var(--blue-soft);padding:76px 0 84px}
.hero-inner{width:min(var(--max),calc(100% - 64px));margin:auto;display:grid;grid-template-columns:1fr .82fr;gap:82px;align-items:center}
.eyebrow{margin:0 0 15px;color:var(--gold);font-size:.67rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.hero h1,h2{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.025em}
.hero h1{
  font-size:clamp(2.6rem,4.5vw,4.6rem);
  max-width:720px;
  margin:0 0 26px;
}
.lead{max-width:560px;color:#536671;font-size:1.05rem}
.actions{display:flex;align-items:center;gap:28px;margin-top:34px}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 28px;
  background:var(--navy);
  color:white;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.02em;
  transition:background .25s ease, transform .25s ease;
}

.button:hover{
  background:var(--navy-2);
  transform:translateY(-2px);
}
.underlink{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.01em;
  opacity:.85;
}
.hero-photo{position:relative;margin:0}
.hero-photo>img{height:610px;object-fit:cover}
/* .hero-photo figcaption{position:absolute;left:20px;bottom:20px;background:rgba(16,45,66,.94);color:white;padding:14px 18px;display:flex;flex-direction:column} */
.hero-photo figcaption{
  display:none;
}
.hero-photo figcaption strong{font-size:.68rem;letter-spacing:.15em}
.hero-photo figcaption span{font-size:.67rem;color:#d5e0e7}
.trust{display:grid;grid-template-columns:repeat(3,1fr);background:white;border-bottom:1px solid var(--line)}
.trust div{min-height:108px;display:flex;justify-content:center;align-items:center;gap:14px;border-right:1px solid var(--line)}
.trust div:last-child{border:0}
.trust strong{font-family:var(--serif);font-size:1.65rem;font-weight:500;color:var(--navy)}
.trust span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.intro-photo{
  width:min(var(--max),calc(100% - 64px));
  margin:0 auto;
  padding:120px 0;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:70px;
  align-items:center;
}
.intro-photo-image{height:520px}
.intro-photo-image img{height:100%;object-fit:cover}
.intro-photo-copy h2,.section h2,.property-section h2,.contact h2{
  font-size:clamp(1.8rem,2.8vw,3.2rem);
  margin:0 0 25px;
}
.intro-photo-copy>p:last-child{max-width:500px;color:var(--muted)}
.section{width:min(var(--max),calc(100% - 64px));margin:auto;padding:85px 0}
.services{border-top:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:40px}
.section-head>p{
  max-width:400px;
  color:var(--muted);
  margin:0;
  font-size:1rem;
  line-height:1.7;
}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.service-grid article{
  min-height:310px;
  padding:34px;
  background:#C7DCE7;
  border-right:1px solid rgba(13,39,66,.08);
  transition:transform .25s ease, background .25s ease;
}

.service-grid article:nth-child(2){
  background:#DDEBF1;
}

.service-grid article:nth-child(3){
  background:#F0F5F7;
}

.service-grid article:hover{
  transform:translateY(-4px);
}
.service-grid article:last-child{
  border-right:0;
}

.service-grid article:hover{
  background:var(--blue-pale);
  transform:translateY(-4px);
}
.service-grid article.dark-card{
  background:#DDEBF1;
  color:var(--ink);
}
.service-grid span{color:var(--gold);font-size:.68rem;font-weight:700}
.service-grid h3{font-family:var(--serif);font-size:1.75rem;line-height:1.15;font-weight:500;max-width:300px;margin:60px 0 14px}
.service-grid p{color:var(--muted);font-size:.87rem;max-width:330px;margin:0}
.dark-card p{
  color:var(--muted);
}
.people{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}
.people-photo{height:680px}
.people-photo img{height:100%;object-fit:cover}
.people-copy h2{max-width:700px}
.people-copy>p:not(.eyebrow){color:var(--muted);max-width:650px;font-size:.92rem}
.history{margin-top:40px;border-top:1px solid var(--line)}
.history div{padding:10px 0;border-bottom:1px solid var(--line);font-size:.78rem}
.history b{display:inline-block;width:32px;color:var(--gold);font-size:.65rem}
.office{width:100%;max-width:none;background:var(--blue-pale);padding-left:max(32px,calc((100% - var(--max))/2));padding-right:max(32px,calc((100% - var(--max))/2))}
.office-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:48px}
.office-heading h2{max-width:700px}
.office-grid figure{position:relative;margin:0;overflow:hidden;background:#dbe5eb}
.office-grid img{height:100%;object-fit:cover;transition:transform .5s}
.office-grid figure:hover img{transform:scale(1.025)}
.office-grid{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-template-rows:500px 400px;
  gap:14px;
}
.office-grid .office-main{
  grid-column:1 / 5;
  grid-row:1;
}
.office-grid .office-wide{
  grid-column:5 / 7;
  grid-row:1;
}
.office-grid .office-small:nth-child(2){
  grid-column:4 / 7;
  grid-row:2;
}
.office-grid .office-small:nth-child(3){
  grid-column:1 / 4;
  grid-row:2;
}
.office-grid figcaption{position:absolute;left:14px;bottom:14px;background:rgba(16,45,66,.9);color:white;padding:7px 11px;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}
.work-section{display:grid;grid-template-columns:1.3fr .7fr;min-height:620px;background:var(--navy);color:white}
.work-image{min-height:620px}
.work-image img{height:100%;object-fit:cover}
.work-copy{align-self:center;padding:70px max(32px,calc((100vw - var(--max))/2)) 70px 70px}
.work-copy h2{font-size:clamp(2rem,4vw,3.5rem);max-width:570px;margin:0 0 25px}
.work-copy p:last-child{color:#cad8df;max-width:500px}
.profile{display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:center}
.profile-copy h2{margin-bottom:20px}
.profile-copy>p:last-child{max-width:560px;color:var(--muted)}
.profile-image{height:590px}
.profile-image img{height:100%;object-fit:cover}
.property-section{
  padding:110px max(32px,calc((100% - var(--max))/2));
  background:var(--blue);
  color:white;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:60px;
}
.property-section h2{max-width:720px}
.property-section p:not(.eyebrow){max-width:560px;color:#d5e1e7;margin:0 0 28px}
.light-button{background:white;color:var(--navy)}
.property-buttons{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.property-number{font-family:var(--serif);font-size:7rem;color:#a9c1ce;line-height:1}
.contact{background:white;padding:115px max(32px,calc((100% - var(--max))/2));display:grid;grid-template-columns:1.1fr .7fr .55fr;gap:50px;align-items:end}
.contact h2{max-width:700px}
.contact-copy>p:last-child{color:var(--muted)}
.contact-image{height:310px}
.contact-image img{height:100%;object-fit:cover}
.contact-details{display:grid;gap:12px;padding-bottom:4px}
.contact-details a{
  font-family:var(--serif);
  font-size:1.25rem;
}

.contact-details a:first-child{
  font-family:var(--serif);
  font-size:1.5rem;
}

address{
  font-family:var(--serif);
  font-style:normal;
  color:var(--muted);
  font-size:1.2rem;
  margin-top:8px;
}
.footer{width:min(var(--max),calc(100% - 64px));margin:auto;padding:38px 0;display:flex;justify-content:space-between;gap:30px;color:var(--muted);font-size:.73rem}
.footer strong{color:var(--navy);letter-spacing:.14em}
.footer p{margin:5px 0 0}
.footer-links{display:flex;gap:20px}
.media-slot{position:relative;overflow:hidden}
.media-slot img:not([src$=".jpg"]){object-fit:cover}
.media-slot.empty{background:linear-gradient(135deg,#dfe8ed,#f2f5f6)}
.media-slot.empty:after{content:attr(data-label);position:absolute;inset:auto 14px 14px auto;background:rgba(16,45,66,.88);color:white;padding:7px 10px;font-size:.65rem;letter-spacing:.04em}
@media(max-width:950px){
  .header-inner{width:calc(100% - 40px)}
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--cream);padding:10px 20px 18px;border-bottom:1px solid var(--line);flex-direction:column;gap:0}
  .nav.open{display:flex}
  .nav a{padding:12px 0}
  .hero-inner,.people,.profile,.property-section,.contact,.intro-photo,.work-section{grid-template-columns:1fr}
  .hero-inner{width:calc(100% - 40px);gap:50px}
  .hero-photo>img{height:600px}
  .intro-photo{width:calc(100% - 40px);gap:50px}
  .people{gap:55px}
  .office-grid{grid-template-columns:1fr 1fr}
  .work-copy{padding:75px max(32px,calc((100vw - var(--max))/2))}
  .contact{gap:45px}
  .contact-image{max-width:500px}
}
@media(max-width:600px){
  .header-inner{min-height:74px}
  .brand{min-width:0}
  .logo{max-width:145px}
  .brand-fallback{font-size:.82rem}
  .hero{padding:55px 0 60px}
  .hero h1{font-size:2.4rem}
  .hero-photo>img{height:470px}
  .trust{grid-template-columns:1fr}
  .trust div{min-height:74px;border-right:0;border-bottom:1px solid var(--line)}
  .intro-photo,.section,.profile{width:calc(100% - 40px);padding:85px 0}
  .intro-photo-image,.people-photo,.profile-image{height:470px}
  .section-head,.office-heading{display:block}
  .section-head>p{margin-top:18px}
  .service-grid{grid-template-columns:1fr}
  .service-grid article{min-height:250px}
  .service-grid h3{margin-top:55px}
  .office{padding:75px 20px}
  .office-grid{grid-template-columns:1fr;grid-template-rows:300px 220px 220px 220px}
  .office-grid .office-main{grid-row:auto}
  .office-grid .office-wide{grid-column:auto}
  .office-grid .office-main,
  .office-grid .office-wide,
  .office-grid .office-small{
  grid-column:auto;
  grid-row:auto;
}
  .work-image{min-height:430px}
  .work-section{min-height:0}
  .property-section{padding:80px 20px}
  .property-number{display:none}
  .contact{padding:80px 20px}
  .footer{width:calc(100% - 40px);flex-direction:column}
}
