:root {
  --navy: #123b63;
  --navy-dark: #0d2946;
  --muted: #66727d;
  --paper: #ffffff;
  --surface: #f5f7f9;
  --gold: #c5a462;
  --line: rgba(18, 59, 99, 0.14);
  --white: #fff;
  --max-width: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--navy-dark);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 96px;
  padding: 12px max(4vw, calc((100vw - var(--max-width)) / 2));
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.brand { display: block; text-decoration: none; }
.brand-logo { display: block; width: clamp(310px, 34vw, 470px); height: auto; }
.site-nav { display: flex; gap: clamp(14px, 2vw, 28px); align-items: center; }
.site-nav > a, .site-footer a { font-size: .7rem; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.site-nav > a:hover, .site-nav > a:focus-visible, .site-footer a:hover, .site-footer a:focus-visible { color: var(--gold); }
.language-flags {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 4px;
  padding-left: 18px;
  border-left: 1px solid var(--line);
}
.flag-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 31px;
  height: 31px;
  border: 1px solid transparent;
  border-radius: 50%;
  text-decoration: none;
  font-size: 1.05rem;
  line-height: 1;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}
.flag-link:hover, .flag-link:focus-visible {
  border-color: var(--gold);
  background: #fffaf0;
  transform: translateY(-1px);
}
.flag-link.is-active {
  border-color: var(--gold);
  background: rgba(197,164,98,.09);
}
.menu-toggle { display: none; }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
  gap: clamp(48px, 7vw, 110px);
  min-height: calc(100vh - 96px);
  max-width: var(--max-width);
  margin: 0 auto;
  padding: clamp(70px, 10vh, 120px) 0 40px;
  align-items: center;
  overflow: hidden;
}
.eyebrow, .section-number, .card-index { margin: 0 0 22px; color: var(--gold); font-size: .72rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; line-height: 1.05; }
h1 { max-width: 850px; margin-bottom: 28px; font-size: clamp(3.15rem, 6.6vw, 6.6rem); letter-spacing: -.045em; color: var(--navy); }
h2 { margin-bottom: 0; font-size: clamp(2.2rem, 4vw, 4rem); letter-spacing: -.03em; color: var(--navy); }
h3 { margin-bottom: 18px; font-size: 1.55rem; color: var(--navy); }
.hero-copy { max-width: 690px; margin-bottom: 38px; color: var(--muted); font-size: clamp(1.05rem,1.45vw,1.22rem); }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.button { display:inline-flex; padding:14px 22px; text-decoration:none; }
.button-primary { background:var(--navy); color:var(--white); }
.button-primary:hover,.button-primary:focus-visible { background:var(--gold); color:var(--navy-dark); }
.text-link { text-underline-offset:5px; text-decoration-thickness:1px; }
.hero-portrait { display:flex; align-self:stretch; align-items:flex-end; justify-content:center; min-height:560px; }
.portrait-photo {
  display:block;
  width:min(100%,380px);
  height:auto;
  max-height:620px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 18px 26px rgba(13,41,70,.10));
  image-rendering:auto;
  transform:translateZ(0);
}

.section { display:grid; grid-template-columns:minmax(210px,1fr) minmax(0,3fr); gap:clamp(50px,8vw,120px); max-width:var(--max-width); margin:0 auto; padding:clamp(90px,11vw,150px) 0; border-top:1px solid var(--line); }
.section-heading { display:flex; flex-direction:column; justify-content:space-between; }
.section-content { max-width:820px; font-size:1.05rem; }
.section-content > p:not(.lead) { max-width:700px; color:var(--muted); }
.lead { margin-bottom:30px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.8rem,3.4vw,3.2rem); line-height:1.2; letter-spacing:-.02em; color:var(--navy); }
.expertise-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:none; }
.expertise-card { min-height:315px; padding:28px; border:1px solid var(--line); background:#fff; }
.expertise-card + .expertise-card { border-left:0; }
.expertise-card p:last-child { color:var(--muted); font-size:.95rem; }
.card-index { margin-bottom:65px; }
.section-highlight { background:var(--surface); box-shadow:50vw 0 var(--surface),-50vw 0 var(--surface); border-top:0; }
.section-aesthetic { background:#fff; }
.aesthetic-list { margin-top:48px; border-top:1px solid var(--line); }
.aesthetic-list article { display:grid; grid-template-columns:52px 1fr; gap:18px; align-items:baseline; padding:22px 0; border-bottom:1px solid var(--line); }
.aesthetic-list span { color:var(--gold); font-size:.7rem; letter-spacing:.12em; }
.aesthetic-list h3 { margin:0; font-size:clamp(1.4rem,2.3vw,2rem); }
.section-research { color:#fff; background:var(--navy-dark); box-shadow:50vw 0 var(--navy-dark),-50vw 0 var(--navy-dark); border-top:0; }
.section-research h2,.section-research .lead { color:#fff; }
.section-research .section-number { color:var(--gold); }
.section-research .section-content > p:not(.lead) { color:#c6d0da; }
.research-topics { display:flex; gap:10px; margin-top:40px; flex-wrap:wrap; }
.research-topics span { padding:8px 13px; border:1px solid rgba(255,255,255,.28); border-radius:999px; font-size:.78rem; }
.research-photo-wrap { margin:48px 0 0; max-width:520px; }
.research-photo { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 38%; border:1px solid rgba(255,255,255,.18); }
.research-photo-wrap figcaption { margin-top:12px; color:#c6d0da; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.section-contact { min-height:500px; }
.contact-link { display:inline-block; margin-top:26px; padding-bottom:8px; border-bottom:1px solid currentColor; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.3rem,2.5vw,2.2rem); text-decoration:none; color:var(--navy); }
.contact-link:hover,.contact-link:focus-visible { color:var(--gold); }
.site-footer { display:flex; justify-content:space-between; max-width:var(--max-width); margin:0 auto; padding:28px 0 44px; border-top:1px solid var(--line); color:var(--muted); font-size:.78rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width:1280px){ .hero,.section,.site-footer{margin-inline:5vw;} }
@media (max-width:980px){ .brand-logo{width:300px;} .site-nav{gap:12px;} .site-nav > a{font-size:.62rem;} .language-flags{padding-left:12px;gap:4px;} }
@media (max-width:820px){
  .site-header{min-height:80px;} .brand-logo{width:250px;}
  .menu-toggle{display:grid;gap:6px;width:42px;height:42px;padding:12px 8px;background:transparent;border:0;cursor:pointer;}
  .menu-toggle span:not(.sr-only){display:block;height:1px;background:var(--navy);transition:transform 180ms ease;}
  .menu-toggle[aria-expanded="true"] span:nth-last-child(2){transform:translateY(3.5px) rotate(45deg);} .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg);}
  .site-nav{position:absolute;top:80px;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;gap:0;padding:10px 5vw 24px;background:#fff;border-bottom:1px solid var(--line);}
  .site-nav.is-open{display:flex;} .site-nav > a{padding:12px 0;font-size:.72rem;}
  .language-flags{margin-top:10px;margin-left:0;padding:12px 0 0;border-left:0;border-top:1px solid var(--line);width:100%;}
  .flag-link{width:34px;height:34px;font-size:1.15rem;}
  .hero{grid-template-columns:1fr;gap:35px;min-height:auto;padding-top:70px;} .hero-portrait{min-height:0;justify-content:center;} .portrait-photo{width:min(100%,320px);max-height:none;}
  h1{font-size:clamp(3rem,14vw,5.4rem);} .section{grid-template-columns:1fr;gap:46px;} .section-heading{display:block;} .section-number{margin-bottom:12px;}
  .expertise-grid{grid-template-columns:1fr;} .expertise-card{min-height:260px;} .expertise-card + .expertise-card{border-left:1px solid var(--line);border-top:0;} .card-index{margin-bottom:50px;}
  .research-photo-wrap{max-width:100%;}
  .site-footer{gap:20px;flex-direction:column;}
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *,*::before,*::after{transition-duration:.01ms!important;} }
