:root {
  --bg:#0b0b0f;
  --surface:#141419;
  --surface-alt:#0f0f14;
  --text-strong:#f2efe8;
  --text:#d6d1c6;
  --muted:#9d9687;
  --primary:#c99a3f;
  --primary-soft:#dcb76a;
  --primary-contrast:#0b0b0f;
  --border:rgba(255,255,255,0.08);
  --shadow:0 18px 38px rgba(0,0,0,0.35);
  --header-bg:rgba(11,11,15,0.86);
  --header-shadow:0 10px 30px rgba(0,0,0,0.28);
  --hero-overlay:linear-gradient(to top, rgba(0,0,0,.72) 18%, rgba(0,0,0,.35) 48%, rgba(0,0,0,0) 70%);
  --media-overlay:linear-gradient(180deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.82) 70%, rgba(0,0,0,.9) 100%);
  --hero-text:#f2efe8;
  --hero-text-muted:rgba(233,230,223,0.95);
  --footer-bg:linear-gradient(180deg, rgba(14,14,18,0.82), rgba(14,14,18,0.96));
  --pattern-opacity:0.2;
  --pattern-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='104' viewBox='0 0 120 104'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.14)' stroke-width='1'%3E%3Cpath d='M30 2 L90 2 L118 52 L90 102 L30 102 L2 52 Z'/%3E%3Cpath d='M-30 2 L30 2 L58 52 L30 102 L-30 102 L-58 52 Z'/%3E%3Cpath d='M30 -50 L90 -50 L118 0 L90 50 L30 50 L2 0 Z'/%3E%3C/g%3E%3C/svg%3E");
  --panel:var(--surface);
  --panel-alt:var(--surface-alt);
  --line:var(--border);
  --gold:var(--primary);
  --gold-soft:var(--primary-soft);
  --focus-ring:rgba(201,154,63,0.6);
  --soft-bg:rgba(255,255,255,0.04);
  --nav-hover:rgba(255,255,255,0.04);
  --container-pad:clamp(14px, 3vw, 56px);
  --section-pad:clamp(64px, 8vw, 108px);
  --section-pad-bottom:clamp(56px, 7vw, 88px);
  --radius:clamp(14px, 2vw, 18px);
  --gap:clamp(16px, 2.4vw, 26px);
  --header-height:96px;
  --fs-body:clamp(0.98rem, 0.35vw + 0.9rem, 1.05rem);
  --fs-h1:clamp(2.35rem, 4vw + 1.2rem, 4.4rem);
  --fs-h2:clamp(1.95rem, 2.8vw + 1rem, 3.2rem);
  --fs-h3:clamp(1.2rem, 1.2vw + 1rem, 1.5rem);
}

html[data-theme="light"] {
  --bg:#f6f4ef;
  --surface:#ffffff;
  --surface-alt:#f0ece4;
  --text-strong:#1b1c1f;
  --text:#2d2f33;
  --muted:#5f626b;
  --primary:#b17c22;
  --primary-soft:#d3a451;
  --primary-contrast:#ffffff;
  --border:rgba(15,23,42,0.12);
  --shadow:0 14px 28px rgba(15,23,42,0.12);
  --header-bg:rgba(246,244,239,0.94);
  --header-shadow:0 10px 26px rgba(15,23,42,0.12);
  --hero-overlay:linear-gradient(to top, rgba(12,15,20,.45) 18%, rgba(12,15,20,.25) 48%, rgba(12,15,20,0) 70%);
  --media-overlay:linear-gradient(180deg, rgba(12,15,20,.45) 0%, rgba(12,15,20,.62) 70%, rgba(12,15,20,.75) 100%);
  --hero-text:#ffffff;
  --hero-text-muted:rgba(255,255,255,0.88);
  --footer-bg:linear-gradient(180deg, rgba(240,236,228,0.92), rgba(230,225,214,0.98));
  --pattern-opacity:0.16;
  --pattern-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='104' viewBox='0 0 120 104'%3E%3Cg fill='none' stroke='rgba(15,23,42,0.18)' stroke-width='1'%3E%3Cpath d='M30 2 L90 2 L118 52 L90 102 L30 102 L2 52 Z'/%3E%3Cpath d='M-30 2 L30 2 L58 52 L30 102 L-30 102 L-58 52 Z'/%3E%3Cpath d='M30 -50 L90 -50 L118 0 L90 50 L30 50 L2 0 Z'/%3E%3C/g%3E%3C/svg%3E");
  --focus-ring:rgba(177,124,34,0.4);
  --soft-bg:rgba(15,23,42,0.05);
  --nav-hover:rgba(15,23,42,0.06);
  --cta-band-bg:linear-gradient(90deg, rgba(255,250,241,.98), rgba(245,236,221,.96));
  --cta-band-border-top:rgba(177,124,34,.24);
  --cta-band-border-bottom:rgba(15,23,42,.08);
  --cta-band-title:var(--text-strong);
}

html[data-theme="dark"] {
  color-scheme:dark;
}

html[data-theme="light"] {
  color-scheme:light;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

* { 
  box-sizing:border-box; 
}

html { 
  scroll-behavior:smooth; 
}

html, body {
  overflow-x:hidden;
}

html:not(.lang-ready) [data-i18n],
html:not(.lang-ready) [data-i18n-html] {
  visibility:visible;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Manrope', Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height:1.65;
  text-rendering:optimizeLegibility;
  letter-spacing:-0.01em;
  min-height:100%;
  position:relative;
  isolation:isolate;
  font-size:var(--fs-body);
}

body.menu-open {
  overflow:hidden;
}

body::before {
  content:"";
  position:fixed;
  inset:0;
  background-image:var(--pattern-image);
  background-size:120px 104px;
  background-repeat:repeat;
  opacity:var(--pattern-opacity);
  pointer-events:none;
  z-index:-1;
}

img {
  max-width:100%;
  height:auto;
}

a, button, input, textarea, select {
  font:inherit;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline:2px solid var(--focus-ring);
  outline-offset:3px;
}

h1,h2,h3,h4 {
  margin:0 0 .85rem;
  color:var(--text-strong);
  font-family:'Libre Baskerville', "Times New Roman", serif;
  line-height:1.12;
  text-wrap:balance;
  letter-spacing:-0.015em;
}

h1 {
  font-size:var(--fs-h1);
  letter-spacing:-.6px;
  font-weight:700;
}

h2 {
  font-size:var(--fs-h2);
  font-weight:700;
}

h3 {
  font-size:var(--fs-h3);
  letter-spacing:-0.01em;
}

p, li, small { 
  color:var(--text); 
}

.container {
  max-width:1200px;
  margin:0 auto;
  padding:0 var(--container-pad);
}

main { 
  padding-top:var(--header-height, 96px);
  transition:padding-top .24s ease;
}

.section {
  padding:var(--section-pad) 0 var(--section-pad-bottom);
  background:var(--bg);
}

.section.alt { 
  background:var(--panel-alt); 
}

.section-head {
  margin-bottom:28px;
}

.section-head.center { 
  text-align:center; 
  max-width:860px;
  margin:0 auto 32px; 
}

.center {
  text-align:center;
}

.section-tag { 
  color:var(--muted); 
}

.site-header {
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:var(--header-bg);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px);
  box-shadow:var(--header-shadow);
  transition:padding .24s ease, column-gap .24s ease;
}

html[lang="es"] .site-header .container {
  column-gap:clamp(10px, 0.9vw, 18px);
}

html[lang="es"] .main-nav.desktop {
  gap:clamp(6px, 0.6vw, 10px);
}

html[lang="es"] .main-nav.desktop a {
  font-size:clamp(.85rem, .88vw, 1.12rem);
}

html[lang="en"] .main-nav.desktop a {
  font-size:clamp(.85rem, .88vw, 1.12rem);
}

html[lang="es"] .main-nav.desktop .contact-link {
  gap:6px;
  padding-left:4px;
}

.site-header .container {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto auto auto;
  align-items:center;
  column-gap:clamp(12px, 1.1vw, 24px);
  padding:clamp(12px, 1.5vw, 16px) var(--container-pad);
}

.site-header.is-elevated {
  box-shadow:0 16px 30px rgba(0,0,0,0.18);
}

.brand {
  text-decoration:none;
  color:var(--text-strong);
  font-weight:700;
  font-size:1rem;
  letter-spacing:.08em;
  display:inline-flex;
  align-items:center;
  gap:10px;
  justify-content:center;
  justify-self:start;
}

.brand img {
  height:clamp(56px, 6vw, 72px);
  width:auto;
  max-height:72px;
  max-width:clamp(190px, 15vw, 250px); 
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,0.25));
}

.main-nav.desktop {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(8px, 0.8vw, 14px);
  width:100%;
  margin-left:0;
  flex-wrap:nowrap;
  min-width:0;
}

@media (min-width:1440px) {
  .site-header .container {
    max-width:1680px;
    column-gap:clamp(18px, 1.2vw, 28px);
  }

  .main-nav.desktop {
    justify-content:center;
    gap:clamp(16px, 1vw, 28px);
  }

  .main-nav.desktop a {
    font-size:clamp(1.04rem, .9vw, 1.22rem);
    padding:8px 6px;
  }
}

.main-nav.desktop a {
  position:relative;
  text-decoration:none;
  color:var(--text);
  font-weight:600;
  font-size:clamp(0.95rem, .96vw, 1.18rem);
  letter-spacing:.01em;
  padding:6px 2px;
  transition:color .2s ease, opacity .2s ease;
  white-space:nowrap;
  line-height:1.2;
  flex:0 0 auto;
}

@media (max-width:1320px) and (min-width:1201px){
  .main-nav.desktop {
    gap:8px;
  }

  .main-nav.desktop a {
    font-size:1rem;
    padding:6px 2px;
  }
}

@media (max-width:1240px) and (min-width:1181px){
  .site-header .container {
    column-gap:10px;
  }

  .main-nav.desktop {
    gap:6px;
  }

  .main-nav.desktop a {
    font-size:0.92rem;
    padding:6px 1px;
  }
}

@media (max-width:1180px){
  .site-header .container {
    grid-template-columns:auto minmax(0, 1fr) auto auto;
  }

  .main-nav.desktop {
    display:none;
  }

  .main-nav.mobile {
    display:block;
  }

  .header-lang {
    display:none;
  }

  .menu-toggle {
    display:inline-flex;
  }
}

.main-nav.desktop a::after {
  content:"";
  position:absolute;
  left:0; bottom:-6px; right:0;
  height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
  opacity:.9;
}

.main-nav.desktop a:hover {
  color:var(--text-strong);
}

.main-nav.desktop a:hover::after { 
  transform:scaleX(1); 
}

.main-nav.desktop a[aria-current="page"] {
  color:var(--text-strong);
}

.main-nav.desktop a[aria-current="page"]::after {
  transform:scaleX(1);
}

.main-nav.desktop .contact-link[aria-current="page"] {
  color:var(--gold-soft);
  text-shadow:0 0 18px rgba(201,154,63,0.3);
}

.main-nav.desktop .contact-link {
  color:var(--gold);
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding-left:8px;
}

.main-nav.desktop .contact-link::after { 
  display:none; 
}

.contact-link .arrow {
  display:inline-block;
  transition:transform .25s ease, color .25s ease;
}

.contact-link:hover .arrow { 
  transform:translateX(6px); 
  color:var(--gold-soft); 
}

.theme-toggle {
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--surface);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 12px 24px rgba(0,0,0,0.18);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.theme-toggle svg {
  width:20px;
  height:20px;
  color:var(--text-strong);
}

.theme-toggle:hover {
  transform:translateY(-1px);
  border-color:rgba(201,154,63,0.45);
  box-shadow:0 14px 28px rgba(0,0,0,0.2);
}

html[data-theme="dark"] .theme-toggle .icon-sun,
html[data-theme="light"] .theme-toggle .icon-moon {
  display:none;
}

.menu-toggle {
  width:46px; 
  height:46px;
  display:none;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  background:var(--surface);
  cursor:pointer;
  border-radius:14px;
  box-shadow:0 12px 26px rgba(0,0,0,0.32);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
  position:relative;
}

.menu-toggle .menu-icon {
  width:24px;
  height:24px;
  display:block;
  color:var(--text-strong);
}

.menu-toggle span {
  width:20px; 
  height:2px;
  background:var(--text-strong);
  display:block;
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%, -6px);
  transition:transform .2s, opacity .2s, background-color .2s;
  opacity:0;
}

.menu-toggle span:nth-child(2){ transform:translate(-50%, 0); }
.menu-toggle span:nth-child(3){ transform:translate(-50%, 6px); }

.menu-toggle:hover {
  border-color:rgba(201,154,63,0.5);
  box-shadow:0 14px 28px rgba(0,0,0,0.36);
}

.menu-toggle.is-open {
  background-image:none;
}

.menu-toggle.is-open .menu-icon {
  opacity:0;
}

.menu-toggle.is-open span {
  opacity:1;
}

.menu-toggle.is-open span:nth-child(1){ transform:translate(-50%, 0) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2){ opacity:0; }
.menu-toggle.is-open span:nth-child(3){ transform:translate(-50%, 0) rotate(-45deg); }

.nav-backdrop {
  position:fixed; 
  inset:0; 
  z-index:90;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(6px);
  display:none; 
  pointer-events:none;
  opacity:0;
  transition:opacity .2s ease;
}

body.menu-open .nav-backdrop { 
  display:block; 
  pointer-events:auto;
  opacity:1;
}

.main-nav.mobile {
  display:none;
  position:fixed; 
  right:0; 
  top:var(--header-height, 70px);
  z-index:120;
  width:min(92vw,360px); 
  height:calc(100vh - var(--header-height, 70px));
  background:var(--surface);
  border-left:1px solid var(--line);
  box-shadow:var(--shadow);
  transform:translateX(100%);
  transition:transform .28s ease, opacity .28s ease;
  padding:16px 18px;
  opacity:0;
}

body.menu-open .main-nav.mobile { 
  transform:translateX(0);
  opacity:1;
}

.main-nav.mobile a {
  display:block;
  color:var(--text);
  text-decoration:none;
  font-size:1.05rem;
  font-weight:600;
  padding:.95rem .75rem;
  border-radius:10px;
  transition:background .2s ease, color .2s ease;
  min-height:44px;
}

.main-nav.mobile a:hover { 
  background:var(--nav-hover); 
}

.main-nav.mobile a[aria-current="page"] {
  background:var(--soft-bg);
  color:var(--text-strong);
  border:1px solid var(--line);
}

.lang-switch { 
  display:inline-flex; 
  gap:6px;
  align-items:center;
  margin-top:10px; 
}

.header-lang {
  margin-top:0;
  margin-left:6px;
}

.lang-switch button {
  border:1px solid rgba(220,183,106,0.4);
  background:linear-gradient(135deg, rgba(201,154,63,0.18), rgba(0,0,0,0.12));
  color:var(--gold-soft);
  padding:.45rem .9rem;
  border-radius:18px;
  cursor:pointer;
  font-weight:700;
  letter-spacing:.01em;
}

.lang-switch button.active {
  border-color:var(--gold);
  color:var(--primary-contrast);
  background:linear-gradient(135deg, rgba(201,154,63,0.92), rgba(220,183,106,0.85));
  box-shadow:0 8px 24px rgba(201,154,63,0.25);
}

.hero {
  position:relative;
  min-height:70vh;
  display:flex;
  align-items:flex-end;
  color:var(--hero-text);
  overflow:hidden;
}

.hero.compact {
  min-height:48vh;
}

.hero-uniform {
  min-height:clamp(300px, 48vh, 520px);
  align-items:center;
}

.hero-uniform .content {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:clamp(10px, 1.2vw, 16px);
  padding:clamp(52px, 11vh, 120px) 0;
  text-align:center;
}

.hero-uniform h1,
.hero-uniform .kicker,
.hero-uniform .hero-subtitle {
  margin:0;
}

.hero.compact .content {
  padding:0 0 10vh;
}

.hero-bg, .hero-media { 
  position:absolute; 
  inset:0; 
  z-index:0; 
}

.hero-bg img, .hero-media img { 
  width:100%; 
  height:100%; 
  object-fit:cover; 
  filter:contrast(1) brightness(.92);
  transform:scale(1.02);
}

.hero::after {
  content:"";
  position:absolute; 
  inset:0; 
  z-index:1; 
  pointer-events:none;
  background:var(--hero-overlay);
}

.hero-content, .hero .content {
  position:relative;
  z-index:3;
  padding:0 0 14vh;
  max-width:1100px;
  margin:0 auto;
  text-align:center;
}

.hero h1,
.hero h2 {
  color:var(--hero-text);
  text-shadow:0 8px 18px rgba(0,0,0,0.35);
}

.hero h1 {
  font-size:clamp(2.6rem, 4.2vw + 1.1rem, 4.6rem);
}

.hero p {
  margin:0 0 2rem;
  font-size:1.1rem;
  color:var(--hero-text-muted);
  text-wrap:balance;
}

.hero .hero-subtitle {
  margin:0;
  font-size:clamp(1.12rem, 0.8vw + 0.95rem, 1.34rem);
  color:var(--hero-text-muted);
  letter-spacing:.01em;
  text-transform:none;
  text-wrap:balance;
  text-shadow:0 8px 18px rgba(0,0,0,0.35);
}

.offices-hero {
  position:relative;
  min-height:78vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  overflow:hidden;
}

.offices-media {
  position:absolute;
  inset:0;
  z-index:0;
}

.offices-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:contrast(1.05) brightness(.9);
}

.offices-gradient {
  position:absolute;
  inset:0;
  background:var(--media-overlay);
  z-index:1;
}

.offices-wrap {
  position:relative;
  z-index:2;
  display:flex;
  justify-content:center;
  text-align:center;
  padding:140px 56px 120px;
}

.offices-card {
  max-width:740px;
  display:grid;
  gap:18px;
}

.offices-card h2 {
  color:var(--hero-text);
  text-shadow:0 8px 18px rgba(0,0,0,0.35);
}

.offices-card .kicker {
  color:#fff;
  letter-spacing:.03em;
  font-size:1.05rem;
  text-shadow:0 8px 18px rgba(0,0,0,0.35);
}

.pill-group {
  display:inline-flex;
  gap:12px;
  justify-content:center;
}

.pill {
  border:1px solid rgba(255,255,255,.5);
  background:rgba(0,0,0,.45);
  color:#fdfaf3;
  padding:.65rem 1.8rem;
  border-radius:999px;
  font-weight:700;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
  min-height:44px;
}

.pill.active {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--primary-contrast);
}

.pill:hover:not(.active) {
  background:rgba(255,255,255,.12);
  transform:translateY(-1px);
}

.offices-address {
  margin:0;
  color:#fdfaf3;
  font-size:1.1rem;
  letter-spacing:.01em;
  text-shadow:0 8px 18px rgba(0,0,0,0.35);
}

.carousel-nav {
  display:flex;
  justify-content:center;
  gap:12px;
  margin-top:6px;
}

.nav-circle {
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.5);
  background:rgba(0,0,0,.4);
  color:#fdfaf3;
  font-size:1rem;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease, border-color .2s ease;
}

.nav-circle:hover {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--primary-contrast);
  transform:translateY(-1px);
}

.home-cta-band {
  margin-top:22px;
  background:var(--cta-band-bg);
  border-top:1px solid var(--cta-band-border-top);
  border-bottom:1px solid var(--cta-band-border-bottom);
}

.home-cta-content {
  min-height:132px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  text-align:center;
  flex-wrap:wrap;
}

.home-cta-content h2 {
  margin:0;
  color:var(--cta-band-title);
  font-size:clamp(1.3rem, 2.2vw, 1.85rem);
  font-style:italic;
}

.btn, .btn-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-decoration:none;
  font-weight:700;
  border-radius:999px;
  border:1px solid transparent;
  transition:transform .25s, box-shadow .25s, background .25s, border-color .25s;
  min-height:44px;
}

.btn { 
  color:var(--text-strong); 
  padding:.85rem 1.3rem; 
  border-color:var(--line); 
  background:var(--soft-bg);
}

.btn:hover { 
  border-color:var(--gold); 
  transform:translateY(-1px); 
}

.btn-cta {
  background:var(--gold);
  color:var(--primary-contrast);
  padding:.95rem 1.7rem;
  box-shadow:0 18px 32px rgba(0,0,0,.32);
  letter-spacing:.01em;
}

.btn-cta:hover { 
  background:var(--gold-soft); 
  transform:translateY(-2px); 
}

.grid-3 { 
  display:grid; 
  grid-template-columns:repeat(3,1fr); 
  gap:var(--gap);
}

.grid-2 { 
  display:grid; 
  grid-template-columns:repeat(2,1fr);
  gap:var(--gap);
  align-items:stretch; 
}

.grid-2 > .card,
.grid-3 > .card {
  height:100%;
}

.trade-editorial {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:32px;
  align-items:stretch;
  position:relative;
}

.trade-column {
  position:relative;
  display:grid;
  gap:18px;
  grid-template-rows:minmax(0, 1fr) auto;
}

.trade-column .card {
  height:100%;
}


.trade-card,
.commitment-card {
  background:linear-gradient(135deg, rgba(201,154,63,0.08), rgba(20,20,28,0.95));
  border-color:rgba(201,154,63,0.25);
}

.trade-card::after,
.commitment-card::after {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 10% 10%, rgba(201,154,63,0.18), transparent 45%);
  pointer-events:none;
  opacity:.65;
}

.trade-divider {
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
}

.trade-divider span {
  height:1px;
  flex:1;
  background:linear-gradient(90deg, rgba(201,154,63,0), rgba(201,154,63,0.6), rgba(201,154,63,0));
}

.trade-glow {
  position:absolute;
  inset:auto 12% -22% 12%;
  height:140px;
  background:radial-gradient(circle, rgba(201,154,63,0.25), rgba(201,154,63,0));
  filter:blur(6px);
  pointer-events:none;
}

.trade-list li {
  position:relative;
  padding-left:1.4rem;
}

.trade-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.55rem;
  width:8px;
  height:8px;
  border-radius:50%;
  background:linear-gradient(140deg, rgba(201,154,63,0.9), rgba(220,183,106,0.45));
  box-shadow:0 0 12px rgba(201,154,63,0.4);
}

.grid-4 {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--gap);
}

.card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:clamp(18px, 2.4vw, 24px);
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}

.card-accent {
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(201,154,63,0.12), transparent 45%);
  opacity:.6;
  pointer-events:none;
}

.card-icon {
  position:absolute;
  top:20px;
  right:20px;
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:rgba(201,154,63,0.12);
  border:1px solid rgba(201,154,63,0.4);
  color:var(--gold-soft);
  box-shadow:0 12px 24px rgba(0,0,0,0.3);
}

.card-icon svg {
  width:22px;
  height:22px;
}

.card.is-clickable {
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.card.is-clickable:hover,
.card.is-clickable:focus-visible,
.card.is-clickable:focus-within {
  transform:translateY(-4px);
  box-shadow:0 22px 40px rgba(0,0,0,0.3);
  border-color:rgba(201,154,63,0.5);
}

.card.is-clickable.is-active {
  border-color:var(--gold);
  box-shadow:0 20px 34px rgba(201,154,63,0.22);
}

.mission-card {
  text-align:center;
  padding:26px 20px;
}

.mission-card p {
  margin:0;
  color:var(--text-strong);
  font-size:.95rem;
  line-height:1.5;
}

.mission-icon {
  width:50px;
  height:50px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
  border-radius:14px;
  border:1px solid rgba(201,154,63,0.45);
  background:rgba(201,154,63,0.1);
  color:var(--gold);
}

.mission-icon svg {
  width:28px;
  height:28px;
}

.card p:last-child { 
  margin-bottom:0; 
}

.card.img { 
  padding:0; 
  overflow:hidden; 
  position:relative; 
}

.card.img img { 
  width:100%; 
  height:360px; 
  object-fit:cover; 
  display:block; 
  filter:contrast(1.04); 
}

.card.img .overlay {
  position:absolute; 
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.6));
  color:#fff;
  display:flex; 
  flex-direction:column; 
  justify-content:flex-end;
  padding:18px;
}

.card.img h3 { 
  color:#fff; 
  margin:0 0 .35rem; 
}

.card.img p { 
  color:#e9e6df; 
  margin:0; 
}

.avatar-frame {
  width:100%;
  aspect-ratio: 3 / 4;
  border-radius:16px;
  background:linear-gradient(140deg, rgba(201,154,63,0.24), rgba(16,16,22,0.7));
  border:1px solid var(--border);
  box-shadow:0 14px 32px rgba(0,0,0,0.34);
  overflow:hidden;
  margin-bottom:16px;
  position:relative;
}

.avatar-frame::after {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(255,255,255,0.08), transparent 40%), radial-gradient(circle at 80% 10%, rgba(201,154,63,0.24), transparent 44%);
  pointer-events:none;
}

.avatar-frame img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  position:relative;
  z-index:1;
}

.person-name { 
  color:var(--gold); 
  letter-spacing:.02em; 
}

.list-tight { 
  margin:0; 
  padding-left:1.2rem; 
  display:grid; 
  gap:.5rem; 
}

.trade-stepper {
  list-style:none;
  padding:0;
  margin:0;
  counter-reset:step;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:clamp(1rem, 1.6vw, 1.4rem) clamp(1.2rem, 2.2vw, 2rem);
  position:relative;
}

.trade-stepper li {
  position:relative;
  padding-left:3.2rem;
}

.trade-stepper li::before {
  counter-increment:step;
  content:counter(step);
  position:absolute;
  left:0;
  top:.1rem;
  width:2.2rem;
  height:2.2rem;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(135deg, rgba(201,154,63,0.2), rgba(220,183,106,0.06));
  border:1px solid rgba(201,154,63,0.6);
  color:var(--gold-soft);
  font-weight:700;
  font-size:1rem;
  box-shadow:0 12px 24px rgba(0,0,0,0.28);
}

.trade-stepper li::after {
  content:"";
  position:absolute;
  left:1.05rem;
  top:2.6rem;
  width:1px;
  height:calc(100% - 1rem);
  background:linear-gradient(180deg, rgba(201,154,63,0.6), rgba(201,154,63,0));
}

.trade-stepper li:last-child::after {
  display:none;
}

.core-list {
  list-style:none;
  padding-left:0;
}

.core-list li {
  position:relative;
  padding-left:2.2rem;
}

.core-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.4rem;
  width:12px;
  height:12px;
  border-radius:50%;
  border:1px solid rgba(201,154,63,0.8);
  background:radial-gradient(circle at 30% 30%, rgba(201,154,63,0.8), rgba(201,154,63,0.1));
  box-shadow:0 0 12px rgba(201,154,63,0.35);
}

.commitment-pills {
  list-style:none;
  padding-left:0;
  display:flex;
  flex-wrap:wrap;
  gap:clamp(10px, 2vw, 12px);
}

.commitment-pills li {
  position:relative;
  padding:.65rem 1.1rem .65rem 2.4rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--panel-alt);
  box-shadow:0 12px 24px rgba(0,0,0,0.2);
}

.commitment-pills li::before {
  content:"";
  position:absolute;
  left:.8rem;
  top:50%;
  transform:translateY(-50%);
  width:14px;
  height:14px;
  border-radius:50%;
  border:1px solid rgba(201,154,63,0.8);
  background:linear-gradient(140deg, rgba(201,154,63,0.9), rgba(220,183,106,0.4));
  box-shadow:0 0 14px rgba(201,154,63,0.4);
}

.compliance-dashboard {
  display:grid;
  gap:30px;
}

.compliance-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:26px;
}

.compliance-detail-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:26px;
  align-items:stretch;
}

.compliance-dashboard .compliance-card {
  padding-top:56px;
}

.compliance-panel {
  background:var(--surface);
  border-color:var(--border);
}

.compliance-grid [data-animate] {
  opacity:1;
  transform:none;
}

.compliance-list li {
  position:relative;
  padding-left:1.4rem;
}

.compliance-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.55rem;
  width:8px;
  height:8px;
  border-radius:50%;
  background:linear-gradient(140deg, rgba(201,154,63,0.9), rgba(220,183,106,0.45));
  box-shadow:0 0 12px rgba(201,154,63,0.35);
}

.compliance-grid .span-full {
  grid-column:1 / -1;
}

.team-card p {
  display:grid;
  gap:14px;
}

.team-executive-section {
  padding-bottom:clamp(28px, 4vw, 46px);
}

.team-source-section {
  padding-top:clamp(24px, 3.4vw, 38px);
}

team-source-section .container {
  display:block;
}

.team-source-copy {
  max-width:none;
  margin:0 0 24px;
  padding-left:0;
}

.team-source-section .team-source-copy h2 {
  color:var(--gold);
  font-style:italic;
  font-size:clamp(1.95rem, 2.8vw, 2.45rem);
  margin:0 0 12px;
  transform:translateX(var(--team-source-title-offset, -10px));
}

.team-source-copy p {
  max-width:980px;
  font-size:clamp(1.02rem, 1.3vw, 1.14rem);
  line-height:1.78;
  margin:0;
}

.team-source-gallery {
  margin-left:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
}

.team-source-gallery img {
  width:100%;
  height:100%;
  max-height:320px;
  object-fit:cover;
  border-radius:18px;
  border:1px solid var(--border);
}

.btn-cta-small {
  min-height:36px;
  padding:.56rem 1.05rem;
  font-size:.9rem;
  gap:5px;
}

.chip-row {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.chip {
  display:inline-flex;
  align-items:center;
  padding:.4rem .9rem;
  border-radius:999px;
  border:1px solid rgba(201,154,63,0.5);
  background:rgba(201,154,63,0.1);
  color:var(--text-strong);
  font-weight:600;
  letter-spacing:.01em;
}

.chip-desc {
  color:var(--muted);
}

.sr-only {
  border:0;
  clip:rect(0 0 0 0);
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute;
  width:1px;
  white-space:nowrap;
}

.pillars-section {
  position:relative;
  overflow:hidden;
  color:#fff;
}

.pillars-media {
  position:absolute;
  inset:0;
  z-index:0;
}

.pillars-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:contrast(1.05) brightness(.8);
}

.pillars-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(5,5,10,.7) 0%, rgba(7,7,12,.86) 55%, rgba(8,8,12,.92) 100%);
  z-index:1;
}

.pillars-content {
  position:relative;
  z-index:2;
  text-align:center;
}

.pillars-content h2 {
  color:#fff;
  margin-bottom:26px;
}

.pillars-list {
  display:grid;
  gap:14px;
  max-width:720px;
  margin:0 auto;
}

.pillar-pill {
  padding:.85rem 1.4rem;
  border-radius:999px;
  border:1px solid rgba(201,154,63,0.6);
  background:rgba(14,14,20,0.6);
  color:#f2ede3;
  font-weight:600;
  letter-spacing:.01em;
  box-shadow:0 14px 26px rgba(0,0,0,.3);
}

.mt-sm { 
  margin-top:12px; 
}

.kicker { 
  color:var(--muted); 
  letter-spacing:.02em; 
  text-transform:uppercase; 
  font-weight:700; 
  font-size:.85rem; 
}

.hero .kicker {
  color:var(--hero-text-muted);
  text-shadow:0 8px 18px rgba(0,0,0,0.35);
}

.site-footer {
  border-top:1px solid var(--border);
  background:var(--footer-bg);
  color:var(--muted);
  padding:32px 0 38px;
}

.site-footer .container {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}

.footer-locations {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}

.location-switch {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
}

.location-pill {
  border:1px solid var(--border);
  background:var(--soft-bg);
  color:var(--text);
  border-radius:999px;
  padding:.65rem 1.05rem;
  font-weight:700;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, transform .15s ease;
  min-height:44px;
}

.location-pill:hover { transform:translateY(-1px); }

.location-pill.active {
  border-color:rgba(201,154,63,0.8);
  background:linear-gradient(135deg, rgba(201,154,63,0.12), rgba(255,255,255,0.02));
  color:var(--text-strong);
  box-shadow:0 10px 26px rgba(0,0,0,0.28);
}

.footer-address {
  margin:4px 0 0;
  color:var(--text-strong);
  font-weight:700;
  letter-spacing:.01em;
}

.site-footer a {
  color:var(--gold-soft);
  text-decoration:none;
  padding:.3rem .5rem;
  border-radius:.5rem; 
}

.site-footer a:hover { 
  background:var(--nav-hover); 
}

.footer-nav { 
  display:flex; 
  gap:12px; 
  flex-wrap:wrap; 
  justify-content:center; 
}

address { 
  font-style:normal; 
  color:var(--text);
}

.contact-form { 
  display:grid; gap:12px; 
}

.contact-form .field {
  display:grid;
  gap:6px;
  position:relative;
}

.contact-form label { 
  display:grid; 
  gap:6px; 
  font-size:.95rem; 
}

.contact-form input, .contact-form textarea {
  background:var(--panel-alt);
  border:1px solid var(--border);
  color:var(--text-strong);
  border-radius:12px;
  padding:.9rem 2.6rem .9rem 1rem;
  outline:none;
  min-height:44px;
}

.contact-form textarea {
  min-height:120px;
}

.contact-form input:focus, .contact-form textarea:focus { 
  border-color:var(--gold); 
}

.contact-form .field::after {
  content:"";
  position:absolute;
  right:12px;
  top:42px;
  width:18px;
  height:18px;
  border-radius:50%;
  opacity:0;
  transition:opacity .2s ease, transform .2s ease;
  background-size:12px 12px;
  background-repeat:no-repeat;
  background-position:center;
}

.contact-form .field[data-state="valid"]::after {
  opacity:1;
  background-color:rgba(201,154,63,0.2);
  border:1px solid rgba(201,154,63,0.8);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%23c99a3f' d='M6.4 11.3 3.2 8.1l1.2-1.2 2 2 4.4-4.4 1.2 1.2z'/%3E%3C/svg%3E");
}

.contact-form .field[data-state="invalid"]::after {
  opacity:1;
  background-color:rgba(225,95,86,0.18);
  border:1px solid rgba(225,95,86,0.6);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%23e15f56' d='M8 1.5 14.5 14h-13L8 1.5zm0 4.1a.8.8 0 0 0-.8.8v3.7a.8.8 0 0 0 1.6 0V6.4a.8.8 0 0 0-.8-.8zm0 6.6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E");
}

.contact-form.is-submitted .disclaimer {
  color:var(--gold-soft);
  position:relative;
  padding-left:1.8rem;
}

.contact-form.is-submitted .disclaimer::before {
  content:"";
  position:absolute;
  left:0;
  top:.1rem;
  width:14px;
  height:14px;
  border-radius:50%;
  border:1px solid rgba(201,154,63,0.8);
  background:linear-gradient(140deg, rgba(201,154,63,0.9), rgba(220,183,106,0.4));
  box-shadow:0 0 12px rgba(201,154,63,0.35);
}

.contact-form .honeypot {
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.contact-text {
  color:var(--text-strong);
  text-decoration:none;
}

.contact-text:hover {
  color:var(--gold-soft);
}

.map-block {
  margin-top:18px;
  display:grid;
  gap:12px;
}

.map-controls {
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.map-pill {
  padding:.5rem 1.2rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--soft-bg);
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
  font-weight:700;
  letter-spacing:.01em;
  min-height:44px;
}

.map-pill svg {
  width:18px;
  height:18px;
}

.map-pill:hover {
  transform:translateY(-1px);
  border-color:rgba(201,154,63,0.6);
}

.map-pill.is-active {
  background:linear-gradient(135deg, rgba(201,154,63,0.32), rgba(220,183,106,0.18));
  border-color:rgba(201,154,63,0.8);
  color:var(--text-strong);
  box-shadow:0 12px 26px rgba(0,0,0,0.28);
}

.map-frame {
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 16px 30px rgba(0,0,0,0.35);
  background:linear-gradient(135deg, rgba(201,154,63,0.12), rgba(16,16,22,0.9));
  position:relative;
  aspect-ratio:16 / 9;
  min-height:260px;
}

.map-fallback {
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(201,154,63,0.18), rgba(8,8,12,0.92));
  opacity:0;
  transition:opacity .2s ease;
  pointer-events:none;
}

.map-frame.is-fallback .map-fallback {
  opacity:1;
}

.map-frame iframe {
  width:100%;
  height:100%;
  min-height:260px;
  border:0;
  opacity:0;
  transition:none;
  position:absolute;
  inset:0;
  pointer-events:none;
}

.map-frame iframe.is-active {
  opacity:1;
  pointer-events:auto;
}

[data-animate] {
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease;
}

[data-animate].is-visible {
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

.disclaimer { 
  font-size:.84rem; 
  color:var(--muted); 
  margin:.6rem 0 0; 
}

@media (max-width:1200px){
  .compliance-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .trade-editorial {
    grid-template-columns:1fr;
  }

  .grid-4 {
    grid-template-columns:repeat(2, 1fr);
  }

  .site-header .container { 
    grid-template-columns:auto minmax(0, 1fr) auto auto;
  }

  .card.img img {
    height:320px;
  }

  .offices-wrap {
    padding:120px 32px 110px;
  }
}

@media (max-width:1200px){
  .main-nav.desktop { 
    display:none; 
  }

  .main-nav.mobile {
    display:block;
  }

  .header-lang {
    display:none;
  }

  .theme-toggle {
    width:40px;
    height:40px;
  }

  .menu-toggle { 
    display:inline-flex; 
  }

  .hero-content, .hero .content { 
    padding:0 0 12vh; 
  }

  .hero { 
    min-height:60vh; 
  }

  .hero-content { 
    text-align:center; 
  }

  .grid-4 {
    grid-template-columns:1fr;
  }

  .trade-stepper {
    grid-template-columns:1fr;
  }

  .trade-stepper li {
    padding-left:2.8rem;
  }

  .trade-stepper li::after {
    left:0.95rem;
  }

  .compliance-grid {
    grid-template-columns:1fr;
  }

  .compliance-detail-grid {
    grid-template-columns:1fr;
  }

  .team-source-gallery {
    grid-template-columns:1fr;
  }

  .compliance-detail-grid .card-accent {
    display:none;
  }

  .compliance-detail-grid .compliance-panel {
    text-align:center;
  }

  .compliance-detail-grid .compliance-list {
    max-width:420px;
    margin:0 auto;
    text-align:left;
  }

  .trade-editorial {
    grid-template-columns:1fr;
  }

  .grid-3,
  .grid-2 {
    grid-template-columns:1fr;
  }

  .hero-content .btn-cta { 
    width:100%; 
    max-width:320px; 
    margin:0 auto; 
  }

  .site-header .container {
    gap:18px;
  }

  .offices-hero {
    min-height:64vh;
  }

  .offices-wrap {
    padding:110px 22px 100px;
  }

  .commitment-pills {
    flex-direction:column;
    align-items:stretch;
  }

  .commitment-pills li {
    width:100%;
  }

  [data-animate] {
    opacity:1;
    transform:none;
  }
}

@media (max-width:480px){
  .brand img {
    width:auto;
    height:clamp(52px, 18vw, 66px);
    max-width:220px;
  }

  .btn, .btn-cta { 
    width:100%; 
    text-align:center; 
  }

  .hero { 
    min-height:52vh; 
  }

  .hero.compact {
    min-height:42vh;
  }

  .hero p { 
    font-size:1rem; 
  }

  .card.img img { 
    height:260px; 
  }

  .site-footer {
    padding:28px 0 34px;
  }

  .offices-wrap {
    padding:96px 18px 90px;
  }

  .home-cta-content {
    min-height:120px;
    gap:14px;
  }

  .home-cta-content h2 {
    font-size:clamp(1.15rem, 5vw, 1.55rem);
  }

  .pill-group {
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
  }

  .pill {
    width:100%;
    max-width:260px;
  }

  .carousel-nav {
    gap:10px;
  }
}