
:root{
  --navy:#14233a;
  --cream:#f7f3eb;
  --gold:#c7a363;
  --text:#526078;
  --line:#e9e2d6;
  --white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--navy);
  font-family:"DM Sans",Arial,sans-serif;
  background:#fff;
}
a{text-decoration:none;color:inherit}
.shell{width:min(1500px,calc(100% - 120px));margin:auto}

.header{
  height:100px;
  display:flex;
  align-items:center;
  background:white;
  border-bottom:1px solid #f1f1f1;
}
.nav{
  display:grid;
  grid-template-columns:1fr auto auto;
  align-items:center;
  gap:56px;
}
.logo-link img{
  display:block;
  width:360px;
  max-width:100%;
  height:72px;
  object-fit:contain;
  object-position:left center;
}
.links{display:flex;gap:42px;align-items:center}
.links a{
  position:relative;
  font-size:16px;
  color:#4f5d72;
}
.links a.active:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-17px;
  height:1px;
  background:var(--gold);
}
.top-cta{
  border:1.3px solid var(--navy);
  border-radius:999px;
  padding:15px 29px;
  font-weight:600;
  white-space:nowrap;
}
.menu{display:none;background:none;border:0;font-size:26px}

.hero{background:#fff}
.hero-grid{
  min-height:530px;
  display:grid;
  grid-template-columns:59% 41%;
}
.hero-copy{
  padding:58px 74px 52px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.eyebrow{
  margin:0 0 22px;
  color:var(--gold);
  font-size:14px;
  font-weight:600;
  letter-spacing:.19em;
}
h1,h2,h3{
  font-family:"Playfair Display",Georgia,serif;
  font-weight:500;
}
h1{
  margin:0 0 22px;
  font-size:clamp(52px,4.55vw,78px);
  line-height:1.02;
  letter-spacing:-.03em;
}
.lede{
  max-width:780px;
  margin:0 0 30px;
  color:#66748a;
  font-size:18px;
  line-height:1.55;
}
.primary{
  width:max-content;
  min-height:62px;
  padding:0 34px;
  border-radius:999px;
  background:var(--navy);
  color:white;
  display:inline-flex;
  align-items:center;
  gap:26px;
  font-weight:600;
  font-size:17px;
}
.primary span{font-size:26px;font-weight:300}
.trust{
  margin-top:30px;
  display:flex;
  align-items:center;
  gap:0;
  color:#59667b;
  font-size:14px;
}
.trust>div{
  display:flex;
  align-items:center;
  gap:11px;
  padding:0 25px;
  border-right:1px solid #e3d9c7;
}
.trust>div:first-child{padding-left:0}
.trust>div:last-child{border-right:0}
.trust-icon{
  color:var(--gold);
  font-size:25px;
  line-height:1;
}
.hero-image{
  min-height:530px;
  background-image:url("assets/hero-still-life.jpg");
  background-size:cover;
  background-position:center center;
}

.services{
  background:var(--cream);
  padding:34px 0 70px;
}
.services-head{text-align:center;margin-bottom:28px}
.services-head h2{
  margin:0 0 6px;
  font-size:46px;
}
.services-head p{
  margin:0;
  color:#66748a;
  font-size:16px;
}
.cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.card{
  min-height:160px;
  padding:28px;
  display:grid;
  grid-template-columns:72px 1fr;
  gap:22px;
  background:white;
  border:1px solid #eee7dd;
  border-radius:18px;
}
.round-icon{
  width:64px;height:64px;border-radius:50%;
  display:grid;place-items:center;
  background:#f4eee4;
  color:#a57e42;
  font-size:27px;
}
.card h3{font-size:25px;margin:5px 0 12px}
.card p{margin:0;color:#69758a;line-height:1.55}

.about{padding:88px 0}
.about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
}
.about h2,.resources h2{
  font-size:50px;
  line-height:1.12;
  margin:0;
}
.about p{color:#66748a;font-size:17px;line-height:1.7}

.resources{
  background:var(--navy);
  color:#fff;
  padding:78px 0;
}
.resources-inner{max-width:900px;text-align:center}
.resources .eyebrow{color:#dbc28e}
.resources p{color:#d6deea;font-size:17px}
.primary.light{background:#f8f4ed;color:var(--navy);margin-top:14px}

footer{background:#0f1a2c;color:#cdd4df;padding:24px 0;font-size:13px}
.footer-row{display:flex;justify-content:space-between;gap:20px}

@media(max-width:1050px){
  .shell{width:min(100% - 42px,1500px)}
  .links{display:none}
  .menu{display:block}
  .nav{grid-template-columns:1fr auto auto;gap:18px}
  .logo-link img{width:300px}
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{padding:55px 0}
  .hero-image{min-height:430px}
  .cards{grid-template-columns:1fr}
}
@media(max-width:650px){
  .header{height:82px}
  .logo-link img{width:230px;height:58px}
  .top-cta{display:none}
  .hero-copy{padding:42px 0}
  h1{font-size:46px}
  h1 br{display:none}
  .lede{font-size:16px}
  .primary{font-size:15px;padding:0 23px;min-height:56px}
  .trust{display:grid;gap:10px}
  .trust>div{padding:0;border:0}
  .hero-image{min-height:330px}
  .services{padding-top:38px}
  .services-head h2{font-size:40px}
  .card{grid-template-columns:56px 1fr;padding:22px}
  .round-icon{width:52px;height:52px}
  .card h3{font-size:21px}
  .about-grid{grid-template-columns:1fr;gap:28px}
  .about h2,.resources h2{font-size:40px}
  .footer-row{flex-direction:column}
}



/* Premium contact section */
.contact{
  padding:100px 0 96px;
  background:#fbfaf7;
  border-top:1px solid #f0ebe2;
}
.contact-premium{
  max-width:980px;
  text-align:center;
}
.contact-premium .eyebrow{
  margin-bottom:20px;
}
.contact-premium h2{
  margin:0 auto 18px;
  font-size:clamp(42px,4vw,60px);
  line-height:1.08;
  letter-spacing:-.02em;
}
.contact-intro{
  max-width:700px;
  margin:0 auto 30px;
  color:#66748a;
  font-size:17px;
  line-height:1.65;
}
.contact-primary{
  margin:0 auto;
}
.contact-divider{
  display:flex;
  align-items:center;
  gap:20px;
  max-width:720px;
  margin:48px auto 25px;
  color:#8a92a0;
  font-size:13px;
}
.contact-divider:before,
.contact-divider:after{
  content:"";
  height:1px;
  flex:1;
  background:#e4ded3;
}
.contact-options{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:0;
  max-width:850px;
  margin:0 auto;
}
.contact-option{
  appearance:none;
  -webkit-appearance:none;
  width:33.333%;
  min-height:82px;
  padding:14px 28px;
  border:0;
  border-right:1px solid #e3d9c8;
  background:transparent;
  color:var(--navy);
  font:inherit;
  text-align:center;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
}
.contact-option:last-child{border-right:0}
.contact-option:hover strong{text-decoration:underline;text-underline-offset:4px}
.contact-option-label{
  color:var(--gold);
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
}
.contact-option strong{
  font-size:14px;
  font-weight:500;
  overflow-wrap:anywhere;
}
.qr-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.qr-modal.is-open{display:flex}
.qr-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(12,25,44,.58);
  backdrop-filter:blur(3px);
}
.qr-modal-card{
  position:relative;
  z-index:1;
  width:min(430px,100%);
  padding:44px 44px 36px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 80px rgba(11,24,42,.22);
  text-align:center;
}
.qr-modal-card .eyebrow{margin-bottom:10px}
.qr-modal-card h2{
  margin:0 0 24px;
  font-size:32px;
}
.qr-modal-card img{
  width:230px;
  height:230px;
  object-fit:contain;
  display:block;
  margin:0 auto 20px;
  background:#fff;
}
.qr-modal-card p:last-child{
  margin:0 auto;
  max-width:310px;
  color:#68758a;
  line-height:1.55;
  font-size:14px;
}
.qr-modal-close{
  position:absolute;
  top:13px;
  right:17px;
  width:34px;
  height:34px;
  border:0;
  background:transparent;
  color:#68758a;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
body.modal-open{overflow:hidden}

@media(max-width:750px){
  .contact{padding:72px 0}
  .contact-premium h2 br{display:none}
  .contact-intro{font-size:16px}
  .contact-divider{margin-top:38px}
  .contact-options{
    flex-direction:column;
    max-width:480px;
  }
  .contact-option{
    width:100%;
    min-height:72px;
    border-right:0;
    border-bottom:1px solid #e3d9c8;
  }
  .contact-option:last-child{border-bottom:0}
  .qr-modal-card{padding:40px 24px 30px}
  .qr-modal-card img{width:210px;height:210px}
}

.lang-switcher{display:flex;align-items:center;gap:4px;margin-left:8px;padding:4px;border:1px solid rgba(23,36,59,.12);border-radius:999px;background:rgba(255,255,255,.85)}
.lang-switcher a{padding:6px 9px;border-radius:999px;font-size:11px;font-weight:600;color:#5f6e83;text-decoration:none;white-space:nowrap}
.lang-switcher a.active{background:#17243B;color:#fff}
@media(max-width:900px){.lang-switcher{margin-left:0}}


/* Visible language switcher v5.1 */
.lang-switcher{
  display:flex;
  align-items:center;
  gap:3px;
  margin-left:auto;
  margin-right:10px;
  padding:4px;
  border:1px solid #e4ded3;
  border-radius:999px;
  background:#fff;
  flex-shrink:0;
}
.lang-switcher a{
  display:block;
  padding:6px 9px;
  border-radius:999px;
  color:#68758a;
  font-size:11px;
  font-weight:600;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
}
.lang-switcher a:hover{
  color:#17243B;
}
.lang-switcher a.active{
  background:#17243B;
  color:#fff;
}
@media(max-width:1050px){
  .lang-switcher{margin-left:0}
}
@media(max-width:850px){
  .lang-switcher{
    order:3;
    margin-left:auto;
    margin-right:8px;
  }
  .lang-switcher a{
    padding:5px 7px;
    font-size:10px;
  }
}


/* v5.2 — header layout fix */
.header .nav{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:26px;
}
.header .logo-link{
  min-width:0;
}
.header .logo-link img{
  width:300px;
  max-width:100%;
}
.header .links{
  justify-self:end;
  gap:34px;
}
.header .lang-switcher{
  margin:0;
  justify-self:end;
}
.header .top-cta{
  justify-self:end;
  padding:13px 22px;
}
.header .menu{
  display:none;
}

@media(max-width:1180px){
  .header .nav{
    grid-template-columns:auto 1fr auto auto;
    gap:16px;
  }
  .header .logo-link img{width:250px}
  .header .links{gap:22px}
  .header .links a{font-size:14px}
  .header .top-cta{padding:12px 18px;font-size:14px}
}
@media(max-width:1050px){
  .header .links{display:none}
  .header .nav{
    grid-template-columns:1fr auto auto auto;
  }
  .header .menu{
    display:block;
  }
}
@media(max-width:650px){
  .header .nav{
    grid-template-columns:1fr auto auto;
    gap:8px;
  }
  .header .top-cta{display:none}
  .header .menu{display:block}
  .header .logo-link img{width:205px}
  .header .lang-switcher a{padding:5px 6px;font-size:9px}
}

/* v5.2 — About + consultant bios */
.about{
  padding:94px 0 100px;
  background:#fff;
}
.about-intro{
  max-width:960px;
  margin:0 auto 54px;
  text-align:center;
}
.about-intro h2{
  margin:0 auto 24px;
  font-size:clamp(40px,4vw,58px);
  line-height:1.1;
}
.about-intro p:not(.eyebrow){
  max-width:850px;
  margin:0 auto 14px;
  color:#66748a;
  font-size:17px;
  line-height:1.75;
}
.consultants{
  max-width:1100px;
  margin:0 auto;
}
.consultants-label{
  text-align:center;
  margin-bottom:22px;
}
.consultant-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.consultant-card{
  position:relative;
  min-height:270px;
  padding:34px 36px 32px;
  border:1px solid #e9e1d5;
  border-radius:20px;
  background:#fbfaf7;
}
.consultant-mark{
  margin-bottom:20px;
  color:#c6a66a;
  font-size:13px;
  font-weight:600;
  letter-spacing:.18em;
}
.consultant-card h3{
  margin:0 0 6px;
  color:#17243B;
  font-size:29px;
}
.consultant-credential{
  margin:0 0 18px !important;
  color:#c09a57 !important;
  font-size:14px !important;
  font-weight:600;
  letter-spacing:.03em;
}
.consultant-card p:last-child{
  margin:0 !important;
  color:#66748a;
  font-size:16px;
  line-height:1.7;
}
@media(max-width:800px){
  .consultant-grid{grid-template-columns:1fr}
  .about-intro{text-align:left}
  .consultants-label{text-align:left}
}

.focus-line{
  margin-top:20px !important;
  color:#17243B !important;
}
.focus-line strong{
  font-weight:600;
}


/* v5.5 mobile heading spacing fix
   Mobile hides selected <br> tags, so the HTML now includes a literal
   following space to prevent words from joining together. */
@media(max-width:650px){
  .hero h1,
  .contact-premium h2{
    word-spacing:normal;
  }
}


/* v5.6 mobile drawer menu */
.mobile-menu-panel{
  position:fixed;
  inset:0;
  z-index:1000;
  visibility:hidden;
  pointer-events:none;
}
.mobile-menu-panel.is-open{
  visibility:visible;
  pointer-events:auto;
}
.mobile-menu-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,26,44,.28);
  opacity:0;
  transition:opacity .22s ease;
}
.mobile-menu-panel.is-open .mobile-menu-backdrop{
  opacity:1;
}
.mobile-menu-drawer{
  position:absolute;
  top:0;
  right:0;
  width:min(86vw,360px);
  height:100%;
  padding:26px 24px 30px;
  background:#fff;
  box-shadow:-18px 0 48px rgba(15,26,44,.14);
  transform:translateX(100%);
  transition:transform .24s ease;
  display:flex;
  flex-direction:column;
}
.mobile-menu-panel.is-open .mobile-menu-drawer{
  transform:translateX(0);
}
.mobile-menu-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:18px;
  border-bottom:1px solid #eee7dd;
  color:#17243B;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
}
.mobile-menu-close{
  appearance:none;
  border:0;
  background:none;
  color:#17243B;
  font-size:34px;
  line-height:1;
  padding:0 2px;
}
.mobile-menu-links{
  display:flex;
  flex-direction:column;
  padding:18px 0 10px;
}
.mobile-menu-links a{
  padding:16px 2px;
  border-bottom:1px solid #f0ebe2;
  color:#17243B;
  font-size:19px;
  font-weight:500;
}
.mobile-menu-cta{
  margin-top:auto;
  min-height:56px;
  padding:0 20px;
  border-radius:999px;
  background:#17243B;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  font-size:14px;
  font-weight:600;
}
.mobile-menu-cta span{
  font-size:22px;
}
body.mobile-menu-open{
  overflow:hidden;
}

@media(min-width:1051px){
  .mobile-menu-panel{display:none}
}
