/* ============================================================
   ЮРИНФОРМ — дизайн-система
   ============================================================ */
:root{
  /* палитра клиента */
  --white:#FFFFFF;
  --mist:#A0B4CA;      /* голубой  — фоны, подписи, выделение */
  --slate:#566F87;     /* тёмно-синий — основной текст */
  --accent:#FF7D00;

  /* производные того же синего: чёрного на сайте нет */
  --ink:#2A3B4D;       /* заголовки и тёмные плашки — глубокий тон #566F87 */
  --ink-2:#35485C;
  --slate-d:#42566B;
  --mist-l:#CBDAE8;    /* границы */
  --mist-xl:#DFE9F3;   /* кружки под иконками, чипы */
  --paper:#EAF1F8;     /* голубая подложка секций — светлый замес #A0B4CA */
  --accent-d:#E86E00;
  --accent-l:#FFF1E2;

  --r:14px;
  --r-lg:26px;
  --wrap:1240px;
  --pad:clamp(18px,4vw,44px);

  --f-sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;

  --e:cubic-bezier(.22,1,.36,1);
  --sh:0 24px 60px -28px rgba(42,59,77,.4);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:104px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--white);color:var(--ink);
  font:500 17px/1.62 var(--f-sans);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.03em;line-height:1.06}
p{margin:0}
::selection{background:var(--accent);color:#fff}

.wrap{width:min(100% - var(--pad)*2,var(--wrap));margin-inline:auto}
.serif{color:var(--accent);font-weight:800;letter-spacing:-.035em}

.skip{position:absolute;left:-999px;top:0;z-index:200;background:var(--accent);color:#fff;padding:12px 18px}
.skip:focus{left:12px;top:12px}

:where(a,button,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

/* ---------- прогресс прокрутки ---------- */
.progress{position:fixed;inset:0 0 auto;height:3px;z-index:120;pointer-events:none}
.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),#ffb066)}

/* ============================================================
   КНОПКИ
   ============================================================ */
.btn{
  --bg:var(--ink);--fg:#fff;
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 22px;border-radius:100px;background:var(--bg);color:var(--fg);
  font-weight:700;font-size:15px;letter-spacing:-.01em;
  transition:transform .35s var(--e),background .25s,color .25s,box-shadow .35s var(--e);
  white-space:nowrap;position:relative;overflow:hidden;
}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--e)}
.btn:hover{transform:translateY(-2px)}
.btn:hover svg{transform:translateX(4px)}
.btn--accent{--bg:var(--accent);box-shadow:0 12px 30px -12px rgba(255,125,0,.75)}
.btn--accent:hover{--bg:var(--accent-d);box-shadow:0 18px 38px -14px rgba(255,125,0,.9)}
.btn--lg{padding:17px 30px;font-size:16px}
.btn--full{width:100%;justify-content:center}
.btn--ghost{--bg:var(--white);--fg:var(--ink);box-shadow:inset 0 0 0 1.5px var(--mist-l)}
.btn--ghost:hover{--bg:var(--white);box-shadow:inset 0 0 0 1.5px var(--slate)}
.btn--call{--bg:var(--accent);padding:11px 18px}
.btn--call svg{width:15px;height:15px;fill:currentColor;stroke:none}

.lnk{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--accent);margin-top:6px}
.lnk svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--e)}
.lnk:hover svg{transform:translateX(5px)}

/* ============================================================
   ШАПКА
   ============================================================ */
.hdr{position:fixed;inset:0 0 auto;z-index:100;padding:16px var(--pad);transition:padding .4s var(--e)}
.hdr__inner{
  width:min(100%,var(--wrap));margin-inline:auto;
  display:flex;align-items:center;gap:22px;
  padding:9px 9px 9px 20px;border-radius:100px;
  background:rgba(255,255,255,.72);border:1px solid var(--mist-l);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  transition:background .4s,border-color .4s,box-shadow .4s;
  color:var(--ink);
}
.hdr.is-stuck{padding-top:10px}
.hdr.is-stuck .hdr__inner{
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 46px -30px rgba(42,59,77,.45);
}

.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
/* знак в тёмно-синем из палитры: оранжевый остаётся за кнопками,
   иначе в шапке два акцента спорят друг с другом */
.brand__mark{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;
  background:linear-gradient(145deg,var(--ink),var(--slate));
  transition:background .4s var(--e),transform .5s var(--e);
}
.brand:hover .brand__mark{transform:rotate(-8deg) scale(1.06)}
.brand__mark svg{width:19px;height:20px;fill:#fff;fill-rule:evenodd}
.brand__txt{display:flex;flex-direction:column;line-height:1.1}
.brand__txt b{font-size:16px;font-weight:800;letter-spacing:.09em}
.brand__txt i{font-size:10.5px;font-style:normal;font-weight:600;opacity:.6;letter-spacing:.04em}

.nav{display:flex;gap:4px;margin-left:auto}
.nav a{
  position:relative;padding:9px 14px;border-radius:100px;font-size:15px;font-weight:600;
  transition:background .25s,color .25s;
}
.nav a::after{
  content:'';position:absolute;left:14px;right:14px;bottom:6px;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--e);
}
.nav a:hover::after,.nav a.is-cur::after{transform:scaleX(1)}
.nav a.is-cur{color:var(--accent)}

.hdr__act{display:flex;align-items:center;gap:10px}
.burger{display:none;width:42px;height:42px;border-radius:50%;background:var(--mist-xl);align-items:center;justify-content:center;flex-direction:column;gap:4px}
.burger i{display:block;width:16px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s var(--e),opacity .2s}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ============================================================
   ГЕРОЙ
   ============================================================ */
.hero{position:relative;background:var(--paper);color:var(--ink);padding:clamp(140px,17vh,190px) var(--pad) 0;overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-1}
/* ============================================================
   ФОН ГЕРО — десять вариантов, переключаются ?hero=1..10
   1–5 · концепции: знак подмешан в материал кадра
   6–10 · построены на самом знаке
   Ограничения клиента: без города, без молотка/весов/Фемиды,
   без привязки к деятельности.
   ============================================================ */
.hero__var{position:absolute;inset:0;display:none}
.hero[data-hero="1"] .hero__var--1,
.hero[data-hero="2"] .hero__var--2,
.hero[data-hero="3"] .hero__var--3,
.hero[data-hero="4"] .hero__var--4,
.hero[data-hero="5"] .hero__var--5,
.hero[data-hero="6"] .hero__var--6,
.hero[data-hero="7"] .hero__var--7,
.hero[data-hero="8"] .hero__var--8,
.hero[data-hero="9"] .hero__var--9,
.hero[data-hero="10"] .hero__var--10{display:block}

/* Общая посадка: раньше кадр был прижат к правому краю и упирался
   в него. Держим правый отступ, чтобы объект стоял в правой трети,
   а не в самом углу. */
.scene{
  position:absolute;right:6%;top:50%;width:min(60vw,760px);aspect-ratio:16/9;
  translate:var(--hx,0px) calc(-50% + var(--hy,0px) + var(--hero-par,0px));
  transform:scale(calc(var(--hs,1) * var(--hero-boot,1)));transform-origin:center;
  opacity:var(--hero-op,1);
  mask-image:linear-gradient(100deg,transparent 2%,#000 40%),
             radial-gradient(closest-side,#000 66%,transparent 100%);
  -webkit-mask-image:linear-gradient(100deg,transparent 2%,#000 40%),
             radial-gradient(closest-side,#000 66%,transparent 100%);
  mask-composite:intersect;-webkit-mask-composite:source-in;
}
.scene.anim{transition:transform 1.6s var(--e),opacity 1.1s ease}
.scene.boot{--hero-boot:.94;opacity:0}
.scene img{width:100%;height:100%;object-fit:cover;display:block}

/* Знак поверх кадра: позиция и режим наложения свои у каждой концепции —
   он должен лечь на материал, а не висеть на пустом фоне. */
.scene__mk{position:absolute;height:auto}
.scene--strata .scene__mk{
  right:19%;top:47%;width:20%;translate:0 -50%;
  fill:#fff;opacity:.5;mix-blend-mode:overlay;
  filter:drop-shadow(0 2px 1px rgba(42,59,77,.55));
}
.scene--glass .scene__mk{
  right:26%;top:47%;width:15%;translate:0 -50%;
  fill:#566F87;opacity:.3;mix-blend-mode:multiply;filter:blur(1.6px);
}
.scene--knot .scene__mk{
  right:52%;bottom:22%;width:26%;
  fill:#2A3B4D;opacity:.3;mix-blend-mode:multiply;filter:blur(2.2px);
  transform:skewX(-38deg) scaleY(.46);transform-origin:bottom right;
}
.scene--contour .scene__mk{
  right:47%;top:58%;width:15%;translate:0 -50%;
  fill:#566F87;opacity:.22;mix-blend-mode:multiply;
}
/* у кристалла знак ушёл на фон за камень — внутри он не читался */
.scene--crystal .scene__mk{
  right:16%;top:33%;width:24%;translate:0 -50%;
  fill:#566F87;opacity:.22;mix-blend-mode:multiply;
}

/* ---------- 6–10 · варианты на самом знаке ---------- */
.hero__art{
  position:absolute;right:7%;top:50%;width:min(46vw,530px);aspect-ratio:1;
  translate:var(--hx,0px) calc(-50% + var(--hy,0px) + var(--hero-par,0px));
  transform:scale(calc(var(--hs,1) * var(--hero-boot,1)));transform-origin:center;
  opacity:var(--hero-op,1);
}
.hero__art.anim{transition:transform 1.6s var(--e),opacity 1.1s ease}
.hero__art.boot{--hero-boot:.92;opacity:0}
.hero__art .hero__mark{opacity:.55}
.hero__art .hero__rings{transform-origin:100px 100px;animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* 7 · дымка */
.haze{position:absolute;border-radius:50%;filter:blur(70px)}
.haze--a{right:10%;top:2%;width:min(44vw,500px);aspect-ratio:1;background:rgba(160,180,202,.85)}
.haze--b{right:32%;bottom:-14%;width:min(38vw,440px);aspect-ratio:1;background:rgba(86,111,135,.4)}
.haze--c{right:0;bottom:8%;width:min(30vw,340px);aspect-ratio:1;background:rgba(255,125,0,.3)}
.hero__art--haze{width:min(34vw,390px);height:auto;aspect-ratio:auto;right:15%}
.hero__art--haze{opacity:.22}

/* 8 · объём */
.hero__art--vol{width:min(33vw,390px);aspect-ratio:200/220;right:15%}

/* 9 · тушь */
.hero__art--ink{width:min(46vw,520px);aspect-ratio:200/214;right:10%;opacity:.92}
.hero__paper{
  position:absolute;right:4%;top:50%;translate:0 -50%;
  width:min(56vw,640px);aspect-ratio:4/3;border-radius:50%;
  background:url(../assets/img/paper.jpg) center/cover no-repeat,var(--paper);
  opacity:.75;filter:blur(1px);
  mask-image:radial-gradient(closest-side,#000 55%,transparent 100%);
  -webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent 100%);
}

/* 10 · модуль */
.hero__art--tile{width:min(52vw,620px);right:6%}

/* переключатель вариантов — только по ?pick=1, клиенту его не видно */
.hpick{
  position:fixed;left:50%;bottom:18px;translate:-50% 0;z-index:9999;
  display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:100px;
  background:rgba(42,59,77,.94);color:#fff;font:700 13px/1 Manrope,sans-serif;
  box-shadow:0 20px 40px -18px rgba(42,59,77,.8);
}
.hpick b{font-weight:600;color:#A0B4CA;margin-right:4px}
.hpick button{
  width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.12);
  color:#fff;cursor:pointer;font:800 13px Manrope,sans-serif;
}
.hpick button.is-on{background:#FF7D00}
.hpick i{font-style:normal;color:#A0B4CA;font-weight:600;margin-left:6px}
.hero__grid{
  position:absolute;inset:0;
  background:
    linear-gradient(rgba(86,111,135,.12) 1px,transparent 1px) 0 0/100% 74px,
    linear-gradient(90deg,rgba(86,111,135,.12) 1px,transparent 1px) 0 0/74px 100%;
  mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 78%);
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 78%);
}
.hero__glow{
  position:absolute;width:min(80vw,900px);aspect-ratio:1;left:-14%;top:-32%;
  background:radial-gradient(circle,rgba(160,180,202,.45),transparent 62%);
}
.hero__glow--2{
  left:auto;right:-18%;top:auto;bottom:-38%;width:min(70vw,760px);
  background:radial-gradient(circle,rgba(255,125,0,.09),transparent 60%);
}
/* один столбец: заголовок слева, принципы строкой внизу —
   правая половина кадра остаётся под панораму */
.hero__inner{
  width:min(100%,var(--wrap));margin-inline:auto;
  padding-bottom:clamp(50px,7vw,84px);
}
.hero__main{max-width:min(100%,730px)}

.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--slate-d)}
.eyebrow i{width:22px;height:2px;background:var(--accent);display:block;border-radius:2px}

.hero__h1{
  font-size:clamp(32px,4.1vw,55px);margin:22px 0 0;letter-spacing:-.04em;
}
.mark{position:relative;display:inline-block;color:var(--accent)}
.mark__line{
  position:absolute;left:0;right:0;bottom:-.06em;width:100%;height:.16em;
  fill:none;stroke:var(--accent);stroke-width:3.4;stroke-linecap:round;opacity:.5;
  stroke-dasharray:320;stroke-dashoffset:320;animation:draw 1.1s .5s var(--e) forwards;
}
@keyframes draw{to{stroke-dashoffset:0}}

.hero__lead{max-width:50ch;margin-top:26px;font-size:clamp(16px,1.4vw,19px);color:var(--slate-d);line-height:1.66}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}

/* принципы — строкой у нижнего края геро, со ступенчатым смещением по вертикали */
.creed{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,18px);
  margin-top:clamp(44px,6vw,80px);
}
.creed__i{
  position:relative;padding:20px 22px 20px 62px;border-radius:var(--r);
  background:rgba(255,255,255,.78);border:1px solid var(--mist-l);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:transform .45s var(--e),background .3s,border-color .3s,box-shadow .4s var(--e);
}
.creed__i:nth-child(2){margin-top:clamp(0px,1.4vw,18px)}
.creed__i:nth-child(3){margin-top:clamp(0px,2.8vw,36px)}
.creed__i:hover{background:var(--white);border-color:rgba(255,125,0,.55);transform:translateY(-6px);box-shadow:0 20px 40px -26px rgba(42,59,77,.5)}
.creed__n{
  position:absolute;left:20px;top:20px;
  font-size:15px;color:var(--accent);font-weight:800;letter-spacing:.04em;
}
.creed__i h3{font-size:19px;letter-spacing:-.02em}
.creed__i p{margin-top:7px;font-size:14.5px;line-height:1.55;color:var(--slate-d)}

/* бегущая строка — самостоятельная полоса-разделитель во всю ширину.
   Тёмно-синий из палитры: даёт светлой странице ритм и рифмуется с подвалом. */
.ticker{
  overflow:hidden;padding:17px 0;background:var(--ink);
}
.ticker__row{display:flex;gap:26px;width:max-content;animation:slide 42s linear infinite;align-items:center}
.ticker__row span{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);white-space:nowrap}
.ticker__row i{color:var(--accent);font-size:9px;font-style:normal}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- плашка-мост ---------- */
.bridge{padding-inline:var(--pad);background:linear-gradient(var(--paper) 50%,var(--white) 50%)}
.bridge__card{
  width:min(100%,var(--wrap));margin-inline:auto;
  display:grid;grid-template-columns:repeat(3,1fr) auto;gap:clamp(16px,3vw,40px);align-items:center;
  padding:clamp(22px,3vw,32px) clamp(24px,3.5vw,42px);
  background:var(--white);border-radius:var(--r-lg);box-shadow:var(--sh);
  border:1px solid var(--mist-l);
}
.bridge__stat{position:relative;padding-left:18px}
.bridge__stat::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:3px;background:var(--accent)}
.bridge__stat b{display:block;font-size:clamp(29px,3.2vw,40px);font-weight:800;letter-spacing:-.04em;line-height:1}
.bridge__stat span{display:block;margin-top:6px;font-size:13.5px;font-weight:600;color:var(--slate-d)}
.bridge__call{text-align:right;border-left:1px solid var(--mist-l);padding-left:clamp(16px,2.5vw,32px)}
.bridge__call p{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mist)}
.bridge__call a{display:block;margin-top:4px;font-size:clamp(17px,1.7vw,21px);font-weight:800;letter-spacing:-.02em}
.bridge__call a:hover{color:var(--accent)}

/* ============================================================
   СЕКЦИИ — общее
   ============================================================ */
.sec{padding:clamp(70px,9vw,130px) var(--pad)}
.sec__head{max-width:900px}
.sec__head--split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,70px);align-items:end;max-width:none}
.h2{font-size:clamp(28px,3.6vw,46px);margin-top:20px;letter-spacing:-.035em}
.sec__desc{font-size:17px;line-height:1.65;color:var(--slate-d);padding-bottom:8px}
.sec__note{margin-top:16px;font-size:13.5px;color:var(--slate);font-weight:600}

/* ============================================================
   УСЛУГИ — «раскрывающийся реестр»
   ============================================================ */
.sec--svc{background:var(--white)}
.svc{margin-top:clamp(36px,5vw,60px);position:relative}
.svc__list{border-top:1px solid var(--mist-l)}
.svc__i{border-bottom:1px solid var(--mist-l);position:relative}

.svc__head{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(16px,3vw,38px);
  width:100%;text-align:left;padding:clamp(20px,2.6vw,30px) 6px;position:relative;z-index:0;
  transition:padding-left .45s var(--e);
}
.svc__head::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent-l);
  transition:width .55s var(--e);z-index:-1;border-radius:0 var(--r) var(--r) 0;
}
.svc__i:hover .svc__head::before,.svc__i.is-active .svc__head::before{width:calc(100% + 24px)}
.svc__i:hover .svc__head,.svc__i.is-active .svc__head{padding-left:24px}

.svc__n{
  font-size:clamp(24px,2.7vw,36px);font-weight:800;line-height:1;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1px var(--mist);
  transition:color .4s,-webkit-text-stroke-color .4s;
}
.svc__i:hover .svc__n,.svc__i.is-active .svc__n{color:var(--accent);-webkit-text-stroke-color:transparent}

.svc__t{
  font-size:clamp(18px,2.15vw,29px);font-weight:700;letter-spacing:-.03em;line-height:1.2;
  max-width:22ch;
}
.svc__i.is-active .svc__t{color:var(--ink)}

.svc__plus{position:relative;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--mist-l);flex-shrink:0;transition:background .35s,border-color .35s,transform .5s var(--e)}
.svc__plus::before,.svc__plus::after{
  content:'';position:absolute;left:50%;top:50%;width:13px;height:1.8px;background:var(--slate);
  transform:translate(-50%,-50%);transition:transform .45s var(--e),background .3s;border-radius:2px;
}
.svc__plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.svc__i.is-active .svc__plus{background:var(--accent);border-color:var(--accent);transform:rotate(135deg)}
.svc__i.is-active .svc__plus::before,.svc__i.is-active .svc__plus::after{background:#fff}

.svc__body{overflow:hidden;height:0;transition:height .5s var(--e)}
.svc__pad{padding:4px 6px 34px 0;max-width:62ch}
.svc__tag{
  display:inline-block;padding:6px 13px;border-radius:100px;background:var(--ink);color:#fff;
  font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;
}
.svc__pad p{color:var(--slate-d);line-height:1.68}
.svc__pad ul{margin:18px 0 14px;display:grid;gap:9px}
.svc__pad li{position:relative;padding-left:26px;font-size:15.5px;font-weight:600}
.svc__pad li::before{
  content:'';position:absolute;left:0;top:.52em;width:11px;height:11px;border-radius:3px;
  background:var(--accent);opacity:.25;
}
.svc__pad li::after{
  content:'';position:absolute;left:3px;top:calc(.52em + 3px);width:5px;height:5px;border-radius:1px;background:var(--accent);
}

/* десктоп: активное описание уезжает в правую колонку */
@media (min-width:900px){
  .svc__list{position:relative}
  .svc__i{position:static}
  .svc__head{grid-template-columns:auto 1fr auto;width:min(56%,660px)}
  .svc__t{max-width:none}
  /* описание уезжает в правую колонку и держится у верха реестра */
  .svc__body{
    position:absolute;top:0;right:0;width:40%;height:auto !important;
    opacity:0;transform:translateY(14px);pointer-events:none;z-index:2;
    transition:opacity .45s var(--e),transform .55s var(--e);
  }
  .svc__i.is-active .svc__body{opacity:1;transform:none;pointer-events:auto;z-index:3}
  .svc__pad{
    padding:30px 32px;background:var(--paper);border-radius:var(--r-lg);
    border:1px solid var(--mist-l);
  }
}

/* иконка направления в правой панели: линия на мягком круге */
.svc__ico{
  position:relative;display:grid;place-items:center;width:78px;height:78px;margin-bottom:20px;
}
.svc__ico::before{
  content:'';position:absolute;left:0;top:2px;width:58px;height:58px;border-radius:50%;
  background:var(--accent-l);transition:transform .5s var(--e);
}
.svc__i.is-active .svc__ico::before{transform:scale(1.12)}
.svc__ico svg{
  position:relative;width:46px;height:46px;fill:none;stroke:var(--slate);
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.svc__i.is-active .svc__ico svg{stroke:var(--accent)}

.sec--spc{background:var(--paper)}

/* «не нашли услугу» — подвал блока услуг */
.sec__foot{
  margin-top:clamp(34px,4vw,52px);padding-top:28px;border-top:1px solid var(--mist-l);
  display:flex;align-items:center;gap:clamp(16px,2vw,28px);flex-wrap:wrap;
}
.sec__foot-i{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  background:var(--accent-l);color:var(--accent);font-weight:800;font-size:16px;
}
.sec__foot p{flex:1;min-width:260px;font-size:16px;line-height:1.5;color:var(--slate-d)}

/* ============================================================
   КАК МЫ РАБОТАЕМ
   ============================================================ */
.sec--flow{background:var(--paper)}
.flow{
  margin-top:clamp(40px,5vw,64px);
  display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.4vw,18px);
  counter-reset:flow;
}
.flow__i{
  position:relative;padding:26px 22px 24px;border-radius:var(--r-lg);
  background:var(--white);border:1px solid var(--mist-l);
  display:flex;flex-direction:column;
  transition:transform .5s var(--e),box-shadow .5s var(--e),border-color .3s;
}
/* пунктирная линия-связка между шагами */
.flow__i::after{
  content:'';position:absolute;top:44px;right:calc(clamp(12px,1.4vw,18px)*-1 - 1px);width:clamp(12px,1.4vw,18px);
  border-top:2px dashed var(--mist);opacity:.6;
}
.flow__i--last::after{display:none}
.flow__i:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:var(--mist)}
.flow__n{
  font-weight:800;font-size:13px;color:var(--mist);letter-spacing:.1em;
}
.flow__ico{
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--accent-l);margin:14px 0 16px;
  transition:background .35s var(--e),transform .5s var(--e);
}
.flow__i:hover .flow__ico{background:var(--accent);transform:rotate(-6deg)}
.flow__ico svg{width:22px;height:22px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .35s}
.flow__i:hover .flow__ico svg{stroke:#fff}
.flow__i h3{font-size:17.5px;letter-spacing:-.025em}
.flow__i p{margin-top:9px;font-size:14.5px;line-height:1.55;color:var(--slate-d);flex:1}
.flow__meta{
  margin-top:16px;padding-top:13px;border-top:1px solid var(--mist-xl);
  font-size:11.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--mist);
}

/* ============================================================
   ФОРМАТЫ СОТРУДНИЧЕСТВА — бенто с 3D-объектами
   ============================================================ */
.sec--fmt{background:var(--white)}
.fmt{
  margin-top:clamp(38px,5vw,58px);
  display:grid;grid-template-columns:1fr 1.25fr 1fr;
  grid-template-rows:repeat(2,minmax(250px,auto));
  gap:clamp(12px,1.4vw,18px);
}
.fmt__c{
  position:relative;overflow:hidden;isolation:isolate;
  padding:clamp(24px,2.4vw,32px);border-radius:var(--r-lg);
  background:var(--paper);border:1px solid var(--mist-l);
  display:flex;flex-direction:column;
  transition:transform .5s var(--e),box-shadow .5s var(--e),border-color .3s;
}
.fmt__c:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--mist)}
.fmt__c--wide{grid-column:2;grid-row:1 / span 2}
.fmt__c--dark{
  background:var(--ink);border-color:var(--ink);color:#fff;
  background-image:radial-gradient(120% 90% at 100% 0%,rgba(86,111,135,.5),transparent 62%);
}
.fmt__c h3{font-size:clamp(19px,1.9vw,25px);letter-spacing:-.03em;line-height:1.18;max-width:16ch}
.fmt__c--wide h3{max-width:20ch}
.fmt__c p{margin-top:13px;font-size:15px;line-height:1.6;color:var(--slate-d);max-width:30ch}
.fmt__c--dark p{color:var(--mist)}
.fmt__note{
  margin-top:auto;padding-top:20px;font-size:11.5px;font-weight:800;
  letter-spacing:.13em;text-transform:uppercase;color:var(--mist);
}
.fmt__c--dark .fmt__note{color:var(--accent)}

.fmt__list{margin-top:22px;display:grid;gap:14px;max-width:38ch}
.fmt__list li{position:relative;padding-left:30px;font-size:15px;line-height:1.55;color:var(--slate-d)}
.fmt__list li::before{
  content:'';position:absolute;left:0;top:.15em;width:19px;height:19px;border-radius:50%;
  background:var(--accent-l);
}
.fmt__list li::after{
  content:'';position:absolute;left:6px;top:calc(.15em + 6px);width:7px;height:7px;
  border-radius:50%;background:var(--accent);
}

/* 3D-объект: наполовину уходит за край плашки */
.fmt__ico{
  position:absolute;z-index:-1;pointer-events:none;
  background-size:contain;background-repeat:no-repeat;background-position:center;
  transition:transform .7s var(--e);
  /* радиальная маска прячет квадратные края рендера — объект «врастает» в плашку */
  mask-image:radial-gradient(closest-side,#000 76%,transparent 100%);
  -webkit-mask-image:radial-gradient(closest-side,#000 76%,transparent 100%);
}
.fmt__c:hover .fmt__ico{transform:scale(1.06) rotate(-3deg)}
.fmt__c--a .fmt__ico{width:170px;height:170px;right:-38px;bottom:-34px;background-image:url(../assets/img/d3-bubble.jpg)}
.fmt__c--b .fmt__ico{width:170px;height:170px;right:-40px;bottom:-42px;background-image:url(../assets/img/d3-shield.jpg)}
.fmt__c--wide .fmt__ico{width:270px;height:270px;right:-64px;bottom:-70px;background-image:url(../assets/img/d3-seal.jpg)}
.fmt__c--c .fmt__ico{width:180px;height:180px;right:-44px;bottom:-46px;background-image:url(../assets/img/d3-gavel.jpg)}
.fmt__c--d .fmt__ico{width:175px;height:175px;right:-42px;bottom:-40px;background-image:url(../assets/img/d3-folder.jpg)}

/* ============================================================
   КЕЙСЫ
   ============================================================ */
.sec--cases{background:var(--paper);position:relative;overflow:hidden}
.sec--cases::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 60% at 90% 10%,rgba(160,180,202,.28),transparent 65%);
}
.cases{
  position:relative;margin-top:clamp(38px,5vw,58px);
  display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.6vw,20px);
}
.case{
  display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);
  background:var(--white);border:1px solid var(--mist-l);
  transition:transform .5s var(--e),border-color .35s,box-shadow .5s var(--e);
}
.case:hover{transform:translateY(-6px);border-color:rgba(255,125,0,.5);box-shadow:var(--sh)}
.case--wide{grid-column:span 2;flex-direction:row;align-items:stretch}
.case__ph{
  position:relative;aspect-ratio:16/9;flex-shrink:0;overflow:hidden;
  background-color:var(--slate-d);
  background-image:linear-gradient(140deg,rgba(42,59,77,.22),rgba(42,59,77,.6));
  background-size:cover;background-position:center;
}
/* обложки кейсов — путь задаём здесь, чтобы он резолвился от файла стилей */
.case__ph--1{background-image:linear-gradient(140deg,rgba(42,59,77,.22),rgba(42,59,77,.6)),url(../assets/img/case-1.jpg)}
.case__ph--2{background-image:linear-gradient(140deg,rgba(42,59,77,.22),rgba(42,59,77,.6)),url(../assets/img/case-2.jpg)}
.case__ph--3{background-image:linear-gradient(140deg,rgba(42,59,77,.22),rgba(42,59,77,.6)),url(../assets/img/case-3.jpg)}
.case--wide .case__ph{width:46%;aspect-ratio:auto}
.case__ph::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(255,125,0,.22),transparent 55%);
  opacity:0;transition:opacity .5s var(--e);
}
.case:hover .case__ph::after{opacity:1}
.case__tag{
  position:absolute;left:16px;top:16px;padding:7px 13px;border-radius:100px;
  background:rgba(42,59,77,.72);backdrop-filter:blur(6px);
  font-size:11.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--mist);
}
.case__txt{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;flex:1}
.case__sum{
  font-weight:800;font-size:clamp(27px,3vw,40px);
  color:var(--accent);line-height:1;letter-spacing:-.04em;
}
.case__txt h3{margin-top:14px;font-size:clamp(17px,1.5vw,21px);letter-spacing:-.025em;line-height:1.3}
.case__d{margin-top:11px;font-size:14.5px;line-height:1.6;color:var(--slate-d);flex:1}
.case__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.case__meta li{
  padding:6px 12px;border-radius:100px;border:1px solid var(--mist-l);
  font-size:12.5px;font-weight:600;color:var(--slate-d);
}
.cases__note{
  position:relative;margin-top:26px;font-size:12.5px;line-height:1.55;
  color:var(--slate);max-width:70ch;
}

/* ============================================================
   О КОМПАНИИ
   ============================================================ */
.sec--about{background:var(--paper);position:relative;overflow:hidden}
.about{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,5vw,64px);margin-top:clamp(38px,5vw,60px);align-items:start}
.about__txt p{color:var(--slate-d);line-height:1.7;margin-bottom:16px;font-size:16.5px}
.about__txt p b{color:var(--ink);font-weight:800}
.quote{
  margin:26px 0 0;padding:26px 28px 26px 34px;border-radius:var(--r-lg);
  background:var(--ink);color:#fff;position:relative;overflow:hidden;
  font-size:clamp(17px,1.7vw,21px);font-weight:600;line-height:1.5;letter-spacing:-.02em;
}
.quote::before{
  content:'“';position:absolute;right:18px;top:-6px;
  font-size:110px;font-weight:800;color:var(--accent);opacity:.24;line-height:1;
}
.quote::after{content:'';position:absolute;left:0;top:16px;bottom:16px;width:4px;background:var(--accent)}

.about__pic{margin:0}
.about__ph{
  aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;position:relative;
  background:linear-gradient(160deg,var(--slate),var(--ink));
  display:grid;place-items:center;box-shadow:var(--sh);
}
.about__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
.about__pic:hover .about__ph img{transform:scale(1.04)}
.about__pic figcaption{
  display:flex;flex-direction:column;margin-top:-34px;margin-left:18px;position:relative;
  background:var(--accent);color:#fff;padding:14px 20px;border-radius:var(--r);width:fit-content;
  box-shadow:0 16px 34px -16px rgba(255,125,0,.8);
}
.about__pic figcaption b{font-size:15px}
.about__pic figcaption span{font-size:13px;opacity:.85;font-weight:600}

/* таймлайн — горизонтальная лента */
.tl{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(268px,1fr);gap:0;
  margin-top:clamp(46px,6vw,80px);border-top:2px solid var(--mist-l);
}
.tl__i{padding:34px 26px 8px 0;position:relative}
.tl__i::before{
  content:'';position:absolute;left:0;top:-8px;width:14px;height:14px;border-radius:50%;
  background:var(--white);border:3px solid var(--mist);transition:border-color .3s,transform .4s var(--e);
}
.tl__i:hover::before{border-color:var(--accent);transform:scale(1.25)}
.tl__i--now::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 6px rgba(255,125,0,.18)}
.tl__y{font-size:clamp(26px,2.7vw,36px);font-weight:800;letter-spacing:-.04em;color:var(--accent);line-height:1;display:block}
.tl__i h3{font-size:18px;margin-top:12px;letter-spacing:-.02em}
.tl__i p{margin-top:9px;font-size:14.5px;line-height:1.6;color:var(--slate-d)}


/* ============================================================
   КОМАНДА
   ============================================================ */
.sec--team{background:var(--white);position:relative;overflow:hidden}
.sec--team::before{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(rgba(86,111,135,.1) 1px,transparent 1px) 0 0/100% 74px,
    linear-gradient(90deg,rgba(86,111,135,.1) 1px,transparent 1px) 0 0/74px 100%;
  mask-image:radial-gradient(100% 70% at 80% 0%,#000,transparent 70%);
  -webkit-mask-image:radial-gradient(100% 70% at 80% 0%,#000,transparent 70%);
  pointer-events:none;
}
.team{
  position:relative;margin-top:clamp(40px,5vw,64px);
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.2vw,30px);
}
.prsn{position:relative}
/* ступенька у средней колонки — ряд не выглядит линейкой */
.team .prsn:nth-child(3n+2){margin-top:clamp(16px,2.6vw,38px)}
.prsn__ph{
  aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;position:relative;
  background:linear-gradient(160deg,var(--mist-l),var(--mist) 65%,var(--slate));
  background-size:cover;background-position:center;
  display:grid;place-items:center;
  transition:transform .55s var(--e),box-shadow .55s var(--e);
}
/* абстрактные фактуры-плейсхолдеры, пока нет реальных фото */
.prsn:nth-child(4n+1) .prsn__ph{background-image:url(../assets/img/team-tex-l-1.jpg)}
.prsn:nth-child(4n+2) .prsn__ph{background-image:url(../assets/img/team-tex-l-2.jpg)}
.prsn:nth-child(4n+3) .prsn__ph{background-image:url(../assets/img/team-tex-l-3.jpg)}
.prsn:nth-child(4n+4) .prsn__ph{background-image:url(../assets/img/team-tex-l-4.jpg)}
.prsn__ph img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.05);transition:filter .5s;
}
.prsn:hover .prsn__ph img{filter:none}

/* монограмма-печать вместо фото: как появится <img>, она уходит сама */
.prsn__mono{
  position:relative;z-index:2;display:grid;place-items:center;
  width:38%;aspect-ratio:1;border-radius:50%;
  border:1px solid rgba(255,255,255,.8);background:rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  font-size:clamp(17px,1.9vw,28px);font-weight:800;letter-spacing:.1em;
  color:#fff;text-shadow:0 1px 3px rgba(42,59,77,.5);
  transition:border-color .5s var(--e),background .5s var(--e);
}
.prsn__mono::before{
  content:'';position:absolute;inset:5px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
}
.prsn:hover .prsn__mono{border-color:var(--accent);background:rgba(255,125,0,.22)}
.prsn__ph:has(img) .prsn__mono{display:none}

.prsn__tag{
  position:absolute;z-index:2;left:14px;bottom:14px;
  padding:7px 15px;border-radius:100px;
  background:rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--slate-d);white-space:nowrap;
}
.prsn__ph::before{
  content:'';position:absolute;inset:auto 0 0 0;height:0;z-index:1;
  background:linear-gradient(transparent,rgba(255,125,0,.6));
  transition:height .55s var(--e);
}
.prsn:hover .prsn__ph{transform:translateY(-8px);box-shadow:0 26px 50px -26px rgba(42,59,77,.6)}
.prsn:hover .prsn__ph::before{height:34%}
.prsn h3{margin-top:17px;font-size:clamp(17px,1.5vw,20px);letter-spacing:-.025em;line-height:1.25}
.prsn p{margin-top:6px;font-size:14.5px;font-weight:600;color:var(--slate-d);line-height:1.45}
.team__note{
  position:relative;margin-top:clamp(26px,3vw,38px);
  font-size:13px;line-height:1.7;color:var(--slate);max-width:76ch;
}
/* пометка «фото — примеры»: снимаем вместе со строкой, когда придут реальные */
.team__note-b{
  display:inline-block;margin-right:8px;padding:3px 10px;border-radius:100px;
  background:var(--accent-l);color:var(--accent-d);
  font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
}

/* ============================================================
   ПРЕИМУЩЕСТВА — бенто
   ============================================================ */
.sec--facts{background:var(--white)}
.bento{
  margin-top:clamp(38px,5vw,60px);
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,18px);
}
.bn{
  position:relative;overflow:hidden;padding:clamp(24px,2.6vw,34px);
  border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--mist-l);
  display:flex;flex-direction:column;justify-content:flex-end;min-height:190px;
  transition:transform .5s var(--e),box-shadow .5s var(--e),border-color .3s;
}
.bn:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--mist)}
.bn b{
  font-weight:800;letter-spacing:-.045em;line-height:.95;
  font-size:clamp(38px,4.4vw,60px);
}
.bn p{margin-top:12px;font-size:15px;font-weight:600;color:var(--slate-d);line-height:1.45}
.bn--xl{grid-column:span 2;grid-row:span 2;min-height:320px}
.bn--xl b{font-size:clamp(64px,8.5vw,130px)}
.bn--xl p{font-size:clamp(16px,1.5vw,19px);max-width:24ch}
.bn--accent{background:var(--accent);border-color:var(--accent);color:#fff}
.bn--accent p{color:rgba(255,255,255,.9)}
.bn--dark{background:var(--ink);border-color:var(--ink);color:#fff;grid-column:span 2}
.bn--dark p{color:var(--mist)}
.bn--w{grid-column:span 2}
.bn__g{
  position:absolute;right:-6%;top:-10%;width:52%;
  fill:rgba(255,255,255,.18);
}

/* ============================================================
   CTA + ФОРМА
   ============================================================ */
.cta{
  position:relative;isolation:isolate;overflow:hidden;
  padding:clamp(60px,8vw,110px) var(--pad);
  background:
    radial-gradient(90% 120% at 12% 0%,rgba(223,233,243,.95),transparent 60%),
    var(--paper);
  color:var(--ink);
}
/* 3D-сцена: стоит справа, слева уходит в чистый тёмный фон под заголовок */
/* 3D-сцена: положение и масштаб — переменные --cta-*, правятся тем же редактором */
.cta__bg{position:absolute;inset:0;z-index:-1;overflow:hidden;opacity:var(--cta-op,1)}
.cta__bg img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  transform:translate(var(--cta-tx,0%),var(--cta-ty,0%)) scale(var(--cta-s,1));
  transform-origin:center;
}
.cta::after{
  content:'';position:absolute;inset:0;z-index:-1;opacity:var(--cta-shade,1);
  background:
    linear-gradient(95deg,var(--paper) 20%,rgba(234,241,248,.88) 40%,rgba(234,241,248,.25) 68%,transparent 84%),
    linear-gradient(180deg,rgba(234,241,248,.6),transparent 30%,rgba(234,241,248,.55));
}
.cta__in{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,70px);align-items:center}
.cta__lead{margin-top:18px;color:var(--slate-d);font-size:16.5px;line-height:1.65;max-width:44ch}

.cta__list{margin-top:30px;display:grid;gap:14px}
.cta__list li{display:flex;align-items:center;gap:16px}
.cta__arr{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  border:1px solid var(--mist-l);background:var(--white);color:var(--slate-d);
  transition:background .3s,border-color .3s,color .3s,transform .4s var(--e);
}
.cta__arr svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cta__list li:hover .cta__arr{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateX(3px)}
.cta__list a,.cta__list span:not(.cta__arr){font-size:clamp(15.5px,1.4vw,18px);font-weight:700;letter-spacing:-.015em}
.cta__list span:not(.cta__arr){font-weight:600;color:var(--slate-d);max-width:32ch;line-height:1.4}
.cta__list a:hover{color:var(--accent)}

/* стеклянная плашка с дополнительным текстом */
.glass{
  position:relative;margin-top:30px;max-width:44ch;
  padding:24px 26px;border-radius:var(--r-lg);
  background:rgba(255,255,255,.72);border:1px solid var(--mist-l);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 20px 44px -34px rgba(42,59,77,.5);
}
.glass p{font-size:15px;line-height:1.6;color:var(--slate-d);max-width:34ch}
.glass__go{
  position:absolute;right:20px;top:20px;width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;border:1px solid var(--mist-l);color:var(--slate-d);
}
.glass__go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.frm{
  background:rgba(255,255,255,.82);border:1px solid var(--mist-l);
  padding:clamp(24px,3vw,34px);border-radius:var(--r-lg);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 30px 60px -40px rgba(42,59,77,.55);
}
.frm__row{margin-bottom:16px;display:flex;flex-direction:column;gap:7px}
.frm__row label{font-size:12.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--slate-d)}
.frm__row label i{font-style:normal;opacity:.55;letter-spacing:.04em;text-transform:none;font-weight:600}
.frm__row input,.frm__row textarea{
  font:600 16px/1.5 var(--f-sans);color:var(--ink);
  background:var(--white);border:1px solid var(--mist-l);
  border-radius:12px;padding:14px 16px;resize:vertical;
  transition:border-color .25s,background .25s;
}
.frm__row input::placeholder,.frm__row textarea::placeholder{color:var(--mist)}
.frm__row input:focus,.frm__row textarea:focus{border-color:var(--accent);background:var(--white);outline:none}
.frm__row input.is-err,.frm__row textarea.is-err{border-color:#ff5a5a}
.frm__note{margin-top:14px;font-size:12.5px;color:var(--slate);line-height:1.5}
.frm__note a{border-bottom:1px solid var(--mist)}
.frm__ok{margin-top:14px;font-size:14.5px;font-weight:700;color:#1a8f52}

/* ============================================================
   КОНТАКТЫ
   ============================================================ */
.sec--cnt{background:var(--white)}
.cnt{
  margin-top:clamp(34px,4vw,54px);
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(16px,2vw,28px);align-items:stretch;
}
.cnt__side{display:flex;flex-direction:column;gap:14px}
.ofc{
  background:var(--white);border:1px solid var(--mist-l);border-radius:var(--r-lg);overflow:hidden;
  transition:border-color .3s,box-shadow .4s var(--e);
}
.ofc.is-active{border-color:var(--accent);box-shadow:0 20px 44px -26px rgba(255,125,0,.7)}
.ofc__head{width:100%;text-align:left;padding:24px 26px;display:flex;flex-direction:column;gap:9px}
.ofc__badge{
  display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;
  letter-spacing:.13em;text-transform:uppercase;color:var(--mist);
}
.ofc__badge::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--mist-l);transition:background .3s,box-shadow .3s}
.ofc.is-active .ofc__badge{color:var(--accent)}
.ofc.is-active .ofc__badge::before{background:var(--accent);box-shadow:0 0 0 4px rgba(255,125,0,.2)}
.ofc__addr{font-size:clamp(17px,1.6vw,21px);font-weight:800;letter-spacing:-.025em;line-height:1.28}
.ofc__body{height:0;overflow:hidden;transition:height .5s var(--e)}
.ofc__list{padding:4px 26px 26px;display:grid;gap:10px}
.ofc__list li{display:grid;grid-template-columns:74px 1fr;align-items:baseline;gap:12px}
.ofc__list li span{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mist)}
.ofc__list li a,.ofc__list li b{font-size:16px;font-weight:700;letter-spacing:-.01em}
.ofc__list li a:hover{color:var(--accent)}

.cnt__map{
  border-radius:var(--r-lg);overflow:hidden;min-height:420px;position:relative;
  border:1px solid var(--mist-l);background:var(--mist-xl);
}
.cnt__map iframe{width:100%;height:100%;border:0;display:block;position:absolute;inset:0;filter:grayscale(.35) contrast(1.02)}
/* заглушка карты: видна, пока виджет не загрузился */
.cnt__mapstub{
  position:absolute;inset:0;display:grid;place-items:center;padding:20px;
  background:var(--mist-xl);color:var(--slate);font-weight:700;font-size:14px;
  text-align:center;line-height:1.6;
}
.cnt__mapstub a{color:var(--accent-d);text-decoration:underline;text-underline-offset:2px}
.cnt__map iframe.is-loading{opacity:0}

/* ============================================================
   ПОДВАЛ
   ============================================================ */
.ftr{background:var(--ink);color:#fff;padding:clamp(56px,7vw,90px) var(--pad) 26px;overflow:hidden}
.ftr__top{display:grid;grid-template-columns:1.5fr 1fr 1.15fr 1.15fr;gap:clamp(24px,4vw,50px)}
/* на тёмном подвале тёмный знак не читается — светлая версия того же круга */
.brand--ftr .brand__mark{background:linear-gradient(145deg,var(--mist-l),var(--mist));width:44px;height:44px}
.brand--ftr .brand__mark svg{fill:var(--ink)}
.brand--ftr .brand__mark svg{width:22px;height:23px}
.ftr__brand p{margin-top:20px;color:var(--mist);font-size:14.5px;line-height:1.65;max-width:34ch}
.ftr__col{display:flex;flex-direction:column;gap:9px}
.ftr__col h4{font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.ftr__col a,.ftr__col span{font-size:14.5px;color:var(--mist);font-weight:600;line-height:1.45;transition:color .25s}
.ftr__col a:hover{color:#fff}

.ftr__word{
  margin-top:clamp(40px,6vw,70px);font-size:clamp(52px,13.5vw,200px);font-weight:800;
  letter-spacing:.02em;line-height:.9;text-align:center;
  color:transparent;-webkit-text-stroke:1px rgba(160,180,202,.22);
  user-select:none;
}
.ftr__req{
  margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);
  font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.42);max-width:96ch;
}
.ftr__req p+p{margin-top:5px}
.ftr__req b{color:var(--mist);font-weight:700}
.ftr__btm{
  margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);
  display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;
  font-size:13px;color:rgba(255,255,255,.42);
}
.ftr__btm a{margin-left:20px}
.ftr__btm a:first-child{margin-left:0}
.ftr__btm a:hover{color:#fff}

/* ---------- плавающая кнопка ---------- */
.fab{
  display:none;position:fixed;right:16px;bottom:16px;z-index:90;
  width:56px;height:56px;border-radius:50%;background:var(--accent);
  place-items:center;box-shadow:0 14px 30px -10px rgba(255,125,0,.9);
}
.fab svg{width:23px;height:23px;fill:#fff}

/* ============================================================
   АНИМАЦИЯ ПОЯВЛЕНИЯ
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--e),transform .9s var(--e)}
[data-reveal].is-in{opacity:1;transform:none}

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width:1100px){
  .hero__main{max-width:none}
  .creed__i{padding:18px}
  .creed__i:nth-child(2),.creed__i:nth-child(3){margin-top:0}
  .creed__n{position:static;display:block;margin-bottom:8px}
  .team{grid-template-columns:repeat(2,1fr)}
  .team .prsn:nth-child(3n+2){margin-top:0}
  .team .prsn:nth-child(even){margin-top:clamp(16px,3vw,38px)}
  .ftr__top{grid-template-columns:1fr 1fr;row-gap:36px}
}
@media (max-width:980px){
  .nav{
    position:fixed;inset:78px 12px auto 12px;flex-direction:column;gap:2px;
    background:var(--white);color:var(--ink);border-radius:var(--r-lg);padding:14px;
    box-shadow:var(--sh);border:1px solid var(--mist-l);
    opacity:0;visibility:hidden;transform:translateY(-12px);
    transition:opacity .3s,transform .4s var(--e),visibility .3s;
  }
  .nav.is-open{opacity:1;visibility:visible;transform:none}
  .nav a{padding:13px 14px;font-size:16px;border-bottom:1px solid var(--mist-xl)}
  .nav a:last-child{border-bottom:0}
  .nav a::after{display:none}
  .burger{display:flex}
  .btn--call span{display:none}
  .btn--call{width:42px;height:42px;padding:0;justify-content:center}
  .btn--call svg{width:17px;height:17px}
  .bridge__card{grid-template-columns:1fr 1fr;gap:22px}
  .bridge__call{grid-column:span 2;text-align:left;border-left:0;border-top:1px solid var(--mist-l);padding:16px 0 0}
  .sec__head--split{grid-template-columns:1fr;gap:20px;align-items:start}
  .flow{grid-template-columns:repeat(2,1fr)}
  .flow__i::after{display:none}
  .fmt{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .fmt__c--wide{grid-column:1 / span 2;grid-row:auto}
  .cases{grid-template-columns:1fr}
  .case--wide{grid-column:span 1;flex-direction:column}
  .case--wide .case__ph{width:100%;aspect-ratio:16/9}
  .about{grid-template-columns:1fr}
  .about__pic{max-width:420px}
  .tl{grid-auto-flow:row;grid-auto-columns:auto;border-top:0}
  .tl__i{padding:0 0 28px 30px;border-left:2px solid var(--mist-l)}
  .tl__i::before{left:-8px;top:2px}
  .cnt{grid-template-columns:1fr}
  .cnt__map{min-height:340px;order:-1}
  .cta__in{grid-template-columns:1fr}
  .bento{grid-template-columns:repeat(2,1fr)}
  .bn--xl{grid-column:span 2;grid-row:auto;min-height:260px}
  .bn--dark,.bn--w{grid-column:span 2}
  .fab{display:grid}
}
@media (max-width:700px){
  body{font-size:16px}
  .hdr{padding:10px 12px}
  .hdr__inner{padding-left:14px}
  .brand__txt i{display:none}
  .creed{grid-template-columns:1fr}
  .bridge__card{grid-template-columns:1fr}
  .bridge__call{grid-column:span 1}
  .svc__head{gap:14px;padding-block:18px}
  .svc__plus{width:32px;height:32px}
  .flow{grid-template-columns:1fr}
  .fmt{grid-template-columns:1fr}
  .fmt__c--wide{grid-column:1}
  .fmt__c p,.fmt__list{max-width:24ch}
  .fmt__c .fmt__ico{width:128px;height:128px;right:-44px;bottom:-38px}
  .fmt__c--wide .fmt__ico{width:180px;height:180px;right:-54px;bottom:-52px}
  .team{grid-template-columns:repeat(2,1fr)}
  .team .prsn:nth-child(even),.team .prsn:nth-child(3n+2){margin-top:0}
  .bento{grid-template-columns:1fr}
  .bn{min-height:auto;padding:22px}
  .bn--xl,.bn--dark,.bn--w{grid-column:span 1}
  .bn--xl{min-height:auto}
  .bn--xl b{font-size:clamp(56px,17vw,90px)}
  .ofc__list li{grid-template-columns:1fr;gap:2px}
  .ofc__list li span:empty{display:none}
  .ftr__top{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  [data-reveal]{opacity:1;transform:none}
}

/* ============================================================
   ПОЛОЖЕНИЕ ФОНА В ГЕРО — подобрано вручную в редакторе (?edit=1)
   и зафиксировано. Значения снимались на десктопе, поэтому
   ограничены его диапазоном: на узких экранах кадр другой ширины,
   и тот же сдвиг увёл бы его за край.
   ============================================================ */
@media (min-width:1100px){
  .hero__var--1{--hx:-145px;--hy:-72px;--hs:1.22}
  .hero__var--2{--hx:-199px;--hy:-89px;--hs:1.47}
  .hero__var--3{--hx:-155px;--hy:-57px;--hs:1.38}
  .hero__var--4{--hx:-139px;--hy:-42px;--hs:1.41}
  .hero__var--5{--hx:-270px;--hy:-55px;--hs:1.64}
  .hero__var--6{--hx:-141px;--hy:-70px;--hs:1.40}
  .hero__var--7{--hx:-101px;--hy:-78px}
  .hero__var--8{--hx:-75px;--hy:-80px}
  .hero__var--9{--hx:-87px;--hy:-88px}
  .hero__var--10{--hx:-141px;--hy:-85px}
}


/* ============================================================
   ФОРМА: согласие и служебные поля
   ============================================================ */
.frm__agree{display:flex;gap:10px;align-items:flex-start;margin:4px 0 16px}
.frm__agree input{
  flex-shrink:0;width:18px;height:18px;margin-top:1px;
  accent-color:var(--accent);cursor:pointer;
}
.frm__agree label{font-size:13px;line-height:1.5;color:var(--slate-d);cursor:pointer}
.frm__agree a{color:var(--accent-d);text-decoration:underline;text-underline-offset:2px}
.frm__agree.is-err label{color:var(--accent-d)}
/* ловушка для ботов — из потока убираем, но не display:none: часть ботов это видит */
.frm__trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.frm__err{
  margin-top:14px;padding:12px 16px;border-radius:var(--r);
  background:var(--accent-l);color:var(--accent-d);
  font-size:14px;font-weight:600;line-height:1.5;
}
.frm__err a{text-decoration:underline}

/* ============================================================
   ВРЕМЕННАЯ СБОРКА ЗАПУСКА
   Блок «Наша команда» вырезается при заливке
   (метки <!--draft:start--> … <!--draft:end--> в index.html).
   Без них ломается чередование фонов секций — здесь его чиним.
   Когда блоки вернутся: снять класс is-launch с <body> в tools/deploy_ftp.sh
   и убрать метки draft из index.html.
   ============================================================ */
/* Убрали одну секцию — сместилась чётность всей цепочки фонов.
   Хватает одного переключения: «О компании» возвращается на белый,
   и дальше всё снова чередуется само. */
.is-launch .sec--about{background:var(--white)}

/* ============================================================
   ТЕКСТОВАЯ СТРАНИЦА (политика конфиденциальности)
   ============================================================ */
.doc{background:var(--paper);min-height:100vh;padding:clamp(30px,6vw,70px) var(--pad)}
.doc__in{
  width:min(100%,780px);margin-inline:auto;
  background:var(--white);border:1px solid var(--mist-l);border-radius:var(--r-lg);
  padding:clamp(26px,4.5vw,58px);box-shadow:var(--sh);
}
.doc__back{
  display:inline-block;margin-bottom:26px;font-size:14px;font-weight:700;
  color:var(--slate-d);transition:color .25s;
}
.doc__back:hover{color:var(--accent)}
.doc__back--btm{margin:34px 0 0;padding-top:24px;border-top:1px solid var(--mist-l);display:block}
.doc h1{font-size:clamp(24px,3.4vw,34px);letter-spacing:-.03em;line-height:1.2}
.doc__date{margin-top:10px;font-size:13.5px;font-weight:600;color:var(--slate)}
.doc h2{
  margin-top:clamp(28px,3.4vw,40px);font-size:clamp(17px,1.8vw,20px);
  letter-spacing:-.02em;
}
.doc p{margin-top:12px;font-size:15.5px;line-height:1.7;color:var(--slate-d)}
.doc p b{color:var(--ink);font-weight:700}
.doc ul{margin-top:12px;padding-left:22px;list-style:disc}
.doc li::marker{color:var(--mist)}
.doc li{font-size:15.5px;line-height:1.65;color:var(--slate-d);margin-bottom:6px}
.doc a{color:var(--accent-d);text-decoration:underline;text-underline-offset:2px}
.doc a:hover{color:var(--accent)}

/* ============================================================
   ГЕРО НА УЗКИХ ЭКРАНАХ
   На десктопе кадр стоит в правой трети, рядом с текстом. На телефоне
   такой колонки нет, поэтому картинка уезжает в поток — полосой во всю
   ширину между описанием и кнопками. Кнопки заходят на неё снизу, так
   что она читается фоном, а не отдельным блоком.
   Сам перенос делает js/app.js: элементы лежат в разных родителях,
   средствами CSS их не переставить.
   ============================================================ */
.hero__slot{display:none}

@media (max-width:860px){
  .hero{padding-top:clamp(118px,15vh,158px)}

  .hero__slot{
    display:block;position:relative;z-index:0;pointer-events:none;
    /* в край экрана: гасим боковые отступы секции */
    margin-inline:calc(var(--pad)*-1);
    margin-top:clamp(22px,4.5vw,34px);
    /* кнопки наезжают на нижнюю часть кадра */
    margin-bottom:clamp(-92px,-19vw,-58px);
  }

  /* обёртка варианта в фоновом слое абсолютная — в потоке она бы
     не дала полосе высоты */
  .hero__slot .hero__var{position:relative;inset:auto}

  .hero__slot .scene,
  .hero__slot .hero__art{
    position:relative;inset:auto;
    width:100%;height:auto;aspect-ratio:16/9;
    /* на планшетах 16/9 от полной ширины даёт слишком высокую полосу —
       подрезаем по высоте, кадр внутри остаётся object-fit:cover */
    max-height:300px;
    translate:none;transform:none;opacity:var(--hero-op,1);
  }
  .hero__slot .scene.boot,
  .hero__slot .hero__art.boot{opacity:0}

  /* низ уводим в прозрачность — под кнопками остаётся чистый фон,
     по бокам смягчаем края, чтобы кадр не выглядел вырезанным */
  .hero__slot .scene{
    mask-image:linear-gradient(transparent 0%,#000 14%,#000 48%,rgba(0,0,0,.4) 78%,transparent 97%),
               linear-gradient(90deg,transparent 0%,#000 13%,#000 87%,transparent 100%);
    -webkit-mask-image:linear-gradient(transparent 0%,#000 14%,#000 48%,rgba(0,0,0,.4) 78%,transparent 97%),
               linear-gradient(90deg,transparent 0%,#000 13%,#000 87%,transparent 100%);
    mask-composite:intersect;-webkit-mask-composite:source-in;
  }
  .hero__slot .hero__art{aspect-ratio:16/10}

  /* кнопки — поверх кадра */
  .hero__cta{position:relative;z-index:2}
}

/* ============================================================
   УСЛУГИ: РАСКРЫТОЕ ОПИСАНИЕ НА ТЕЛЕФОНЕ
   Раньше описание начиналось сразу под оранжевой плашкой заголовка,
   и иконка упиралась в неё. Даём описанию вид отдельной карточки,
   а иконку и метку направления ставим одной строкой.
   ============================================================ */
@media (max-width:899px){
  .svc__pad{
    margin:14px 0 6px;padding:20px 18px 22px;
    background:var(--paper);border:1px solid var(--mist-l);border-radius:var(--r);
    display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;
  }
  .svc__ico{grid-column:1;grid-row:1;width:50px;height:50px;margin:0}
  .svc__ico::before{width:50px;height:50px;top:0}
  .svc__ico svg{width:27px;height:27px}
  .svc__tag{grid-column:2;grid-row:1;justify-self:start;margin:0}
  .svc__pad p,
  .svc__pad ul,
  .svc__pad .lnk{grid-column:1 / -1}
  .svc__pad p{margin-top:16px}
  .svc__pad .lnk{justify-self:start}
}
