
  :root{
    --near-black:#0A0A0A;
    --gold:#B8963E;
    --warm-white:#F8F6F1;
    --cream:#EBE6DC;
    --dark-grey:#6E6962;
    --charcoal:#2C2C2C;
    --mid-grey:#888888;
    --sep-grey:#DCD7D0;
  }
  :root{--ph1:url(../img/hero-01.jpg);--ph2:url(../img/hero-02.jpg);--ph3:url(../img/hero-03.jpg);--ph4:url(../img/hero-04.jpg);--ph5:url(../img/hero-05.jpg);--ph6:url(../img/hero-06.jpg);}
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  html, body{overflow-x:hidden; max-width:100%;}
  img, svg{max-width:100%; height:auto;}
  body{
    font-family:Arial, Helvetica, sans-serif;
    background:var(--warm-white);
    color:var(--charcoal);
    line-height:1.5;
  }
  a{overflow-wrap:anywhere;}

  /* ---------- LEFT BRAND RAIL (the report cover, translated to web) ---------- */
  .rail{
    position:fixed; top:0; left:0; bottom:0;
    width:280px;
    background:var(--near-black);
    display:flex; flex-direction:column; align-items:center;
    padding:56px 24px 32px;
    z-index:100;
  }
  .rail .chakana{width:96px; height:auto; margin-bottom:36px;}
  .rail .brandname{
    color:#FFFFFF; font-weight:bold; font-size:20px; letter-spacing:2px;
    text-align:center; line-height:1.3;
  }
  .rail .advisory{
    color:var(--gold); font-size:11px; letter-spacing:6px; margin-top:10px;
  }
  .rail .divider{
    width:64px; height:1px; background:var(--gold); margin:28px 0;
  }
  .rail .rail-nav{display:flex; flex-direction:column; gap:18px; margin-top:8px;}
  .rail .rail-nav a{
    color:#FFFFFF; text-decoration:none; font-size:12px; letter-spacing:3px;
    text-transform:uppercase; transition:color .2s;
  }
  .rail .rail-nav a:hover, .rail .rail-nav a:focus{color:var(--gold); outline:none;}
  .rail .rail-bottom{margin-top:auto; text-align:center;}
  .rail .est{color:var(--cream); font-size:10px; letter-spacing:3px;}
  .rail .lima{color:var(--dark-grey); font-size:10px; letter-spacing:3px; margin-top:8px;}
  .rail .lang{
    margin-top:22px; display:inline-flex; border:1px solid var(--gold);
  }
  .rail .lang button{
    background:transparent; color:#FFFFFF; border:none; font-family:Arial;
    font-size:11px; letter-spacing:2px; padding:6px 12px; cursor:pointer;
  }
  .rail .lang button.active{background:var(--gold); color:var(--near-black); font-weight:bold;}

  /* ---------- MAIN COLUMN ---------- */
  main{margin-left:280px;}
  section{padding:96px 8% 88px;}

  .eyebrow{
    color:var(--gold); font-size:11px; letter-spacing:5px; text-transform:uppercase;
    margin-bottom:22px;
  }

  /* Hero — dark, full-bleed crossfading background (RCF-style) */
  .hero{
    min-height:88vh; display:flex; flex-direction:column; justify-content:center;
    position:relative; background:var(--near-black); overflow:hidden;
  }
  .hero-bg{position:absolute; inset:0;}
  .hero-bg .slide{
    position:absolute; inset:0; opacity:0; transition:opacity 2.5s ease;
    background-size:cover; background-position:center;
  }
  .hero-bg .slide.active{opacity:1;}
  .hero-bg .s1{background-image:var(--ph1);}
  .hero-bg .s2{background-image:var(--ph2);}
  .hero-bg .s3{background-image:var(--ph3);}
  .hero-bg .s4{background-image:var(--ph4);}
  .hero-bg .s5{background-image:var(--ph5);}
  .hero-bg .s6{background-image:var(--ph6);}
  .hero-overlay{
    position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(10,10,10,.88) 0%, rgba(10,10,10,.62) 55%, rgba(10,10,10,.38) 100%);
  }
  .hero-grid{position:relative; z-index:2;}
  .hero h1{
    font-size:clamp(30px, 4.2vw, 52px); font-weight:bold; color:#FFFFFF;
    line-height:1.18; max-width:820px;
  }
  .hero h1 .gold{color:var(--gold);}
  .hero p{
    margin-top:26px; font-size:17px; color:#CFCBC4; max-width:640px;
  }
  .hero .cta{
    display:inline-block; margin-top:40px; padding:14px 30px;
    border:1px solid var(--gold); color:#FFFFFF; text-decoration:none;
    font-size:12px; letter-spacing:3px; text-transform:uppercase; transition:all .2s;
  }
  .hero .cta:hover, .hero .cta:focus{background:var(--gold); color:#FFFFFF; outline:none;}
  .hero .cta-primary{
    background:var(--gold); color:#FFFFFF; border:1px solid var(--gold); font-weight:bold;
    margin-right:16px;
  }
  .hero .cta-primary:hover, .hero .cta-primary:focus{background:#9c7e33; border-color:#9c7e33;}
  .hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
  .chart-card{background:#FFFFFF; border:1px solid var(--sep-grey); padding:26px 22px 16px;}
  .chart-title{font-size:12px; font-weight:bold; color:var(--charcoal); letter-spacing:1px; text-transform:uppercase; margin-bottom:14px;}
  .chart-source{font-size:10px; color:var(--mid-grey); margin-top:10px;}
  @media (max-width: 980px){
    .hero-grid{grid-template-columns:1fr;}
  }
  .fade-in{opacity:0; transform:translateY(12px); animation:rise .8s ease forwards;}
  .fade-in.d1{animation-delay:.15s;} .fade-in.d2{animation-delay:.3s;} .fade-in.d3{animation-delay:.45s;}
  @keyframes rise{to{opacity:1; transform:none;}}
  @media (prefers-reduced-motion: reduce){
    .fade-in{animation:none; opacity:1; transform:none;}
    html{scroll-behavior:auto;}
  }

  /* Credibility band */
  .band{
    background:var(--near-black); padding:56px 8%;
    display:grid; grid-template-columns:repeat(4,1fr); gap:32px;
  }
  .band .item .big{color:#FFFFFF; font-size:26px; font-weight:bold;}
  .band .item .small{
    color:var(--mid-grey); font-size:11px; letter-spacing:2px;
    text-transform:uppercase; margin-top:8px;
  }
  .band .item .big .gold{color:var(--gold);}

  /* Section headings */
  h2.sec{
    font-size:26px; font-weight:bold; color:var(--charcoal);
    padding-bottom:14px; border-bottom:1px solid var(--gold);
    display:inline-block; margin-bottom:44px;
  }

  /* Sector panels */
  .sectors{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--near-black);}
  .sector{
    position:relative; overflow:hidden; color:#FFFFFF; padding:48px 32px 40px; min-height:400px;
    display:flex; flex-direction:column; justify-content:flex-end;
    background-size:cover; background-position:center;
    transition:transform .35s ease;
  }
  .sectors .sector:nth-child(1){background-image:var(--ph2);}
  .sectors .sector:nth-child(2){background-image:var(--ph4);}
  .sectors .sector:nth-child(3){background-image:var(--ph5);}
  .sector::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(10,10,10,.30) 0%, rgba(10,10,10,.82) 100%);
    transition:background .35s ease;
  }
  .sector:hover{transform:translateY(-6px);}
  .sector:hover::before{background:linear-gradient(180deg, rgba(10,10,10,.18) 0%, rgba(10,10,10,.72) 100%);}
  .sector > *{position:relative; z-index:2;}
  .sector .num{color:var(--gold); font-size:11px; letter-spacing:3px;}
  .sector h3{font-size:19px; font-weight:bold; margin:14px 0 12px; color:#FFFFFF;}
  .sector p{font-size:14px; color:#E3E0DA;}
  .sector .rule{width:36px; height:2px; background:var(--gold); margin-top:22px; transition:width .35s ease;}
  .sector:hover .rule{width:84px;}

  /* Why Peru */
  .peru{background:var(--near-black);}
  .peru .eyebrow{color:var(--gold);}
  .peru h2.sec{color:#FFFFFF;}
  .peru-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
  .peru p{color:#CFCBC4; font-size:15px; margin-bottom:18px;}
  .peru p strong{color:#FFFFFF;}
  .peru-stats{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:#2a2a2a; border:1px solid #2a2a2a;}
  .peru-stat{background:var(--near-black); padding:30px 26px;}
  .peru-stat .n{color:var(--gold); font-size:34px; font-weight:bold;}
  .peru-stat .d{color:var(--mid-grey); font-size:11px; letter-spacing:1px; text-transform:uppercase; margin-top:10px; line-height:1.5;}
  .peru-src{color:var(--dark-grey); font-size:10px; margin-top:14px;}
  @media (max-width: 980px){
    .peru-grid{grid-template-columns:1fr;}
  }


  /* Full-bleed image breaks between sections */
  .img-band{
    height:46vh; min-height:300px; position:relative;
    background-size:cover; background-position:center; background-attachment:fixed;
    display:flex; align-items:center; justify-content:center;
  }
  .img-band.b1{background-image:var(--ph3);}
  .img-band.b2{background-image:var(--ph6);}
  .img-band::before{content:""; position:absolute; inset:0; background:rgba(10,10,10,.42);}
  .band-line{
    position:relative; z-index:2; color:#FFFFFF; font-weight:bold; text-align:center;
    font-size:clamp(20px, 2.8vw, 34px); letter-spacing:1px; padding:0 24px;
    text-shadow:0 2px 14px rgba(0,0,0,.55);
  }
  .band-line .gold{color:var(--gold);}

  /* Scroll-reveal */
  .reveal{opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.visible{opacity:1; transform:none;}
  .insight{transition:border-color .25s, transform .3s ease, box-shadow .3s ease, opacity .8s ease;}
  .insight:hover{transform:translateY(-6px); box-shadow:0 14px 34px rgba(10,10,10,.08);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    .sector, .insight, .sector .rule{transition:none;}
  }
  @media (max-width: 980px){
    .img-band{background-attachment:scroll; height:34vh; min-height:220px;}
    .sector{min-height:320px;}
  }

  /* Advisory services */
  .services{display:grid; grid-template-columns:1fr 1fr; gap:0 64px;}
  .service{padding:30px 0; border-bottom:1px solid var(--sep-grey); display:flex; gap:20px;}
  .service .bullet{color:var(--gold); font-weight:bold; font-size:18px; line-height:1.4;}
  .service h3{font-size:16px; font-weight:bold; color:var(--charcoal);}
  .service p{font-size:14px; color:var(--dark-grey); margin-top:6px;}

  /* Insights */
  .insights{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  .insight{
    background:#FFFFFF; border:1px solid var(--sep-grey); padding:34px 28px;
    display:flex; flex-direction:column; transition:border-color .25s;
  }
  .insight:hover{border-color:var(--gold);}
  .insight .tag{color:var(--gold); font-size:10px; letter-spacing:3px; text-transform:uppercase;}
  .insight h3{font-size:17px; font-weight:bold; margin:16px 0 12px; line-height:1.35;}
  .insight p{font-size:13px; color:var(--dark-grey); flex:1;}
  .insight .read{
    margin-top:22px; color:var(--charcoal); font-size:11px; letter-spacing:2px;
    text-transform:uppercase; text-decoration:none; border-bottom:1px solid var(--gold);
    align-self:flex-start; padding-bottom:3px;
  }

  /* Firm */
  .firm-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:64px; align-items:start;}
  .firm-grid p{margin-bottom:18px; font-size:15px;}
  .firm-facts{border-left:1px solid var(--gold); padding-left:32px;}
  .firm-facts .fact{margin-bottom:22px;}
  .firm-facts .label{color:var(--mid-grey); font-size:10px; letter-spacing:3px; text-transform:uppercase;}
  .firm-facts .value{font-size:14px; color:var(--charcoal); margin-top:4px;}

  /* Contact */
  .contact{background:var(--near-black); color:#FFFFFF;}
  .contact h2.sec{color:#FFFFFF;}
  .contact-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
  .contact .label{color:var(--gold); font-size:10px; letter-spacing:3px; text-transform:uppercase;}
  .contact .value{color:#FFFFFF; font-size:14px; margin-top:8px; line-height:1.7;}
  .contact a{color:#FFFFFF; text-decoration:none; border-bottom:1px solid var(--gold);}

  /* Footer */
  footer{background:var(--near-black); padding:36px 8% 44px; border-top:1px solid #1e1e1e;}
  footer .legal{color:var(--dark-grey); font-size:11px; max-width:900px; line-height:1.7;}
  footer .copy{color:var(--mid-grey); font-size:11px; margin-top:20px; letter-spacing:1px;}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    .rail{
      position:static; width:100%; flex-direction:row; flex-wrap:wrap;
      justify-content:space-between; align-items:center; padding:20px 24px; gap:12px;
    }
    .rail .chakana{width:44px; height:auto; margin:0;}
    .rail .brand-block{display:flex; flex-direction:column;}
    .rail .brandname{font-size:15px; text-align:left;}
    .rail .advisory{margin-top:4px; letter-spacing:4px;}
    .rail .divider, .rail .rail-bottom .est, .rail .rail-bottom .lima{display:none;}
    .rail .rail-nav{flex-direction:row; gap:16px; margin:0; flex-wrap:wrap;}
    .rail .rail-nav a{font-size:11px;}
    .rail .rail-bottom{margin:0;}
    .rail .lang{margin:0;}
    main{margin-left:0;}
    section{padding:64px 6%;}
    .band{grid-template-columns:repeat(2,1fr); padding:40px 6%;}
    .sectors{grid-template-columns:1fr;}
    .services{grid-template-columns:1fr;}
    .insights{grid-template-columns:1fr;}
    .firm-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .hero{min-height:auto; padding-top:72px; padding-bottom:72px;}
  }

  /* ============================================================
     PRODUCTION ADDITIONS — video hero + interior pages.
     Palette, type and spacing all inherit the approved tokens above.
     No new colours, no new fonts.
     ============================================================ */

  /* ---------- Video hero (progressive enhancement over the slideshow) ---------- */
  .hero-video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; opacity:0; transition:opacity 1.2s ease;
  }
  .hero-video.ready{opacity:1;}
  /* once the video is confirmed playing, the still slideshow steps aside */
  .hero.has-video .hero-bg .slide{opacity:0;}
  .hero.has-video .hero-bg .slide.s1{opacity:1;}
  @media (prefers-reduced-motion: reduce){
    .hero-video{display:none;}
  }

  /* ---------- Interior page header ---------- */
  .page-hero{
    position:relative; background:var(--near-black); overflow:hidden;
    padding:110px 8% 82px; display:flex; flex-direction:column; justify-content:center;
  }
  /* z-index is explicit on all three layers: the `> *` rule below also matches
     .ph-bg, so without this the photo would paint over the scrim and wash the text out. */
  .page-hero .ph-bg{position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;}
  .page-hero .ph-bg.i1{background-image:var(--ph1);}
  .page-hero .ph-bg.i2{background-image:var(--ph2);}
  .page-hero .ph-bg.i3{background-image:var(--ph3);}
  .page-hero .ph-bg.i5{background-image:var(--ph5);}
  .page-hero .ph-bg.i6{background-image:var(--ph6);}
  .page-hero::after{
    content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(90deg, rgba(10,10,10,.92) 0%, rgba(10,10,10,.74) 55%, rgba(10,10,10,.56) 100%);
  }
  .page-hero > *{position:relative; z-index:2;}
  .page-hero h1{
    font-size:clamp(26px, 3.4vw, 40px); font-weight:bold; color:#FFFFFF;
    line-height:1.2; max-width:780px;
  }
  .page-hero h1 .gold{color:var(--gold);}
  .page-hero .lede{margin-top:22px; font-size:16px; color:#CFCBC4; max-width:660px;}
  .page-hero .eyebrow{color:var(--gold);}

  /* Rail: mark the page you are on */
  .rail .rail-nav a.current{color:var(--gold);}

  /* ---------- Advisory: four expanded service blocks ---------- */
  .svc-blocks{border-top:1px solid var(--sep-grey);}
  .svc-block{
    padding:46px 0; border-bottom:1px solid var(--sep-grey);
    display:grid; grid-template-columns:.26fr .74fr; gap:44px; align-items:start;
  }
  .svc-block .idx{color:var(--gold); font-size:11px; letter-spacing:3px;}
  .svc-block h3{font-size:20px; font-weight:bold; color:var(--charcoal); margin-top:10px; line-height:1.3;}
  .svc-block p{font-size:15px; color:var(--dark-grey); margin-bottom:16px;}
  .svc-block p:last-child{margin-bottom:0;}

  /* ---------- Firm: principal bio ---------- */
  .bio{
    display:grid; grid-template-columns:.32fr .68fr; gap:48px; align-items:start;
    padding-top:8px;
  }
  .portrait-ph{
    aspect-ratio:4/5; border:1px solid var(--sep-grey); background:var(--cream);
    display:flex; align-items:center; justify-content:center; text-align:center;
    color:var(--mid-grey); font-size:10px; letter-spacing:3px; text-transform:uppercase;
    padding:24px; line-height:1.8;
  }
  .bio .name{font-size:20px; font-weight:bold; color:var(--charcoal);}
  .bio .role{color:var(--gold); font-size:11px; letter-spacing:3px; text-transform:uppercase; margin-top:8px;}
  .bio .rule{width:48px; height:2px; background:var(--gold); margin:22px 0 24px;}
  .bio p{font-size:15px; color:var(--dark-grey); margin-bottom:16px;}

  /* ---------- Closing statement band (Chakana meaning) ---------- */
  .statement{background:var(--near-black); padding:78px 8%; text-align:center;}
  .statement .mark{width:56px; height:auto; opacity:.9; margin-bottom:26px;}
  .statement p{
    color:#CFCBC4; font-size:16px; line-height:1.85;
    max-width:880px; margin:0 auto;
  }
  .statement p .gold{color:var(--gold);}

  /* ---------- Insights: article stubs ---------- */
  .stubs{border-top:1px solid var(--sep-grey);}
  .stub{
    padding:42px 0; border-bottom:1px solid var(--sep-grey);
    display:grid; grid-template-columns:.26fr .74fr; gap:44px; align-items:start;
  }
  .stub .tag{color:var(--gold); font-size:10px; letter-spacing:3px; text-transform:uppercase;}
  .stub .status{
    display:inline-block; margin-top:12px; color:var(--mid-grey);
    font-size:10px; letter-spacing:2px; text-transform:uppercase;
    border:1px solid var(--sep-grey); padding:5px 10px;
  }
  .stub h3{font-size:19px; font-weight:bold; color:var(--charcoal); line-height:1.35;}
  .stub p{font-size:15px; color:var(--dark-grey); margin-top:14px;}
  .stub .request{
    display:inline-block; margin-top:20px; color:var(--charcoal); font-size:11px;
    letter-spacing:2px; text-transform:uppercase; text-decoration:none;
    border-bottom:1px solid var(--gold); padding-bottom:3px;
  }
  .stub .request:hover, .stub .request:focus{color:var(--gold); outline:none;}

  /* ---------- Contact page ---------- */
  .contact-cards{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:#2a2a2a; border:1px solid #2a2a2a;
  }
  .contact-card{background:var(--near-black); padding:38px 34px;}
  .contact-card .label{color:var(--gold); font-size:10px; letter-spacing:3px; text-transform:uppercase;}
  .contact-card .value{color:#FFFFFF; font-size:14px; margin-top:12px; line-height:1.8;}
  .contact-card a{color:#FFFFFF; text-decoration:none; border-bottom:1px solid var(--gold);}
  .contact-card a:hover, .contact-card a:focus{color:var(--gold); outline:none;}
  .contact-note{color:var(--dark-grey); font-size:12px; margin-top:26px; max-width:760px; line-height:1.8;}

  /* ---------- Interior responsive ---------- */
  @media (max-width: 980px){
    .page-hero{padding:56px 6% 52px;}
    .svc-block, .stub, .bio{grid-template-columns:1fr; gap:18px;}
    .bio{gap:28px;}
    .portrait-ph{max-width:260px;}
    .contact-cards{grid-template-columns:1fr;}
    .statement{padding:56px 6%;}
  }
