/* =====================================================================
   TAX CONSULT — налоговый консалтинг по НДС
   ===================================================================== */

/* ----------  TOKENS  ---------- */
:root{
  --ink:            #16211B;
  --ink-soft:       #2B3A32;
  --body:           #5E6E66;
  --body-light:     #8A968F;

  --green:          #22593A;
  --green-deep:     #12301F;
  --green-night:    #0C1F16;
  --green-mid:      #2E7D4F;
  --green-bright:   #4FA96F;
  --green-pale:     #E9F1EB;
  --green-wash:     #F1F6F2;

  --bg:             #F2F5F2;
  --card:           #FFFFFF;
  --line:           #E3E9E4;
  --line-soft:      #EDF1EE;

  --radius-sm:  10px;
  --radius:     16px;
  --radius-lg:  22px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(18,48,31,.05), 0 6px 18px rgba(18,48,31,.05);
  --shadow:    0 2px 6px rgba(18,48,31,.06), 0 18px 44px rgba(18,48,31,.08);
  --shadow-lg: 0 30px 80px rgba(12,31,22,.18);

  --font-display: "Montserrat", "Segoe UI", system-ui, sans-serif;
  --font-body:    "Inter", "Segoe UI", system-ui, sans-serif;

  --container: 1240px;
  --gutter: 24px;
  --header-h: 76px;

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

/* ----------  RESET  ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.62;
  color:var(--body);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ max-width:100%; }
h1,h2,h3,p,ul,ol,figure{ margin:0; }
ul,ol{ padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
button,input,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
[hidden]{ display:none !important; }
.sprite{ position:absolute; width:0; height:0; overflow:hidden; }

:focus-visible{ outline:2px solid var(--green-mid); outline-offset:3px; border-radius:4px; }

.skip-link{
  position:absolute; left:16px; top:-60px; z-index:200;
  background:var(--green-deep); color:#fff; padding:10px 18px; border-radius:0 0 10px 10px;
  transition:top .2s var(--ease);
}
.skip-link:focus{ top:0; }

/* ----------  LAYOUT  ---------- */
.container{
  width:100%; max-width:var(--container);
  margin-inline:auto; padding-inline:var(--gutter);
}
.section{ position:relative; }
.section--pad{ padding-block:64px; }
.section--services{ padding-block:8px 44px; }
.section__title{ margin-bottom:26px; }

.split{
  display:grid;
  grid-template-columns:minmax(0,1.43fr) minmax(0,1fr);
  gap:22px;
  align-items:stretch;
}
.split--wide{
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  align-items:start;
}

/* ----------  TYPE  ---------- */
.h2{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(21px,2.05vw,29px);
  line-height:1.2;
  letter-spacing:-.015em;
  color:var(--ink);
}
.eyebrow{
  font-family:var(--font-display);
  font-weight:600;
  font-size:12px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--green-mid);
  margin-bottom:14px;
}

/* ----------  BUTTONS  ---------- */
.btn{
  --btn-bg:var(--green);
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:13px 24px;
  font-family:var(--font-display); font-weight:600; font-size:14px; line-height:1.25;
  border-radius:var(--radius-pill);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background-color .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease);
  will-change:transform;
}
.btn__ico{ width:17px; height:17px; flex:none; }
.btn__ico--end{ transition:transform .22s var(--ease); }

.btn--primary{
  background:linear-gradient(135deg, #2A6B41 0%, #1B4B2E 55%, #143C25 100%);
  color:#fff;
  box-shadow:0 10px 26px rgba(18,48,31,.24);
}
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(18,48,31,.3); }
.btn--primary:hover .btn__ico--end{ transform:translateX(4px); }
.btn--primary:active{ transform:translateY(0); }

.btn--ghost{
  background:rgba(255,255,255,.92);
  color:var(--ink);
  border:1px solid rgba(22,33,27,.14);
  backdrop-filter:blur(6px);
}
.btn--ghost:hover{ background:#fff; border-color:var(--green-mid); color:var(--green); transform:translateY(-2px); }

.btn--tg{
  background:linear-gradient(135deg,#2A6B41,#163F28);
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
  padding:11px 20px; font-size:13px;
  box-shadow:0 8px 22px rgba(12,31,22,.22);
}
.btn--tg:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(12,31,22,.3); }
.btn--tg-light{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.28); }
.btn--tg-light:hover{ background:rgba(255,255,255,.13); }

.btn--lg{ padding:16px 30px; font-size:14.5px; }
.btn--block{ display:flex; width:100%; }

/* ----------  CHECKLIST  ---------- */
.checklist{ display:grid; gap:9px; }
.checklist li{
  display:grid; grid-template-columns:18px 1fr; gap:11px; align-items:start;
  font-size:14px; color:var(--ink-soft);
}
.checklist__ico{ width:18px; height:18px; margin-top:2px; color:var(--green-mid); flex:none; }
.checklist--grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 26px; }
.checklist--compact li{ font-size:14px; }
.checklist--light li{ color:rgba(255,255,255,.82); }
.checklist--light .checklist__ico{ color:var(--green-bright); }

.dashlist{ display:grid; gap:7px; }
.dashlist li{
  position:relative; padding-left:20px; font-size:14px; color:var(--ink-soft);
}
.dashlist li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:11px; height:1.5px; background:var(--green-mid); border-radius:2px;
}

/* =====================================================================
   HEADER
   ===================================================================== */
.site-header{
  position:fixed; inset-block-start:0; inset-inline:0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background-color .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line);
  box-shadow:0 8px 30px rgba(18,48,31,.07);
}
.site-header__inner{
  display:flex; align-items:center; gap:28px;
}

.logo{ display:inline-flex; align-items:center; gap:11px; flex:none; }
.logo__mark{ width:30px; height:26px; flex:none; }
.logo__text{ display:flex; flex-direction:column; gap:1px; }
.logo__name{
  font-family:var(--font-display); font-weight:700; font-size:14px;
  letter-spacing:.2em; color:var(--ink);
}
.logo__tagline{ font-size:9.5px; letter-spacing:.06em; color:var(--body-light); }
.logo--light .logo__name{ color:#fff; }
.logo--light .logo__tagline{ color:rgba(255,255,255,.6); }

.nav{ margin-inline:auto; }
.nav__list{ display:flex; align-items:center; gap:28px; }
.nav__link{
  position:relative;
  font-family:var(--font-display); font-weight:500; font-size:13px;
  color:var(--ink-soft);
  transition:color .2s var(--ease);
}
.nav__link::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
  background:var(--green-mid); border-radius:2px;
  transform:scaleX(0); transform-origin:left;
  transition:transform .26s var(--ease);
}
.nav__link:hover{ color:var(--green); }
.nav__link:hover::after,
.nav__link.is-active::after{ transform:scaleX(1); }
.nav__link.is-active{ color:var(--green); }

.site-header__cta{ flex:none; }

.burger{
  display:none; width:42px; height:42px; border-radius:11px;
  border:1px solid var(--line); background:rgba(255,255,255,.86);
  flex-direction:column; align-items:center; justify-content:center; gap:4.5px;
}
.burger__bar{
  width:17px; height:1.8px; background:var(--ink); border-radius:2px;
  transition:transform .26s var(--ease), opacity .18s var(--ease);
}
.burger[aria-expanded="true"] .burger__bar:nth-child(1){ transform:translateY(6.3px) rotate(45deg); }
.burger[aria-expanded="true"] .burger__bar:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] .burger__bar:nth-child(3){ transform:translateY(-6.3px) rotate(-45deg); }

/* =====================================================================
   HERO
   ===================================================================== */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex; align-items:center;
  padding-block:calc(var(--header-h) + 30px) 44px;
  overflow:hidden;
  isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__photo{
  position:absolute; inset:0;
  background-image:url("../img/hero.jpg"),
    linear-gradient(115deg,#EFF3EF 0%,#DDE6DE 38%,#1E4A30 62%,#122E1E 100%);
  background-size:cover; background-position:56% 50%;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg,
    #F4F7F4 0%, rgba(244,247,244,.98) 30%, rgba(244,247,244,.86) 44%,
    rgba(244,247,244,.35) 54%, rgba(244,247,244,0) 64%);
}
/* Мягкая затемняющая полоса под надписью — без жёстких краёв,
   чтобы работать поверх любой фотографии */
.hero__slab{
  position:absolute; top:0; bottom:0; left:50%; width:28%;
  display:flex; align-items:center; padding-inline:2.2vw;
  background:linear-gradient(to right,
    rgba(10,26,18,0) 0%, rgba(10,26,18,.26) 18%,
    rgba(10,26,18,.4) 50%, rgba(10,26,18,.26) 82%, rgba(10,26,18,0) 100%);
}
.hero__slab-text{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(14px,1.42vw,21px); line-height:1.32;
  letter-spacing:.06em; text-transform:uppercase;
  color:#fff;
  text-shadow:0 2px 20px rgba(6,18,12,.85), 0 1px 3px rgba(6,18,12,.6);
}

.hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) 262px;
  gap:40px; align-items:center;
}
.hero__content{ max-width:672px; }

.hero__title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(32px,3.95vw,56px);
  line-height:1.05; letter-spacing:-.03em;
  color:var(--ink);
  text-wrap:balance;
}
.hero__title em{ font-style:normal; color:var(--green-mid); }
.hero__subtitle{
  margin-top:8px;
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(17px,1.72vw,25px); line-height:1.25;
  letter-spacing:-.015em; color:var(--ink-soft);
}
.hero__lead{ margin-top:20px; display:grid; gap:9px; max-width:560px; font-size:14.5px; color:var(--body); }
.hero__lead p{ text-wrap:pretty; }

.hero .checklist--grid{ margin-top:22px; max-width:580px; }
.hero__note{
  margin-top:18px;
  font-family:var(--font-display); font-weight:500; font-size:14px; color:var(--green);
}
.hero__actions{ margin-top:24px; display:flex; flex-wrap:wrap; gap:14px; }

/* trust cards */
.trust{ display:grid; gap:14px; }
.trust__card{
  display:grid; grid-template-columns:44px 1fr; gap:14px; align-items:center;
  padding:18px 20px;
  background:rgba(14,34,23,.58);
  border:1px solid rgba(255,255,255,.16);
  border-radius:var(--radius);
  backdrop-filter:blur(12px) saturate(1.1);
  box-shadow:0 18px 48px rgba(8,22,15,.3);
}
.trust__hex{
  width:44px; height:44px; display:grid; place-items:center;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(143,211,168,.4);
  border-radius:12px;
  color:var(--green-bright);
}
.trust__hex svg{ width:20px; height:20px; }
.trust__body{ display:flex; flex-direction:column; gap:2px; }
.trust__value{
  font-family:var(--font-display); font-weight:800; font-size:27px; line-height:1;
  letter-spacing:-.02em; color:#fff;
}
.trust__label{ font-size:12px; line-height:1.38; color:rgba(255,255,255,.72); }
.trust__label--lead{ font-size:12.5px; color:rgba(255,255,255,.86); }

/* =====================================================================
   PANELS (экспертиза / конфиденциальность / клиенты)
   ===================================================================== */
.panel{
  position:relative; overflow:hidden;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  min-height:326px;
  display:flex;
}
.panel__body{ position:relative; z-index:2; padding:30px 32px; max-width:70%; }
.panel .h2{ font-size:clamp(18px,1.5vw,21px); }
.panel__lead{ margin-top:12px; font-size:14px; max-width:44ch; }
.panel .checklist{ margin-top:16px; }
.panel__sub{
  margin-top:16px;
  font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--ink);
}
.panel__foot{
  margin-top:18px; padding-top:16px;
  border-top:1px solid var(--line-soft);
  font-size:13px; color:var(--body-light); max-width:52ch;
}

.panel__media{
  position:absolute; top:0; right:0; bottom:0; width:34%;
  background-size:cover; background-position:center;
  display:grid; place-items:center;
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 22%);
          mask-image:linear-gradient(to right, transparent 0, #000 22%);
}
.panel--expertise .panel__media{
  background-image:url("../img/fns.jpg"),
    linear-gradient(160deg,#8E9C93 0%,#5D6E63 45%,#39473E 100%);
}
.panel__media-mark{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(24px,2.7vw,40px); letter-spacing:.06em;
  color:rgba(255,255,255,.94);
  text-shadow:0 4px 22px rgba(0,0,0,.35);
  transform:translateX(14%);
}

.panel--privacy .panel__body{ max-width:74%; }
.panel__shield{
  position:absolute; right:-2%; top:50%; transform:translateY(-50%);
  width:30%; max-width:172px; z-index:1;
  filter:drop-shadow(0 22px 40px rgba(18,48,31,.3));
}
.shield{ width:100%; height:auto; display:block; }

.panel--clients .panel__body{ max-width:76%; }
.panel__media--clients{
  width:30%;
  background-image:url("../img/office.jpg"),
    linear-gradient(155deg,#5F7267 0%,#3C4C42 50%,#22302A 100%);
  align-items:center; justify-items:end;
  padding-right:16px;
}
.panel__media--clients::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(14,34,22,0) 0%, rgba(14,34,22,.42) 40%, rgba(14,34,22,.72) 100%);
}
.panel__media-quote{
  position:relative; z-index:1;
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(9px,.86vw,12px); line-height:1.4;
  letter-spacing:.13em; text-transform:uppercase;
  text-align:right; color:rgba(255,255,255,.78);
  text-shadow:0 2px 14px rgba(0,0,0,.5);
}

/* =====================================================================
   SERVICE CARDS
   ===================================================================== */
.cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.card{
  position:relative;
  padding:26px 26px 24px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:#D2E0D6; }
.card__num{
  display:block;
  font-family:var(--font-display); font-weight:800; font-size:38px; line-height:1;
  letter-spacing:-.03em; color:var(--green);
}
.card__ico{
  position:absolute; top:24px; right:24px;
  width:52px; height:52px; display:grid; place-items:center;
  background:var(--green-pale); border-radius:50%;
  color:var(--green);
  transition:transform .28s var(--ease), background-color .28s var(--ease);
}
.card__ico svg{ width:24px; height:24px; }
.card:hover .card__ico{ transform:scale(1.07); background:#DDEBE1; }
.card__title{
  margin-top:20px;
  font-family:var(--font-display); font-weight:700; font-size:16px; line-height:1.3;
  color:var(--ink);
}
.card__text{ margin-top:9px; font-size:13.5px; min-height:60px; }

.link-more{
  display:inline-flex; align-items:center; gap:8px; margin-top:12px; padding:0;
  font-family:var(--font-display); font-weight:600; font-size:13.5px;
  color:var(--green);
  border-bottom:1.5px solid rgba(46,125,79,.35);
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.link-more__ico{ width:16px; height:16px; transition:transform .24s var(--ease); }
.link-more:hover{ color:var(--green-mid); border-color:var(--green-mid); }
.link-more:hover .link-more__ico{ transform:translateX(4px); }

/* =====================================================================
   GAINS
   ===================================================================== */
.gains__lead{ margin-top:12px; font-size:14px; max-width:52ch; }
.gains__list{
  margin-top:30px;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px;
}
.gain{ text-align:center; }
.gain__ico{
  width:58px; height:58px; margin:0 auto 14px;
  display:grid; place-items:center;
  background:var(--green-pale); border-radius:50%;
  color:var(--green);
  transition:transform .28s var(--ease);
}
.gain__ico svg{ width:25px; height:25px; }
.gain:hover .gain__ico{ transform:translateY(-4px); }
.gain__title{
  font-family:var(--font-display); font-weight:700; font-size:13.5px; line-height:1.3;
  color:var(--ink);
}
.gain__text{ margin-top:7px; font-size:12.5px; line-height:1.5; color:var(--body); }

/* =====================================================================
   STATS
   ===================================================================== */
.stats{
  position:relative; overflow:hidden;
  padding-block:44px;
  background-image:url("../img/stats.jpg"),
    linear-gradient(120deg,#153A24 0%,#1D4B2F 40%,#12301F 100%);
  background-size:cover; background-position:center;
  color:#fff;
}
.stats::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(12,31,22,.92) 0%, rgba(16,40,26,.78) 55%, rgba(20,52,33,.5) 100%);
}
.stats__inner{ position:relative; }
.stats__title{ color:#fff; margin-bottom:26px; }
.stats__grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) 232px;
  gap:22px; align-items:start;
}
.stat__value{
  display:block;
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(24px,2.5vw,36px); line-height:1;
  letter-spacing:-.028em; color:#fff;
}
.stat__value--text{ font-size:clamp(20px,1.95vw,28px); }
.stat__label{
  display:block; margin-top:10px;
  font-size:13px; line-height:1.45; color:rgba(255,255,255,.66);
}
.stats__aside{ position:relative; padding-left:22px; border-left:1px solid rgba(255,255,255,.14); }
.stats__aside-text{
  position:relative; z-index:1;
  font-family:var(--font-display); font-weight:600;
  font-size:13px; line-height:1.42; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.82);
}
.stats__chart{
  position:absolute; right:-16px; bottom:-30px; width:138px; opacity:.5;
}

/* =====================================================================
   PROCESS
   ===================================================================== */
.steps{
  margin-top:26px;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px;
}
.step{ position:relative; }
.step__num{
  position:relative; z-index:2;
  width:44px; height:44px; margin-bottom:16px;
  display:grid; place-items:center;
  background:var(--card); border:1px solid var(--line); border-radius:50%;
  font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--ink);
  box-shadow:var(--shadow-sm);
}
/* соединитель между шагами: линия тянется от кружка к стрелке перед следующим */
.step:not(:last-child)::after{
  content:""; position:absolute; left:58px; right:18px; top:22px; height:1.5px;
  background:linear-gradient(to right, var(--line) 0, var(--line) 62%, transparent 100%);
}
.step:not(:last-child)::before{
  content:""; position:absolute; right:14px; top:22px; z-index:1;
  width:7px; height:7px;
  border-top:1.6px solid #C7D2C9; border-right:1.6px solid #C7D2C9;
  transform:translateY(-50%) rotate(45deg);
}
.step__title{
  font-family:var(--font-display); font-weight:700; font-size:13.5px; line-height:1.3;
  color:var(--ink);
}
.step__text{ margin-top:7px; font-size:12.5px; line-height:1.5; }

/* =====================================================================
   FAQ
   ===================================================================== */
.faq__heading{ margin-top:44px; margin-bottom:18px; scroll-margin-top:calc(var(--header-h) + 24px); }
.faq{ display:grid; gap:10px; }
.faq__item{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border-color .24s var(--ease), box-shadow .24s var(--ease);
}
.faq__item.is-open{ border-color:#CFE0D5; box-shadow:var(--shadow-sm); }
.faq__q{ margin:0; font:inherit; }
.faq__btn{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:15px 20px; text-align:left;
  font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--ink);
  transition:color .2s var(--ease);
}
.faq__btn:hover{ color:var(--green); }
.faq__ico{
  width:16px; height:16px; flex:none; color:var(--green-mid);
  transition:transform .3s var(--ease);
}
.faq__btn[aria-expanded="true"] .faq__ico{ transform:rotate(45deg); }
.faq__a{ padding:0 20px 17px; font-size:13.5px; color:var(--body); max-width:70ch; }

/* =====================================================================
   LEAD CARD / FORM
   ===================================================================== */
.lead-card{
  position:sticky; top:calc(var(--header-h) + 16px);
  padding:28px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  scroll-margin-top:calc(var(--header-h) + 24px);
}
.lead-card__title{ font-size:clamp(19px,1.65vw,23px); }
.lead-card__lead{ margin-top:10px; font-size:13.5px; }
.lead-card__cols{
  margin-top:20px;
  display:grid; grid-template-columns:minmax(0,1fr) 148px; gap:22px; align-items:start;
}

.form{ display:grid; gap:11px; }
.field{ display:grid; }
.field__label{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap;
}
.field__input{
  width:100%; padding:12px 15px;
  background:var(--green-wash);
  border:1px solid transparent; border-radius:var(--radius-sm);
  font-size:13.5px; color:var(--ink);
  transition:border-color .2s var(--ease), background-color .2s var(--ease);
}
.field__input::placeholder{ color:var(--body-light); }
.field__input:focus{ background:#fff; border-color:var(--green-mid); outline:none; }
.field__input--area{ resize:vertical; min-height:72px; }
.field__input.is-invalid{ border-color:#C0533F; background:#FDF4F2; }
.field__error{ margin-top:5px; font-size:11.5px; color:#B44B38; }

.form .btn--primary{ margin-top:5px; }
.form__status{ margin-top:4px; font-size:12.5px; color:var(--green); min-height:1.2em; }
.form__status.is-error{ color:#B44B38; }

.tg-block{ text-align:center; padding-top:2px; }
.tg-block__title{
  font-family:var(--font-display); font-weight:600; font-size:12.5px; line-height:1.4;
  color:var(--ink);
}
.tg-block__circle{
  width:56px; height:56px; margin:16px auto;
  display:grid; place-items:center;
  background:linear-gradient(140deg,#39895A,#1C5233);
  border-radius:50%; color:#fff;
  box-shadow:0 12px 26px rgba(18,48,31,.26);
}
.tg-block__circle svg{ width:24px; height:24px; transform:translateX(-1px); }
.tg-block__btn{ width:100%; padding:13px 12px; line-height:1.25; }
.tg-block__note{ margin-top:14px; font-size:11px; color:var(--body-light); }

/* =====================================================================
   FOOTER
   ===================================================================== */
.footer{
  position:relative; overflow:hidden;
  padding-block:38px;
  background-image:url("../img/footer.jpg"),
    linear-gradient(110deg,#0E2417 0%,#153A24 55%,#0C1F16 100%);
  background-size:cover; background-position:center;
  color:rgba(255,255,255,.75);
}
.footer::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(10,26,18,.94) 0%, rgba(14,36,23,.84) 60%, rgba(18,48,31,.46) 100%);
}
.footer__inner{
  position:relative;
  display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:36px; align-items:start;
}
.footer__brand .checklist{ margin-top:18px; }
.footer__nav ul{ display:flex; flex-wrap:wrap; gap:10px 26px; padding-top:6px; }
.footer__nav a{
  font-family:var(--font-display); font-weight:500; font-size:12.5px;
  color:rgba(255,255,255,.72);
  transition:color .2s var(--ease);
}
.footer__nav a:hover{ color:var(--green-bright); }
.footer__side{ display:flex; flex-direction:column; align-items:flex-end; gap:14px; text-align:right; }
.footer__note{ font-size:12px; color:rgba(255,255,255,.62); }
.footer__copy{ font-size:11.5px; color:rgba(255,255,255,.42); }

/* =====================================================================
   MODAL
   ===================================================================== */
.modal{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px; }
.modal__backdrop{
  position:absolute; inset:0;
  background:rgba(9,22,15,.62);
  backdrop-filter:blur(4px);
  animation:fade .24s var(--ease);
}
.modal__dialog{
  position:relative; z-index:1;
  width:min(600px,100%); max-height:86vh; overflow-y:auto;
  padding:34px 36px 30px;
  background:var(--card); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  animation:rise .3s var(--ease);
}
.modal__close{
  position:absolute; top:16px; right:16px;
  width:36px; height:36px; display:grid; place-items:center;
  border-radius:50%; color:var(--body);
  transition:background-color .2s var(--ease), color .2s var(--ease);
}
.modal__close:hover{ background:var(--green-pale); color:var(--green); }
.modal__close svg{ width:18px; height:18px; }
.modal__num{
  font-family:var(--font-display); font-weight:800; font-size:30px; line-height:1;
  color:var(--green-pale);
}
.modal__title{
  margin-top:6px;
  font-family:var(--font-display); font-weight:700; font-size:24px; line-height:1.2;
  letter-spacing:-.02em; color:var(--ink);
}
.modal__sub{ margin-top:8px; font-size:14px; color:var(--green-mid); font-weight:500; }
.modal__body{ margin-top:18px; display:grid; gap:13px; font-size:14px; }
.modal__label{
  font-family:var(--font-display); font-weight:600; font-size:13.5px; color:var(--ink);
}
.modal__dialog .btn--block{ margin-top:22px; }

body.is-locked{ overflow:hidden; }

@keyframes fade{ from{ opacity:0 } to{ opacity:1 } }
@keyframes rise{ from{ opacity:0; transform:translateY(18px) scale(.985) } to{ opacity:1; transform:none } }

/* =====================================================================
   SCROLL REVEAL
   ===================================================================== */
.reveal{ opacity:0; transform:translateY(20px); }
.reveal.is-visible{
  opacity:1; transform:none;
  transition:opacity .6s var(--ease), transform .6s var(--ease);
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1180px){
  .nav__list{ gap:20px; }
  .site-header__cta{ padding-inline:16px; font-size:12px; }
  .hero__inner{ grid-template-columns:minmax(0,1fr) 230px; }
}

@media (max-width:1024px){
  .site-header__inner{ gap:16px; }
  .burger{ display:flex; }
  .site-header__cta{ display:none; }
  .nav{
    position:fixed; inset:var(--header-h) 0 auto; margin:0;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
    box-shadow:0 20px 40px rgba(18,48,31,.1);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .24s var(--ease), transform .24s var(--ease);
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav__list{
    flex-direction:column; align-items:stretch; gap:0;
    padding:8px var(--gutter) 18px;
  }
  .nav__link{ display:block; padding:13px 0; font-size:15px; border-bottom:1px solid var(--line-soft); }
  .nav__link::after{ display:none; }

  .split,
  .split--wide{ grid-template-columns:minmax(0,1fr); }
  .lead-card{ position:static; }

  .hero__inner{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .hero__slab{ display:none; }
  .hero::before{
    background:linear-gradient(100deg, #F4F7F4 0%, rgba(244,247,244,.97) 52%, rgba(244,247,244,.72) 78%, rgba(244,247,244,.5) 100%);
  }
  .trust{ grid-template-columns:repeat(3,minmax(0,1fr)); display:grid; }
  .trust__card{ background:rgba(16,38,26,.9); }

  .stats__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stats__aside{ grid-column:1 / -1; border-left:0; border-top:1px solid rgba(255,255,255,.14); padding:18px 0 0; }
  .stats__chart{ right:0; top:auto; bottom:0; }

  .gains__list{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .steps{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 20px; }
  .step:nth-child(2)::after,
  .step:nth-child(2)::before{ display:none; }
}

@media (max-width:760px){
  :root{ --gutter:18px; }
  .section--pad{ padding-block:44px; }
  .hero{ padding-block:calc(var(--header-h) + 30px) 42px; }

  .panel{ flex-direction:column; min-height:0; }
  .panel__body,
  .panel--privacy .panel__body,
  .panel--clients .panel__body{ max-width:100%; padding:24px 22px; }
  .panel__media{
    position:relative; width:100%; height:170px; order:-1;
    -webkit-mask-image:none; mask-image:none;
  }
  .panel__media-mark{ transform:none; }
  .panel__media--clients{ justify-items:center; padding:0 20px; }
  .panel__media-quote{ text-align:center; }
  .panel__shield{ position:relative; right:auto; top:auto; transform:none; width:110px; margin:0 auto 6px; }

  .cards{ grid-template-columns:minmax(0,1fr); }
  .card__text{ min-height:0; }
  .checklist--grid{ grid-template-columns:minmax(0,1fr); }
  .hero__actions .btn{ width:100%; }

  .trust{ grid-template-columns:minmax(0,1fr); }
  .stats__grid{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .gains__list{ grid-template-columns:minmax(0,1fr); }
  .gain{ display:grid; grid-template-columns:58px 1fr; gap:0 16px; text-align:left; align-items:center; }
  .gain__ico{ grid-row:span 2; margin:0; }
  .gain__text{ grid-column:2; }

  .steps{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .step::after,
  .step::before{ display:none !important; }

  .lead-card{ padding:22px 20px; }
  .lead-card__cols{ grid-template-columns:minmax(0,1fr); gap:26px; }
  .tg-block{ max-width:260px; margin-inline:auto; }

  .footer__inner{ grid-template-columns:minmax(0,1fr); gap:26px; }
  .footer__side{ align-items:flex-start; text-align:left; }

  .modal__dialog{ padding:28px 22px 24px; }
}

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