/* Canonical CAP foundations, shared with the Stage 2 Figma library. */
:root {
  --cap-brand: #CC0000;
  --cap-brand-hover: #A30000;
  --cap-brand-active: #800000;
  --cap-brand-deep: #8E1017;
  --cap-ink: #241F1E;
  --cap-text-secondary: #5A5350;
  --cap-paper: #FBF9F7;
  --cap-surface: #FFFFFF;
  --cap-surface-soft: #F4F0EC;
  --cap-tint: #FCF0EF;
  --cap-border: #DED7D2;
  --cap-control-border: #827873;
  --cap-error: #A30000;
  --cap-success: #28563B;
  --cap-font-body: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
  --cap-font-display: 'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
  --cap-space-1: 4px;
  --cap-space-2: 8px;
  --cap-space-3: 12px;
  --cap-space-4: 16px;
  --cap-space-6: 24px;
  --cap-space-8: 32px;
  --cap-space-12: 48px;
  --cap-space-16: 64px;
  --cap-space-20: 80px;
  --cap-control-height: 48px;
  --cap-radius: 0;
  --cap-duration: 160ms;
  --cap-content-width: 1240px;
}

/* Compatibility aliases share the canonical component tokens. */
:root {
  --white: var(--cap-surface);
  --paper: var(--cap-paper);
  --bone: var(--cap-surface-soft);
  --sand: #E9E2DC;
  --wash: var(--cap-tint);
  --char: var(--cap-ink);
  --black: var(--cap-ink);
  --near: #2E2827;
  --grey-7: var(--cap-text-secondary);
  --grey-6: var(--cap-text-secondary);
  --grey-5: var(--cap-text-secondary);
  --grey-3: #B4ABA6;
  --grey-2: var(--cap-border);
  --grey-1: var(--cap-surface-soft);
  --red: var(--cap-brand);
  --red-lt: var(--cap-brand-hover);
  --red-dk: var(--cap-brand-active);
  --red-deep: var(--cap-brand-deep);
  --disp: var(--cap-font-display);
  --body: var(--cap-font-body);
  --barlow: var(--cap-font-body);
  --barlowc: var(--cap-font-display);
  --wrap: var(--cap-content-width);
  --gutter: 32px;
  --line: var(--cap-border);
  --muted: var(--cap-text-secondary);
  --shadow-soft: 0 18px 54px rgba(36,31,30,.075);
  --shadow-float: 0 8px 28px rgba(36,31,30,.06);
  --hair: rgba(36,31,30,.11);
  --site-header-height: 83px;
  --site-viewport-width: 100vw;
  --layer-header: 70;
  --layer-skip-link: 80;
}

/* Original WOFF2 files supplied from the official Barlow archive. SIL OFL 1.1: assets/fonts/OFL.txt. */
@font-face {
  font-family: "Barlow";
  src: url("assets/fonts/Barlow-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Barlow";
  src: url("assets/fonts/Barlow-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Barlow Condensed";
  src: url("assets/fonts/BarlowCondensed-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

/* CAP Energy source styles. Preserve this cascade order when editing.
   Superseded declarations and classes absent from markup/runtime have been removed. */

* {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--char);
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.6;
  font-variant-numeric: tabular-nums;
}
h1, h2 {
  font-family: var(--disp);
  font-weight: 600;
  line-height: 1.08;
  margin: 0;
  color: var(--black);
}
h1 {
  font-size: clamp(40px,5vw,64px);
}
h2 {
  font-size: clamp(32px,3.2vw,40px);
}
h3, h4 {
  font: 600 24px/1.25 var(--body);
  margin: 0;
  color: var(--char);
}
h3 {
  font-size: 24px;
}
h4 {
  font-size: 1.2rem;
}
p {
  margin: 0 0 1.05em;
  max-width: 65ch;
}
a {
  color: inherit;
}
img {
  max-width: 100%;
  display: block;
}

sup {
  font-size: .62em;
}
.wrap {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--red);
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.label::before {
  content: "";
  width: 26px;
  height: 2px;
  background: var(--red);
  flex-shrink: 0;
}
.on-red .label {
  color: var(--white);
}
.on-red .label::before {
  background: var(--white);
}
.lede {
  font-size: 20px;
  line-height: 1.5;
  color: var(--grey-7);
  max-width: 64ch;
}
.on-red .lede {
  color: rgba(255,255,255,.86);
}
/* Site chrome */
/* Header and primary navigation */
header.site {
  position: sticky;
  top: 0;
  z-index: var(--layer-header);
  background: rgba(251,249,247,.96);
  backdrop-filter: saturate(1.4) blur(8px);
  border-bottom: 1px solid var(--grey-2);
}
.bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  background: none;
  border: 0;
  padding: 0;
  line-height: 1;
}
:is(button, a[data-go]).logo {
  cursor: pointer;
}
.logo img {
  display: block;
  width: 168px;
  height: auto;
}
.logo--footer {
  padding: 10px 12px;
  margin-bottom: 18px;
  background: #fff;
}
nav.main {
  display: flex;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
nav.main :is(button, a[data-go]) {
  background: none;
  border: 0;
  padding: 30px 16px 28px;
  cursor: pointer;
  color: var(--char);
  font: inherit;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
}
nav.main :is(button, a[data-go]):hover {
  color: var(--red);
}
nav.main :is(button, a[data-go])[aria-current="page"] {
  border-bottom-color: var(--red);
  color: var(--red);
}

/* View visibility and shared layout */
.view {
  display: none;
}
.view.on {
  display: block;
}
.pad {
  padding: 80px 0;
}
.pad-s {
  padding: 64px 0;
}
.wrap:is(.pad, .pad-s) {
  padding-inline: var(--gutter);
}
.grey {
  background: var(--bone);
}
.on-red {
  background: var(--red-deep);
  color: rgba(255,255,255,.88);
}
.on-red h1, .on-red h2, .on-red h3, .on-red h4 {
  color: var(--white);
}
.on-red p {
  color: rgba(255,255,255,.88);
}
.bone {
  background: var(--bone);
}
.rule-red {
  border-top: 4px solid var(--red);
  padding-top: 22px;
}
/* Homepage hero */
.hero {
  position: relative;
  background: var(--sand);
  min-height: min(84vh,760px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.hero .bg {
  position: absolute;
  inset: 0;
}
.hero .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero .bg .ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px;
  color: var(--grey-5);
  font-size: .82rem;
  background: repeating-linear-gradient(135deg,#EFE9E4 0 16px,#E5DDD7 16px 32px);
}
.hero.has-img .bg .ph {
  display: none;
}
.hero .scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* A continuous full-width fade reveals the sunset throughout the hero. */
  background: linear-gradient(90deg,
    rgba(251,249,247,.90) 0%,
    rgba(251,249,247,.87) 10%,
    rgba(251,249,247,.83) 20%,
    rgba(251,249,247,.78) 30%,
    rgba(251,249,247,.71) 40%,
    rgba(251,249,247,.62) 50%,
    rgba(251,249,247,.52) 60%,
    rgba(251,249,247,.40) 70%,
    rgba(251,249,247,.26) 80%,
    rgba(251,249,247,.12) 90%,
    rgba(251,249,247,0) 100%);
}
.hero .wrap {
  position: relative;
  padding-top: 120px;
  width: 100%;
}
.hero .panel {
  max-width: min(660px,55%);
}
.hero h1 {
  color: var(--char);
  max-width: 17ch;
  text-wrap: balance;
}
.hero .kick {
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--char);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.hero .kick::before {
  content: "";
  width: 40px;
  height: 3px;
  background: var(--red);
}
.hero .sub {
  color: var(--char);
  font-size: 1.16rem;
  max-width: 52ch;
  margin: 24px 0 0;
}
@media (max-width:900px) {
  .hero .panel {
    max-width: 660px;
  }
  .hero .scrim {
    /* Full-width copy keeps a readable, gently graded backdrop on small screens. */
    background: linear-gradient(90deg,
      rgba(251,249,247,.90) 0%,
      rgba(251,249,247,.86) 20%,
      rgba(251,249,247,.80) 40%,
      rgba(251,249,247,.73) 60%,
      rgba(251,249,247,.66) 80%,
      rgba(251,249,247,.60) 100%);
  }
}
.herobar {
  position: relative;
  margin-top: 52px;
  overflow: hidden;
  background: linear-gradient(90deg,rgba(36,31,30,.82) 0%,rgba(55,31,32,.78) 58%,rgba(93,21,26,.72) 100%);
  border: 1px solid rgba(255,255,255,.22);
  border-top: 3px solid var(--cap-brand);

  -webkit-backdrop-filter: blur(10px) saturate(115%);
  backdrop-filter: blur(10px) saturate(115%);
}
.herobar::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0) 42%);
}
.herobar .inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4,1fr);
}
.herobar .inner>div {
  padding: 26px 28px;
  border-right: 1px solid rgba(255,255,255,.20);
}
.herobar .inner>div:first-child {
  padding-left: 28px;
}
.herobar .inner>div:last-child {
  border-right: 0;
}
.herobar .n {
  font-family: var(--disp);
  font-size: 2.5rem;
  font-weight: 600;
  color: #fff;
  line-height: 1;
  text-shadow: 0 1px 10px rgba(0,0,0,.12);
}
.herobar .l {
  font-size: .76rem;
  color: rgba(255,255,255,.82);
  margin-top: 9px;
  line-height: 1.35;
  font-weight: 400;
  max-width: 18ch;
}
.land {
  fill: #E1D8D1;
  stroke: var(--grey-5);
  stroke-width: 1;
}
/* Technical tables */
table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
caption {
  text-align: left;
  font-size: .8rem;
  color: var(--grey-5);
  padding-bottom: 12px;
}
th {
  text-align: left;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 12px 18px 12px 0;
  border-bottom: 2px solid var(--black);
  vertical-align: bottom;
}
td {
  padding: 15px 18px 15px 0;
  border-bottom: 1px solid var(--grey-2);
  vertical-align: top;
}
.on-red th {
  border-bottom-color: rgba(255,255,255,.75);
  color: #fff;
}
.on-red td {
  border-bottom-color: rgba(255,255,255,.24);
  color: rgba(255,255,255,.9);
}
.on-red tbody tr:hover {
  background: rgba(255,255,255,.07);
}
.num {
  text-align: right;
}
/* Shared grid and content components */
.cols-3 {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 40px;
}
.cols-2 {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 56px;
}
.card {
  display: flex;
  flex-direction: column;
}
.eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 8px;
}
.card h3 {
  margin-bottom: 12px;
}
.card p {
  font-size: .97rem;
  margin-bottom: 18px;
}
.card dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 7px 18px;
  font-size: .85rem;
  margin: 0 0 22px;
  border-top: 1px solid var(--grey-2);
  padding-top: 16px;
}
.card dt {
  color: var(--grey-5);
}
.card dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
}

/* Company and licence panel visibility */
.subview {
  display: none;
}
.subview.on {
  display: block;
}
.tl {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 2px solid var(--grey-2);
}
.tl li {
  padding: 0 0 30px 30px;
  position: relative;
}
.tl li::before {
  content: "";
  position: absolute;
  left: -7px;
  top: 10px;
  width: 12px;
  height: 12px;
  background: var(--white);
  border: 2px solid var(--grey-3);
}
.tl li.now::before {
  background: var(--red);
  border-color: var(--red);
}
.tl .yr {
  font-family: var(--disp);
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--red);
  display: block;
  margin-bottom: 3px;
}
.tl p {
  font-size: .97rem;
  margin: 0;
}
/* Image callout */
.cta {
  position: relative;
  overflow: hidden;
  background: var(--red-deep);
}
.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(124,14,21,.46);
  z-index: 1;
}
.cta .bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.cta .bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .44;
}
.cta .bg .ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  color: rgba(255,255,255,.5);
  font-size: .78rem;
  background: repeating-linear-gradient(135deg,#8E1017 0 14px,#7B0E14 14px 28px);
}
.cta.has-img .bg .ph {
  display: none;
}
.cta .inner {
  position: relative;
  z-index: 2;
  padding: 86px 0;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 50px;
  align-items: center;
}
.cta .inner.on-red {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0;
  box-shadow: none;
}
.cta .inner.on-red .btn {
  box-shadow: none;
}
/* News listing */
.news-section-title {
  margin-top: 48px;
}
.news li p {
  margin: 8px 0 12px;
}
.news ul {
  margin: 0;
  padding: 0;
}
.news li {
  list-style: none;
  border-bottom: 1px solid var(--grey-2);
  padding: 26px 0;
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 26px;
  align-items: baseline;
}
.news .d {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--grey-5);
}
.news h3 {
  font-size: 1.3rem;
}
.news .tag {
  justify-self: start;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--red-deep);
  background: var(--wash);
  border: 1px solid var(--red);
  padding: 6px 11px;
  white-space: nowrap;
}
/* Contact form */
form.contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
form.contact .full {
  grid-column: 1/-1;
}
.note {
  font-size: .8rem;
  color: var(--grey-5);
  margin-top: 8px;
  max-width: 70ch;
}
.callout {
  border-left: 4px solid var(--red);
  background: var(--wash);
  padding: 22px 26px;
  font-size: .92rem;
  color: var(--grey-7);
}
.callout p {
  margin-bottom: 0;
  max-width: none;
}
/* Footer */
footer.site {
  color: rgba(255,255,255,.85);
  padding: 0 0 34px;
  font-size: .86rem;
}
footer.site .redline {
  height: 4px;
  margin-bottom: 56px;
}
footer.site h2 {
  color: #fff;
  font-family: var(--body);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 0 0 18px;
  font-weight: 600;
}
.fgrid {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1fr;
  gap: 44px;
}
footer.site ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
footer.site li {
  margin-bottom: 11px;
}
footer.site button, footer.site a {
  background: none;
  border: 0;
  padding: 0;
  color: rgba(255,255,255,.82);
  font: inherit;
  cursor: pointer;
  text-decoration: none;
  text-align: left;
}
.legal {
  margin-top: 52px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.2);
  display: flex;
  justify-content: space-between;
  gap: 26px;
  flex-wrap: wrap;
  font-size: .76rem;
  color: rgba(255,255,255,.82);
}
@media (max-width:1040px) {
  .cols-2, .cta .inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .cols-3 {
    grid-template-columns: 1fr 1fr;
  }
  .herobar .inner {
    grid-template-columns: 1fr 1fr;
  }
  .herobar .inner>div:nth-child(2) {
    border-right: 0;
  }
  .fgrid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width:720px) {
  :root {
    --gutter: 20px;
  }
  body {
    font-size: 16.5px;
  }
  .pad {
    padding: 64px 0;
  }
  nav.main {
    display: none;
    position: absolute;
    top: 78px;
    left: 0;
    right: 0;
    background: var(--white);
    border-bottom: 1px solid var(--grey-2);
    flex-direction: column;
    padding: 8px 20px 22px;
  }
  nav.main.open {
    display: flex;
  }
  nav.main :is(button, a[data-go]) {
    padding: 16px 0;
    border-bottom: 1px solid var(--grey-2);
    text-align: left;
    margin: 0;
  }

  .cols-3, .fgrid, form.contact, .herobar .inner {
    grid-template-columns: 1fr;
  }
  .herobar .inner>div {
    border-right: 0;
    border-bottom: 1px solid var(--grey-2);
  }
  .herobar .inner>div {
    border-bottom-color: rgba(255,255,255,.20);
  }
  .news li {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .hero .wrap {
    padding-top: 80px;
  }
  .cta .inner {
    padding: 54px 0;
  }
}
@media (prefers-reduced-motion:reduce) {
  * {
    transition: none !important;
  }
}
body {
  letter-spacing: 0;
}
header.site {
  box-shadow: 0 1px 0 rgba(36,31,30,.035);
}
.bar {
  height: 82px;
}
nav.main {
  letter-spacing: 0;
}
nav.main :is(button, a[data-go]) {
  padding-top: 32px;
  padding-bottom: 30px;
}
.rule-red {
  border-top-width: 3px;
}
.card {
  position: relative;
}
#home .card {
  padding-top: 20px;
  border-top: 1px solid var(--grey-2);
}
#home .card::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 44px;
  height: 3px;
  background: var(--red);
}
#home .card h3 {
  font-size: 1.72rem;
}
#home .card dl {
  margin-top: auto;
}
.technical-figure {
  background: #fff;
  border: 1px solid var(--grey-2);
  overflow: hidden;
}
.technical-figure img {
  object-fit: contain !important;
  background: #fff;
}
.technical-figure .ph {
  background: var(--white);
}
.technical-figure {
  aspect-ratio: 16/10;
  margin-bottom: 30px;
}
.technical-figure img {
  width: 100%;
  height: 100%;
  display: block;
  padding: 18px;
}
/* Board and management */
.people-intro {
  margin-bottom: 34px;
}
.person-card {
  position: relative;
  display: grid;
  grid-template-columns: 136px minmax(0,1fr);
  gap: 22px;
  align-items: start;
  background: var(--white);
  border: 1px solid var(--grey-2);
  padding: 20px;
  min-height: 0;
  box-shadow: none;
}
.person-card::before {
  content: "";
  position: absolute;
  left: -1px;
  top: -1px;
  width: 42px;
  height: 3px;
  background: var(--red);
}
.person-card .portrait {
  position: relative;
  width: 128px;
  aspect-ratio: 4/5;
  min-height: 0 !important;
  overflow: hidden;
  background: var(--bone);
  border: 1px solid var(--grey-2);
}
.person-card .portrait::after {
  display: none;
}
.person-card .portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: saturate(.96) contrast(1.01);
}
.person-card .portrait .ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--grey-5);
  font-size: .76rem;
}
.person-card .portrait.has-img .ph {
  display: none;
}
.person-card .profile-copy {
  padding: 3px 5px 2px 0;
}
.leadership-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px;
  margin-bottom: 58px;
}


/* One typography scale for every profile. */
.person-card h3 {
  font: 600 22px/1.25 var(--body);
  color: var(--char);
  margin: 0 0 4px;
}
.profile-role {
  font: 600 12px/1.45 var(--body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--red);
  margin: 0 0 12px;
}
.person-card p {
  font: 400 15px/1.6 var(--body);
  color: var(--grey-7);
  margin: 0;
}
/* Technical map plates */
.map-art {
  margin: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  min-width: 0;
}
.map-art>img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  background: #fff;
}
.map-art>.ph {
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--grey-5);
  font-size: .76rem;
  background: var(--bone);
}
.map-art.has-img>.ph {
  display: none;
}
.map-art figcaption {
  font-size: 12px;
  line-height: 1.5;
  color: var(--grey-5);
  padding: 12px 18px 14px;
  border-top: 1px solid var(--grey-2);
  background: #fff;
}
table {
  font-variant-numeric: tabular-nums;
}
th {
  color: var(--char);
  border-bottom-color: var(--char);
}
tbody tr:hover {
  background: rgba(244,240,236,.65);
}
#c-strategy .card {
  border-top: 1px solid var(--grey-2) !important;
  padding-top: 24px !important;
}
#c-strategy .card::before {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  background: var(--red);
  position: absolute;
  top: -1px;
  left: 0;
}
#c-strategy .card {
  position: relative;
}
footer.site {
  background: var(--red-deep);
}
footer.site .redline {
  background: #fff;
  opacity: .9;
}
footer.site button:hover, footer.site a:hover {
  color: #fff;
}
.portrait img, .map-art img {
  opacity: 0;
  transition: opacity .2s ease;
}
.portrait.has-img img, .map-art.has-img img {
  opacity: 1;
}
@media (max-width:1040px) {
  .leadership-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width:720px) {
  .person-card {
    grid-template-columns: 104px minmax(0,1fr);
    gap: 16px;
    padding: 16px;
  }
  .person-card .portrait {
    width: 98px;
  }
  .person-card .profile-copy {
    padding: 1px 0 0;
  }

  .map-art figcaption {
    font-size: 12px;
  }
}
@media (prefers-reduced-motion:reduce) {
  .portrait img, .map-art img {
    transition: none;
  }
}
@media (max-width:480px) {
  /* Portrait and title share a row; biographies use the full readable width. */
  .person-card {
    grid-template-columns: 80px minmax(0,1fr);
    column-gap: 16px;
    row-gap: 10px;
  }
  .person-card .profile-copy {
    display: contents;
  }
  .person-card .portrait {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 80px;
  }
  .person-card h3 {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    margin: 0;
  }
  .person-card .profile-role {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
  }
  .person-card p {
    grid-column: 1 / -1;
    margin: 4px 0 0;
  }
}
/* Operations navigation */
.ops-local {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--grey-2);
}
.ops-local a {
  font: 600 .72rem/1 var(--body);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--char);
  text-decoration: none;
  padding-bottom: 6px;
  border-bottom: 2px solid transparent;
}
.ops-local a:hover, .ops-local a:focus-visible {
  color: var(--red);
  border-color: var(--red);
}
@media (max-width:560px) {
  .ops-local {
    gap: 16px;
  }
}
.country-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
  margin: 20px 0 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.country-facts div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(167,154,144,.22);
}
.country-facts dt {
  margin: 0;
  color: var(--muted);
}
.country-facts dd {
  margin: 0;
  text-align: right;
  font-weight: 600;
  color: var(--char);
}
@media (max-width: 720px) {
  .country-facts {
    grid-template-columns: 1fr;
  }
}
/* Operations acreage explorer */
.ops-explorer {
  display: grid;
  grid-template-columns: minmax(0,1.62fr) minmax(330px,.88fr);
  background: var(--white);
  border: 1px solid var(--grey-2);
  overflow: hidden;
}
.ops-explorer-map {
  position: relative;
  min-width: 0;
  background: #eaf2f5;
  border-right: 1px solid var(--grey-2);
}
.ops-map-view {
  display: none;
}
.ops-map-view.on {
  display: block;
}
.ops-map-view svg, .ops-map-view img {
  width: 100%;
  display: block;
}
.ops-map-view img {
  object-fit: contain;
  object-position: center;
  background: #eef3f6;
  box-sizing: border-box;
}
.ops-map-caption {
  left: 18px;
  bottom: 16px;
  color: var(--grey-7);
}
.ops-explorer-panel {
  background: var(--paper);
  padding: 32px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ops-state {
  display: none;
}
.ops-state.on {
  display: block;
}
.ops-state .eyebrow {
  font: 600 12px/1.4 var(--body);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 12px;
}
.ops-state h3 {
  font-size: 24px;
  margin-bottom: 14px;
}
.ops-state>p {
  color: var(--grey-7);
  font-size: .96rem;
  margin-bottom: 20px;
}
.ops-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--grey-2);
  border-bottom: 1px solid var(--grey-2);
  margin: 22px 0 24px;
}
.ops-metric {
  padding: 14px 12px 14px 0;
}
.ops-metric:nth-child(even) {
  padding-left: 16px;
  border-left: 1px solid var(--grey-2);
}
.ops-metric span {
  display: block;
  color: var(--grey-5);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 5px;
}
.ops-metric strong {
  font-size: .95rem;
  color: var(--char);
  font-weight: 600;
}
.ops-country-choice {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  background: none;
  border: 0;
  border-top: 1px solid var(--grey-2);
  padding: 18px 0;
  text-align: left;
  cursor: pointer;
  color: var(--char);
}
.ops-country-choice:last-of-type {
  border-bottom: 1px solid var(--grey-2);
}
.ops-country-choice:hover .choice-title {
  color: var(--red);
}
.choice-title {
  display: block;
  font: 600 1.35rem/1.05 var(--barlowc);
  transition: color .18s;
}
.choice-sub {
  display: block;
  color: var(--grey-6);
  font-size: .84rem;
  margin-top: 5px;
}
.choice-arrow {
  font-size: 1.25rem;
  color: var(--red);
}







.ops-disclosure {
  margin-top: auto;
  padding-top: 24px;
  color: var(--grey-6);
  font-size: .78rem;
  line-height: 1.5;
}
.ops-disclosure :is(button, a[data-go]) {
  color: var(--char);
}
@media (max-width:1050px) {
  .ops-explorer {
    grid-template-columns: 1fr;
  }
  .ops-explorer-map {
    border-right: 0;
    border-bottom: 1px solid var(--grey-2);
  }
  .ops-map-view {
    min-height: 520px;
  }
}
@media (max-width:680px) {
  .ops-map-view {
    min-height: 420px;
  }
  .ops-explorer-panel {
    padding: 26px 20px;
  }
  .ops-metrics {
    grid-template-columns: 1fr;
  }
  .ops-metric:nth-child(even) {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid rgba(207,195,184,.5);
  }
}
/* Page introductions */
.page-intro {
  position: relative;
  overflow: hidden;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.page-intro-inner {
  position: relative;
  display: block;
  padding-top: 56px;
  padding-bottom: 56px;
}
.page-intro-inner:has(.page-intro-media) {
  display: grid;
  grid-template-columns: minmax(0,9fr) minmax(0,11fr);
  gap: var(--cap-space-12);
  align-items: center;
}
.page-intro-copy {
  min-width: 0;
  width: 100%;
}
.page-intro-copy .label {
  margin-bottom: var(--cap-space-4);
}
.page-intro-copy h1 {
  font-size: clamp(40px,5vw,64px);
  margin: 0;
}
.page-intro-copy .lede {
  margin-top: 20px;
  max-width: 690px;
}
.page-intro-inner:has(.page-intro-media) .page-intro-copy {
  max-width: 500px;
}
.page-intro-media {
  position: relative;
  width: 100%;
  min-width: 0;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: var(--sand);
}
.page-intro-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#company .page-intro-media img {
  object-position: 58% 50%;
}
#assets .page-intro-media img {
  object-position: 74% 50%;
}
.page-intro-media .ph {
  display: none;
}
.page-intro:not(:has(.page-intro-media)) .page-intro-copy {
  width: min(760px,100%);
}
.page-intro--plain .page-intro-inner {
  min-height: 0;
  padding-top: 48px;
  padding-bottom: 38px;
}
.page-intro--plain .page-intro-copy {
  width: min(760px,100%);
}
.page-intro .ops-local {
  margin-top: 24px;
}
@media (max-width:900px) {
  .page-intro-inner {
    padding-top: 40px;
    padding-bottom: var(--cap-space-8);
  }
  .page-intro-inner:has(.page-intro-media) {
    grid-template-columns: minmax(0,1fr);
    gap: 28px;
  }
  .page-intro-copy, .page-intro-inner:has(.page-intro-media) .page-intro-copy,
  .page-intro:not(:has(.page-intro-media)) .page-intro-copy {
    width: 100%;
    max-width: 100%;
  }
  .page-intro-media {
    aspect-ratio: 16 / 9;
  }
  .page-intro:not(.page-intro--plain) .page-intro-copy h1 {
    font-size: 44px;
  }
  .page-intro:not(.page-intro--plain) .page-intro-copy .lede {
    font-size: 18px;
  }
}
/* One continuous photo-to-paper fade, independent of the text-column edge. */
.page-intro--blended {
  --intro-copy-width: min(590px, calc(55vw - var(--gutter)));
  --intro-next-surface: var(--paper);
  --intro-next-rgb: 251,249,247;
  border-bottom: 0;
  isolation: isolate;
}
#assets .page-intro--blended {
  --intro-next-surface: var(--bone);
  --intro-next-rgb: 244,240,236;
}
.page-intro--blended > .page-intro-media {
  position: absolute;
  inset: 0;
  height: 100%;
  aspect-ratio: auto;
  z-index: -1;
}
.page-intro--blended > .page-intro-media::before,
.page-intro--blended > .page-intro-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.page-intro--blended > .page-intro-media::before {
  /* Spread the transition across the entire photograph, with no opaque
     plateau or concentrated white strip beside the copy. */
  background: linear-gradient(90deg,
    rgba(251,249,247,.90) 0%,
    rgba(251,249,247,.87) 10%,
    rgba(251,249,247,.83) 20%,
    rgba(251,249,247,.78) 30%,
    rgba(251,249,247,.71) 40%,
    rgba(251,249,247,.62) 50%,
    rgba(251,249,247,.52) 60%,
    rgba(251,249,247,.40) 70%,
    rgba(251,249,247,.26) 80%,
    rgba(251,249,247,.12) 90%,
    rgba(251,249,247,0) 100%);
}
.page-intro--blended > .page-intro-media::after {
  background: linear-gradient(180deg,
    rgba(var(--intro-next-rgb),0) 60%,
    rgba(var(--intro-next-rgb),.095) 68%,
    rgba(var(--intro-next-rgb),.345) 76%,
    rgba(var(--intro-next-rgb),.655) 84%,
    rgba(var(--intro-next-rgb),.905) 92%,
    var(--intro-next-surface) 100%);
}
.page-intro--blended .page-intro-inner {
  display: flex;
  align-items: center;
  min-height: 480px;
  padding-top: 72px;
  padding-bottom: 72px;
}
.page-intro--blended .page-intro-copy {
  max-width: var(--intro-copy-width);
}
.page-intro--blended .lede {
  color: var(--char);
}
.page-intro--blended .label {
  color: var(--red-lt);
}
.page-intro--blended .label::before {
  background: var(--red-lt);
}
#company .page-intro--blended .page-intro-media img {
  object-position: 65% 55%;
}
#assets .page-intro--blended .page-intro-media img {
  object-position: 74% 35%;
}
@media (max-width:900px) {
  .page-intro--blended {
    display: flex;
    flex-direction: column;
  }
  .page-intro--blended .page-intro-inner {
    order: 0;
    min-height: 0;
    padding-top: 40px;
    padding-bottom: 48px;
  }
  .page-intro--blended .page-intro-copy {
    max-width: 620px;
  }
  .page-intro--blended > .page-intro-media {
    order: 1;
    position: relative;
    inset: auto;
    height: clamp(250px,52vw,360px);
    margin-top: -32px;
    z-index: 0;
  }
  .page-intro--blended > .page-intro-media::before {
    background: linear-gradient(180deg,
      var(--paper) 0%,
      rgba(251,249,247,.92) 8%,
      rgba(251,249,247,.68) 20%,
      rgba(251,249,247,.32) 36%,
      rgba(251,249,247,.08) 48%,
      rgba(251,249,247,0) 60%);
  }
}
/* Licence detail */
.asset-detail {
  padding-top: 6px;
}
.asset-detail-top {
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(340px,.75fr);
  gap: 32px;
  align-items: start;
  margin-bottom: 46px;
}
.asset-detail-map {
  background: #fff;
  border: 1px solid var(--grey-2);
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.asset-detail-map .map-art {
  margin: 0;
  border: 0;
  background: #fff;
  flex: 1;
}
.asset-detail-map .map-art img {
  width: 100%;
  height: auto;
  display: block;
}
.asset-detail-map .map-art figcaption {
  padding: 12px 16px 15px;
  border-top: 1px solid var(--grey-2);
  font-size: .78rem;
  color: var(--grey-5);
  line-height: 1.45;
}
.asset-detail-summary {
  padding: 24px;
  background: var(--paper);
  border: 1px solid var(--grey-2);
  border-top: 3px solid var(--red);
}
.asset-detail-summary .eyebrow {
  margin-bottom: 12px;
}
.asset-detail-summary h2 {
  font-size: 40px;
  margin: 0 0 12px;
}
.asset-detail-summary .lede {
  font-size: 1.12rem;
  margin: 0 0 22px;
  color: var(--grey-7);
}
.asset-thesis {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--grey-2);
}
.asset-thesis li {
  position: relative;
  padding: 12px 0 12px 20px;
  border-bottom: 1px solid var(--grey-2);
  color: var(--char);
  line-height: 1.5;
}
.asset-thesis li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 7px;
  height: 7px;
  background: var(--red);
}
.asset-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--grey-2);
  border-left: 1px solid var(--grey-2);
}
.asset-kpis div {
  padding: 13px 14px;
  border-right: 1px solid var(--grey-2);
  border-bottom: 1px solid var(--grey-2);
  min-height: 80px;
}
.asset-kpis dt {
  display: block;
  color: var(--grey-5);
  font-size: 14px;
  line-height: 1.45;
  margin-bottom: 5px;
}
.asset-kpis dd {
  margin: 0;
  font: 600 17px/1.3 var(--body);
  color: var(--char);
}
.asset-tech-grid {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: 42px;
  padding: 42px 0;
  border-top: 1px solid var(--grey-2);
}
.asset-public h3, .asset-tech-card h3 {
  font-size: 24px;
  margin-bottom: 16px;
}
.asset-public p {
  max-width: 66ch;
}
.public-snapshot {
  margin-top: 24px;
  display: grid;
  gap: 0;
  border-top: 1px solid var(--grey-2);
}
.public-snapshot div {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 18px;
  padding: 11px 0;
  border-bottom: 1px solid var(--grey-2);
}
.public-snapshot dt {
  color: var(--grey-5);
}
.public-snapshot dd {
  margin: 0;
  font-weight: 600;
  color: var(--char);
}
.asset-tech-card {
  background: var(--bone);
  border: 1px solid var(--grey-2);
  padding: 20px;
}
.asset-tech-card .technical-figure {
  margin: 0 0 16px;
  background: #fff;
}
.asset-tech-card .technical-figure img {
  object-fit: contain;
  background: #fff;
}
.asset-tech-card .tech-note {
  font-size: .82rem;
  color: var(--grey-5);
  line-height: 1.5;
  margin: 0;
}
.asset-proof {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
  margin-top: 4px;
}
.asset-proof--two {
  grid-template-columns: repeat(2,minmax(0,1fr));
}
.asset-proof article {
  padding: 18px;
  border-top: 2px solid var(--char);
  background: var(--paper);
}
.asset-proof .label-sm {
  display: block;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 600;
  margin-bottom: 8px;
}
.asset-proof strong {
  display: block;
  font-family: var(--barlowc);
  font-size: 1.15rem;
  margin-bottom: 6px;
}
.asset-proof p {
  font-size: .93rem;
  color: var(--grey-7);
  margin: 0;
}
.asset-dataroom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  margin-top: 42px;
  padding: 26px 28px;
  background: var(--char);
  color: #fff;
  border-top: 3px solid var(--red);
}
.asset-dataroom h3 {
  color: #fff;
  font-size: 1.35rem;
  margin: 0 0 8px;
}
.asset-dataroom p {
  margin: 0;
  color: rgba(255,255,255,.78);
  max-width: 74ch;
}
.asset-dataroom .btn {
  white-space: nowrap;
}
@media (max-width:980px) {
  .asset-detail-top, .asset-tech-grid {
    grid-template-columns: 1fr;
  }
  .asset-proof {
    grid-template-columns: 1fr;
  }
  .asset-detail-summary {
    padding: 24px;
  }
  .asset-dataroom {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (max-width:620px) {
  .asset-kpis {
    grid-template-columns: 1fr;
  }
  .public-snapshot div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .asset-dataroom {
    padding: 22px;
  }
}
/* Homepage portfolio */
.home-portfolio {
  padding: 66px var(--gutter);
}
.home-portfolio-head {
  display: grid;
  grid-template-columns: 1fr minmax(300px,.72fr);
  gap: 52px;
  align-items: end;
  margin-bottom: 26px;
}
.home-portfolio-head h2 {
  margin-top: 8px;
}
.home-portfolio-head>p {
  color: var(--grey-7);
  margin: 0;
  max-width: 52ch;
}
.home-asset-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 18px;
}
.home-asset-card {
  border: 1px solid var(--grey-2);
  background: var(--paper);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.home-asset-map {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #fff;
  border-bottom: 1px solid var(--grey-2);
}
.home-asset-map img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
#home .cta .inner {
  padding: 34px 42px;
  grid-template-columns: 1.6fr auto;
  gap: 34px;
}
#home .cta .inner h2 {
  font-size: clamp(1.65rem,2.6vw,2.25rem);
  margin: 0;
}
.cta-compact-copy .label {
  margin-bottom: 8px;
}
.asset-dataroom--shared {
  margin-top: 26px;
}
.ops-context-compact {
  background: var(--bone);
  border-top: 1px solid var(--grey-2);
  scroll-margin-top: 92px;
}
.compact-context-head {
  display: grid;
  grid-template-columns: 1fr minmax(300px,.72fr);
  gap: 48px;
  align-items: end;
  margin-bottom: 22px;
}
.compact-context-head h2 {
  margin-top: 7px;
}
.compact-context-head>p {
  margin: 0;
  color: var(--grey-7);
}
.context-accordions {
  border-top: 1px solid var(--grey-2);
}
.context-accordions details {
  border-bottom: 1px solid var(--grey-2);
  background: var(--paper);
}
.context-accordions summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: 170px 1fr auto;
  gap: 20px;
  align-items: center;
}
.context-accordions summary::-webkit-details-marker {
  display: none;
}
.context-accordions summary span {
  font-size: .74rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 600;
}
.context-accordions summary strong {
  font-family: var(--barlowc);
  font-size: 1.22rem;
}
.context-accordions summary::after {
  content: "+" / "";
  font-size: 1.45rem;
  color: var(--grey-5);
}
.context-accordions details[open] summary::after {
  content: "−" / "";
}
.context-body {
  padding: 0 20px 22px;
  max-width: 1100px;
}
.context-body>p {
  max-width: 78ch;
  color: var(--grey-7);
}
.context-proof {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  border-top: 1px solid var(--grey-2);
  margin-top: 16px;
}
.context-proof div {
  padding: 14px 15px 0 0;
  border-right: 1px solid var(--grey-2);
}
.context-proof div+div {
  padding-left: 15px;
}
.context-proof div:last-child {
  border-right: 0;
}
.context-proof b, .context-proof span {
  display: block;
}
.context-proof span {
  font-size: .84rem;
  color: var(--grey-7);
  margin-top: 4px;
  line-height: 1.4;
}
.context-country-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 30px;
}
.context-country-grid b {
  font-family: var(--barlowc);
  font-size: 1.12rem;
}
.context-country-grid p {
  margin: 5px 0 0;
  color: var(--grey-7);
}
.context-country-grid .context-wide {
  grid-column: 1/-1;
  padding-top: 14px;
  border-top: 1px solid var(--grey-2);
}
#assets .asset-tech-grid {
  padding: 30px 0;
  gap: 32px;
}
#assets .asset-detail-top {
  margin-bottom: 28px;
}
#assets .asset-detail-summary {
  padding: 24px;
}
#assets>.bone.pad {
  padding: 64px 0;
}
@media (max-width:980px) {
  .home-portfolio-head, .compact-context-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: start;
  }
  .home-asset-grid {
    grid-template-columns: 1fr 1fr;
  }
  .context-proof {
    grid-template-columns: 1fr 1fr;
  }
  .context-proof div:nth-child(2) {
    border-right: 0;
  }
  #home .cta .inner {
    grid-template-columns: 1fr;
  }
}
@media (max-width:720px) {
  .home-portfolio {
    padding: 44px var(--gutter);
  }
  .home-asset-grid, .context-country-grid {
    grid-template-columns: 1fr;
  }
  .context-accordions summary {
    grid-template-columns: 1fr auto;
    gap: 7px 12px;
  }
  .context-accordions summary span {
    grid-column: 1/-1;
  }
  .context-proof {
    grid-template-columns: 1fr;
  }
  .context-proof div, .context-proof div+div {
    border-right: 0;
    border-bottom: 1px solid var(--grey-2);
    padding: 12px 0;
  }
  .context-proof div:last-child {
    border-bottom: 0;
  }
}
#home .herobar div {
  padding-top: 20px;
  padding-bottom: 20px;
}
.home-asset-map img[alt^="Guinea-Bissau offshore licence map traced"] {
  object-fit: contain;
  background: #edf4f6;
}
#ops-assets, #ops-map-section, .ops-context-compact {
  scroll-margin-top: calc(var(--site-header-height) + 16px);
}
.asset-detail, .asset-detail-top>*, .asset-tech-grid>*, .asset-public, .asset-tech-card, .public-snapshot div>*, .subview {
  min-width: 0;
  max-width: 100%;
}
.asset-tech-card .technical-figure {
  min-height: 0;
  aspect-ratio: auto;
}
.asset-tech-card .technical-figure img {
  width: 100%;
  height: auto;
  padding: 12px;
}
.public-snapshot dd {
  overflow-wrap: anywhere;
}

nav.main {
  top: var(--site-header-height);
}
.ops-explorer {
  min-height: 0;
}
.ops-map-view {
  min-height: 0;
  height: auto;
}
.ops-map-view svg, .ops-map-view img {
  height: auto;
}
.ops-map-view img {
  padding: 12px;
}
.ops-map-caption {
  position: static;
  max-width: none;
  padding: 12px 16px;
  border: 0;
  border-top: 1px solid var(--grey-2);
  background: var(--paper);
  font-size: .875rem;
  line-height: 1.5;
}
.ops-map-tools {
  padding: 0 16px 10px;
  background: #eef3f6;
}
.ops-map-tools[hidden] {
  display: none;
}
.ops-country-switch {
  display: none;
}
.map-art>.media-enlarge {
  align-self: flex-start;
  margin: 0 16px 12px;
}
.technical-figure+.media-enlarge {
  margin: 0 0 16px;
}
/* Technical image viewer */
.image-viewer {
  width: min(1440px,calc(100vw - 32px));
  max-width: none;
  height: calc(100dvh - 32px);
  max-height: calc(100dvh - 32px);
  padding: 0;
  margin: auto;
  border: 1px solid var(--grey-2);
  background: var(--paper);
  color: var(--char);
}
.image-viewer::backdrop {
  background: rgba(20,18,18,.78);
}
.image-viewer-shell {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.image-viewer-header {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--grey-2);
}
.image-viewer-header h2 {
  font: 600 1.1rem/1.35 var(--body);
  margin: 0;
  min-width: 0;
}
.image-viewer-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}
.image-viewer-canvas {
  overflow: auto;
  min-height: 0;
  flex: 1;
  background: #edf4f6;
  overscroll-behavior: contain;
}
.image-viewer-canvas img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  margin: 0 auto;
}
.image-viewer-note {
  margin: 0;
  padding: 10px 20px;
  font-size: .875rem;
  max-width: none;
  border-top: 1px solid var(--grey-2);
}
body:has(.image-viewer[open]) {
  overflow: hidden;
}
#home .hero {
  min-height: 0;
}
#home .hero .wrap {
  padding-top: 64px;
}
#home .hero h1 {
  font-size: clamp(40px,5.2vw,72px);
}
#home .hero .sub {
  font-size: 1.1rem;
  margin-top: 20px;
  max-width: 52ch;
}
#home .hero-action {
  margin-top: 24px;
  min-height: 48px;
}
#home .herobar {
  margin-top: 36px;
}
#home .herobar .inner, #home .herobar .n, #home .herobar .l {
  padding: 0;
}
#home .herobar .inner {
  grid-template-columns: repeat(4,minmax(0,1fr));
}
#home .herobar .inner>div {
  padding: 20px 24px;
}
#home .herobar .n {
  font-size: 2.15rem;
}
#home .herobar .l {
  font-size: .875rem;
  line-height: 1.4;
  margin-top: 8px;
  color: rgba(255,255,255,.9);
}
#home .home-portfolio {
  padding-top: 50px;
  padding-bottom: 50px;
}
#home .home-portfolio-head {
  grid-template-columns: 1fr auto;
  gap: 24px;
}
@media (max-width:1050px) {
  .ops-country-switch {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    border-bottom: 1px solid var(--grey-2);
    background: var(--paper);
  }
  .ops-country-switch [data-ops-country] {
    font: 600 .875rem/1.4 var(--body);
    min-height: 52px;
    padding: 12px 8px;
    background: none;
    border: 0;
    border-bottom: 3px solid transparent;
    color: var(--char);
    cursor: pointer;
  }
  .ops-country-switch [data-ops-country]:is([aria-pressed="true"], [aria-current="location"]) {
    border-bottom-color: var(--red);
    color: var(--red);
    background: var(--bone);
  }
  .ops-state[data-ops-state="region"] .ops-country-choice {
    display: none;
  }
  .ops-map-view {
    min-height: 0;
  }
}
@media (max-width:980px) {
  .asset-detail-summary {
    order: -1;
    display: flex;
    flex-direction: column;
  }
  .asset-kpis {
    order: 1;
    grid-template-columns: repeat(2,minmax(0,1fr));
    margin-bottom: 22px;
  }
  .asset-thesis {
    order: 2;
    margin-bottom: 0;
  }
}
@media (max-width:720px) {
  #home .hero .wrap {
    padding-top: 32px;
  }
  #home .hero .kick {
    font-size: .75rem;
    line-height: 1.5;
    margin-bottom: 18px;
    letter-spacing: .1em;
  }
  #home .hero h1 {
    font-size: 40px;
  }
  #home .hero .sub {
    font-size: 1rem;
    line-height: 1.55;
    margin-top: 18px;
  }
  #home .hero-action {
    margin-top: 20px;
  }
  #home .herobar {
    margin-top: 28px;
  }
  #home .herobar .inner {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  #home .herobar .inner>div {
    padding: 16px;
    border-bottom: 1px solid rgba(255,255,255,.2);
  }
  #home .herobar .inner>div:nth-child(odd) {
    border-right: 1px solid rgba(255,255,255,.2);
  }
  #home .herobar .inner>div:nth-child(even) {
    border-right: 0;
  }
  #home .herobar .inner>div:nth-last-child(-n/**/+2) {
    border-bottom: 0;
  }
  #home .herobar .n {
    font-size: 1.8rem;
  }
  #home .herobar .l {
    font-size: .8125rem;
    margin-top: 6px;
  }
  #home .home-portfolio-head {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  #home .home-portfolio-head .textlink {
    justify-self: start;
  }
  .asset-detail-summary {
    padding: 22px 20px;
  }
  .asset-detail-top {
    gap: 24px;
    margin-bottom: 30px;
  }
  .asset-tech-grid {
    gap: 26px;
    padding-top: 28px;
    padding-bottom: 28px;
  }
  .asset-tech-card {
    padding: 16px;
  }
  .asset-tech-card .technical-figure img {
    padding: 8px;
  }
  .ops-map-view {
    min-height: 0;
  }
  .ops-map-caption {
    padding: 12px;
    font-size: .8125rem;
  }
  .ops-explorer-panel {
    padding: 24px 20px;
  }
  .ops-asset-head {
    flex-wrap: wrap;
    gap: 6px 14px;
  }
  .image-viewer {
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
    max-height: calc(100dvh - 16px);
  }
  .image-viewer-header {
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px;
  }
  .image-viewer-header h2 {
    flex-basis: 100%;
    font-size: 1rem;
  }
  .image-viewer-actions {
    width: 100%;
    justify-content: space-between;
  }
  .image-viewer-note {
    padding: 10px 12px;
    font-size: .8125rem;
  }
}

/* Content composition: named owners replace the extracted inline exceptions. */
.page-content-end { padding-bottom: 80px; }
.company-profile-layout { gap: 64px; align-items: start; }
.company-profile-detail { margin-top: 24px; }
.company-facts-panel { background: var(--bone); border-top: 3px solid var(--red); padding: 24px; }
.strategy-intro { margin: 24px 0 48px; }
.strategy-card { border-top: 3px solid var(--char); padding-top: 24px; }
.governance-grid { margin-top: 32px; }
.history-timeline { margin-top: 32px; max-width: 800px; }
.content-heading { margin-bottom: 24px; }
.content-heading--small { font: 600 24px/1.25 var(--body); color: var(--char); }
.section-lede { margin-bottom: 32px; }
.footer-summary { color: rgba(255,255,255,.78); font-size: 14px; max-width: 36ch; }

/* Portfolio and country pages lead to explicit licence details. */
.licence-index { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap:16px; padding:32px 0 56px; }
.licence-index a { display:grid; grid-template-columns:minmax(0,1fr) auto; min-width:0; overflow-wrap:anywhere; gap:8px 16px; padding:24px; color:var(--char); border:1px solid var(--grey-2); border-top:3px solid var(--red); background:var(--white); text-decoration:none; }
.licence-index a > span:first-child { grid-column:1/-1; font-size:14px; color:var(--muted); }
.licence-index strong { font-size:20px; }
.licence-index a > span:last-child { align-self:center; color:var(--red); }
.licence-index a:hover { background:var(--bone); border-color:var(--red); }
@media(max-width:640px) { .licence-index { grid-template-columns:1fr; padding:24px 0 40px; } .licence-index a { padding:20px; } }

/* Public geographic context: generated from Natural Earth, not licence geometry. */
.ops-explorer > .ops-country-switch {
  display: flex;
  grid-column: 1 / -1;
  align-items: stretch;
  gap: 0;
  border-bottom: 1px solid var(--cap-border);
  background: var(--cap-surface);
}
.ops-explorer > .ops-country-switch [data-ops-country] {
  min-height: var(--cap-control-height);
  padding: 14px 24px 12px;
  border: 0;
  border-right: 1px solid var(--cap-border);
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: var(--cap-surface);
  color: var(--cap-text-secondary);
  font: 600 15px/1.4 var(--cap-font-body);
  cursor: pointer;
  transition: background-color var(--cap-duration), color var(--cap-duration);
}
.ops-explorer > .ops-country-switch [data-ops-country]:hover {
  background: var(--cap-surface-soft);
  color: var(--cap-ink);
}
.ops-explorer > .ops-country-switch [data-ops-country]:is([aria-pressed="true"], [aria-current="location"]) {
  background: var(--cap-tint);
  border-bottom-color: var(--cap-brand);
  color: var(--cap-brand);
}
.ops-explorer > .ops-country-switch [data-ops-country]:focus-visible {
  outline: 2px solid var(--cap-brand);
  outline-offset: -5px;
}
.ops-region-svg.carto-atlas { background: #DCE7EA; }
.carto-atlas .carto-ocean { fill: #DCE7EA; }
.carto-atlas .carto-graticule path {
  stroke: #AEC2C7;
  stroke-width: .65;
  fill: none;
  vector-effect: non-scaling-stroke;
}
.carto-atlas .carto-land {
  fill: #E9E6DE;
  stroke: #74817E;
  stroke-width: .75;
  stroke-linejoin: round;
  fill-rule: evenodd;
  vector-effect: non-scaling-stroke;
}
.carto-atlas .carto-focus-land {
  fill: #E8C8C1;
  stroke: #A55B53;
  stroke-width: 1;
  stroke-linejoin: round;
  fill-rule: evenodd;
  vector-effect: non-scaling-stroke;
  transition: fill var(--cap-duration), stroke var(--cap-duration);
}
.carto-atlas text { font-family: var(--cap-font-body); pointer-events: none; }
.carto-atlas .carto-labels { pointer-events: none; }
.carto-atlas .carto-title { fill: #293F47; font-size: 24px; font-weight: 600; letter-spacing: 3px; }
.carto-atlas .carto-subtitle { fill: #344C54; font-size: 18px; }
.carto-atlas .carto-title-rule { stroke: var(--cap-brand); stroke-width: 2; }
/* Keep ocean lettering legible where the graticule crosses its glyphs. */
.carto-atlas .carto-ocean-label { fill: #344C54; font-size: 19px; font-weight: 400; letter-spacing: 5px; }
.carto-atlas .carto-country-name { fill: #293F47; font-size: 20px; font-weight: 600; letter-spacing: 1.6px; }
.carto-atlas .carto-gambia-name { fill: #293F47; font-size: 17px; font-weight: 600; letter-spacing: 1px; }
.carto-atlas .carto-label-leader { stroke: #596967; stroke-width: 1; fill: none; vector-effect: non-scaling-stroke; }
.carto-atlas .carto-country-control { cursor: pointer; outline: none; }
.carto-atlas .carto-leader { stroke: #9E4942; stroke-width: 1; fill: none; vector-effect: non-scaling-stroke; }
.carto-atlas .carto-locator, .carto-atlas .carto-callout-rule { fill: var(--cap-brand); }
.carto-atlas .carto-callout-box { fill: var(--cap-paper); stroke: #B4B8B2; stroke-width: .8; vector-effect: non-scaling-stroke; transition: fill var(--cap-duration), stroke var(--cap-duration); }
.carto-atlas .carto-callout-title { fill: var(--cap-ink); font-size: 23px; font-weight: 600; }
.carto-atlas .carto-callout-detail { fill: var(--cap-text-secondary); font-size: 16px; }
.carto-atlas .carto-callout-arrow { fill: none; stroke: var(--cap-brand); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.carto-atlas .carto-country-control:hover .carto-focus-land,
.carto-atlas .carto-country-control:focus-visible .carto-focus-land { fill: #DDAAA0; stroke: var(--cap-brand); }
.carto-atlas .carto-country-control:hover .carto-callout-box { fill: var(--cap-tint); stroke: var(--cap-brand); }
.carto-atlas .carto-country-control:focus-visible .carto-callout-box { stroke: var(--cap-brand); stroke-width: 2.5; }
.carto-atlas .carto-scale-label { fill: #344C54; font-size: 17px; font-weight: 600; }
.carto-atlas .carto-scale-note { fill: #344C54; font-size: 14px; }
.carto-atlas .carto-scale-line { fill: none; stroke: #344C54; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.carto-atlas .carto-north-label { fill: #424E4F; font-size: 17px; font-weight: 600; }
.carto-atlas .carto-north-line { fill: none; stroke: #424E4F; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.carto-atlas .carto-coordinate { fill: #344C54; font-size: 13px; }
@media (max-width: 600px) {
  .ops-explorer > .ops-country-switch [data-ops-country] { flex: 1; padding: 12px 6px 10px; font-size: 14px; }
  .carto-atlas .carto-secondary, .carto-atlas .carto-coordinate-labels,
  .carto-atlas .carto-callout-detail, .carto-atlas .carto-subtitle,
  .carto-atlas .carto-scale-note { display: none; }
  .carto-atlas .carto-title { font-size: 29px; letter-spacing: 2px; }
  .carto-atlas .carto-country-name { font-size: 29px; letter-spacing: .5px; }
  .carto-atlas .carto-gambia-name { font-size: 26px; letter-spacing: 0; }
  .carto-atlas .carto-callout-title { font-size: 34px; transform: translateY(14px); }
  .carto-atlas .carto-callout-arrow { display: none; }
  .carto-atlas .carto-ocean-label { font-size: 25px; letter-spacing: 2px; }
  .carto-atlas .carto-scale-label { font-size: 25px; }
}

.ops-country-switch a[data-ops-country] { text-align: center; }

/* CAP components — Figma CAP/Button 46:2, CAP/LicenceTab 53:2,
   CAP/Field 55:2 and CAP/LicenceCard 58:14. Native HTML owns behavior. */

b, strong { font-weight: 600; }

/* Actions: sentence case, stable geometry and explicit states. */
.btn, .burger, .image-viewer-actions button, .media-enlarge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: var(--cap-control-height);
  max-width: 100%;
  padding: 12px 24px;
  border: 1px solid var(--cap-brand);
  border-radius: var(--cap-radius);
  background: var(--cap-brand);
  color: var(--cap-surface);
  font: 600 15px/1.2 var(--body);
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: color var(--cap-duration), background-color var(--cap-duration), border-color var(--cap-duration);
}
.btn:hover, .burger:hover { background: var(--cap-brand-hover); border-color: var(--cap-brand-hover); }
.btn:active, .burger:active { background: var(--cap-brand-active); border-color: var(--cap-brand-active); }
.btn--secondary, .image-viewer-actions button, .media-enlarge {
  background: transparent;
  color: var(--cap-ink);
  border-color: var(--cap-control-border);
}
.btn--secondary:hover, .btn--secondary:active, .image-viewer-actions button:hover, .image-viewer-actions button:active, .media-enlarge:hover, .media-enlarge:active {
  background: var(--cap-surface-soft);
  border-color: var(--cap-ink);
}
.on-red .btn, .btn--inverse {
  color: var(--cap-brand-deep);
  background: var(--cap-surface);
  border-color: var(--cap-surface);
}
.on-red .btn:hover, .on-red .btn:active, .btn--inverse:hover, .btn--inverse:active {
  background: var(--cap-surface-soft);
  border-color: var(--cap-surface-soft);
}
.btn:disabled, .btn[aria-disabled="true"], .image-viewer-actions button:disabled {
  background: var(--cap-surface-soft);
  color: var(--cap-text-secondary);
  border-color: var(--cap-border);
  cursor: not-allowed;
}
/* Future connected actions can overlay a status label without width movement. */
.btn[data-pending-label] { display: inline-grid; }
.btn[data-pending-label]::after { content: attr(data-pending-label); grid-area: 1 / 1; visibility: hidden; }
.btn[data-pending-label] > span { grid-area: 1 / 1; }
.btn[aria-busy="true"]::after { visibility: visible; }
.btn[aria-busy="true"] > span { visibility: hidden; }
.textlink, .ops-asset-link, .ops-back {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 48px;
  max-width: 100%;
  padding: 12px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--cap-brand);
  font: 600 15px/1.2 var(--body);
  text-transform: none;
  letter-spacing: 0;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 1px;
  cursor: pointer;
  transition: color var(--cap-duration);
}
.textlink:hover, .ops-asset-link:hover, .ops-back:hover { color: var(--cap-brand-hover); }
.textlink:active, .ops-asset-link:active, .ops-back:active { color: var(--cap-brand-active); }
.on-red .textlink { color: var(--cap-surface); }
.ops-back { margin-bottom: 12px; }
.ops-disclosure .textlink { display: inline; min-height: 0; padding: 0; font-size: inherit; }
.burger { display: none; }

/* Tabs share the keyboard model in app.js; only the licence list has country labels. */
.subtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 48px;
  border-bottom: 1px solid var(--cap-border);
}
.subtabs [data-tab] {
  padding: 16px 24px;
  min-height: 56px;
  margin: 0;
  border: 0;
  border-bottom: 3px solid transparent;
  background: var(--cap-surface);
  color: var(--cap-text-secondary);
  font: 600 15px/1.3 var(--body);
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  transition: color var(--cap-duration), background-color var(--cap-duration), border-color var(--cap-duration);
}
.subtabs [data-tab]:hover { background: var(--cap-surface-soft); color: var(--cap-ink); }
.subtabs [data-tab][aria-selected="true"] {
  color: var(--cap-ink);
  border-bottom-color: var(--cap-brand);
  background: var(--cap-surface-soft);
}
#ops-assets .subtabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 32px; }
#ops-assets .subtabs [data-tab] { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 24px 24px 21px; text-align: left; }
#ops-assets .subtabs .tab-country { color: var(--cap-text-secondary); font: 400 14px/1.45 var(--body); }
#ops-assets .subtabs strong { color: var(--cap-ink); font: 600 17px/1.3 var(--body); }

/* Licence cards use one partial and the same data on Operations and Home. */
.licence-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 21px 0 24px; /* Includes the 3px top border in Figma’s 24px inset. */
  border-top: 3px solid var(--cap-brand);
  min-width: 0;
}
.licence-card .eyebrow { margin: 0; font: 600 12px/1.4 var(--body); letter-spacing: .08em; color: var(--cap-brand); text-transform: uppercase; }
.licence-card h3 { margin: 0; font: 600 24px/1.25 var(--body); color: var(--cap-ink); }
.licence-card .licence-card-description { margin: 0; font: 400 16px/1.6 var(--body); color: var(--cap-ink); }
.licence-card-facts { width: 100%; margin: 0; }
.licence-card-facts > div { display: grid; grid-template-columns: minmax(0,.35fr) minmax(0,.65fr); gap: 24px; align-items: baseline; padding: 12px 0 11px; border-top: 1px solid var(--cap-border); }
.licence-card-facts dt { color: var(--cap-text-secondary); font: 400 14px/1.45 var(--body); }
.licence-card-facts dd { margin: 0; text-align: right; color: var(--cap-ink); font: 600 17px/1.3 var(--body); }
.licence-card > .textlink { margin-top: auto; }
.ops-state .licence-card + .licence-card { margin-top: 12px; }
.home-asset-card > .licence-card { flex: 1; margin: 24px; }
.home-asset-card .licence-card-facts { margin-top: auto; }
.home-asset-card .licence-card > .textlink { margin-top: 0; }
.home-asset-map img { object-fit: contain; }
.ops-explorer { overflow: visible; }

/* Facts and captions use body typography, including mobile technical material. */
.asset-kpis { margin: 0; }
.asset-kpis dt { color: var(--cap-text-secondary); font: 400 14px/1.45 var(--body); }
.country-facts dt, .public-snapshot dt, .ops-metric span, .map-art figcaption, .asset-detail-map .map-art figcaption, .ops-map-caption, .asset-tech-card .tech-note, .note, .ops-disclosure, .legal { font-size: 14px; line-height: 1.45; }
.public-snapshot dd { font-size: 17px; line-height: 1.45; }
.ops-metric span { text-transform: none; letter-spacing: 0; }
.ops-metric strong { font: 600 17px/1.3 var(--body); }
.ops-state > .eyebrow { font: 600 12px/1.4 var(--body); letter-spacing: .08em; }
.ops-country-choice .choice-title { font: 600 22px/1.25 var(--body); }

/* Enquiry fields: real labels, native input semantics, persistent inline errors. */
form.contact label { display: block; margin: 0 0 8px; color: var(--cap-ink); font: 600 14px/1.45 var(--body); letter-spacing: 0; text-transform: none; }
form.contact input, form.contact select, form.contact textarea {
  width: 100%; min-width: 0; min-height: 48px; padding: 12px 16px;
  border: 1px solid var(--cap-control-border); border-radius: 0;
  background: var(--cap-surface); color: var(--cap-ink); font: 400 16px/1.4 var(--body);
}
form.contact textarea { min-height: 160px; resize: vertical; }
form.contact [aria-invalid="true"] { border: 2px solid var(--cap-error); padding: 11px 15px; }
form.contact :disabled { background: var(--cap-surface-soft); color: var(--cap-text-secondary); border-color: var(--cap-border); }
form.contact .field-error { margin: 8px 0 0; color: var(--cap-error); font: 400 14px/1.45 var(--body); }
form.contact #enquiry-status { padding: 16px; border-left: 3px solid var(--cap-control-border); background: var(--cap-surface-soft); }

@media (max-width: 720px) {
  body { font-size: 16px; }
  .lede { font-size: 18px; }
  h3, .licence-card h3, .content-heading--small { font-size: 22px; }
  .burger { display: inline-flex; padding: 12px 16px; }
  .bar { gap: 16px; }
  .subtabs [data-tab] { flex: 1 1 auto; padding: 16px; }
  #ops-assets .subtabs [data-tab] { padding: 16px 8px; }
  .asset-detail-summary h2 { font-size: 32px; }
}
@media (max-width: 620px) {
  .asset-kpis { grid-template-columns: 1fr; border-left: 0; }
  .asset-kpis > div { display: grid; grid-template-columns: minmax(0,.42fr) minmax(0,.58fr); gap: 12px; align-items: baseline; min-height: 0; padding: 12px 0; border-right: 0; }
  .asset-kpis dd { text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; scroll-behavior: auto !important; }
}

/* Native route links retain the established tab/country control appearance. */
.subtabs a[data-tab], .ops-country-switch a, a.ops-country-choice, a.ops-back { text-decoration: none; }
.subtabs a[data-tab] { cursor: pointer; }

/* Direct website enquiries with a visible email alternative. */
.contact-email {
  margin: var(--cap-space-6) 0 var(--cap-space-3);
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.contact-email a {
  color: var(--cap-brand-hover);
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}
.contact-email a:hover { color: var(--cap-brand-active); }
.contact-intro { margin: 0; color: var(--cap-text-secondary); }
.contact-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; }
.enquiry-form { min-width: 0; border-top: 3px solid var(--cap-brand); padding-top: 22px; }
.enquiry-privacy { margin: 0 0 var(--cap-space-6); }
form.contact[inert] { display: none; }
.enquiry-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; border: 0; padding: 0; margin: 0; min-width: 0; }
form.contact .enquiry-fields:disabled { background: transparent; }
.enquiry-fields > div { min-width: 0; }
.enquiry-fields .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.enquiry-fields .full { grid-column: 1 / -1; }
.enquiry-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.enquiry-actions .btn { min-height: 48px; }
.enquiry-result { padding: 20px; border-left: 3px solid var(--cap-control-border); background: var(--cap-surface-soft); scroll-margin-block: calc(var(--site-header-height) + 24px) 24px; }
form.contact .enquiry-result #enquiry-status { margin: 0; padding: 0; border: 0; background: transparent; }
.enquiry-result h3 { margin: 0 0 12px; color: var(--cap-success); font-size: clamp(24px, 3vw, 32px); line-height: 1.2; }
.enquiry-result[data-state="success"] { padding: 28px; border-color: var(--cap-success); }
.enquiry-result[data-state="error"] { border-color: var(--cap-error); }
.enquiry-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#enquiry-verification { min-height: 140px; }
.contact-details { min-width: 0; border-top: 3px solid var(--cap-brand); padding-top: 22px; }
.contact-details address { font-style: normal; }
.contact-registration {
  margin: var(--cap-space-6) 0 0;
  padding-top: var(--cap-space-6);
  border-top: 1px solid var(--cap-border);
  color: var(--cap-text-secondary);
}
.contact-details a { overflow-wrap: anywhere; }
@media (max-width: 1040px) {
  .contact-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 540px) {
  .enquiry-fields { grid-template-columns: minmax(0, 1fr); }
}

/* Reading layout reuses the established CAP type, colour and spacing system. */
.privacy-copy { max-width: 780px; }
.privacy-copy h2 { margin: 0 0 16px; font: 600 24px/1.25 var(--body); }
.privacy-copy p { margin: 0 0 16px; line-height: 1.65; }
.privacy-copy section + section { margin-top: 40px; }
.privacy-copy a, .enquiry-privacy a { color: var(--cap-brand); text-decoration: underline; text-underline-offset: .18em; overflow-wrap: anywhere; }
.privacy-copy a:hover, .enquiry-privacy a:hover { color: var(--cap-brand-hover); }
.privacy-copy .privacy-updated { margin-bottom: 32px; }
.enquiry-privacy { margin: 0 0 24px; line-height: 1.55; }
@media (max-width: 520px) {
  .privacy-copy h2 { font-size: 22px; }
}

/* Accessibility, routing anchors and visibility. Component styles are owned by 15-components.css. */

/* Native route links retain the established action geometry and typography. */
a[data-go]:not(.textlink):not(.ops-asset-link) {
  text-decoration: none;
}
nav.main a[data-go] {
  display: block;
}
a.logo {
  text-decoration: none;
}

/* Both text and boundaries remain visible when keyboard users move onto a red surface. */
:focus-visible {
  outline: 3px solid var(--cap-ink);
  outline-offset: 3px;
}
.on-red :focus-visible,
footer.site :focus-visible,
.asset-dataroom :focus-visible {
  outline-color: var(--cap-surface);
}

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: var(--layer-skip-link);
  padding: 12px 20px;
  min-height: var(--cap-control-height);
  transform: translateY(calc(-100% - 24px));
  background: var(--cap-surface);
  color: var(--cap-ink);
  font-weight: 600;
  border: 2px solid var(--cap-ink);
}
.skip-link:focus {
  transform: translateY(0);
}
.not-found {
  min-height: 55vh;
  padding-top: 64px;
  padding-bottom: 64px;
}
.not-found h1 {
  margin-bottom: 24px;
}
.not-found p {
  color: var(--cap-text-secondary);
}
.not-found .btn {
  margin-top: 12px;
}

/* Route headings are focus destinations, not interactive controls. */
.view :is(h1,h2,h3)[tabindex="-1"]:focus { outline: none; }

/* Plain anchors and restored history must land below the sticky header. */
main,
.view h1,
#main-content,
#company-tabs,
#ops-basin,
#ops-host-countries {
  scroll-margin-top: calc(var(--site-header-height) + 16px);
}

/* User agents may otherwise let authored display values override the hidden attribute. */
[hidden] {
  display: none !important;
}

/* Route hierarchy: small readable links using the existing site foundations. */
.breadcrumbs { padding-block: 12px; color: var(--cap-text-secondary); font-size: 14px; line-height: 1.5; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; align-items: center; gap: 12px; }
.breadcrumbs li + li::before { content: ''; width: 5px; height: 5px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
.breadcrumbs a { color: inherit; text-decoration: underline; text-underline-offset: 3px; padding-block: 5px; }
.breadcrumbs a:hover { color: var(--cap-brand-hover); }
.breadcrumbs [aria-current="page"] { color: var(--cap-ink); }
