/* ==========================================================================
   Al Blagha Group
   One world: black, graphite, paper. No chroma in the interface; every colour
   on the page comes from the group's own photography. Display type is the
   brand's own Silk Serif (Shahd in Arabic); Frutiger LT Arabic carries both
   scripts in text. One invented geometry: a single chamfered corner, reused.
   ========================================================================== */

:root{
  /* Navy, white and grey, anchored on the wordmark's own #0E2841. Any colour
     beyond these three arrives through the photography, never the interface. */
  --paper:#FFFFFF; --paper-2:#EEF2F4;
  --ink:#0E2841; --ink-2:#163650; --graphite:#23486A;
  --text:#0E2841; --text-2:#54656D; --text-3:#5B6A74;
  --on-ink:#EEF2F4; --on-ink-2:#B7C3CB; --on-ink-3:#94A5AF;
  --edge:rgba(14,40,65,.14); --edge-soft:rgba(14,40,65,.07);
  --edge-ink:rgba(238,242,244,.17); --edge-ink-soft:rgba(238,242,244,.09);
  --font-display:"Inter Tight","IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --font-body:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --font-ar:"IBM Plex Sans Arabic","Noto Sans Arabic",Tahoma,sans-serif;
  --container:1320px; --gutter:clamp(20px,4.2vw,56px);
  --header-h:78px; --chamfer:22px;
  --grain:url("data:image/png;base64,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");
  --ease:cubic-bezier(.22,1,.36,1); --dur:.5s;
  --track-display:-.03em; --track-label:.02em;
}
.lang-ar{ --font-display:var(--font-ar); --font-body:var(--font-ar); --track-display:-.005em; --track-label:.01em; }

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--font-body);font-weight:400;
  font-size:clamp(16px,1.02vw,17.5px);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
p{margin:0 0 1.1em}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:var(--track-display);line-height:1.04}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
body.menu-open{overflow:hidden}
.lang-ar p,.lang-ar li,.lang-ar dd{line-height:1.85}

.skip{position:absolute;inset-inline-start:1rem;top:-200px;background:var(--ink);color:var(--on-ink);
  padding:.7rem 1.1rem;z-index:1000}
.skip:focus{top:0}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}

/* -- Type scale ---------------------------------------------------------- */
.display-1{font-family:var(--font-display);font-weight:600;font-size:clamp(2.9rem,7.4vw,6.6rem);line-height:.98;
  letter-spacing:var(--track-display)}
.display-2{font-family:var(--font-display);font-weight:600;font-size:clamp(2.1rem,4.4vw,3.9rem);line-height:1.04;
  letter-spacing:var(--track-display)}
.h3{font-family:var(--font-display);font-weight:600;font-size:clamp(1.28rem,1.9vw,1.62rem);line-height:1.24;
  letter-spacing:0}
.lead{font-size:clamp(1.06rem,1.34vw,1.22rem);line-height:1.6;color:var(--text-2);max-width:58ch;margin:0 0 1.4rem}
.lang-ar .lead{line-height:1.85}
.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
/* Figures read left to right even on an Arabic page, so "SAR 19B+" is never
   reordered into "+SAR 19B". Alignment still follows the paragraph. */
.kpi__v,.journey__year,.chapter__year,.figure-only__v,.register__v,
.sec-open__n,.news-card__date{unicode-bidi:plaintext}
.label{display:block;font-family:var(--font-body);font-weight:700;font-size:.78rem;letter-spacing:var(--track-label);
  color:var(--text-3)}
.section--ink .label,.vhero .label,.page-head .label{color:var(--on-ink-3)}
.mono{font-family:var(--font-body);font-weight:400;letter-spacing:var(--track-label)}

/* -- Sections and section openings (deliberately varied) ----------------- */
.section{padding:clamp(4.2rem,8.4vw,9rem) 0;position:relative}
.section--tight{padding:clamp(2.4rem,4vw,3.6rem) 0}
.section--white{background:var(--paper)}
.section--bone,.section--tint{background:var(--paper-2)}
.section--ink{background-color:var(--ink);background-image:var(--grain);color:var(--on-ink)}.section--ink h1,.section--ink h2,.page-head h2,.cta-band h2,.section--ink h3,.page-head h3,.cta-band h3,.section--ink h4,.page-head h4,.cta-band h4{color:var(--on-ink)}.section--ink p,.section--ink .lead,.page-head .lead,.cta-band .lead{color:var(--on-ink-2)}
.section--ink a{color:var(--on-ink)}

.sec-open{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.2rem,3vw,2.6rem);align-items:start;
  margin-bottom:clamp(1.8rem,3.4vw,3rem)}
.sec-open__n{font-family:var(--font-display);font-weight:600;font-size:clamp(2.1rem,4.4vw,3.9rem);line-height:.9;
  color:var(--text-3);font-variant-numeric:tabular-nums}
.section--ink .sec-open__n{color:var(--on-ink-3)}
.sec-open__t{min-width:0}
.sec-open__t .lead{margin-top:1.1rem;margin-bottom:0}
.sec-bare{margin-bottom:clamp(1.8rem,3.4vw,3rem)}
.sec-bare .lead{margin-top:1.2rem;margin-bottom:0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  margin-bottom:clamp(1.8rem,3.4vw,3rem)}
.sec-head>div{min-width:0}
.eyebrow{display:block;margin-bottom:.9rem}
.chip,.rule-teal,.rule,.vcard__arrow,.footer-line,.hero-scroll{display:none}
.text-teal{color:inherit}

/* -- Actions: one action per block; never a filled+outlined pair --------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-body);font-weight:700;
  font-size:.94rem;letter-spacing:.01em;border:0;background:none;cursor:pointer;
  transition:color var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.btn::after,.hero__act::after{content:"";width:.62em;height:.62em;flex:none;background:currentColor;
  clip-path:polygon(0 0,100% 0,100% 100%,82% 100%,82% 27%,14% 96%,0 82%,68% 14%,0 14%);
  transition:transform var(--dur) var(--ease)}
.lang-ar .btn::after,.lang-ar .hero__act::after{transform:scaleX(-1)}
.btn:hover::after,.btn:focus-visible::after,.hero__act:hover::after{transform:translate(3px,-3px)}
.lang-ar .btn:hover::after,.lang-ar .btn:focus-visible::after,.lang-ar .hero__act:hover::after{transform:scaleX(-1) translate(3px,-3px)}
.btn--plain,.btn--ghost,.btn--teal{color:var(--text);padding:.55rem 0;border-bottom:1px solid var(--edge)}
.btn--plain:hover,.btn--ghost:hover,.btn--teal:hover{border-bottom-color:var(--text)}.section--ink .btn--plain,.section--ink .btn--ghost,.page-head .btn--ghost,.cta-band .btn--ghost{color:var(--on-ink);border-bottom-color:var(--edge-ink)}.section--ink .btn--plain:hover,.section--ink .btn--ghost:hover,.page-head .btn--ghost:hover,.cta-band .btn--ghost:hover{border-bottom-color:var(--on-ink)}
.btn--ink{background:var(--ink);color:var(--on-ink);padding:1.02rem 1.7rem 1.02rem 1.4rem;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}
.btn--ink:hover{background:var(--graphite);color:var(--on-ink)}
.section--ink .btn--light,.btn--light{background:var(--on-ink);color:var(--ink);padding:1.02rem 1.7rem 1.02rem 1.4rem;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}
.section--ink .btn--light:hover,.btn--light:hover{background:#fff;color:var(--ink)}

/* -- Header: transparent over the hero, solid navy once scrolled -------- */
.site-header{position:fixed;inset-inline:0;top:0;z-index:100;height:var(--header-h);
  transition:background .45s var(--ease)}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(10,34,48,.80),rgba(10,34,48,.44) 55%,transparent);
  transition:opacity .45s var(--ease)}
.site-header.is-scrolled{background:var(--ink)}
.site-header.is-scrolled::before{opacity:0}
body:not(.has-hero) .site-header{background:var(--ink)}
body:not(.has-hero) .site-header::before{opacity:0}
.site-header__row{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand__img{height:29px;width:auto}
.site-header__tools{display:flex;align-items:center;gap:1.4rem}
.site-nav ul{display:flex;gap:clamp(1rem,2.1vw,2.1rem)}
.site-nav a{color:#D6DEE3;font-size:.94rem;padding:.4rem 0;transition:color .3s var(--ease)}
.site-nav a:hover{color:#fff}
.site-nav a[aria-current="page"]{color:#fff;font-weight:700}
.lang-switch{color:#D6DEE3;font-size:.86rem;font-weight:700;letter-spacing:var(--track-label);
  padding:.42rem .8rem;border:1px solid rgba(238,242,244,.34);transition:color .3s,border-color .3s}
.lang-switch:hover{color:#fff;border-color:#fff}
.menu-toggle{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer;padding:10px}
.menu-toggle span{display:block;height:1.5px;background:var(--on-ink);margin:5px 0;
  transition:transform .3s var(--ease),opacity .2s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:var(--header-h) 0 0;z-index:99;background:var(--ink);color:var(--on-ink);
  padding:clamp(1.6rem,5vw,3rem) var(--gutter);overflow-y:auto}
.mobile-menu__list{display:grid;gap:.2rem}
.mobile-menu__list a{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,7vw,2.5rem);
  line-height:1.24;color:var(--on-ink);display:block;padding:.24rem 0}
.mobile-menu__foot{margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--edge-ink);
  color:var(--on-ink-3);font-size:.9rem}

/* -- Hero: full-bleed photography owns the fold -------------------------- */
.hero{position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto;
  grid-template-columns:minmax(0,100%);isolation:isolate;background:var(--ink);overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 44%;will-change:transform}
/* One directional scrim: a floor under the type and a thin band under the nav.
   It fades to nothing well before the top edge so the photograph stays visible. */
.hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(to top,rgba(10,34,48,.82) 0%,rgba(10,34,48,.50) 24%,rgba(10,34,48,.14) 52%,rgba(10,34,48,0) 74%),
  linear-gradient(to bottom,rgba(10,34,48,.58) 0%,rgba(10,34,48,0) 17%)}
.hero__body{position:relative;z-index:2;align-self:end;padding-block:clamp(2.4rem,7vw,5.2rem) clamp(1.8rem,3.2vw,2.6rem);color:var(--on-ink)}
/* Legibility floor: sits only behind the hero type and fades to nothing
   above it, so the photograph is never darkened where no text sits. */
.hero__body::before{content:"";position:absolute;z-index:-1;inset-inline:0;bottom:0;top:-14%;
  pointer-events:none;background:linear-gradient(to top,rgba(10,34,48,.60) 0%,rgba(10,34,48,.56) 48%,
    rgba(10,34,48,.34) 78%,rgba(10,34,48,0) 100%)}
.hero__line{font-family:var(--font-display);font-weight:600;color:#fff;
  font-size:clamp(2.05rem,5.1vw,4.3rem);line-height:1.04;letter-spacing:var(--track-display);
  max-width:26ch;text-wrap:balance;
  text-shadow:0 2px 16px rgba(10,34,48,.72),0 1px 54px rgba(10,34,48,.5)}
.hero__sub{margin:clamp(1.2rem,2.4vw,1.8rem) 0 clamp(1.6rem,3vw,2.2rem);max-width:48ch;color:#E3E9EC;
  font-size:clamp(1.04rem,1.3vw,1.2rem);line-height:1.55;
  text-shadow:0 1px 12px rgba(10,34,48,.9),0 1px 30px rgba(10,34,48,.6)}
.hero__act{display:inline-flex;align-items:center;gap:.6rem;color:#fff;font-weight:700;font-size:1rem;
  padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.5);transition:border-color .4s var(--ease);
  text-shadow:0 1px 12px rgba(10,34,48,.9)}
.hero__act:hover{border-bottom-color:#fff}

/* -- Asset register: real figures, moving, crossing the hero's edge ------ */
.register{position:relative;z-index:3;min-width:0;max-width:100%;overflow:hidden;
  background-color:var(--ink-2);background-image:var(--grain);
  border-top:1px solid var(--edge-ink);border-bottom:1px solid var(--edge-ink)}
.register__vp{overflow:hidden}
.register__track{display:flex;width:max-content;animation:register-run 82s linear infinite}
.register:hover .register__track,.register:focus-within .register__track{animation-play-state:paused}
.register__set{display:flex;flex:none}
.register__i{display:flex;align-items:baseline;gap:.7rem;flex:none;padding:1.05rem clamp(1.1rem,2.2vw,2rem);
  border-inline-end:1px solid var(--edge-ink-soft);white-space:nowrap;font-size:.9rem}
.register__n{color:var(--on-ink);font-weight:700}
.register__v{color:var(--on-ink-2);font-variant-numeric:tabular-nums}
.register__s{color:var(--on-ink-3)}
@keyframes register-run{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.lang-ar .register__track{animation-name:register-run-rtl}
@keyframes register-run-rtl{from{transform:translate3d(0,0,0)}to{transform:translate3d(50%,0,0)}}

/* -- Page head (interior pages) ----------------------------------------- */
.page-head{padding:calc(var(--header-h) + clamp(3.4rem,7vw,6.4rem)) 0 clamp(2.6rem,5vw,4.4rem);
  background-color:var(--ink);background-image:var(--grain);color:var(--on-ink)}
.page-head h1{color:var(--on-ink);max-width:22ch;text-wrap:balance}
.page-head .lead{color:var(--on-ink-2);margin-top:1.3rem;margin-bottom:0}

/* -- Vertical hero ------------------------------------------------------- */
.vhero{position:relative;min-height:clamp(470px,76svh,780px);display:flex;align-items:flex-end;
  padding-block:calc(var(--header-h) + 2rem) clamp(2.4rem,5vw,4rem);background:var(--ink);color:var(--on-ink);
  overflow:hidden;isolation:isolate}
.vhero>.container{position:relative;z-index:2}
.vhero__img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.vhero::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(10,34,48,.92),rgba(10,34,48,.60) 42%,rgba(10,34,48,.22) 74%,rgba(10,34,48,.44))}
.vhero h1{color:#fff;text-shadow:0 1px 36px rgba(10,34,48,.55);max-width:20ch}
.vhero .lead{color:#E3E9EC;max-width:52ch;margin-top:1.2rem;margin-bottom:0;text-shadow:0 1px 22px rgba(10,34,48,.65)}
.vhero .label{color:#C5CFD5;margin-bottom:1rem}
.vhero__logo{display:block;margin-bottom:1.5rem}
.vhero__logo img{height:38px;width:auto;filter:brightness(0) invert(1);opacity:.95}
.breadcrumb{display:flex;gap:.6rem;align-items:center;font-size:.88rem;color:#C5CFD5;margin-bottom:1.3rem}
.breadcrumb a{border-bottom:1px solid rgba(255,255,255,.32)}
.breadcrumb a:hover{border-bottom-color:#fff}

/* -- Figures: the house chamfer; captions live outside the frame --------- */
.photo{margin:0;position:relative}
.photo img{width:100%;object-fit:cover;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}
.photo--wide img{aspect-ratio:2/1}
.photo--portrait img{aspect-ratio:4/5}
/* A portrait must not inflate to the full column when .span-4 collapses to a
   full-width row at 1100px and below. */
.photo--portrait{max-width:360px}
.photo__cap{margin-top:.7rem;font-size:.82rem;font-weight:700;letter-spacing:var(--track-label);color:var(--text-3)}
.section--ink .photo__cap{color:var(--on-ink-3)}

.figure-only{display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:16/9;
  border-top:2px solid var(--ink);padding-top:1rem}
.figure-only__v{font-family:var(--font-display);font-weight:600;font-size:clamp(2.6rem,5vw,4.2rem);
  line-height:1;color:var(--text);font-variant-numeric:tabular-nums}
.figure-only .photo__cap{margin-top:.7rem}

/* -- Figure registers, set as type rather than boxes -------------------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  column-gap:clamp(1.4rem,3vw,2.6rem);row-gap:0;
  border-top:1px solid var(--edge-ink)}
.kpi{padding:clamp(1.4rem,2.4vw,2rem) clamp(1rem,1.8vw,1.6rem) clamp(1.4rem,2.4vw,2rem) 0;
  border-bottom:1px solid var(--edge-ink)}
.kpi__v{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,2.5vw,2.4rem);line-height:1;
  white-space:nowrap;
  color:var(--on-ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.kpi__k{margin-top:.6rem;font-size:.8rem;font-weight:700;letter-spacing:var(--track-label);color:var(--on-ink-3);
  max-width:22ch}
.kpi-grid--light{border-top-color:var(--edge)}
.kpi-grid--light .kpi{border-bottom-color:var(--edge)}
.kpi-grid--light .kpi__v{color:var(--text);font-size:clamp(1.6rem,2.2vw,2.1rem)}
.kpi-grid--light .kpi__k{color:var(--text-3)}
.kpi-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
  column-gap:clamp(1.2rem,2.4vw,2rem);row-gap:0;border-top:1px solid var(--edge)}
.kpi-inline .kpi{border-bottom:1px solid var(--edge)}
.kpi-inline .kpi__v{color:var(--text);font-size:clamp(1.45rem,1.9vw,1.85rem);white-space:normal}
.kpi-inline .kpi__k{color:var(--text-3)}

/* Figures compared side by side share a fixed aspect, so every caption
   sits on the same baseline instead of stepping down the row. */
.grid-3 .photo img,.grid-4 .photo img{aspect-ratio:16/10}
.grid-3 .photo,.grid-4 .photo{align-self:start}

/* -- Grids -------------------------------------------------------------- */
.grid{display:grid;gap:clamp(1.1rem,2.1vw,1.9rem)}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.1rem,2.4vw,2.6rem)}
.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.span-8{grid-column:span 8}

/* -- Vertical cards: photography, one chamfer, no hover lift ------------ */
.verticals-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(.8rem,1.5vw,1.3rem)}
.vcard{position:relative;grid-column:span 2;display:block;overflow:hidden;isolation:isolate;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}
.vcard--lg{grid-column:span 4}
.vcard--md{grid-column:span 3}
.vcard img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;z-index:0;
  transition:transform 1.1s var(--ease)}
.vcard::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(10,34,48,.90),rgba(10,34,48,.44) 46%,rgba(10,34,48,.06) 78%)}
.vcard:hover img{transform:scale(1.035)}
.vcard__body{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:clamp(300px,34vw,430px);padding:clamp(1.3rem,2.2vw,1.9rem);
  padding-inline-end:clamp(2.8rem,4.2vw,3.6rem);color:#fff}
.vcard--lg .vcard__body{min-height:clamp(360px,42vw,560px)}
.vcard__sector{display:block;font-size:.78rem;font-weight:700;letter-spacing:var(--track-label);color:#C5CFD5;
  margin-bottom:.5rem}
.vcard__name{display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(1.4rem,2.2vw,2rem);
  line-height:1.08;letter-spacing:var(--track-display);text-shadow:0 1px 26px rgba(10,34,48,.6)}
.vcard--lg .vcard__name{font-size:clamp(1.7rem,3vw,2.7rem)}
.vcard__thesis{margin:.8rem 0 0;color:#D6DEE3;font-size:.98rem;line-height:1.5;max-width:40ch}

/* -- Panels ------------------------------------------------------------- */
.card{background:var(--paper-2);border:1px solid rgba(10,34,48,.05);padding:clamp(1.3rem,2.2vw,1.9rem);
  padding-inline-end:clamp(2.2rem,3.2vw,2.8rem);
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}
.card--white{background:var(--paper-2);border-color:rgba(10,34,48,.05)}
.card--ink{background:var(--ink-2);border-color:var(--edge-ink);color:var(--on-ink)}
.card p{margin:.7rem 0 0;color:var(--text-2)}
.card .h3{margin-top:.55rem}
.section--ink .card{background:var(--ink-2);border-color:rgba(238,242,244,.06)}
.section--ink .card p{color:var(--on-ink-2)}
.one-sheet{border-top:1px solid var(--edge);padding-top:1.2rem;display:grid;
  grid-template-columns:minmax(0,14rem) 1fr;gap:clamp(1rem,2.4vw,2.4rem)}
.one-sheet p{margin:0;color:var(--text-2);max-width:62ch}
.section--ink .one-sheet{border-top-color:var(--edge-ink)}
.section--ink .one-sheet p{color:var(--on-ink-2)}
.statement{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.1rem,2.1vw,1.9rem)}
.quote{margin:0;padding:0}
.quote p{font-family:var(--font-display);font-weight:600;font-size:clamp(1.4rem,2.6vw,2.15rem);line-height:1.2;
  color:var(--text);margin:0}
.quote footer{margin-top:1.2rem;font-size:.86rem;font-weight:700;letter-spacing:var(--track-label);color:var(--text-3)}

.section--ink .quote p{color:var(--on-ink)}
.section--ink .quote footer{color:var(--on-ink-3)}

/* -- Tables ------------------------------------------------------------- */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th{text-align:start;font-weight:700;font-size:.78rem;letter-spacing:var(--track-label);color:var(--text-3);
  padding:0 1.2rem .8rem 0;border-bottom:1px solid var(--ink)}
td{padding:1.05rem 1.2rem 1.05rem 0;border-bottom:1px solid var(--edge-soft);vertical-align:top;color:var(--text-2)}
td:first-child{color:var(--text);font-weight:700}
.status{font-size:.82rem;font-weight:700;letter-spacing:var(--track-label);color:var(--text-3);white-space:nowrap}
.status--on{color:var(--text)}
.status--on::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink);
  margin-inline-end:.5rem;vertical-align:.15em}

/* -- Journey: years on a rounded rail ----------------------------------- */
.journey{position:relative}
.journey__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(238px,1fr);gap:1.4rem;
  overflow-x:auto;scroll-snap-type:x proximity;padding:2.4rem 0 1.6rem;
  scrollbar-width:thin;scrollbar-color:var(--text-3) transparent;position:relative}
.journey__line{position:absolute;top:2.4rem;inset-inline:0;height:2px;border-radius:2px;background:var(--edge)}
.journey__progress{position:absolute;top:2.4rem;inset-inline-start:0;height:2px;width:0;border-radius:2px;
  background:var(--ink)}
.section--ink .journey__line{background:var(--edge-ink)}
.section--ink .journey__progress{background:var(--on-ink)}
.journey__item{scroll-snap-align:start;position:relative;padding-top:1.6rem}
.journey__item::before{content:"";position:absolute;top:-.28rem;inset-inline-start:0;width:9px;height:9px;
  border-radius:50%;background:var(--paper-2);border:2px solid var(--text-3)}
.journey__item--hi::before{background:var(--ink);border-color:var(--ink)}
.section--ink .journey__item::before{background:var(--ink);border-color:var(--on-ink-3)}
.section--ink .journey__item--hi::before{background:var(--on-ink);border-color:var(--on-ink)}
.journey__year{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,2.7vw,2.5rem);
  color:var(--text-3);line-height:1;font-variant-numeric:tabular-nums}
.journey__item--hi .journey__year{color:var(--text);font-weight:600}
.section--ink .journey__year{color:var(--on-ink-3)}
.section--ink .journey__item--hi .journey__year{color:var(--on-ink)}
.journey__item h4{margin:.7rem 0 .4rem;font-family:var(--font-body);font-weight:700;font-size:1rem;
  line-height:1.35;letter-spacing:0}
.journey__item p{font-size:.92rem;color:var(--text-2);max-width:32ch;margin:0}
.section--ink .journey__item h4{color:var(--on-ink)}
.section--ink .journey__item p{color:var(--on-ink-2)}
.journey__photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.9rem,1.7vw,1.4rem);
  margin-bottom:1.6rem}
.chapter{display:grid;grid-template-columns:minmax(0,13rem) 1fr;gap:clamp(1.2rem,3vw,3rem);
  padding:clamp(2.2rem,4.4vw,3.8rem) 0;border-top:1px solid var(--edge)}
.chapter:first-of-type{border-top:0}
/* Portfolio rows carry a heading and a paragraph on the left, so they get
   an even split rather than the narrow year rail the story chapters use. */
.chapter--split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:900px){.chapter--split{grid-template-columns:1fr}}
.chapter__year{font-family:var(--font-display);font-weight:600;font-size:clamp(2.2rem,4vw,3.4rem);line-height:1;
  color:var(--text);font-variant-numeric:tabular-nums}
.section--ink .chapter{border-top-color:var(--edge-ink)}
.section--ink .chapter__year{color:var(--on-ink)}

/* -- Leaders, values ---------------------------------------------------- */
.leaders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.1rem,2.1vw,1.9rem)}
.leader img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}
.leader h3{margin:1rem 0 .3rem;font-family:var(--font-display);font-weight:600;font-size:1.32rem}
.leader span{font-size:.88rem;color:var(--text-3)}
.section--ink .leader span{color:var(--on-ink-3)}
.values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.1rem,2.1vw,1.9rem);margin-top:1.4rem}
.value{border-top:2px solid var(--ink);padding-top:1.1rem}
.value img{width:26px;height:26px;margin-bottom:.9rem;opacity:.9}
.value span{display:block;font-weight:700;font-size:.94rem;letter-spacing:var(--track-label)}
.section--ink .value{border-top-color:var(--on-ink)}
.section--ink .value img{filter:brightness(0) invert(1)}

/* -- Globe -------------------------------------------------------------- */
.globe-wrap{position:relative;aspect-ratio:1/1;max-height:640px}
#globe{position:absolute;inset:0}
#globe canvas{display:block}
.globe-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.5}
.globe-wrap.is-live .globe-fallback{opacity:0;transition:opacity .8s var(--ease)}
.countries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(1rem,2.4vw,2.4rem);margin-top:2rem}
.countries li{display:flex;gap:.9rem;align-items:baseline;padding:.72rem 0;
  border-bottom:1px solid var(--edge-ink);font-size:.95rem;color:var(--on-ink)}
.countries li span:first-child{color:var(--on-ink-3);font-variant-numeric:tabular-nums;font-size:.82rem}

/* -- Logos: bare marks, no tiles --------------------------------------- */
.logo-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));
  gap:clamp(1.6rem,3vw,2.8rem);align-items:center}
.logo-wall li{display:grid;place-items:center;min-height:52px}
.logo-wall img{max-height:40px;max-width:100%;width:auto;opacity:.6;
  transition:opacity .45s var(--ease)}
.logo-wall li:hover img{opacity:1}
.company-logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;
  border-top:1px solid var(--edge)}
.company-logos a{display:block;padding:1.5rem 1.4rem 1.5rem 0;border-bottom:1px solid var(--edge)}
.company-logos img{max-height:34px;width:auto}

/* -- News -------------------------------------------------------------- */
.news-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(1.4rem,2.6vw,2.4rem)}
.news-card{display:block;padding:1.5rem 0;border-top:1px solid var(--edge)}
.news-card__meta{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;font-weight:700;
  letter-spacing:var(--track-label);color:var(--text-3);margin-bottom:.85rem}
.news-card__src{color:var(--text)}
.news-card h3{font-family:var(--font-display);font-weight:600;font-size:1.14rem;line-height:1.26;margin:0 0 .6rem;
  letter-spacing:0}
.news-card p{font-size:.92rem;color:var(--text-2);margin:0}
.news-card:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.news-status{color:var(--text-3);font-size:.94rem}
.section--ink .news-card{border-top-color:var(--edge-ink)}
.section--ink .news-card h3{color:var(--on-ink)}
.section--ink .news-card p{color:var(--on-ink-2)}
.section--ink .news-card__src{color:var(--on-ink)}
.swiper{overflow:hidden}
.swiper-pagination-bullet{background:var(--text-3);opacity:.4;border-radius:0;width:16px;height:2px}
.swiper-pagination-bullet-active{background:var(--ink);opacity:1}

/* -- Forms ------------------------------------------------------------- */
.contact-block{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.8rem,4.4vw,4.4rem)}
.contact-meta{margin:0;display:grid;grid-template-columns:minmax(0,10rem) 1fr;gap:0 1.4rem}
.contact-meta dt{font-size:.78rem;font-weight:700;letter-spacing:var(--track-label);color:var(--text-3);
  padding:1rem 0;border-top:1px solid var(--edge)}
.contact-meta dd{margin:0;padding:1rem 0;border-top:1px solid var(--edge);color:var(--text)}
.contact-meta a{border-bottom:1px solid var(--edge)}
.contact-meta a:hover{border-bottom-color:var(--text)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.4rem}
.field{display:block}
.field.full,.form-grid .full{grid-column:1/-1}
.field label{display:block;font-size:.78rem;font-weight:700;letter-spacing:var(--track-label);color:var(--text-3);
  margin-bottom:.5rem}
.field input,.field textarea{width:100%;font-family:var(--font-body);font-size:1rem;color:var(--text);
  background:var(--paper);border:1px solid var(--edge);padding:.85rem .9rem;border-radius:0;
  transition:border-color .3s var(--ease)}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--ink)}
.field textarea{min-height:150px;resize:vertical}
.hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);border:0;white-space:nowrap}
.form-status{margin:.9rem 0 0;font-size:.92rem;color:var(--text-2)}
.map-embed{width:100%;aspect-ratio:16/10;border:1px solid var(--edge);
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%)}

/* -- CTA band and footer ----------------------------------------------- */
.cta-band{background-color:var(--ink);background-image:var(--grain)}
.cta-band__row{display:flex;align-items:flex-end;justify-content:space-between;gap:2.4rem;flex-wrap:wrap}
.cta-band h2{color:var(--on-ink);max-width:24ch}
.site-footer{background-color:var(--ink);background-image:var(--grain);color:var(--on-ink-2);padding:clamp(3.2rem,6vw,5rem) 0 0;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(1.6rem,3.4vw,3rem)}
.footer-logo{height:32px;width:auto;filter:brightness(0) invert(1);opacity:.95}
.footer-addr{margin-top:1.2rem;font-size:.95rem;color:var(--on-ink-2);max-width:32ch}
.footer-addr a{border-bottom:1px solid var(--edge-ink)}
.footer-addr a:hover{border-bottom-color:var(--on-ink)}
.footer-h{font-size:.78rem;font-weight:700;letter-spacing:var(--track-label);color:var(--on-ink-3);margin-bottom:1rem}
.footer-links li{margin-bottom:.62rem}
.footer-links a{color:var(--on-ink);font-size:.95rem}
.footer-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer-sector{color:var(--on-ink-3);font-size:.84rem}
.footer-since{margin-top:1.4rem;font-size:.84rem;color:var(--on-ink-3);letter-spacing:var(--track-label)}
.footer-bottom{display:flex;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;
  margin-top:clamp(2.4rem,4.4vw,3.4rem);padding:1.3rem 0;border-top:1px solid var(--edge-ink);
  font-size:.84rem;color:var(--on-ink-3)}

.not-found{text-align:center;padding-block:calc(var(--header-h) + 6rem) 7rem}
.not-found .lead{margin-inline:auto}

/* -- Reveals animate position only; content is never hidden by motion --- */
.reveal,.reveal-stagger>*{will-change:transform}

/* -- Responsive -------------------------------------------------------- */
@media (max-width:1100px){
  .grid-12{grid-template-columns:repeat(6,minmax(0,1fr))}
  .span-4,.span-5,.span-7,.span-8{grid-column:span 6}
  .verticals-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  /* Four cards in a four-column track: the lead card keeping its full-width
     span would leave the fourth alone on a half row, so below 1100px all
     four take the same span and set two even rows. The lead card is no
     wider here, so it drops the taller body with it. */
  .vcard,.vcard--md,.vcard--lg{grid-column:span 2}
  .vcard--lg .vcard__body{min-height:clamp(300px,34vw,430px)}
  .contact-block,.grid-2{grid-template-columns:1fr}
  .news-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Touch targets: list links and the brand mark need a real tappable box. */
  .footer-links li{margin-bottom:0}
  .footer-links a{display:block;padding:.66rem 0}
  .brand{display:inline-flex;align-items:center;min-height:44px}
  .footer-addr a,.contact-meta a,.breadcrumb a,.one-sheet a,.lead a,.card a{
    display:inline-block;padding-block:.55rem}
  .hero__act{padding-block:.4rem .7rem}
  .btn--plain,.btn--ghost,.btn--teal{padding-block:.7rem}
  .lang-switch{padding:.6rem .85rem}
  .site-nav{display:none}
  .menu-toggle{display:block}
  .brand__img{height:26px}
  .grid-3,.grid-4,.leaders,.journey__photos,.kpi-inline,.values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .statement,.chapter,.one-sheet,.contact-meta,.countries{grid-template-columns:1fr}
  .contact-meta dt{padding-bottom:0}
  .contact-meta dd{padding-top:.3rem;border-top:0}
  .sec-open{grid-template-columns:1fr;gap:.5rem}
  .hero__line{max-width:none}
}
@media (max-width:640px){
  .footer-grid{grid-template-columns:1fr;gap:1.8rem}
  .grid-12{grid-template-columns:1fr}
  .span-4,.span-5,.span-7,.span-8{grid-column:auto}
  .countries{grid-template-columns:1fr}
  .verticals-grid{grid-template-columns:1fr}
  .vcard,.vcard--lg,.vcard--md{grid-column:span 1}
  .grid-3,.grid-4,.leaders,.news-list,.journey__photos,.values,.form-grid,.kpi-inline{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  :root{--chamfer:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important}
  .register__vp{overflow-x:auto}
  .register__track{animation:none;width:auto}
  .journey__progress{width:100%}
}

/* -- Dark grounds -------------------------------------------------------
   .page-head and .cta-band are black like .section--ink, so they take the
   same palette. Declared last so nothing can inherit a light-mode colour
   onto a dark surface. */
.page-head,.cta-band{color:var(--on-ink)}
.page-head p,.cta-band p,.page-head .lead,.cta-band .lead{color:var(--on-ink-2)}
.page-head .label,.cta-band .label,.page-head .photo__cap,.cta-band .photo__cap{color:var(--on-ink-3)}
.page-head .one-sheet,.cta-band .one-sheet{border-top-color:var(--edge-ink)}
.page-head .one-sheet p,.cta-band .one-sheet p{color:var(--on-ink-2)}
.page-head .card,.cta-band .card{background:var(--ink-2);border-color:rgba(238,242,244,.06)}
.page-head .card p,.cta-band .card p{color:var(--on-ink-2)}
.page-head a,.cta-band a{color:var(--on-ink)}
.page-head .btn--plain,.cta-band .btn--plain,.page-head .btn--ghost,.cta-band .btn--ghost{
  color:var(--on-ink);border-bottom-color:var(--edge-ink)}
.page-head .btn--plain:hover,.cta-band .btn--plain:hover,
.page-head .btn--ghost:hover,.cta-band .btn--ghost:hover{border-bottom-color:var(--on-ink)}

.page-head .quote p,.cta-band .quote p{color:var(--on-ink)}
.page-head .quote footer,.cta-band .quote footer{color:var(--on-ink-3)}
.page-head .kpi-grid,.cta-band .kpi-grid{border-top-color:var(--edge-ink)}
.page-head th,.cta-band th{color:var(--on-ink-3);border-bottom-color:var(--on-ink)}
.page-head td,.cta-band td{color:var(--on-ink-2);border-bottom-color:var(--edge-ink-soft)}
.page-head td:first-child,.cta-band td:first-child{color:var(--on-ink)}
/* a light button always keeps dark text, whatever ground it lands on */
.section--ink .btn--light,.page-head .btn--light,.cta-band .btn--light{color:var(--ink)}

/* -- Collapsed list blocks --------------------------------------------
   Below 900px the figure grids, the values row and the country list all
   fall to one column. Keeping desktop cell padding and a rule on every
   row turns each of them into a ladder of lines with too much air, so
   tighten the padding, separate rows with a single hairline, and let the
   last row close the list without a trailing rule. */
@media (max-width:900px){
  .kpi{padding:.8rem 0}
  .kpi__k{margin-top:.28rem}
  .kpi-grid,.kpi-inline{border-top:0}
  .kpi-grid .kpi{border-bottom:1px solid var(--edge-ink)}
  .kpi-grid--light .kpi,.kpi-inline .kpi{border-bottom:1px solid var(--edge)}
  .kpi-grid .kpi:last-child,.kpi-grid--light .kpi:last-child,.kpi-inline .kpi:last-child{border-bottom:0}

  .values{gap:0;margin-top:1rem}
  .value{border-top:0;border-bottom:1px solid var(--edge);padding:.78rem 0;
    display:flex;align-items:center;gap:.75rem}
  .value:last-child{border-bottom:0}
  .value img{width:20px;height:20px;margin:0;flex:none}
  .section--ink .value{border-bottom-color:var(--edge-ink)}

  .countries{margin-top:1.2rem}
  .countries li{padding:.58rem 0}
  .countries li:last-child{border-bottom:0}
}

/* -- Focus visibility --------------------------------------------------
   The chamfer is a clip-path, and a clip-path paints away anything drawn
   outside the shape: an outward outline on a chamfered link or button is
   invisible. So on clipped elements the ring is INSET, which survives the
   clip on all four sides and reads as a deliberate diagonal cut at the
   chamfered corner. Form fields kept only a border shift, which is not a
   focus ring, so they get a real one back. */
/* -- Few figures, one band ---------------------------------------------
   With five figures the auto-fit track filled the row. With two it gave
   each of them half the container and marooned them at opposite edges,
   so above the collapse point the track takes a maximum and the pair
   packs to the reading edge. Vertical pages set their own two columns. */
@media (min-width:901px){
  .kpi-grid:not(.kpi-grid--light){
    grid-template-columns:repeat(auto-fit,minmax(170px,240px));justify-content:start}
}

.vcard:focus-visible,.btn--ink:focus-visible,.btn--light:focus-visible,
.map-embed:focus-visible,.card:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.vcard:focus-visible{outline-color:#fff}
.btn--light:focus-visible{outline-color:var(--ink)}
.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.lang-switch:focus-visible{outline:2px solid #fff;outline-offset:2px}
.journey__track:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.section--ink .journey__track:focus-visible{outline-color:var(--on-ink)}
