/* Gold rule. #A2762F measures 4.7:1 on --plum-deep and 3.8:1 on --paper.
   Gold is permitted as a TEXT colour only on --plum-deep.
   On paper backgrounds gold may be used for rules, underlines and focus rings only. */
:root{
  --plum-deep:#1F0715;
  --plum:#4A1233;
  --gold:#A2762F;
  --paper:#FAF7F2;
  --paper-shade:#F2ECE4;
  --ink:#15181E;
  --ink-60:rgba(21,24,30,.62);
  --paper-60:rgba(250,247,242,.66);
  --rule-dark:rgba(250,247,242,.14);
  --rule-light:rgba(74,18,51,.20);
  --gutter:clamp(1.25rem,5vw,4rem);
  --section-space:clamp(3.5rem,8vw,7rem);
  --content:1200px;
}

@font-face{
  font-family:'Lora';
  font-style:normal;
  font-weight:400;
  font-display:optional;
  src:url('/fonts/lora-latin-400.woff') format('woff');
}
@font-face{
  font-family:'Poppins';
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url('/fonts/poppins-latin-300.woff') format('woff');
}
@font-face{
  font-family:'Poppins';
  font-style:normal;
  font-weight:400;
  font-display:optional;
  src:url('/fonts/poppins-latin-400.woff') format('woff');
}
@font-face{
  font-family:'Poppins';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('/fonts/poppins-latin-500.woff') format('woff');
}

*,*::before,*::after{box-sizing:border-box}
html{background:var(--plum-deep);color:var(--ink);scroll-behavior:auto}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:clamp(.9375rem,.9rem + .15vw,1rem);
  font-weight:400;
  line-height:1.75;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
picture{display:block}
a{color:inherit}
a:hover{text-decoration-thickness:1px}
a:focus-visible,button:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
button{font:inherit}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.skip-link{
  position:fixed;
  z-index:100;
  left:1rem;
  top:1rem;
  transform:translateY(-180%);
  background:var(--paper);
  color:var(--ink);
  padding:.6rem .8rem;
}
.skip-link:focus{transform:none}

.site-header{
  min-height:74px;
  background:var(--plum-deep);
  color:var(--paper);
  display:flex;
  align-items:center;
  padding-inline:var(--gutter);
  border-bottom:1px solid var(--rule-dark);
}
.header-inner{
  width:min(var(--content),100%);
  margin-inline:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.wordmark{display:inline-flex;align-items:center;flex:0 0 auto;overflow:visible;line-height:0;text-decoration:none}
.wordmark img{display:block;width:clamp(180px,17vw,220px);height:auto;max-height:52px;object-fit:contain}
.wordmark{text-decoration:none;white-space:nowrap}
.site-nav{display:flex;gap:clamp(1rem,2.2vw,2rem);align-items:center;list-style:none;margin:0;padding:0}
.site-nav li{display:flex}
.site-nav a{
  color:var(--paper-60);
  font-size:.76rem;
  font-weight:400;
  letter-spacing:.06em;
  text-decoration:none;
}
.site-nav a:hover,.site-nav a[aria-current='page']{color:var(--paper)}
.site-nav a[aria-current='page']{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:.35em}
.nav-toggle{
  display:none;
  color:var(--paper);
  background:transparent;
  border:1px solid var(--rule-dark);
  padding:.5rem .7rem;
  font-size:.8rem;
  letter-spacing:.05em;
}

.content-shell{width:min(var(--content),calc(100% - (2 * var(--gutter))));margin-inline:auto}
.paper-section{background:var(--paper);padding-block:var(--section-space)}
.paper-section + .paper-section{padding-top:0}

.hero{background:var(--plum-deep);color:var(--paper)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.home-hero .hero-grid{min-height:clamp(560px,calc(100svh - 74px),760px)}
.inner-hero .hero-grid{min-height:clamp(470px,62vw,650px);max-height:680px}
.hero-copy{
  align-self:center;
  padding:clamp(3rem,7vw,6.5rem) var(--gutter);
  padding-left:max(var(--gutter),calc((100vw - var(--content))/2));
}
.simple-hero .simple-copy{
  padding:clamp(4.5rem,9vw,7rem) 0;
  margin-inline:auto;
}
.eyebrow{
  margin:0 0 1.2rem;
  color:var(--gold);
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
}
h1,h2{font-family:'Lora',Georgia,'Times New Roman',serif;font-weight:400}
h1{
  margin:0;
  max-width:10.6em;
  font-size:clamp(2.4rem,5.2vw,4rem);
  line-height:1.06;
  letter-spacing:normal;
}
h2{
  margin:0 0 1.35rem;
  color:var(--plum);
  font-size:clamp(1.5rem,3vw,2.1rem);
  line-height:1.2;
}
h3{
  margin:.25rem 0 .65rem;
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:1.0625rem;
  font-weight:500;
  line-height:1.45;
}
p{max-width:34em}
.hero h1{color:var(--paper)}
.hero-intro{margin:0;max-width:34em;color:var(--paper-60)}
.gold-rule{display:block;width:44px;height:1px;background:var(--gold);margin:1.75rem 0}
.text-link{
  display:inline-block;
  margin-top:1.55rem;
  color:var(--paper);
  text-decoration-line:underline;
  text-decoration-color:var(--gold);
  text-decoration-thickness:1px;
  text-underline-offset:.32em;
}
.hero-media{position:relative;min-width:0;overflow:hidden;background:var(--plum-deep)}
.hero-media picture{position:absolute;inset:0;display:block}
.hero-media img{display:block;width:100%;height:100%;object-fit:cover}

.standard-summary h2{max-width:14em}
.four-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:clamp(2.25rem,5vw,4rem);
  border-top:1px solid var(--rule-light);
}
.four-grid article{padding:1.7rem 1.5rem 1.5rem 0;border-bottom:1px solid var(--rule-light)}
.four-grid article + article{padding-left:1.5rem;border-left:1px solid var(--rule-light)}
.four-grid p{margin:.45rem 0 0;color:var(--ink-60)}
.data-index,.data-value{
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-weight:500;
  font-size:1.5rem;
  line-height:1.35;
  color:var(--plum);
}
.data-label,.status-label{
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:.75rem;
  font-weight:400;
  line-height:1.5;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-60);
}

.split-proof{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:start;
}
.proof-media{align-self:stretch;overflow:hidden}
.proof-media img{display:block;width:100%;height:auto;object-fit:cover;aspect-ratio:3/2}
.comparison-table,.status-table{width:100%;border-collapse:collapse;text-align:left}
.comparison-table{margin-top:2.1rem}
.comparison-table th,.comparison-table td,.status-table th,.status-table td{
  padding:1.05rem .85rem 1.05rem 0;
  vertical-align:top;
  border-bottom:1px solid var(--rule-light);
}
.comparison-table thead th,.status-table thead th{
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-60);
}
.comparison-table tbody td:first-child{color:var(--ink-60)}
.comparison-table tbody td:last-child{font-weight:500}

.plum-quote{
  background:var(--plum-deep);
  color:var(--paper);
  padding:clamp(4.5rem,9vw,8rem) var(--gutter);
}
.plum-quote blockquote{width:min(var(--content),100%);margin:0 auto}
.plum-quote p{
  max-width:18em;
  margin:0;
  font-family:'Lora',Georgia,'Times New Roman',serif;
  font-size:clamp(2rem,4.6vw,3.6rem);
  font-weight:400;
  line-height:1.25;
}
.closing-section{padding-block:clamp(3rem,6vw,5rem)}
.closing-line{
  margin:0;
  max-width:24em;
  color:var(--plum);
  font-family:'Lora',Georgia,'Times New Roman',serif;
  font-size:clamp(1.5rem,3vw,2.1rem);
  line-height:1.6;
}

.disclosure-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(3rem,8vw,7rem)}
.disclosure{
  padding:clamp(2rem,4vw,3.5rem) 0;
  border-top:1px solid var(--rule-light);
}
.disclosure p{margin:.6rem 0 0;color:var(--ink-60)}
.disclosure h2{margin:.55rem 0 .9rem}
.disclosure .data-index{margin:0;color:var(--plum)}
.example{margin-top:1.7rem;padding-top:1.15rem;border-top:1px solid var(--rule-light)}
.example .data-label{margin:0 0 .35rem;color:var(--ink-60)}
.example .data-value{margin:.15rem 0;color:var(--plum)}
.detail-media{position:relative;grid-row:2 / span 2;grid-column:2;align-self:stretch;padding-top:2rem;overflow:hidden}
.detail-media img{display:block;width:100%;height:100%;max-height:780px;object-fit:cover}

.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule-light);border-top:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light)}
.category-card{background:var(--paper);min-width:0}
.category-card img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.category-copy{padding:1.5rem 1.25rem 1.75rem 0}
.category-card + .category-card .category-copy{padding-left:1.25rem}
.category-copy h2{font-size:clamp(1.35rem,2.2vw,1.8rem);margin:.45rem 0 .8rem}
.category-copy p{margin:0;color:var(--ink-60)}
.category-copy .status-label{color:var(--plum);font-weight:500}
.scope-section{padding-top:0;padding-bottom:var(--section-space)}
.scope-note{border:1px solid var(--rule-light);padding:clamp(1.5rem,3vw,2.5rem)}
.scope-note h2{font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:1.0625rem;font-weight:500;margin:0 0 .7rem}
.scope-note p{margin:0;color:var(--ink-60)}

.gate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule-light)}
.gate{padding:1.8rem 1.5rem 2rem 0;border-bottom:1px solid var(--rule-light)}
.gate + .gate{padding-left:1.5rem;border-left:1px solid var(--rule-light)}
.gate h2{font-size:clamp(1.35rem,2.4vw,1.8rem);margin:.55rem 0 .8rem}
.gate p{margin:0;color:var(--ink-60)}
.gate .data-label{color:var(--plum);font-weight:500}
.status-section{padding-top:0}
.status-section > .content-shell > h2{margin-bottom:1.6rem}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.status-table{min-width:620px}
.status-table tbody th{font-weight:500}
.status-table td{color:var(--ink-60)}
.status-table .date-cell{font-variant-numeric:tabular-nums}
/* Infrastructure blocks. Two by two, each with its own image. */
.infra-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(2rem,4vw,3.5rem);row-gap:clamp(2.5rem,5vw,4rem);margin-top:clamp(2.25rem,5vw,4rem)}
.infra-block{border-top:1px solid var(--rule-light);padding-top:1.35rem}
.infra-media{position:relative;overflow:hidden;margin:0 0 1.35rem;background:var(--plum-deep)}
.infra-media img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.infra-block h3{font-family:'Lora',Georgia,'Times New Roman',serif;font-weight:400;color:var(--plum);font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.2;margin:.45rem 0 .55rem}
.infra-block > p{margin:0;color:var(--ink-60)}
.infra-block .example{margin-top:1.15rem;padding-top:.95rem;border-top:1px solid var(--rule-light)}
@media(max-width:767px){.infra-grid{grid-template-columns:1fr;row-gap:2.25rem}}

/* Process flow. A rule with a datum point at each stage, borrowed from the mark.
   Filled point = performed in house. Open gold point = performed outside. */
.flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:clamp(2.5rem,5vw,4rem)}
.flow-step{position:relative;padding:0 1.4rem 0 0}
.flow-step::before{content:"";position:absolute;left:5px;right:0;top:5px;height:1px;background:var(--rule-light)}
.flow-step:last-child::before{display:none}
.flow-dot{position:relative;z-index:1;display:block;width:11px;height:11px;border-radius:50%;background:var(--plum);margin:0 0 1.3rem}
.flow-step.is-out .flow-dot{background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--gold)}
.flow-step .data-label{margin:0 0 .35rem;color:var(--plum)}
.flow-step h3{margin:0 0 .45rem;font-size:.9375rem}
.flow-step p{margin:0;font-size:.8125rem;line-height:1.65;color:var(--ink-60)}
.flow-key{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin-top:clamp(2rem,4vw,3rem);padding-top:1.1rem;border-top:1px solid var(--rule-light);font-size:.8125rem;color:var(--ink-60)}
.flow-key span{display:flex;align-items:center;gap:.6rem}
.flow-key i{width:11px;height:11px;border-radius:50%;background:var(--plum);flex:none}
.flow-key i.out{background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--gold)}
@media(max-width:899px){
  .flow{grid-template-columns:1fr}
  .flow-step{padding:0 0 1.8rem 1.9rem}
  .flow-step::before{left:5px;top:11px;width:1px;height:100%}
  .flow-step:last-child::before{display:none}
  .flow-dot{position:absolute;left:0;top:0;margin:0}
}

.rule-media{margin-top:clamp(2.5rem,6vw,5rem);overflow:hidden}
.rule-media img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover}

.about-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,.9fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,5rem)}
.about-grid article{border-top:1px solid var(--rule-light);padding-top:1.5rem}
.about-grid p{color:var(--ink-60)}
.structure-list,.contact-block dl{margin:0}
.contact-block dd a{color:inherit;text-underline-offset:.28em;text-decoration-color:var(--gold);text-decoration-thickness:1px}
.structure-list dt{margin-top:1.1rem;font-size:.875rem;font-weight:500}
.structure-list dd{margin:.2rem 0 0;color:var(--ink-60);font-size:.875rem}
.contact-block dt{margin-top:1.3rem;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-60)}
.contact-block dd{margin:.25rem 0 0;padding-bottom:1rem;border-bottom:1px solid var(--rule-light);font-size:1rem;font-weight:500;overflow-wrap:anywhere}

.site-footer{background:var(--paper-shade);border-top:1px solid var(--rule-light);padding:clamp(4rem,7vw,6rem) var(--gutter) 2rem}
.footer-shell{width:min(var(--content),100%);margin-inline:auto}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.35fr);gap:clamp(2.25rem,4vw,4.5rem);align-items:start}
.footer-logo-link{display:inline-block;line-height:0;text-decoration:none}
.footer-logo{display:block;width:min(286px,100%);height:auto;object-fit:contain}
.footer-endorsement{margin:2rem 0 0;max-width:24em;color:var(--ink);font-size:.9375rem}
.footer-brandline{margin:1.2rem 0 0;max-width:29em;color:var(--ink-60);font-size:.875rem;line-height:1.75}
.footer-heading{margin:0 0 1.6rem;padding-bottom:.85rem;border-bottom:1px solid var(--rule-light);color:var(--plum);font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:.6875rem;font-weight:500;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}
.footer-links{display:grid;gap:.72rem;list-style:none;margin:0;padding:0}
.footer-links a{color:var(--ink);font-size:.875rem;text-decoration:none;text-underline-offset:.28em;text-decoration-color:var(--gold)}
.footer-links a:hover{text-decoration:underline}
.footer-portfolio{display:grid;gap:1rem;margin:0}
.footer-portfolio div{display:grid;gap:.08rem}
.footer-portfolio dt{color:var(--ink);font-size:.875rem}
.footer-portfolio dd{margin:0;color:var(--ink-60);font-size:.75rem}
.footer-company{margin:0 0 1.3rem;color:var(--ink);font-size:.875rem;line-height:1.65}
.footer-company span{color:var(--ink-60)}
.footer-corporate-list{display:grid;margin:0}
.footer-corporate-list div{padding:1rem 0;border-top:1px solid var(--rule-light)}
.footer-corporate-list dt{color:var(--ink-60);font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}
.footer-corporate-list dd{margin:.25rem 0 0;color:var(--ink);font-size:.78rem;line-height:1.65;overflow-wrap:anywhere}
.footer-corporate-list a{text-underline-offset:.28em;text-decoration-color:var(--gold);text-decoration-thickness:1px}
.footer-architecture{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:clamp(1rem,2vw,2rem);align-items:center;margin-top:clamp(3rem,6vw,5rem);padding:1.8rem 0;border-top:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light)}
.footer-tier{display:grid;gap:.25rem;text-align:center}
.footer-tier strong{color:var(--plum);font-size:.6875rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase}
.footer-tier span{color:var(--ink-60);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase}
.footer-arrow{color:var(--plum);font-size:1.35rem;font-weight:300}
.footer-legalbar{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;padding-top:1.7rem}
.footer-legalbar p{margin:0;color:var(--ink-60);font-size:.6875rem;letter-spacing:.02em}
.footer-legalbar p:last-child{color:var(--plum);letter-spacing:.1em;text-align:right}


@media(max-width:1050px){
  .four-grid,.category-grid,.gate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .four-grid article:nth-child(3),.gate:nth-child(3){border-left:0;padding-left:0}
  .category-card:nth-child(3) .category-copy{padding-left:0}
}

@media(max-width:899px){
  .split-proof,.about-grid{grid-template-columns:1fr}
  .proof-media{order:-1}
  .disclosure-list{grid-template-columns:1fr}
  .detail-media{grid-row:auto;grid-column:auto;padding:1rem 0 2rem}
  .detail-media img{max-height:none;aspect-ratio:4/5}
}

@media(max-width:767px){
  .site-header{height:auto;min-height:68px}
  .header-inner{flex-wrap:wrap;padding-block:.8rem}
  .nav-toggle{display:none}
  .js .nav-toggle{display:block}
  .site-nav{width:100%;flex-wrap:wrap;gap:.6rem 1.15rem;padding:.65rem 0 .25rem}
  .js .site-nav{display:none}
  .js .site-nav.is-open{display:flex}
  .hero-grid{display:flex;flex-direction:column}
  .hero-media{order:1;aspect-ratio:16/11}
  .home-hero .hero-grid,.inner-hero .hero-grid{min-height:0;max-height:none}
  .hero-copy{padding:3rem var(--gutter) 4rem}
  .simple-hero .simple-copy{padding:4.25rem 0}
  h1{font-size:clamp(2.4rem,11vw,3.25rem)}
  .four-grid,.category-grid,.gate-grid{grid-template-columns:1fr;background:transparent}
  .four-grid article,.four-grid article + article,.gate,.gate + .gate{padding:1.5rem 0;border-left:0}
  .category-card{border-bottom:1px solid var(--rule-light)}
  .category-card + .category-card .category-copy,.category-card:nth-child(3) .category-copy{padding-left:0}
  .category-copy{padding:1.25rem 0 1.8rem}
  .plum-quote{padding-block:4.5rem}
  .wordmark img{width:180px;height:auto;max-height:46px}
  .site-footer{padding:3rem var(--gutter) 1.5rem}
  .footer-grid{grid-template-columns:1fr;gap:0}
  .footer-brand{grid-column:auto;padding-bottom:2rem}
  .footer-column{min-width:0;padding:1.55rem 0;border-top:1px solid var(--rule-light)}
  .footer-logo{width:min(248px,72vw)}
  .footer-endorsement{margin-top:1.35rem}
  .footer-brandline{margin-top:.85rem;line-height:1.65}
  .footer-heading{margin:0 0 1.1rem;padding:0;border-bottom:0}
  .footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:.78rem 1rem}
  .footer-portfolio{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem 1.25rem}
  .footer-corporate-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem}
  .footer-corporate-list div{min-width:0}
  .footer-corporate-list div:last-child{grid-column:1/-1}
  .footer-corporate-list dd,.footer-corporate-list a{overflow-wrap:anywhere;word-break:normal}
  .footer-architecture{grid-template-columns:1fr;gap:.65rem;margin-top:1.25rem;padding:1.5rem 0}
  .footer-tier{text-align:left}
  .footer-tier strong,.footer-tier span{line-height:1.55}
  .footer-arrow{width:1px;height:20px;margin-left:.38rem;background:var(--rule-light);font-size:0;justify-self:start;transform:none}
  .footer-legalbar{display:grid;gap:.6rem;padding-top:1.35rem}
  .footer-legalbar p{line-height:1.6}
  .footer-legalbar p:last-child{text-align:left}
}


/* Brand-house architecture. Typographic, not promotional. */
.paper-eyebrow{margin-bottom:1rem}
.section-intro{margin:.25rem 0 0;color:var(--ink-60);max-width:34em}
.architecture-stack{margin-top:clamp(2.25rem,5vw,4rem)}
.architecture-tier{border:1px solid var(--rule-light);padding:clamp(1.35rem,3vw,2rem);max-width:620px}
.architecture-tier h3{margin:.35rem 0 .45rem;color:var(--plum);font-family:'Lora',Georgia,'Times New Roman',serif;font-size:clamp(1.45rem,2.6vw,1.9rem);font-weight:400;line-height:1.2}
.architecture-tier p{margin:0;color:var(--ink-60)}
.architecture-master{background:var(--paper-shade)}
.architecture-connector{display:block;width:1px;height:28px;background:var(--rule-light);margin-left:clamp(1.35rem,3vw,2rem)}
.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light)}
.portfolio-item{padding:1.5rem 1.25rem 1.65rem 0;min-width:0}
.portfolio-item + .portfolio-item{padding-left:1.25rem;border-left:1px solid var(--rule-light)}
.portfolio-item h3{margin:.45rem 0 .9rem;color:var(--plum)}
.portfolio-item p{margin:.35rem 0 0;color:var(--ink-60)}
.portfolio-item .status-label{color:var(--plum);font-weight:500}
.brand-name,.brand-row-name{font-family:'Lora',Georgia,'Times New Roman',serif;font-size:clamp(1.45rem,2.8vw,2rem);font-weight:400;line-height:1.25;color:var(--plum)}
.portfolio-item .brand-name{margin:.15rem 0 .55rem;color:var(--plum)}
.muted-brand{color:var(--ink-60)}
.paper-link{display:inline-block;margin-top:1.6rem;color:var(--plum);text-decoration-line:underline;text-decoration-color:var(--gold);text-decoration-thickness:1px;text-underline-offset:.32em}
.brand-list{border-top:1px solid var(--rule-light)}
.brand-row{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,6rem);padding:1.5rem 0;border-bottom:1px solid var(--rule-light)}
.brand-row p{margin:0;color:var(--ink-60)}
.brand-row .status-label{margin-bottom:.35rem;color:var(--plum);font-weight:500}
.brand-row-name{margin:0}
.infrastructure-page .hero-media img{object-position:58% center}
@media(max-width:1050px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-item:nth-child(3){padding-left:0;border-left:0;border-top:1px solid var(--rule-light)}.portfolio-item:nth-child(4){border-top:1px solid var(--rule-light)}}
@media(max-width:767px){.portfolio-grid{grid-template-columns:1fr}.portfolio-item,.portfolio-item + .portfolio-item,.portfolio-item:nth-child(3){padding:1.25rem 0 1.5rem;border-left:0;border-top:1px solid var(--rule-light)}.portfolio-item:first-child{border-top:0}.brand-row{grid-template-columns:1fr;gap:.65rem}.infrastructure-page .hero-media img{object-position:62% center}}

@media(max-width:480px){
  .site-footer{padding-top:2.75rem}
  .footer-logo{width:min(232px,76vw)}
  .footer-links{grid-template-columns:1fr 1fr;gap:.72rem .8rem}
  .footer-portfolio{grid-template-columns:1fr 1fr;gap:1rem .8rem}
  .footer-corporate-list{grid-template-columns:1fr}
  .footer-corporate-list div,.footer-corporate-list div:last-child{grid-column:auto;padding:.85rem 0}
  .footer-company{margin-bottom:.65rem}
  .footer-architecture{margin-top:1rem}
  .footer-legalbar p:last-child{line-height:1.7}
}


/* ============ AUDIT PATCH 2026-09-05 ============ */

/* P5 primary action is a button, not a text link */
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 1.5rem;margin-top:1.55rem;
  background:var(--gold);color:var(--plum-deep);
  font-weight:500;font-size:.9375rem;letter-spacing:.01em;
  text-decoration:none;border-radius:2px;
}
.btn-primary:hover{background:#B9873A}

/* P7 hero proof strip */
.hero-proof{
  list-style:none;margin:2.25rem 0 0;padding:1.35rem 0 0;
  border-top:1px solid var(--rule-dark);
  display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.5rem;max-width:34em;
}
.hero-proof b{display:block;font-size:.875rem;font-weight:500;color:var(--paper);line-height:1.35}
.hero-proof span{font-size:.75rem;color:var(--paper-60);line-height:1.35}

/* P9 contact sits apart from the rest of the nav */
.nav-contact a{
  display:inline-flex;align-items:center;min-height:44px;padding:0 .95rem;
  border:1px solid var(--gold);color:var(--paper);border-radius:2px;
}

/* P4 tap targets to 44px without changing the visual design */
.site-nav a{display:inline-flex;align-items:center;min-height:44px}
.footer-links a{display:inline-flex;align-items:center;min-height:44px}
.footer-contact a[href^="mailto"],.contact-list a[href^="mailto"]{
  display:inline-flex;align-items:center;min-height:44px;
}

/* P8 gold fails 3.8:1 on paper. main.css line 1 already says so */
.paper-eyebrow{color:var(--plum)}

@media(max-width:767px){
  .hero-copy{padding:2.25rem var(--gutter) 2.5rem}
  .hero-proof{margin-top:1.85rem;gap:.95rem 1.25rem}
  .btn-primary{width:100%;margin-top:1.35rem}
}

/* P4b remaining hit areas */
.wordmark{min-height:44px}
.footer-logo-link{display:inline-flex;align-items:center;min-height:44px}
dd a[href^="mailto"]{display:inline-flex;align-items:center;min-height:44px}
.site-nav a,.footer-links a{padding-inline:.5rem;margin-inline:-.5rem}

/* P5b the mid page action is a button too */
.btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 1.5rem;margin-top:1.55rem;
  border:1px solid var(--plum);color:var(--plum);
  font-weight:500;font-size:.9375rem;text-decoration:none;border-radius:2px;
}
.btn-secondary:hover{background:var(--plum);color:var(--paper)}
@media(max-width:767px){.btn-secondary{width:100%}}


/* ============ PLACEMENT PATCH ============ */
.continuity-band{
  background:var(--plum-deep);color:var(--paper);
  padding:clamp(3rem,7vw,4.75rem) 0;
  border-top:1px solid var(--rule-dark);
}
.continuity-band .content-shell{
  display:flex;align-items:center;justify-content:space-between;
  gap:clamp(1.5rem,4vw,3.5rem);flex-wrap:wrap;
}
.band-line{
  margin:0;flex:1 1 22em;max-width:30em;
  font-family:'Lora',Georgia,'Times New Roman',serif;
  font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.25;color:var(--paper);
}
.band-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.continuity-band .btn-primary{margin-top:0}
.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 1.4rem;
  border:1px solid rgba(250,247,242,.42);color:var(--paper);
  font-weight:500;font-size:.9375rem;text-decoration:none;border-radius:2px;
}
.btn-ghost:hover{border-color:var(--gold)}
.mid-action{
  max-width:var(--content);margin:0 auto;
  padding:0 var(--gutter) clamp(3rem,6vw,4.5rem);
}
.mid-action .btn-ghost{border-color:var(--rule-light);color:var(--plum)}
.mid-action .btn-ghost:hover{border-color:var(--plum);background:var(--plum);color:var(--paper)}

@media(max-width:767px){
  .continuity-band .content-shell{flex-direction:column;align-items:stretch;gap:1.75rem}
  .band-line{flex:0 0 auto;max-width:none}
  .band-actions{flex-direction:column;align-items:stretch}
  .continuity-band .btn-primary,.continuity-band .btn-ghost{width:100%}
  .mid-action .btn-ghost{width:100%}
}

/* Menu toggle to a 44px target. Do NOT set display here, the base rule
   and the 767px breakpoint own that. */
.nav-toggle{min-height:44px;align-items:center}
@media(max-width:767px){.js .nav-toggle{display:inline-flex}}


/* ============ TALENT PAGE ============ */
.roles-empty{
  margin-top:1.75rem;padding:clamp(1.5rem,3vw,2.25rem);
  border:1px solid var(--rule-light);border-radius:2px;background:var(--paper-shade);
  max-width:46em;
}
.roles-empty p{margin:0 0 1rem;color:var(--ink-60);max-width:44em}
.roles-empty .btn-secondary{margin-top:.5rem}
.infra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.75rem);margin-top:2rem}
@media(max-width:767px){.infra-grid{grid-template-columns:1fr}}

/* footer legal notices sits with the corporate facts, not shouted */
.footer-corporate-list dd{overflow-wrap:anywhere}


/* ============ ROLE CARDS ============ */
.role-list-wrap{display:grid;gap:clamp(1.25rem,2.5vw,1.75rem);margin-top:2rem}
.role{border:1px solid var(--rule-light);border-radius:2px;padding:clamp(1.5rem,3vw,2.25rem);background:var(--paper)}
.role-head{margin-bottom:1.4rem;padding-bottom:1.1rem;border-bottom:1px solid var(--rule-light)}
.role-head h3{margin:.35rem 0 0;font-family:'Lora',Georgia,'Times New Roman',serif;font-weight:400;
  color:var(--plum);font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}
.role-facts{margin:0;display:grid;gap:1.15rem}
.role-facts>div{display:grid;grid-template-columns:minmax(160px,15em) 1fr;gap:.5rem clamp(1rem,2.5vw,2rem)}
.role-facts dt{font-size:.8125rem;font-weight:500;color:var(--plum);letter-spacing:.01em;padding-top:.15rem}
.role-facts dd{margin:0;color:var(--ink-60);font-size:.9375rem;line-height:1.7;max-width:44em}
.role-list{margin:.7rem 0 0;padding-left:1.05rem}
.role-list li{margin-bottom:.3rem}
.role .btn-secondary{margin-top:1.6rem}
.roles-empty h3{margin:0 0 .8rem;font-family:'Lora',Georgia,serif;font-weight:400;color:var(--plum);font-size:1.4rem}
@media(max-width:767px){
  .role-facts>div{grid-template-columns:1fr;gap:.3rem}
  .role-facts dt{padding-top:0}
}


/* ============ TALENT, EMPLOYER BRAND PASS ============ */
.role-thesis{
  margin:.75rem 0 0;font-size:1.0625rem;line-height:1.5;color:var(--plum);
  font-weight:500;max-width:40em;
}
.month12{
  margin:1rem 0 0;padding-top:.85rem;border-top:1px solid var(--rule-light);
  font-size:.9375rem;line-height:1.6;color:var(--ink-60);max-width:44em;
}
.month12 b{color:var(--plum);font-weight:500}
.band-tiers{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.band-tiers li{display:flex;flex-wrap:wrap;gap:.15rem .6rem;align-items:baseline}
.band-tiers b{color:var(--plum);font-weight:500;font-variant-numeric:tabular-nums}
.band-tiers span{font-size:.875rem;color:var(--ink-60)}
.band-note{margin:.7rem 0 0;font-size:.875rem;color:var(--ink-60)}

.stage-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;margin-top:1.75rem;
  border-top:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light);
}
.stage-grid>div{padding:1.35rem 1.25rem;border-right:1px solid var(--rule-light)}
.stage-grid>div:last-child{border-right:0}
.stage-grid b{display:block;font-family:'Lora',Georgia,serif;font-weight:400;
  font-size:1.3rem;color:var(--plum);line-height:1.2;margin-bottom:.3rem}
.stage-grid span{font-size:.8125rem;color:var(--ink-60);line-height:1.4}
.stage-note{margin-top:1.6rem;max-width:56em}

@media(max-width:900px){
  .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stage-grid>div:nth-child(2n){border-right:0}
  .stage-grid>div:nth-child(-n+2){border-bottom:1px solid var(--rule-light)}
}
@media(max-width:520px){
  .stage-grid{grid-template-columns:1fr}
  .stage-grid>div{border-right:0;border-bottom:1px solid var(--rule-light)}
  .stage-grid>div:last-child{border-bottom:0}
}
