/* =========================================================================
   ALFA GROUP SR — Design System
   Tmavý prémiový / Dark premium
   ========================================================================= */

:root{
  /* Warm ink, not a tint of black. The previous base was #0D1117 -- which is
     also GitHub's dark background, and reads as a default rather than a
     decision. Every surface here shares one warm cast so the serif sits on it. */
  --ink-deep:#0B0906;
  --ink-tint:#100E0B;
  --ink:#15120E;
  --ink-raise:#1F1B15;
  --ink-raise-2:#26211A;
  --ink-raise-3:#2E2820;
  /* A lighter tier so not every plane sits in the same narrow band. Cards
     and raised panels use it; the contrast gate covers it. */
  --ink-lift:#201A14;

  --rule:#2B261F;
  --rule-soft:rgba(239,233,221,.08);
  --rule-bronze:rgba(185,138,69,.30);

  /* One accent, and it has one job: the current or interactive state.
     Never decoration on a label. */
  --bronze:#B98A45;
  --bronze-lite:#D8AF71;
  --bronze-deep:#8A6430;
  --bronze-glow:rgba(185,138,69,.13);
  /* The logo marks in build/marks.py paint their accent with this variable.
     Without it the accent parts fall back to black and vanish on the ink. */
  --mk-accent:var(--bronze);

  --paper:#EFE9DD;
  --paper-2:#B9B1A2;
  --paper-3:#8B8477;

  /* One family carries the whole site. Hierarchy comes from size and
     weight, not from a second typeface. Source Serif 4 covers latin,
     latin-ext (slovak diacritics) and cyrillic. */
  --type:'Source Serif 4',Georgia,'Times New Roman',serif;

  --maxw:1240px;
  --gutter:40px;
  --nav-h:78px;

  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--paper-2);
  font-family:var(--type);
  font-size:17.5px;
  font-weight:400;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}

/* Grain over the whole page. Sits above the backgrounds and below every
   piece of content, never intercepts a click. */
body::after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:url("assets/img/grain.png");background-size:160px 160px;
  opacity:.05;mix-blend-mode:overlay;}
.hdr,.hero__in,.container,.sec,.stats,.ftr{position:relative;z-index:2;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
::selection{background:rgba(185,138,69,.32);color:var(--paper);}

h1,h2,h3,h4{color:var(--paper);font-weight:400;margin:0;text-wrap:balance;}
h1,h2{letter-spacing:-.008em;}
p{margin:0;text-wrap:pretty;}

:focus-visible{outline:2px solid var(--bronze);outline-offset:3px;}
.btn:focus-visible,.nav a:focus-visible,.lang a:focus-visible{outline-offset:5px;}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.skip{position:absolute;left:-9999px;top:0;background:var(--bronze);color:var(--ink-deep);padding:12px 20px;z-index:999;font-size:13px;}
.skip:focus{left:12px;top:12px;}

/* ---------- Brand mark ---------------------------------------------------- */
.brand{display:inline-flex;align-items:center;color:var(--paper);flex:0 0 auto;
  transition:opacity .3s var(--ease);}
.brand:hover{opacity:.82;}
/* The logo is the client's own lockup and already carries the wordmark,
   so nothing is set beside it. Height drives the size; width follows. */
.brand__logo{height:54px;width:auto;display:block;}
.hdr.is-stuck .brand__logo{height:44px;}
.brand__mark{width:32px;height:32px;flex:0 0 32px;overflow:visible;}
.brand__name{
  font-size:15.5px;font-weight:600;white-space:nowrap;
  letter-spacing:.13em;text-transform:uppercase;color:var(--paper);
}

/* ---------- Header -------------------------------------------------------- */
.hdr{
  position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:100;
  display:flex;align-items:center;
  background:rgba(11,9,6,.55);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;
  transition:background .35s var(--ease),border-color .35s var(--ease),height .35s var(--ease);
}
.hdr.is-stuck{background:rgba(11,9,6,.94);border-bottom-color:var(--rule);height:66px;}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:28px;width:100%;}
.nav{display:flex;align-items:center;gap:34px;}
.nav a{
  font-size:15.5px;font-weight:400;
  color:var(--paper-3);position:relative;padding:6px 0;transition:color .3s var(--ease);
}
.nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--bronze);transition:right .4s var(--ease);
}
.nav a:hover{color:var(--paper);}
.nav a:hover::after{right:0;}
.nav a.is-active{color:var(--paper);}
.nav a.is-active::after{right:0;}

.lang{display:flex;align-items:center;gap:2px;padding-left:26px;border-left:1px solid var(--rule);}
.lang a{
  font-size:14px;font-weight:400;color:var(--paper-3);
  padding:5px 8px;font-variant-numeric:tabular-nums;transition:color .3s var(--ease);
}
.lang a:hover{color:var(--paper-2);}
.lang a.is-active{color:var(--bronze);}

.burger{display:none;width:42px;height:42px;align-items:center;justify-content:center;}
.burger span{display:block;width:22px;height:1px;background:var(--paper);position:relative;transition:background .2s;}
.burger span::before,.burger span::after{
  content:"";position:absolute;left:0;width:22px;height:1px;background:var(--paper);transition:transform .35s var(--ease);
}
.burger span::before{top:-7px;}
.burger span::after{top:7px;}
.is-open .burger span{background:transparent;}
.is-open .burger span::before{transform:translateY(7px) rotate(45deg);}
.is-open .burger span::after{transform:translateY(-7px) rotate(-45deg);}

/* ---------- Hero ---------------------------------------------------------- */
.hero{
  position:relative;padding:calc(var(--nav-h) + 152px) 0 132px;overflow:hidden;
  background:var(--ink-deep);
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background-image:linear-gradient(90deg,rgba(239,233,221,.05) 1px,transparent 1px);
  background-size:calc(100% / 8) 100%;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 68%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 18%,#000 68%,transparent);
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--rule);
}
.hero__in{position:relative;z-index:2;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.84fr);gap:72px;align-items:center;}
.hero__text{max-width:900px;}
.hero__fig{justify-self:end;width:100%;max-width:620px;opacity:.5;}
.hero__fig .fig{width:100%;height:auto;}
.hero h1{
  font-size:clamp(3.1rem,7vw,5.8rem);line-height:.99;font-weight:300;
  letter-spacing:-.022em;color:var(--paper);margin:0;
}
.hero__lead{
  font-size:clamp(1.06rem,1.5vw,1.28rem);color:var(--paper-2);max-width:56ch;
  margin-top:38px;line-height:1.74;
}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:52px;}

/* ---------- Buttons ------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:11px;
  padding:15px 30px;border:1px solid var(--rule);
  font-size:1rem;font-weight:600;
  color:var(--paper);background:transparent;
  transition:border-color .35s var(--ease),background .35s var(--ease),color .35s var(--ease);
}
.btn:hover{border-color:var(--bronze);color:var(--paper);}
.btn--bronze{background:var(--bronze);border-color:var(--bronze);color:var(--ink-deep);}
.btn--bronze:hover{background:var(--bronze-lite);border-color:var(--bronze-lite);color:var(--ink-deep);}
.btn--ghost{border-color:transparent;padding-left:0;padding-right:0;color:var(--bronze);}
.btn--ghost:hover{color:var(--bronze-lite);}

/* ---------- Section scaffolding ------------------------------------------ */
.sec{padding:128px 0;position:relative;}
.sec + .sec{border-top:1px solid var(--rule);}
.sec--tint{background:var(--ink-tint);}
.sec--deep{background:var(--ink-deep);}

.sec__head{max-width:760px;margin-bottom:78px;}
.sec__head h2{font-size:clamp(1.95rem,3.5vw,3rem);line-height:1.14;font-weight:300;margin-top:22px;}
.sec__head .lead{margin-top:22px;color:var(--paper-2);font-size:1.03rem;max-width:62ch;}

.pagehead{
  padding:calc(var(--nav-h) + 96px) 0 76px;position:relative;
  background:var(--ink-deep);
  border-bottom:1px solid var(--rule);
}
.pagehead::after{content:"";position:absolute;left:0;bottom:-1px;width:180px;height:1px;background:var(--bronze);opacity:.55;}
.pagehead h1{
  font-size:clamp(2.35rem,5vw,3.9rem);line-height:1.08;font-weight:300;color:var(--paper);margin-top:24px;
}
.pagehead .lead{margin-top:26px;color:var(--paper-2);max-width:62ch;font-size:1.06rem;}

/* ---------- Stats --------------------------------------------------------- */
.stats{border-bottom:1px solid var(--rule);background:var(--ink-tint);}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);}
.stats__item{padding:64px 42px 58px;border-left:1px solid var(--rule);}
.stats__item:first-child{border-left:0;padding-left:0;}
.stats__v{font-size:clamp(2.9rem,5.2vw,4.5rem);line-height:.94;color:var(--paper);font-weight:300;
  letter-spacing:-.022em;font-variant-numeric:lining-nums tabular-nums;}
.stats__l{margin-top:20px;font-size:1rem;color:var(--paper-3);line-height:1.5;max-width:24ch;}

/* ---------- Prose --------------------------------------------------------- */
.prose{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:70px;align-items:start;}
.prose__body p + p{margin-top:22px;}
.prose__body p{font-size:1.05rem;color:var(--paper-2);max-width:64ch;}
.prose__body .btn--ghost{margin-top:32px;}

/* ---------- Cards --------------------------------------------------------- */
.grid{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.card{background:var(--ink-lift);padding:40px 34px;position:relative;}
/* a one-pixel lift along the top edge, the way a real surface catches light */
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(239,233,221,.07) 22%,
    rgba(239,233,221,.07) 78%,transparent);}
.card h3{font-size:1.16rem;font-weight:400;color:var(--paper);margin-bottom:14px;letter-spacing:.005em;}
.card p{font-size:.955rem;color:var(--paper-3);line-height:1.76;}

/* ---------- Sectors ------------------------------------------------------- */
.sectors{display:grid;grid-template-columns:repeat(2,1fr);gap:0 64px;}
.sector{padding:28px 0;border-top:1px solid var(--rule);}
.sector h3{font-size:1.02rem;font-weight:400;color:var(--paper);letter-spacing:.02em;}
.sector p{font-size:.925rem;color:var(--paper-3);margin-top:8px;line-height:1.7;}

/* ---------- Feature list -------------------------------------------------- */
.feature{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:56px;
  padding:46px 0;border-top:1px solid var(--rule);align-items:start;
}
.feature:last-child{border-bottom:1px solid var(--rule);}
.feature h3{font-size:1.35rem;font-weight:600;color:var(--paper);line-height:1.28;}
.feature p{font-size:1rem;color:var(--paper-3);line-height:1.8;max-width:62ch;}

/* ---------- Timeline ------------------------------------------------------ */
.tl{position:relative;padding-left:34px;}
.tl::before{content:"";position:absolute;left:3px;top:8px;bottom:8px;width:1px;background:var(--rule);}
.tl__item{position:relative;padding:0 0 46px;}
.tl__item:last-child{padding-bottom:0;}
.tl__item::before{
  content:"";position:absolute;left:-34px;top:9px;width:7px;height:7px;
  background:var(--bronze);transform:rotate(45deg);
}
.tl__y{font-size:1.1rem;color:var(--bronze);font-variant-numeric:tabular-nums;}
.tl__item h3{font-size:1.42rem;font-weight:600;margin:10px 0 10px;}
.tl__item p{font-size:.98rem;color:var(--paper-3);max-width:62ch;}

/* ---------- Quote --------------------------------------------------------- */
.quote{
  border-left:2px solid var(--bronze);padding:8px 0 8px 42px;max-width:900px;
}
.quote p{
  font-size:clamp(1.35rem,2.6vw,2.05rem);line-height:1.42;
  color:var(--paper);font-weight:300;font-style:italic;
}
.quote cite{
  display:block;margin-top:22px;font-style:normal;font-size:.95rem;
  color:var(--paper-3);
}

/* ---------- Cases footnote ------------------------------------------------ */
.cases__foot{
  margin-top:44px;padding-top:26px;border-top:1px solid var(--rule);
  font-size:.9rem;color:var(--paper-3);max-width:760px;font-style:italic;
}

/* ---------- Tags ---------------------------------------------------------- */
.tags{display:flex;flex-wrap:wrap;gap:12px;}
.tags span{
  border:1px solid var(--rule);padding:14px 22px;font-size:.9rem;color:var(--paper-2);
  letter-spacing:.03em;transition:border-color .35s var(--ease),color .35s var(--ease);
}
.tags span:hover{border-color:var(--rule-bronze);color:var(--paper);}

/* ---------- Process ------------------------------------------------------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border-top:1px solid var(--rule);}
.step{background:var(--ink);padding:40px 30px 44px;}
.step__n{font-size:1.05rem;color:var(--paper-3);font-variant-numeric:tabular-nums;}
.step h3{font-size:1.32rem;font-weight:600;margin:18px 0 14px;line-height:1.26;}
.step p{font-size:.93rem;color:var(--paper-3);line-height:1.74;}

/* ---------- Geography ----------------------------------------------------- */
.geo{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.geo__c{background:var(--ink);padding:36px 26px;}
.geo__c strong{display:block;font-weight:400;color:var(--paper);font-size:1.04rem;}
.geo__c span{display:block;margin-top:10px;font-size:.87rem;color:var(--paper-3);line-height:1.62;}
.geo__note{margin-top:34px;font-size:.96rem;color:var(--paper-3);max-width:74ch;}

/* ---------- Leader -------------------------------------------------------- */
.leader{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:72px;align-items:start;}
.portrait{
  position:relative;aspect-ratio:4/5;border:1px solid var(--rule);
  background:
    radial-gradient(420px 300px at 50% 24%,rgba(185,138,69,.10),transparent 66%),
    linear-gradient(160deg,var(--ink-raise),var(--ink-deep));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;overflow:hidden;
}
.portrait img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.portrait__mark{width:74px;height:74px;color:rgba(239,233,221,.18);}
.portrait__cap{
  font-size:.92rem;font-style:italic;color:var(--paper-3);text-align:center;padding:0 20px;
}
.leader__name{font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:400;color:var(--paper);line-height:1.14;}
.leader__role{margin-top:12px;font-size:1.05rem;font-style:italic;color:var(--paper-3);}
.leader__bio{margin-top:34px;}
.leader__bio p{font-size:1.02rem;color:var(--paper-2);line-height:1.82;max-width:64ch;}
.leader__bio p + p{margin-top:20px;}
.facts{margin-top:42px;border-top:1px solid var(--rule);}
.fact{display:grid;grid-template-columns:150px 1fr;gap:26px;padding:20px 0;border-bottom:1px solid var(--rule);}
.fact dt{font-size:.95rem;color:var(--paper-3);padding-top:3px;}
.fact dd{margin:0;font-size:.96rem;color:var(--paper-2);}
.leader__links{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
.leader__quote{
  margin-top:52px;padding:34px 0 0;border-top:1px solid var(--rule-bronze);
}
.leader__quote p{
  font-size:clamp(1.25rem,2.2vw,1.7rem);font-style:italic;
  color:var(--paper);line-height:1.44;font-weight:300;
}

/* ---------- Contact ------------------------------------------------------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:start;}
.block__title{
  font-size:1.25rem;color:var(--paper);font-weight:600;
  padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:6px;
}
.dl{margin:0;}
.dl__row{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--rule);}
.dl__row dt{font-size:.95rem;color:var(--paper-3);padding-top:3px;}
.dl__row dd{margin:0;font-size:.97rem;color:var(--paper-2);font-variant-numeric:tabular-nums;}
.channels{margin-top:52px;}
.channel{display:flex;flex-direction:column;gap:6px;padding:20px 0;border-bottom:1px solid var(--rule);}
.channel span{font-size:.95rem;color:var(--paper-3);}
.channel a,.channel strong{font-size:1.08rem;color:var(--paper);font-weight:400;letter-spacing:.01em;}
.channel a{transition:color .3s var(--ease);}
.channel a:hover{color:var(--bronze);}

.form{margin-top:6px;}
.form__lead{font-size:.9rem;color:var(--paper-3);margin-bottom:26px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:.95rem;color:var(--paper-3);margin-bottom:8px;}
.field input,.field textarea{
  width:100%;background:var(--ink-raise);border:1px solid var(--rule);color:var(--paper);
  padding:14px 16px;font-family:var(--type);font-size:1rem;font-weight:400;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--bronze);background:var(--ink-raise-2);}
.field textarea{min-height:150px;resize:vertical;}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form__consent{font-size:.82rem;color:var(--paper-3);margin-top:18px;line-height:1.65;}

/* ---------- CTA ----------------------------------------------------------- */
.cta{
  background:var(--ink-deep);
  border-top:1px solid var(--rule);
  text-align:center;padding:106px 0;
}
.cta h2{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:300;margin-top:22px;}
.cta p{max-width:58ch;margin:24px auto 0;color:var(--paper-3);}
.cta .btn{margin-top:40px;}

/* ---------- Footer -------------------------------------------------------- */
.ftr{background:var(--ink-deep);border-top:1px solid var(--rule);padding:80px 0 36px;}
.ftr__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:56px;}
.ftr__tagline{margin-top:26px;font-size:1.28rem;color:var(--paper-2);font-style:italic;font-weight:300;}
.ftr h4{font-size:1.02rem;color:var(--paper);margin-bottom:20px;font-weight:600;}
.ftr ul{list-style:none;margin:0;padding:0;}
.ftr li{margin-bottom:12px;}
.ftr li a,.ftr__c{font-size:.93rem;color:var(--paper-3);transition:color .3s var(--ease);}
.ftr li a:hover{color:var(--bronze);}
.ftr__c{display:block;margin-bottom:12px;line-height:1.62;}
/* the three address lines are one block of information, so they sit
   closer together than the registry numbers under them */
.ftr__c--tight{margin-bottom:1px;}
.ftr__c--tight + .ftr__c:not(.ftr__c--tight){margin-top:12px;}
.ftr__bottom{
  margin-top:64px;padding-top:28px;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:18px 34px;justify-content:space-between;align-items:baseline;
}
.ftr__bottom p{font-size:.82rem;color:var(--paper-3);}
.ftr__legal{max-width:640px;}

/* ---------- Motion -------------------------------------------------------- */
/* One orchestrated moment, on load, in the hero. Nothing else on the page
   animates itself. Fading and sliding every section up as it scrolls into
   view is the generic default and it makes the reader wait for the text. */
@keyframes settle{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.hero h1{animation:settle .72s var(--ease) .04s both;}
.hero__lead{animation:settle .72s var(--ease) .15s both;}
.hero__actions{animation:settle .72s var(--ease) .26s both;}
.hero__fig{animation:settle .9s var(--ease) .2s both;}
@media (prefers-reduced-motion:reduce){
  .hero h1,.hero__lead,.hero__actions,.hero__fig{animation:none;}
  html{scroll-behavior:auto;}
}


/* ---------- Figures ------------------------------------------------------- */
.fig{display:block;width:100%;height:auto;overflow:visible;}

/* ---------- Page head with figure ---------------------------------------- */
.pagehead__in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:56px;align-items:center;}
.pagehead__fig{justify-self:end;width:100%;max-width:420px;opacity:.72;}

/* ---------- Split: text beside a figure ----------------------------------- */
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;
  align-items:center;}
.split--rev .split__text{order:2;}
.split--rev .split__fig{order:1;}
.split__text h2{font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.16;font-weight:300;
  margin:22px 0 26px;}
.split__text p{font-size:1.02rem;color:var(--paper-2);max-width:56ch;}
.split__text p + p{margin-top:20px;}
.split__text .btn--ghost{margin-top:28px;}
.split__fig{width:100%;max-width:500px;justify-self:center;opacity:.78;}

/* ---------- Audience ------------------------------------------------------ */
.aud{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;
  align-items:start;}
.aud__head h2{font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.16;font-weight:300;
  margin:22px 0 22px;}
.aud__head .lead{color:var(--paper-2);max-width:46ch;}
.aud__fig{margin-top:52px;max-width:380px;opacity:.65;}
.aud__list{border-top:1px solid var(--rule);}
.aud__item{padding:26px 0;border-bottom:1px solid var(--rule);}
.aud__item h3{font-size:1.08rem;font-weight:500;color:var(--paper);letter-spacing:.01em;}
.aud__item p{margin-top:8px;font-size:.96rem;color:var(--paper-3);max-width:58ch;}

/* ---------- Case characteristics ------------------------------------------ */
.cases{border-top:1px solid var(--rule);}
.case{display:grid;grid-template-columns:290px minmax(0,1fr);gap:52px;
  padding:40px 0;border-bottom:1px solid var(--rule);align-items:start;}
.case__meta{display:grid;gap:18px;}
.case__m > span{display:block;font-size:.9rem;color:var(--paper-3);margin-bottom:4px;}
.case__m strong{font-weight:400;color:var(--paper-2);font-size:.95rem;}
.case__body p{font-size:1rem;color:var(--paper-2);max-width:62ch;line-height:1.8;}
.case__out{margin-top:22px;padding-top:20px;border-top:1px solid var(--rule-bronze);
  color:var(--paper-3)!important;font-size:.95rem!important;}
.case__out > span{display:block;font-size:.9rem;color:var(--paper-3);margin-bottom:7px;}

/* placeholder markers awaiting real figures */
.ph{display:inline;color:var(--bronze);border-bottom:1px dashed var(--rule-bronze);padding-bottom:1px;
  font-style:italic;}

/* ---------- FAQ ----------------------------------------------------------- */
.faq{border-top:1px solid var(--rule);}
.faq__i{border-bottom:1px solid var(--rule);}
.faq__i summary{display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:24px 0;cursor:pointer;list-style:none;color:var(--paper);font-size:1.05rem;
  transition:color .3s var(--ease);}
.faq__i summary::-webkit-details-marker{display:none;}
.faq__i summary:hover{color:var(--bronze);}
.faq__i summary i{position:relative;flex:0 0 13px;width:13px;height:13px;}
.faq__i summary i::before,.faq__i summary i::after{content:"";position:absolute;
  background:var(--bronze);transition:transform .35s var(--ease);}
.faq__i summary i::before{left:0;top:6px;width:13px;height:1px;}
.faq__i summary i::after{left:6px;top:0;width:1px;height:13px;}
.faq__i[open] summary i::after{transform:scaleY(0);}
.faq__i[open] summary{color:var(--bronze);}
.faq__i p{padding:0 0 26px;font-size:.98rem;color:var(--paper-3);max-width:70ch;}

/* ---------- Geography with figure ----------------------------------------- */
.geo__wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:52px;
  align-items:center;}
.geo__fig{max-width:420px;justify-self:center;opacity:.75;}
.geo{grid-template-columns:repeat(3,1fr);}

.sectors__act{margin-top:44px;}
.hdr__right{display:flex;align-items:center;gap:6px;}
.portrait{margin:0;}

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width:1080px){
  :root{--gutter:32px;}
  .nav{
    position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:rgba(11,9,6,.985);border-bottom:1px solid var(--rule);
    padding:14px var(--gutter) 30px;
    transform:translateY(-12px);opacity:0;pointer-events:none;
    transition:opacity .3s var(--ease),transform .3s var(--ease);
    max-height:calc(100vh - var(--nav-h));overflow:auto;
  }
  .is-open .nav{opacity:1;transform:none;pointer-events:auto;}
  .nav a{width:100%;padding:16px 0;border-bottom:1px solid var(--rule);font-size:13px;}
  .burger{display:flex;}
  .lang{padding-left:18px;margin-left:auto;}
  .prose,.leader,.contact{grid-template-columns:1fr;gap:44px;}
  .hero__in,.pagehead__in,.split,.aud,.geo__wrap{grid-template-columns:1fr;gap:44px;}
  .hero__fig,.pagehead__fig{justify-self:start;max-width:340px;}
  .split--rev .split__text,.split--rev .split__fig{order:0;}
  .split__fig,.geo__fig,.aud__fig{justify-self:start;max-width:330px;}
  .case{grid-template-columns:1fr;gap:26px;}
  .case__meta{grid-template-columns:repeat(2,1fr);gap:20px 26px;}
  .geo{grid-template-columns:repeat(2,1fr);}
  .grid--4{grid-template-columns:repeat(2,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .geo{grid-template-columns:repeat(2,1fr);}
  .stats__grid{grid-template-columns:repeat(2,1fr);}
  .stats__item{padding:40px 28px 36px;}
  .stats__item:nth-child(odd){border-left:0;padding-left:0;}
  .stats__item:nth-child(n+3){border-top:1px solid var(--rule);}
  .feature{grid-template-columns:56px 1fr;gap:20px 26px;}
  .feature p{grid-column:2;}
  .ftr__grid{grid-template-columns:repeat(2,1fr);gap:44px;}
}
@media (max-width:680px){
  :root{--gutter:22px;--nav-h:66px;}
  body{font-size:16px;}
  .sec{padding:78px 0;}
  .hero{padding:calc(var(--nav-h) + 78px) 0 84px;}
  .grid--4,.grid--3,.grid--2,.steps,.geo,.sectors{grid-template-columns:1fr;}
  .case__meta{grid-template-columns:1fr;}
  .hero__fig,.pagehead__fig,.split__fig,.geo__fig,.aud__fig{max-width:100%;}
  .sectors{gap:0;}
  .card{padding:32px 26px;}
  .form__row{grid-template-columns:1fr;}
  .fact,.dl__row{grid-template-columns:1fr;gap:6px;}
  .quote{padding-left:26px;}
  .ftr__grid{grid-template-columns:1fr;gap:38px;}
  .brand__logo{height:34px;}
  .hdr.is-stuck .brand__logo{height:30px;}
  .cta{padding:78px 0;}
}
