/* =====================================================================
   OMNI — общий стиль сайта
   Палитра и знак — по брендбуку (brand/BRAND.md):
   чернильно-синий #10182A · латунь #B08B4F · зелёный #3F6B5E · кремовый #ECE8DF · сланец #55647A
   ===================================================================== */

/* ---------- Шрифты: размещены на сервере сайта (без обращений к Google Fonts) ---------- */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/poppins-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/* Playfair Display — заголовки; в отличие от прежнего Fraunces, содержит кириллицу и настоящий курсив */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/playfair-display-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/playfair-display-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/playfair-display-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/playfair-display-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/playfair-display-cyrillic-500-italic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/playfair-display-latin-500-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- Основа ---------- */
:root{
  --ink:#10182a; --ink-2:#0a1020; --ink-soft:#1c2740;
  --paper:#ece8df; --paper-2:#f6f4ee;
  --brass:#b08b4f; --brass-light:#d3ae74;
  --teal:#3f6b5e; --teal-light:#7ba393;
  --slate:#55647a;
  --line:rgba(16,24,42,0.14);
  --line-dark:rgba(236,232,223,0.16);
  --serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, Consolas, monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
  --shadow-lg:0 40px 70px -40px rgba(16,24,42,0.45);
  /* знак из трёх колец — фоновые версии для украшений */
  --rings-on-paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 176 176' fill='none' stroke-width='6' stroke-linecap='round'%3E%3Ccircle cx='88' cy='88' r='78' stroke='%2310182a' stroke-dasharray='368 122' transform='rotate(-50 88 88)'/%3E%3Ccircle cx='88' cy='88' r='52' stroke='%23b08b4f' stroke-dasharray='245 82' transform='rotate(130 88 88)'/%3E%3Ccircle cx='88' cy='88' r='26' stroke='%233f6b5e' stroke-dasharray='122 42' transform='rotate(-50 88 88)'/%3E%3C/svg%3E");
  --rings-on-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 176 176' fill='none' stroke-width='6' stroke-linecap='round'%3E%3Ccircle cx='88' cy='88' r='78' stroke='%23f6f4ee' stroke-dasharray='368 122' transform='rotate(-50 88 88)'/%3E%3Ccircle cx='88' cy='88' r='52' stroke='%23d3ae74' stroke-dasharray='245 82' transform='rotate(130 88 88)'/%3E%3Ccircle cx='88' cy='88' r='26' stroke='%237ba393' stroke-dasharray='122 42' transform='rotate(-50 88 88)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
body{margin:0; background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  color:var(--ink); overflow-x:clip; overflow-wrap:break-word;
  font-family:var(--sans); font-size:16px; font-variant-numeric:lining-nums; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
h1,h2,h3{font-family:var(--serif); font-weight:500; margin:0; letter-spacing:-0.012em;}
.mono{font-family:var(--mono); letter-spacing:0.04em;}
a{color:inherit;}
::selection{background:var(--brass); color:var(--paper-2);}
.wrap{max-width:1180px; margin-left:auto; margin-right:auto; padding-left:32px; padding-right:32px;}
@media (max-width:640px){.wrap{padding-left:20px; padding-right:20px;}}
section{padding:72px 0;}
:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
.skip-link{position:absolute; left:-9999px; top:8px; background:var(--ink); color:var(--paper-2); padding:10px 16px; z-index:100; border-radius:2px;}
.skip-link:focus{left:8px;}

/* ---------- Логотип (шапка/подвал) ---------- */
.logo{display:flex; align-items:center; gap:12px; text-decoration:none;}
.logo svg{display:block; flex-shrink:0;}
.logo .wordmark{font-family:'Poppins', sans-serif; font-weight:500; font-size:24px;
  letter-spacing:0.11em; line-height:1; color:var(--ink); display:block;}
.logo .tagline{font-family:var(--sans); font-weight:600; font-size:8.5px; letter-spacing:0.36em;
  color:var(--brass); margin-top:6px; display:block; white-space:nowrap;}
/* вращение — на обёртке <g>; сама окружность сохраняет свой поворот-атрибут */
.orb{transform-origin:88px 88px; transform-box:view-box; transition:transform .9s var(--ease);}
.logo:hover .orb-1{transform:rotate(38deg);}
.logo:hover .orb-2{transform:rotate(-52deg);}
.logo:hover .orb-3{transform:rotate(74deg);}
/* при загрузке страницы кольца шапки один раз «собираются» в знак */
header .logo .orb-1{animation:settle-out 1.4s var(--ease) both;}
header .logo .orb-2{animation:settle-in 1.4s var(--ease) .12s both;}
header .logo .orb-3{animation:settle-out 1.4s var(--ease) .24s both;}

/* ---------- Анимированный знак в hero ----------
   Каждая анимация — на обёртке <g>. Базовый поворот остаётся атрибутом <circle>,
   поэтому в исходной точке разрывы всегда стоят ровно так, как в товарном знаке. */
.mark-animated .orb, .mark-spin .orb, .mark-animated .core{transform-origin:88px 88px; transform-box:view-box; transition:none;}
.mark-animated .orb-1{animation: settle-out 1.6s var(--ease) both, drift-cw 44s linear 1.7s infinite;}
.mark-animated .orb-2{animation: settle-in 1.6s var(--ease) .18s both, drift-ccw 30s linear 1.9s infinite;}
.mark-animated .orb-3{animation: settle-out 1.6s var(--ease) .36s both, drift-cw 20s linear 2.1s infinite;}
.mark-animated .core{animation: core-in .9s cubic-bezier(.2,1.4,.4,1) .8s both;}
/* backwards — во время задержки показывается первый кадр, а не полный круг */
.mark-animated .pulse{transform-origin:88px 88px; transform-box:view-box; animation: pulse 5.5s ease-out 2.4s infinite backwards;}
/* непрерывное вращение без «входа» — для знака в разделе «О бренде» и в подвале */
.mark-spin .orb-1{animation:drift-cw 44s linear infinite;}
.mark-spin .orb-2{animation:drift-ccw 30s linear infinite;}
.mark-spin .orb-3{animation:drift-cw 20s linear infinite;}
@keyframes settle-out{ from{transform:rotate(-115deg); opacity:0;} to{transform:rotate(0deg); opacity:1;} }
@keyframes settle-in{ from{transform:rotate(115deg); opacity:0;} to{transform:rotate(0deg); opacity:1;} }
@keyframes core-in{ from{transform:scale(0); opacity:0;} to{transform:scale(1); opacity:1;} }
@keyframes drift-cw{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
@keyframes drift-ccw{ from{transform:rotate(0deg);} to{transform:rotate(-360deg);} }
@keyframes pulse{
  0%{transform:scale(0.18); opacity:0;}
  12%{opacity:0.5;}
  70%{transform:scale(1); opacity:0;}
  100%{transform:scale(1); opacity:0;}
}
@keyframes spin{ to{transform:rotate(360deg);} }
@keyframes spin-rev{ to{transform:rotate(-360deg);} }
@keyframes halo{ 0%,100%{transform:scale(.96); opacity:.85;} 50%{transform:scale(1.04); opacity:1;} }
@keyframes marquee{ to{transform:translateX(-50%);} }
@keyframes menu-in{ from{opacity:0; transform:translateY(-8px);} to{opacity:1; transform:none;} }

/* ---------- Шапка ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(246,244,238,0.82);
  -webkit-backdrop-filter:saturate(1.5) blur(16px); backdrop-filter:saturate(1.5) blur(16px);
  border-bottom:1px solid var(--line); transition:background .3s ease, box-shadow .3s ease;}
header.scrolled{background:rgba(246,244,238,0.94); box-shadow:0 14px 34px -24px rgba(16,24,42,0.5);}
.nav{display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding-top:16px; padding-bottom:16px; position:relative; transition:padding .3s ease;}
header.scrolled .nav{padding-top:10px; padding-bottom:10px;}
.scroll-progress{position:absolute; left:0; bottom:-1px; width:100%; height:2px; transform-origin:left;
  transform:scaleX(var(--p,0)); background:linear-gradient(90deg,var(--brass),var(--brass-light));}
nav ul{list-style:none; display:flex; gap:34px; margin:0; padding:0;}
nav ul a{text-decoration:none; color:var(--ink); font-size:14.5px; font-weight:500;
  position:relative; padding-bottom:4px; transition:color .2s ease;}
nav ul a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--brass); transition:width .3s var(--ease);}
nav ul a:hover::after, nav ul a[aria-current="page"]::after{width:100%;}
nav ul a:hover{color:var(--brass);}
nav ul a[aria-current="page"]{color:var(--brass);}
.nav-cta{position:relative; overflow:hidden; background:var(--ink); color:var(--paper-2); text-decoration:none; font-size:13.5px;
  font-weight:500; padding:11px 22px; border-radius:2px; transition:background .25s ease, transform .2s ease;}
.nav-cta:hover{background:var(--brass);}
.cta-item{display:none;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer;
  padding:12px; margin:-12px -12px -12px 0; -webkit-tap-highlight-color:transparent;}
.burger span{width:22px; height:2px; background:var(--ink); transition:transform .25s ease, opacity .2s ease;}
header.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
header.nav-open .burger span:nth-child(2){opacity:0;}
header.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:880px){
  nav ul{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0;
    background:var(--paper-2); padding:8px 32px 24px; border-bottom:1px solid var(--line);
    box-shadow:0 24px 40px -28px rgba(16,24,42,0.5);}
  header.nav-open nav ul{display:flex; animation:menu-in .3s var(--ease);}
  .burger{display:flex;}
  .nav-cta{display:none;}
  .cta-item{display:block; margin-top:10px;}
  .cta-item .nav-cta{display:inline-block; width:100%; text-align:center; padding:14px 22px;}
  nav ul li{width:100%; border-bottom:1px solid var(--line);}
  nav ul li.cta-item{border-bottom:none;}
  nav ul a{display:block; padding:14px 0; font-size:16px;}
  nav ul a::after{display:none;}
}
@media (max-width:640px){ nav ul{padding-left:20px; padding-right:20px;} }

/* ---------- Кнопки ---------- */
.btn-primary, .btn-secondary, .submit-btn{position:relative; overflow:hidden; isolation:isolate; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  text-decoration:none; padding:16px 30px; font-family:var(--sans); font-size:14.5px; font-weight:500; border-radius:2px; cursor:pointer;
  transition:color .25s ease, background .25s ease, border-color .25s ease, transform .2s ease, box-shadow .3s ease;}
.btn-primary, .submit-btn{background:var(--ink); color:var(--paper-2); border:1px solid var(--ink);}
.btn-primary::before, .submit-btn::before{content:""; position:absolute; inset:0; z-index:-1; background:var(--brass);
  transform:translateY(101%); transition:transform .4s var(--ease);}
.btn-primary:hover::before, .submit-btn:hover:not(:disabled)::before{transform:none;}
.btn-primary:hover, .submit-btn:hover:not(:disabled){border-color:var(--brass); box-shadow:0 18px 30px -18px rgba(176,139,79,0.9);}
.btn-primary::after{content:"→"; display:inline-block; transition:transform .3s var(--ease);}
.btn-primary:hover::after{transform:translateX(5px);}
.btn-secondary{border:1px solid var(--ink); color:var(--ink); background:transparent;}
.btn-secondary:hover{background:var(--ink); color:var(--paper-2);}
.btn-primary:active, .btn-secondary:active, .submit-btn:active{transform:scale(0.97);}
.text-link{display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-size:14.5px; font-weight:500; color:var(--ink);
  border-bottom:1px solid var(--brass); padding-bottom:3px; transition:color .2s ease;}
.text-link:hover{color:var(--brass);}
.text-link::after{content:"→"; display:inline-block; transition:transform .3s var(--ease);}
.text-link:hover::after{transform:translateX(5px);}
@media (max-width:480px){
  .hero-actions{flex-direction:column; align-items:stretch;}
  .hero-actions .btn-primary, .hero-actions .btn-secondary{width:100%;}
  .cta-inner .btn-primary{width:100%;}
}

/* ---------- Заголовки разделов ---------- */
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px;
  margin-bottom:52px; border-bottom:1px solid var(--line); padding-bottom:30px;}
@media (max-width:700px){.section-head{flex-direction:column; align-items:flex-start; margin-bottom:36px;}}
.section-head h2{font-size:clamp(28px,3.8vw,44px); line-height:1.12;}
.section-head p{color:var(--slate); max-width:400px; font-size:15px; line-height:1.6; margin:0;}
.sec-num{display:flex; align-items:center; gap:12px; font-family:var(--mono); font-size:12px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--brass); margin-bottom:16px;}
.sec-num::after{content:""; width:44px; height:1px; background:var(--brass);}
.eyebrow{font-size:12.5px; color:var(--brass); text-transform:uppercase; letter-spacing:0.08em;
  display:flex; align-items:center; gap:12px; margin-bottom:24px; font-weight:500;}
.eyebrow::before{content:""; width:34px; height:1px; background:var(--brass);}
.on-dark{border-color:var(--line-dark);}
.on-dark h2{color:var(--paper-2);}
.on-dark p{color:rgba(236,232,223,0.62);}

/* ---------- Hero (главная) ---------- */
.hero-section{position:relative; overflow:hidden; isolation:isolate; padding:0;}
.hero-section::before{content:""; position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(52% 64% at 76% 42%, rgba(211,174,116,0.34), transparent 66%),
    radial-gradient(40% 46% at 6% 100%, rgba(63,107,94,0.16), transparent 70%),
    linear-gradient(180deg, rgba(246,244,238,0.7), rgba(236,232,223,0));}
.hero-section::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:linear-gradient(to right, rgba(16,24,42,0.05) 1px, transparent 1px);
  background-size:calc(100% / 8) 100%;
  -webkit-mask-image:radial-gradient(70% 90% at 70% 45%, #000 20%, transparent 80%); mask-image:radial-gradient(70% 90% at 70% 45%, #000 20%, transparent 80%);}
.hero{display:grid; grid-template-columns:1.02fr 0.98fr; gap:32px; align-items:center;
  padding-top:clamp(44px,6vw,88px); padding-bottom:clamp(48px,6vw,92px);}
@media (max-width:940px){.hero{grid-template-columns:1fr; gap:8px;} .hero-stage-col{order:-1;}}
.hero h1{font-size:clamp(34px,4.3vw,56px); line-height:1.08; letter-spacing:-0.02em;}
.hero h1 em{font-style:italic; color:var(--teal); font-weight:500;}
.hero p.lead{font-size:17.5px; color:var(--slate); max-width:500px; margin:26px 0 0; line-height:1.65;}
.hero-actions{display:flex; gap:14px; margin-top:38px; flex-wrap:wrap;}
.hero-stats{display:grid; grid-template-columns:repeat(3,auto); justify-content:start; margin-top:52px; border-top:1px solid var(--line);}
.hero-stats div{padding:22px 32px 0 0; margin-right:32px; border-right:1px solid var(--line);}
.hero-stats div:last-child{border-right:none; margin-right:0; padding-right:0;}
.hero-stats b{font-family:var(--serif); font-weight:500; font-size:27px; display:block; letter-spacing:-0.01em;}
.hero-stats span{font-size:12.5px; color:var(--slate); display:block; margin-top:3px;}
@media (max-width:560px){
  .hero-stats{grid-template-columns:1fr 1fr; gap:0;}
  .hero-stats div{padding:18px 12px 0 0; margin:0; border-right:none;}
  .hero-stats div:last-child{grid-column:1 / -1;}
  .hero-stats b{font-size:23px;}
}
/* сцена со знаком */
.hero-stage-col{display:flex; justify-content:center; perspective:1100px;}
.hero-stage{position:relative; width:min(540px,100%); aspect-ratio:1; display:grid; place-items:center;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition:transform .35s ease-out; will-change:transform;}
.hero-stage .halo{position:absolute; inset:9%; border-radius:50%; animation:halo 7s ease-in-out infinite;
  background:radial-gradient(circle, rgba(246,244,238,0.98) 0 40%, rgba(211,174,116,0.26) 64%, rgba(211,174,116,0) 74%);}
.hero-stage .guides{position:absolute; inset:0; width:100%; height:100%; overflow:visible;}
.guides .g-spin{transform-origin:200px 200px; transform-box:view-box;}
.guides .g-a{animation:spin 120s linear infinite;}
.guides .g-b{animation:spin-rev 46s linear infinite;}
.guides .g-c{animation:spin 26s linear infinite;}
.hero-mark{position:relative; width:68%; display:flex; align-items:center; justify-content:center;
  filter:drop-shadow(0 26px 34px rgba(16,24,42,0.18));}
.hero-mark svg{width:100%; height:auto; display:block;}
.hero-caption{position:absolute; bottom:-3%; left:50%; transform:translateX(-50%); white-space:nowrap;
  font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--slate);}
@media (max-width:940px){ .hero-stage{width:min(400px,86vw);} .hero-caption{display:none;} }

/* ---------- Бегущая лента ---------- */
.marquee{background:var(--ink); color:var(--paper-2); overflow:hidden; padding:0;
  border-top:1px solid rgba(211,174,116,0.35); border-bottom:1px solid rgba(211,174,116,0.35);}
.marquee-track{display:flex; width:max-content; animation:marquee 52s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-group{display:flex; flex-shrink:0;}
.marquee-item{display:flex; align-items:center; gap:34px; padding:21px 0 21px 34px; white-space:nowrap;
  font-family:var(--mono); font-size:12.5px; letter-spacing:0.16em; text-transform:uppercase; color:rgba(246,244,238,0.82);}
.marquee-item::after{content:""; width:11px; height:11px; border-radius:50%; border:1.5px solid var(--brass-light); flex-shrink:0;
  box-shadow:inset 0 0 0 2.5px var(--ink), inset 0 0 0 5.5px var(--teal-light);}

/* ---------- Страницы: верхний блок ---------- */
.page-hero{position:relative; isolation:isolate; overflow-x:clip; padding-top:76px; padding-bottom:24px;}
.page-hero::after{content:""; position:absolute; right:0; top:8px; width:min(380px,46vw); aspect-ratio:1; z-index:-1; pointer-events:none;
  background:var(--rings-on-paper) center/contain no-repeat; opacity:0.085; animation:spin 180s linear infinite;}
.page-hero > *{position:relative;}
.page-hero h1{font-size:clamp(34px,4.8vw,56px); line-height:1.08; max-width:14ch; letter-spacing:-0.02em;}
.page-hero h1.wide{max-width:22ch;}
.page-hero p{color:var(--slate); font-size:17.5px; line-height:1.65; max-width:540px; margin-top:24px;}
.page-hero .price-line{display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:30px; align-items:baseline;}
.price-line b{font-family:var(--serif); font-weight:500; font-size:34px; color:var(--teal);}
.price-line span{font-size:14px; color:var(--slate);}
.page-hero .hero-actions{margin-top:32px;}
.crumbs{padding-top:28px; font-size:12.5px; color:var(--slate);}
.crumbs ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 10px;}
.crumbs li + li::before{content:"/"; margin-right:10px; color:rgba(16,24,42,0.3);}
.crumbs a{text-decoration:none; color:var(--slate); border-bottom:1px solid var(--line);}
.crumbs a:hover{color:var(--ink); border-color:var(--ink);}
.crumbs + .page-hero{padding-top:36px;}

/* ---------- Два направления: бренд и консалтинг (главная) ---------- */
.duo{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch;}
@media (max-width:900px){.duo{grid-template-columns:1fr;}}
.duo-card{position:relative; overflow:hidden; isolation:isolate; display:flex; flex-direction:column; gap:0;
  background:var(--paper-2); border:1px solid var(--line); border-radius:3px; padding:42px 40px 38px;
  transition:transform .4s var(--ease), box-shadow .4s ease;}
.duo-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}
@media (max-width:560px){.duo-card{padding:30px 22px 28px;}}
.duo-tag{font-size:11.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--brass); margin-bottom:18px;}
.duo-card h3{font-size:clamp(25px,2.7vw,34px); line-height:1.15; margin-bottom:16px;}
.duo-card > p{margin:0 0 26px; font-size:15px; line-height:1.7; color:var(--slate); max-width:46ch;}
.duo-list{list-style:none; margin:0 0 30px; padding:0; border-top:1px solid var(--line);}
.duo-list a{display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:15px 2px; text-decoration:none;
  border-bottom:1px solid var(--line); font-size:15px; transition:padding-left .35s var(--ease), color .25s ease;}
.duo-list a:hover{padding-left:12px; color:var(--brass);}
.duo-list b{font-family:var(--serif); font-weight:500; font-size:17px; color:var(--teal); white-space:nowrap;}
.duo-card .text-link{margin-top:auto; align-self:flex-start;}
/* тёмная карточка — консалтинг */
.duo-card-dark{background:var(--ink); color:var(--paper-2); border-color:var(--ink);}
.duo-card-dark::before{content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(70% 80% at 100% 0%, rgba(176,139,79,0.3), transparent 62%), radial-gradient(50% 60% at 0% 100%, rgba(63,107,94,0.32), transparent 70%);}
.duo-card-dark::after{content:""; position:absolute; right:-90px; bottom:-90px; width:300px; aspect-ratio:1; z-index:-1; pointer-events:none;
  background:var(--rings-on-ink) center/contain no-repeat; opacity:0.1; animation:spin 90s linear infinite;}
.duo-card-dark .duo-tag{color:var(--brass-light);}
.duo-card-dark h3{color:var(--paper-2);}
.duo-card-dark > p{color:rgba(236,232,223,0.72);}
.duo-card-dark .duo-list, .duo-card-dark .duo-list a{border-color:var(--line-dark);}
.duo-card-dark .duo-list a{color:var(--paper-2);}
.duo-card-dark .duo-list a:hover{color:var(--brass-light);}
.duo-card-dark .duo-list b{color:var(--teal-light);}
.duo-card-dark .text-link{color:var(--paper-2); border-color:var(--brass-light);}
.duo-card-dark .text-link:hover{color:var(--brass-light);}

/* консалтинговые карточки задач — зелёный акцент, чтобы направления читались на глаз */
.work-card.cons .work-tag{color:var(--teal);}
.work-card.cons:hover .work-tag{color:var(--teal-light);}

/* ---------- О студии ---------- */
.about-sec{position:relative; overflow:hidden;}
.about-lead{font-size:19px; line-height:1.7; max-width:780px; color:var(--ink); margin:0 0 22px;}
.about-lead + .about-lead{font-size:16px; color:var(--slate); margin-bottom:44px;}
.about-watermark{position:absolute; top:-90px; right:-130px; width:600px; height:600px; opacity:0.05; pointer-events:none; z-index:0;
  animation:spin 200s linear infinite;}
@media (max-width:700px){ .about-watermark{width:380px; height:380px; top:-40px; right:-110px;} }
.about-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; position:relative; z-index:1;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;}}
.about-card{position:relative; background:var(--paper-2); padding:36px 32px 34px; border:1px solid var(--line); border-radius:3px; overflow:hidden;
  transition:transform .4s var(--ease), box-shadow .4s ease, border-color .3s ease;}
.about-card::before{content:""; position:absolute; left:0; top:0; height:3px; width:0; background:linear-gradient(90deg,var(--brass),var(--brass-light)); transition:width .5s var(--ease);}
.about-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:rgba(176,139,79,0.5);}
.about-card:hover::before{width:100%;}
.about-card .num{font-family:var(--serif); font-style:italic; font-size:44px; line-height:1; color:var(--brass); display:block; margin-bottom:22px; opacity:0.9;}
.about-card h3{font-size:21px; margin-bottom:12px;}
.about-card p{color:var(--slate); font-size:14.5px; line-height:1.65; margin:0;}

/* ---------- Как проходит работа (тёмная секция) ---------- */
.process{position:relative; overflow:hidden; isolation:isolate; background:var(--ink); color:var(--paper-2);}
.process::before{content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(50% 80% at 100% 0%, rgba(176,139,79,0.22), transparent 65%), radial-gradient(40% 60% at 0% 100%, rgba(63,107,94,0.28), transparent 70%);}
.process::after{content:""; position:absolute; left:-140px; bottom:-200px; width:560px; aspect-ratio:1; z-index:-1; pointer-events:none;
  background:var(--rings-on-ink) center/contain no-repeat; opacity:0.07; animation:spin-rev 160s linear infinite;}
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0 36px;}
@media (max-width:940px){.steps{grid-template-columns:repeat(2,1fr); gap:44px 32px;}}
@media (max-width:560px){.steps{grid-template-columns:1fr;}}
.step{position:relative; padding-top:34px; border-top:1px solid var(--line-dark);}
.step::before{content:""; position:absolute; top:-6px; left:0; width:11px; height:11px; border-radius:50%; background:var(--ink); border:1.5px solid var(--brass-light);}
.step::after{content:""; position:absolute; top:-1px; left:0; height:1px; width:0; background:var(--brass-light); transition:width 1.4s .3s var(--ease);}
.step.is-visible::after{width:100%;}
.step-n{font-family:var(--serif); font-style:italic; font-size:64px; line-height:1; color:var(--brass-light); display:block; margin-bottom:20px;
  background:linear-gradient(180deg, var(--brass-light), rgba(211,174,116,0.62)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.step h3{color:var(--paper-2); font-size:22px; margin-bottom:12px;}
.step p{margin:0; font-size:14.5px; line-height:1.7; color:rgba(236,232,223,0.7);}

/* ---------- Услуги (главная) ---------- */
.band-light{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.teaser-list{border-top:1px solid var(--ink);}
.teaser-item{position:relative; display:grid; grid-template-columns:56px 1fr auto 48px; align-items:center; gap:20px;
  padding:26px 6px; border-bottom:1px solid var(--line); text-decoration:none; transition:padding-left .4s var(--ease), background .3s ease;}
.teaser-item::before{content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0; background:var(--brass); transition:width .5s var(--ease);}
.teaser-item:hover{padding-left:18px; background:rgba(176,139,79,0.06);}
.teaser-item:hover::before{width:100%;}
.teaser-item:hover .teaser-title{color:var(--brass);}
.t-num{font-family:var(--mono); font-size:12px; color:var(--brass); letter-spacing:0.06em;}
.teaser-title{font-family:var(--serif); font-size:clamp(20px,2.4vw,27px); transition:color .3s ease; display:block;}
.teaser-tag{font-family:var(--mono); font-size:11.5px; color:var(--slate); display:block; margin-top:6px; letter-spacing:0.03em;}
.teaser-price{font-family:var(--serif); font-size:21px; color:var(--teal); white-space:nowrap;}
.t-arrow{width:44px; height:44px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; font-size:17px; color:var(--ink);
  transition:background .3s ease, color .3s ease, border-color .3s ease, transform .4s var(--ease);}
.teaser-item:hover .t-arrow{background:var(--brass); border-color:var(--brass); color:var(--paper-2); transform:rotate(-45deg);}
@media (max-width:640px){
  .teaser-item{grid-template-columns:38px 1fr 40px; gap:12px; padding:22px 2px;}
  .teaser-price{grid-column:2; grid-row:2; font-size:17px;}
  .t-arrow{grid-column:3; grid-row:1 / span 2; width:38px; height:38px;}
}

/* ---------- О бренде ---------- */
.brand{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.brand-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;}
@media (max-width:900px){.brand-grid{grid-template-columns:1fr; gap:40px;}}
.brand-visual{display:flex; justify-content:center;}
.brand-visual svg{width:min(340px, 74vw); height:auto; filter:drop-shadow(0 24px 30px rgba(16,24,42,0.14));}
.ring-list{list-style:none; margin:0; padding:0;}
.ring-list li{display:flex; gap:18px; padding:24px 0; border-top:1px solid var(--line);}
.ring-list li:first-child{border-top:none; padding-top:0;}
.ring-dot{width:12px; height:12px; border-radius:50%; flex-shrink:0; margin-top:8px; transition:transform .4s cubic-bezier(.4,1.6,.4,1);}
.ring-list li:hover .ring-dot{transform:scale(1.5);}
.ring-list h3{font-size:19px; margin-bottom:8px;}
.ring-list p{margin:0; color:var(--slate); font-size:14.5px; line-height:1.65;}

/* ---------- Карточки задач ---------- */
.work-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:900px){.work-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.work-grid{grid-template-columns:1fr;} .work-card{padding:28px 24px; min-height:0;}}
.work-card{position:relative; overflow:hidden; background:var(--paper-2); border:1px solid var(--line); border-radius:3px; padding:34px 30px; min-height:290px;
  display:flex; flex-direction:column; justify-content:space-between; transition:background .4s ease, transform .4s var(--ease), box-shadow .4s ease;}
.work-card::after{content:""; position:absolute; right:-70px; bottom:-70px; width:210px; aspect-ratio:1; background:var(--rings-on-ink) center/contain no-repeat;
  opacity:0; transition:opacity .5s ease, transform 1.2s var(--ease); transform:rotate(-40deg);}
.work-card:hover{background:var(--ink); transform:translateY(-6px); box-shadow:var(--shadow-lg);}
.work-card:hover::after{opacity:.13; transform:rotate(20deg);}
.work-card:hover .work-tag{color:var(--brass-light);}
.work-card:hover h3, .work-card:hover .work-desc, .work-card:hover .work-metric span{color:var(--paper-2);}
.work-card:hover .work-desc{color:rgba(236,232,223,0.78);}
.work-card:hover .work-metric{color:var(--teal-light);}
.work-card:hover .work-desc a{color:var(--brass-light);}
.work-tag{font-size:11px; text-transform:uppercase; color:var(--brass); letter-spacing:0.08em; transition:color .3s ease;}
.work-card h3{font-size:22px; margin:16px 0 10px; transition:color .3s ease; line-height:1.2;}
.work-desc{font-size:14px; color:var(--slate); line-height:1.6; transition:color .3s ease; margin:0;}
.work-desc a{color:var(--ink); border-bottom:1px solid var(--brass); text-decoration:none;}
.work-metric{font-family:var(--serif); font-size:34px; color:var(--teal); margin-top:24px; transition:color .3s ease;}
.work-metric span{font-size:13px; color:var(--slate); font-family:var(--sans); display:block; margin-top:2px; transition:color .3s ease;}

/* ---------- География работы ---------- */
.geo-list{display:flex; flex-wrap:wrap; gap:10px;}
.geo-list span{border:1px solid var(--line); border-radius:40px; padding:10px 20px; font-size:13.5px; color:var(--ink); background:var(--paper-2);
  transition:background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;}
.geo-list span:hover{background:var(--ink); color:var(--paper-2); border-color:var(--ink); transform:translateY(-2px);}

/* ---------- Аккордеон ---------- */
.panel{border-top:1px solid var(--line);}
.panel:last-child{border-bottom:1px solid var(--line);}
.panel-head{width:100%; background:none; border:none; cursor:pointer; text-align:left; color:var(--ink);
  display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 4px; font-family:inherit;}
.panel-head:hover .panel-title{color:var(--brass);}
.panel-title{font-family:var(--serif); font-size:clamp(18px,2vw,22px); transition:color .25s ease; color:var(--ink); flex:1; line-height:1.3;}
.panel-tag{font-size:11.5px; color:var(--slate); white-space:nowrap;}
.panel-icon{width:34px; height:34px; border-radius:50%; border:1px solid var(--line); flex-shrink:0; position:relative; transition:background .3s ease, border-color .3s ease;}
@media (max-width:520px){
  .panel-head{flex-wrap:wrap; row-gap:6px;}
  .panel-title{order:1; font-size:18px;}
  .panel-icon{order:2;}
  .panel-tag{order:3; flex-basis:100%;}
}
.panel-icon::before, .panel-icon::after{content:""; position:absolute; background:var(--ink);
  top:50%; left:50%; transform:translate(-50%,-50%); transition:transform .3s ease, opacity .3s ease, background .3s ease;}
.panel-icon::before{width:12px; height:1.5px;}
.panel-icon::after{width:1.5px; height:12px;}
.panel.open .panel-icon{background:var(--brass); border-color:var(--brass);}
.panel.open .panel-icon::before{background:var(--paper-2);}
.panel.open .panel-icon::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0;}
.panel-body{max-height:0; overflow:hidden; transition:max-height .42s ease;}
.panel-body-inner{padding:0 4px 34px; display:grid; grid-template-columns:1.2fr 1fr; gap:40px;}
@media (max-width:700px){.panel-body-inner{grid-template-columns:1fr; gap:20px;}}
.panel-body-inner p{color:var(--slate); font-size:15px; line-height:1.7; margin:0 0 16px;}
.deliverables{margin:0; padding:0; list-style:none;}
.deliverables li{font-size:13.5px; padding:10px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:10px;}
.deliverables li:first-child{border-top:none;}
.deliverables li span{color:var(--slate); font-family:var(--mono); font-size:11.5px;}

/* ---------- Контакты и форма ---------- */
.contact-sec{background:var(--paper); border-top:1px solid var(--line); padding:0;}
.contact-sec > .wrap{padding-top:76px; padding-bottom:76px;}
.contact-wrap{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
@media (max-width:860px){.contact-wrap{grid-template-columns:1fr; gap:40px;}}
.contact-info dl{margin:0;}
.contact-info dt{font-size:11.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--brass); margin-top:26px;}
.contact-info dt:first-child{margin-top:0;}
.contact-info dd{margin:8px 0 0; font-size:17px; line-height:1.5;}
.contact-info dd a{text-decoration:none; border-bottom:1px solid var(--brass); font-family:var(--serif); font-size:22px;}
.contact-info dd a:hover{color:var(--brass);}
.contact-wrap > *{min-width:0;}
.contact-info dd a{overflow-wrap:anywhere;}
@media (max-width:400px){.contact-info dd a{font-size:19px;}}
form{display:flex; flex-direction:column; gap:16px;}
#lead-form{background:var(--paper-2); padding:36px; border:1px solid var(--line); border-radius:3px; box-shadow:var(--shadow-lg);}
@media (max-width:560px){#lead-form{padding:24px 18px;}}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:11.5px; text-transform:uppercase; color:var(--slate); letter-spacing:0.06em; font-weight:500;}
.field input, .field textarea, .field select{background:#fff; border:1px solid var(--line);
  border-radius:2px; padding:14px 15px; font-family:inherit; font-size:15px; color:var(--ink); transition:border-color .2s ease, box-shadow .2s ease;}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--brass); box-shadow:0 0 0 3px rgba(176,139,79,0.25);}
.field textarea{resize:vertical; min-height:110px;}
/* iOS Safari увеличивает страницу при фокусе, если шрифт поля меньше 16px */
@media (max-width:640px){ .field input, .field textarea, .field select{font-size:16px;} }
.submit-btn{border:1px solid var(--ink); margin-top:6px; width:fit-content;}
.submit-btn:disabled{opacity:0.55; cursor:progress;}
@media (max-width:480px){ .submit-btn{width:100%;} }
.form-note{font-size:12.5px; color:var(--slate); margin-top:4px; line-height:1.5; min-height:1em;}
.form-note.ok{color:var(--teal); font-weight:500;}
.form-note.err{color:#a8422f; font-weight:500;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.consent{display:flex; gap:10px; align-items:flex-start; font-size:12.5px; color:var(--slate); line-height:1.5; margin-top:4px; cursor:pointer;}
.consent input{margin-top:2px; accent-color:var(--brass); flex-shrink:0;}
.consent a{color:var(--ink);}
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"]{border-color:#a8422f;}
/* Сообщения после отправки формы. Показываются якорем (#sent / #form-error) — работает и без JavaScript */
.flash{display:none; padding:16px 20px; border-radius:2px; font-size:14.5px; line-height:1.55; margin-bottom:22px; scroll-margin-top:110px;}
.flash:target{display:block;}
.flash.ok{background:rgba(63,107,94,0.12); border:1px solid rgba(63,107,94,0.4); color:#274a3f;}
.flash.err{background:rgba(168,66,47,0.1); border:1px solid rgba(168,66,47,0.35); color:#7d2e1f;}

/* ---------- Призыв к действию ---------- */
.cta-band{position:relative; overflow:hidden; isolation:isolate; background:var(--ink); color:var(--paper-2); padding:84px 0;}
.cta-band::before{content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(45% 120% at 88% 50%, rgba(176,139,79,0.3), transparent 65%), radial-gradient(35% 90% at 0% 100%, rgba(63,107,94,0.3), transparent 70%);}
.cta-band::after{content:""; position:absolute; right:-120px; top:50%; width:460px; aspect-ratio:1; margin-top:-230px; z-index:-1; pointer-events:none;
  background:var(--rings-on-ink) center/contain no-repeat; opacity:0.12; animation:spin 110s linear infinite;}
.cta-inner{display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; position:relative;}
.cta-inner h2{color:var(--paper-2); font-size:clamp(26px,3.4vw,42px); max-width:20ch; line-height:1.15;}
.cta-inner .btn-primary{background:var(--brass); border-color:var(--brass); color:var(--ink);}
.cta-inner .btn-primary::before{background:var(--brass-light);}
.cta-inner .btn-primary:hover{border-color:var(--brass-light); box-shadow:0 20px 34px -18px rgba(211,174,116,0.8);}

/* ---------- Подвал ---------- */
footer{position:relative; overflow:hidden; isolation:isolate; background:var(--ink); color:rgba(236,232,223,0.7); padding:64px 0 30px;}
.footer-mark{position:absolute; right:-150px; bottom:-190px; width:560px; height:560px; z-index:-1; opacity:0.07; pointer-events:none;}
.footer-top{display:flex; justify-content:space-between; align-items:flex-start; gap:32px; padding-bottom:36px; border-bottom:1px solid var(--line-dark); flex-wrap:wrap;}
footer .logo .wordmark{color:var(--paper-2);}
footer .logo .tagline{color:var(--brass-light);}
footer ul{list-style:none; display:flex; gap:28px; padding:0; margin:0; flex-wrap:wrap;}
footer ul a{text-decoration:none; color:rgba(236,232,223,0.72); font-size:13.5px; transition:color .2s ease;}
footer ul a:hover{color:var(--brass-light);}
.footer-links-grid{display:flex; gap:64px; flex-wrap:wrap;}
.footer-col{min-width:170px;}
.footer-col h4{font-family:var(--mono); font-size:11px; font-weight:400; letter-spacing:0.1em; text-transform:uppercase; color:var(--brass-light); margin:0 0 14px;}
.footer-col ul{flex-direction:column; gap:10px;}
.footer-req{font-size:12px; color:rgba(236,232,223,0.5); line-height:1.75; padding:22px 0 4px; max-width:820px;}
.footer-bottom{display:flex; justify-content:space-between; padding-top:20px; font-size:12px; flex-wrap:wrap; gap:10px; color:rgba(236,232,223,0.5);}
.footer-bottom a{text-decoration:none; color:inherit;}
.footer-bottom a:hover{color:var(--brass-light);}

/* ---------- Появление при скролле ---------- */
@keyframes reveal-in{ from{opacity:0; transform:translateY(26px);} to{opacity:1; transform:translateY(0);} }
.reveal{opacity:0; transform:translateY(26px);}
.reveal.is-visible{animation:reveal-in .8s var(--ease) forwards;}
.d1.is-visible{animation-delay:.08s;} .d2.is-visible{animation-delay:.16s;} .d3.is-visible{animation-delay:.24s;}
.d4.is-visible{animation-delay:.32s;} .d5.is-visible{animation-delay:.4s;} .d6.is-visible{animation-delay:.48s;}

/* ---------- Внутренние страницы ---------- */
.prose{max-width:760px;}
.prose h2{font-size:clamp(24px,3vw,34px); margin:0 0 18px; line-height:1.18;}
.prose h3{font-size:21px; margin:30px 0 10px;}
.prose p{font-size:16px; line-height:1.75; color:var(--ink); margin:0 0 16px;}
.prose p.muted, .muted{color:var(--slate);}
.prose ul{margin:0 0 18px; padding-left:20px;}
.prose li{font-size:16px; line-height:1.7; margin-bottom:8px;}
.prose li::marker{color:var(--brass);}
.prose a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--brass); transition:color .2s ease;}
.prose a:hover{color:var(--brass);}
.block{padding-top:52px; padding-bottom:52px;}
.block-sep{position:relative;}
.block-sep::before{content:""; position:absolute; top:0; left:32px; right:32px; height:1px; background:var(--line);}
@media (max-width:640px){.block-sep::before{left:20px; right:20px;}}

.include-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:8px;}
@media (max-width:760px){.include-grid{grid-template-columns:1fr;}}
.include-card{position:relative; overflow:hidden; background:var(--paper-2); padding:30px 30px; border:1px solid var(--line); border-radius:3px;
  transition:transform .4s var(--ease), box-shadow .4s ease, border-color .3s ease;}
.include-card::before{content:""; position:absolute; left:0; top:0; height:3px; width:0; background:linear-gradient(90deg,var(--brass),var(--brass-light)); transition:width .5s var(--ease);}
.include-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:rgba(176,139,79,0.5);}
.include-card:hover::before{width:100%;}
.include-card h3{font-size:20px; margin:0 0 10px;}
.include-card p{margin:0; font-size:14.5px; line-height:1.65; color:var(--slate);}
.include-card .tag{display:block; margin-top:14px; font-family:var(--mono); font-size:11.5px; color:var(--brass);}

.stage-list{list-style:none; margin:0; padding:0; counter-reset:st; border-top:1px solid var(--ink);}
.stage-list li{counter-increment:st; display:grid; grid-template-columns:56px 1fr auto; gap:16px; align-items:baseline;
  padding:22px 4px; border-bottom:1px solid var(--line); font-size:15.5px; line-height:1.6; transition:background .3s ease, padding-left .4s var(--ease);}
.stage-list li:hover{background:rgba(176,139,79,0.06); padding-left:14px;}
.stage-list li::before{content:counter(st, decimal-leading-zero); font-family:var(--serif); font-style:italic; font-size:24px; color:var(--brass); line-height:1;}
.stage-list li span{font-family:var(--mono); font-size:12px; color:var(--slate); white-space:nowrap;}
@media (max-width:560px){.stage-list li{grid-template-columns:38px 1fr;} .stage-list li span{grid-column:2;}}

.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:3px; background:var(--paper-2);}
.price-table{width:100%; border-collapse:collapse; font-size:15px; min-width:720px;}
.price-table th{font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--paper-2); background:var(--ink); text-align:left; padding:16px 20px; font-weight:400;}
.price-table td{padding:22px 20px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.6; transition:background .25s ease;}
.price-table tbody tr:last-child td{border-bottom:none;}
.price-table tbody tr:hover td{background:rgba(176,139,79,0.07);}
.price-table td:first-child{font-family:var(--serif); font-size:19px;}
.price-table td:first-child a{text-decoration:none; color:var(--ink); border-bottom:1px solid var(--brass);}
.price-table td:first-child a:hover{color:var(--brass);}
.price-table .p{font-family:var(--serif); font-size:22px; color:var(--teal); white-space:nowrap;}
.price-table .s{color:var(--slate); font-size:14px;}
.price-note{margin-top:22px; font-size:13.5px; color:var(--slate); line-height:1.65; max-width:760px;}
.price-note a{color:var(--ink);}

.callout{background:var(--paper-2); border:1px solid var(--line); border-left:3px solid var(--brass); padding:24px 26px; max-width:760px; margin:0 0 24px; border-radius:0 3px 3px 0;}
.callout p{margin:0; font-size:15px; line-height:1.7; color:var(--ink);}
.callout p + p{margin-top:10px;}
.badge{display:inline-block; font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--slate); border:1px solid var(--line); padding:5px 10px; border-radius:2px; background:var(--paper-2);}

.svc-list{border-top:1px solid var(--ink);}
.svc-item{position:relative; display:grid; grid-template-columns:1.3fr 1fr auto; gap:28px; align-items:center; padding:32px 6px;
  border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); transition:padding-left .4s var(--ease), background .3s ease;}
.svc-item::before{content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0; background:var(--brass); transition:width .5s var(--ease);}
.svc-item:hover{padding-left:18px; background:rgba(176,139,79,0.06);}
.svc-item:hover::before{width:100%;}
.svc-item:hover .svc-title{color:var(--brass);}
.svc-title{font-family:var(--serif); font-size:clamp(21px,2.4vw,26px); transition:color .25s ease; display:block;}
.svc-text{font-size:14.5px; line-height:1.65; color:var(--slate); margin:10px 0 0; display:block;}
.svc-meta{font-size:13.5px; color:var(--slate); line-height:1.75;}
.svc-price{font-family:var(--serif); font-size:23px; color:var(--teal); white-space:nowrap;}
@media (max-width:820px){.svc-item{grid-template-columns:1fr; gap:10px;}}

.req{display:grid; grid-template-columns:220px 1fr; gap:0; border-top:1px solid var(--ink); max-width:780px;}
.req dt, .req dd{margin:0; padding:15px 4px; border-bottom:1px solid var(--line); font-size:15px; line-height:1.6;}
.req dt{color:var(--slate); font-size:12.5px; text-transform:uppercase; letter-spacing:0.05em; padding-top:18px;}
@media (max-width:560px){.req{grid-template-columns:1fr;} .req dt{border-bottom:none; padding-bottom:0;}}

.related{display:flex; flex-wrap:wrap; gap:10px;}
.related a{border:1px solid var(--line); background:var(--paper-2); padding:11px 20px; border-radius:40px; font-size:14px; text-decoration:none; color:var(--ink);
  transition:background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;}
.related a:hover{background:var(--ink); color:var(--paper-2); border-color:var(--ink); transform:translateY(-2px);}

/* ---------- Политика конфиденциальности ---------- */
.policy{max-width:800px;}
.policy h2{font-size:23px; margin:0 0 16px;}
.policy .num{font-family:var(--mono); color:var(--brass); font-size:14px; margin-right:10px;}
.policy-block{padding:34px 0; border-top:1px solid var(--line);}
.policy-block:first-child{border-top:none; padding-top:0;}
.policy p{color:var(--ink); font-size:15.5px; line-height:1.75; margin:0 0 14px;}
.policy p.muted{color:var(--slate);}
.policy ul{margin:0 0 14px; padding-left:20px;}
.policy li{color:var(--ink); font-size:15.5px; line-height:1.7; margin-bottom:8px;}
.policy li::marker{color:var(--brass);}
.policy a{color:var(--ink); border-bottom:1px solid var(--brass); text-decoration:none;}
.policy strong{font-weight:600;}
.fill-in{background:rgba(176,139,79,0.16); padding:1px 6px; border-radius:2px; font-style:italic;}
.version-note{font-size:13px; color:var(--slate); margin-top:8px;}
.page-hero p.version-note{font-size:13px; margin-top:12px;}

@media (max-width:560px){
  section{padding:52px 0;}
  .block{padding-top:40px; padding-bottom:40px;}
}

/* ---------- Без анимаций, если пользователь их отключил ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{transition:none !important; animation:none !important; scroll-behavior:auto !important;}
  .reveal{opacity:1 !important; transform:none !important;}
  .marquee{overflow-x:auto;}
  .marquee-group[aria-hidden="true"]{display:none;}
  .mark-animated .pulse{display:none;}
  .step::after{width:100% !important;}
  .hero-stage{transform:none !important;}
}
