/* ============================================================
   CZI GLOBAL CONSULTING — design system
   Brand navy #00377B and logo indigo #424E7B taken from the
   current site; marigold accent added for warmth and contrast.
   ============================================================ */
:root{
  --ink:#061B37; --navy:#00377B; --navy-deep:#04244B; --navy-ink:#031A38;
  --navy-soft:#1B5AA8; --indigo:#424E7B;
  --gold:#F2B02E; --gold-deep:#8F5A00; --gold-soft:#FFF0D2;
  --line-in:#8296AE;
  --green:#0E9B72; --green-soft:#E4F5EF;
  --paper:#fff; --sand:#F8F5F0; --mist:#EFF3F9; --line:#DFE6EF; --line-dk:rgba(255,255,255,.16);
  --muted:#5C6B80; --muted-dk:#A9BDD6;
  --r:16px; --r-lg:26px;
  --shadow:0 30px 70px -40px rgba(6,27,55,.55);
  --shadow-lg:0 50px 110px -50px rgba(6,27,55,.65);
  --wrap:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:Inter,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.consent a,.ft-bottom a,.ans a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.dark .consent a{color:var(--navy)}
.ft-bottom a{color:#BFD6EE}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:6px;
  box-shadow:0 0 0 5px rgba(242,176,46,.5)}
.dark :focus-visible,#hero :focus-visible,.est-r :focus-visible{outline-color:#fff}
::selection{background:var(--gold-soft);color:var(--navy-deep)}

/* ---------- type ---------- */
.dsp{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;letter-spacing:-.035em;line-height:1.03}
h1,h2,h3,h4{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;letter-spacing:-.032em;line-height:1.06;margin:0}
h1{font-size:clamp(2.55rem,5.1vw,4.35rem)}
h2{font-size:clamp(2.05rem,3.9vw,3.35rem)}
h2.h2s{font-size:clamp(1.7rem,2.6vw,2.35rem)}
h3{font-size:clamp(1.15rem,1.5vw,1.42rem);letter-spacing:-.022em;line-height:1.25}
p{margin:0}
em.ser{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.01em}
.lead{font-size:clamp(1.05rem,1.35vw,1.2rem);color:var(--muted);line-height:1.62}
.lead-dk{color:var(--muted-dk)}
.mono{font-family:"Plus Jakarta Sans",sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,4.2vw,40px)}
.sec{padding:clamp(72px,9vw,130px) 0}
.sec-sm{padding:clamp(52px,6vw,78px) 0}
.dark{background:var(--navy-deep);color:#EAF1FA}
.dark h1,.dark h2,.dark h3,.dark h4{color:#fff}
.sand{background:var(--sand)}
.grain{position:relative}
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.28'/></svg>")}

/* ---------- eyebrow ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:11px;color:var(--navy)}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold);flex:none}
.dark .eyebrow,#hero .eyebrow,.turn .eyebrow{color:var(--gold)}


/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.97rem;letter-spacing:-.01em;
  padding:15px 26px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;
  transition:transform .3s var(--ease),background .25s,color .25s,border-color .25s,box-shadow .3s;
  will-change:transform}
.btn svg{transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-gold{background:var(--gold);color:#2A1A00}
.btn-gold:hover{background:#FFC24E;transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:#014694;transform:translateY(-2px)}
.btn-line{border-color:rgba(255,255,255,.55);color:#fff}
.btn-line:hover{border-color:#fff;background:rgba(255,255,255,.09)}
.btn-line-dk{border-color:var(--line);color:var(--navy-deep);background:#fff}
.btn-line-dk:hover{border-color:var(--navy);color:var(--navy)}
.btn-sm{padding:11px 20px;font-size:.9rem}

/* ---------- WhatsApp вместо звонка ----------
   Звонки теряются: отвечать некому, колл-центра нет. Поэтому первое действие
   в шапке — переписка, а номер остаётся в верхней полосе и в подвале. */
.btn-wa{border-color:rgba(255,255,255,.55);color:#fff}
.btn-wa:hover{border-color:#fff;background:rgba(255,255,255,.09)}
#hdr.stuck .btn-wa{border-color:var(--line);color:var(--navy-deep)}
#hdr.stuck .btn-wa:hover{border-color:var(--green);color:var(--green)}
.btn-wa svg{flex:none}

/* плавающая кнопка: на телефоне её заменяет нижняя панель */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:110;display:inline-flex;align-items:center;
  gap:10px;padding:13px 20px 13px 16px;border-radius:999px;background:#25D366;color:#0A2E1C;
  font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.94rem;letter-spacing:-.01em;
  box-shadow:0 14px 34px -12px rgba(37,211,102,.55),0 2px 6px rgba(6,27,55,.18);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(37,211,102,.65)}
.wa-float:focus-visible{outline:2px solid var(--navy-deep);outline-offset:3px}
.wa-float svg{flex:none}
@media(max-width:900px){ .wa-float{display:none} }

@media(max-width:1180px){
  #hdr .wrap{gap:clamp(12px,1.6vw,22px)}
  #nav{gap:clamp(10px,1.3vw,18px)}
  .btn-wa .lg{display:none}
  .btn-wa{padding-left:13px;padding-right:13px}
}

/* ---------- scroll progress ---------- */
#prog{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;background:var(--gold)}
.skip{position:fixed;top:-60px;left:14px;z-index:400;background:#fff;color:var(--navy-deep);
  padding:12px 20px;border-radius:0 0 10px 10px;font-weight:700;transition:top .2s}
.skip:focus{top:0}

/* ---------- topbar + header ---------- */
#topbar{background:var(--navy-ink);color:#B9CFE8;font-size:.79rem;letter-spacing:.005em}
#topbar .wrap{display:flex;gap:18px;align-items:center;justify-content:space-between;
  min-height:38px;padding-top:7px;padding-bottom:7px;flex-wrap:wrap}
#topbar b{color:#fff;font-weight:600}
#topbar .tb-links{display:flex;gap:18px;align-items:center;white-space:nowrap}
#topbar a:hover{color:#fff}

#hdr{position:sticky;top:0;z-index:120;transition:background .4s var(--ease),box-shadow .4s,border-color .4s}
#hdr::after{content:"";position:absolute;left:0;right:0;top:0;height:calc(100% + 24px);z-index:-1;
  pointer-events:none;transition:opacity .4s var(--ease);
  background:linear-gradient(to bottom,rgba(3,20,46,.82),rgba(3,20,46,.5) 64%,transparent)}
#hdr.stuck::after{opacity:0}
#hdr .wrap{display:flex;align-items:center;gap:clamp(16px,2.6vw,36px);height:84px;transition:height .4s var(--ease)}
#hdr.stuck{background:rgba(255,255,255,.93);backdrop-filter:blur(16px) saturate(150%);
  box-shadow:0 1px 0 var(--line),0 18px 40px -34px rgba(6,27,55,.6)}
#hdr.stuck .wrap{height:70px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand img{width:38px;height:38px;object-fit:contain;transition:filter .4s}
#hdr:not(.stuck) .brand img{filter:brightness(0) invert(1)}
.brand b{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.04rem;letter-spacing:-.03em;display:block;line-height:1.15}
.brand small{display:block;font-size:.63rem;letter-spacing:.17em;text-transform:uppercase;font-weight:600;opacity:.65}
#nav{display:flex;gap:clamp(14px,1.9vw,28px);font-size:.93rem;font-weight:500}
#nav a{position:relative;padding:6px 0;opacity:.82;transition:opacity .25s;white-space:nowrap}
/* пункты меню и кнопки не переносим: строка шапки должна оставаться одной */
.hdr-cta .btn{white-space:nowrap}
.brand b,.brand small{white-space:nowrap}
#nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
#nav a:hover{opacity:1}
#nav a:hover::after,#nav a.on::after{transform:scaleX(1)}
.hdr-cta{display:flex;align-items:center;gap:14px}
/* header sits on the navy hero until stuck */
#hdr{color:#fff}
#hdr.stuck{color:var(--ink)}
#hdr.stuck .brand small{opacity:.55}
#hdr .btn-line{border-color:rgba(255,255,255,.4)}
#hdr.stuck .btn-line{border-color:var(--line);color:var(--navy-deep)}
#hdr.stuck .btn-line:hover{border-color:var(--navy);color:var(--navy);background:transparent}
#burger{display:none;width:44px;height:44px;border:1px solid currentColor;border-radius:12px;background:none;
  align-items:center;justify-content:center;cursor:pointer;opacity:.7}

/* ---------- reveal ---------- */
[data-r]{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease),transform .85s var(--ease);
  transition-delay:var(--d,0ms)}
[data-r].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-r]{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
  .mq-track{animation:none!important}
  #heroBg,[data-parallax]{transform:none!important}
  .step .dot,.proc::after{transition:none!important}
  #quizBox,#quizBd,.q-done .tick,.faq .ans,#msheet .panel{animation:none!important}
  *,*::before,*::after{transition-duration:.01ms!important}
}
