:root{
  --bg:#FFFFFF; --bg-2:#F2F5EC; --bg-3:#E8EEDC; --card:#FFFFFF;
  --graphite:#14181A; --graphite-2:#1D2326;
  --ink:#0E120E; --ink-2:#3A413A; --stone:#6B7280; --stone-2:#99A0A4;
  --hairline:#E3E8DA; --hairline-2:#EEF1E8; --hairline-d:rgba(255,255,255,.10);
  --lime:#86C232; --lime-bright:#AEE63B; --lime-deep:#4F8E1E; --lime-tint:#ECF7D6;
  --orange:#FF7A1A; --orange-deep:#E8620A;
  --display:'Montserrat',system-ui,sans-serif;
  --sans:'Inter',system-ui,sans-serif;
  --mono:'Geist Mono',ui-monospace,monospace;
  --pad:clamp(20px,4vw,64px); --maxw:1360px; --r:6px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ background-color:var(--bg); color:var(--ink); background-image:linear-gradient(rgba(20,24,26,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(20,24,26,.03) 1px,transparent 1px); background-size:34px 34px; }
body{ font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-wrap:pretty; overflow-x:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

.kicker,.eyebrow{ font-family:var(--mono); font-size:12.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); }
.eyebrow{ display:inline-flex; align-items:center; gap:10px; }
.eyebrow::before{ content:''; width:22px; height:1px; background:currentColor; opacity:.7; }
.eyebrow.lime{ color:var(--lime-deep); }

h1,h2,h3,h4{ font-family:var(--display); font-weight:500; letter-spacing:-.035em; line-height:1.02; color:var(--ink); }
h1{ font-size:clamp(46px,7.2vw,112px); line-height:1.0; }
h2{ font-size:clamp(34px,5vw,80px); }
h3{ font-size:clamp(26px,2.6vw,38px); line-height:1.05; }
h4{ font-size:clamp(20px,1.7vw,26px); line-height:1.15; letter-spacing:-.02em; }
.accent{ color:var(--lime-deep); }
.accent-o{ color:var(--orange-deep); }
.lime-block{ background:var(--lime); color:var(--ink); padding:0 .14em .04em; border-radius:var(--r); display:inline-block; line-height:.98; }
p{ color:var(--ink-2); }
.lead{ font-size:19px; line-height:1.55; color:var(--ink-2); max-width:60ch; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }
section{ padding-block:clamp(60px,7.5vw,116px); }
.sec-tight{ padding-block:clamp(16px,2.4vw,34px) !important; }
.center-cta{ margin-top:44px; text-align:center; }

.dark{ background:var(--graphite); color:#fff; }
.dark h1,.dark h2,.dark h3,.dark h4{ color:#fff; }
.dark p{ color:rgba(255,255,255,.74); }
.dark .eyebrow{ color:var(--lime-bright); }
.dark .accent{ color:var(--lime-bright); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:10px; height:56px; padding-inline:28px; border-radius:999px; font-weight:600; font-size:16px; transition:transform .2s,background .2s,color .2s; }
.btn:active{ transform:translateY(1px); }
.btn-orange{ background:var(--orange); color:#fff; } .btn-orange:hover{ background:var(--orange-deep); }
.btn-lime{ background:var(--lime); color:var(--ink); } .btn-lime:hover{ background:var(--lime-deep); color:#fff; }
.btn-dark{ background:var(--ink); color:#fff; } .btn-dark:hover{ background:#262d26; }
.btn-ghost{ background:transparent; color:var(--ink); border:1px solid var(--hairline); } .btn-ghost:hover{ background:var(--bg-2); }
.dark .btn-ghost{ color:#fff; border-color:var(--hairline-d); } .dark .btn-ghost:hover{ background:rgba(255,255,255,.06); }
.btn .arrow{ width:17px; height:17px; }

/* header */
header.site{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9); backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--hairline); }
.nav{ display:flex; align-items:center; gap:28px; height:76px; }
.brand{ display:flex; align-items:center; gap:10px; font-family:var(--display); font-size:23px; font-weight:700; letter-spacing:-.02em; }
.brand img{ height:34px; width:auto; }
.brand small{ font-family:var(--mono); font-weight:400; font-size:11px; letter-spacing:.16em; color:var(--stone); text-transform:uppercase; }
nav.links{ display:flex; gap:26px; margin-left:auto; }
nav.links a{ font-size:14px; color:var(--ink-2); position:relative; padding:6px 0; }
nav.links a:hover,nav.links a.cur{ color:var(--ink); }
nav.links a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--lime); transition:width .2s; }
nav.links a:hover::after,nav.links a.cur::after{ width:100%; }
.nav .phone{ display:flex; flex-direction:column; align-items:flex-end; line-height:1.15; }
.nav .phone strong{ font-size:17px; font-weight:600; }
.nav .phone span{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--stone); text-transform:uppercase; }

/* mobile burger (shown ≤640, скрыт на десктопе) */
.burger{ display:none; margin-left:auto; width:46px; height:46px; align-items:center; justify-content:center; flex:0 0 auto; border:1px solid var(--hairline); border-radius:var(--r); background:var(--bg-2); }
.burger span{ position:relative; display:block; width:20px; height:2px; background:var(--ink); border-radius:2px; transition:background .15s; }
.burger span::before,.burger span::after{ content:''; position:absolute; left:0; width:20px; height:2px; background:var(--ink); border-radius:2px; transition:transform .2s; }
.burger span::before{ top:-6px; } .burger span::after{ top:6px; }
.nav-open .burger span{ background:transparent; }
.nav-open .burger span::before{ transform:translateY(6px) rotate(45deg); }
.nav-open .burger span::after{ transform:translateY(-6px) rotate(-45deg); }
.phone-in-menu{ display:none; font-family:var(--mono); letter-spacing:.04em; color:var(--lime-deep) !important; }

/* hero */
.hero{ padding-top:clamp(36px,5vw,56px); padding-bottom:clamp(36px,5vw,48px); }
.hero-meta{ display:flex; justify-content:space-between; align-items:center; margin-bottom:30px; gap:16px; flex-wrap:wrap; }
.hero-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(20px,3vw,52px); align-items:end; }
.hero-sub{ margin-top:30px; max-width:44ch; font-size:20px; line-height:1.5; color:var(--ink-2); }
.hero-cta{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.hero-cta .btn{ height:60px; font-size:18px; padding-inline:32px; }
.hero-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.chip{ display:inline-flex; align-items:center; gap:9px; height:44px; padding-inline:20px; border-radius:999px; background:var(--bg-2); border:1px solid var(--hairline); font-size:15.5px; color:var(--ink-2); }
.chip .bullet{ width:7px; height:7px; border-radius:50%; background:var(--lime-deep); }
.chip.o{ background:#FFF1E6; border-color:#FFD3AC; } .chip.o .bullet{ background:var(--orange); }
.hero-photo{ position:relative; aspect-ratio:4/5; border-radius:var(--r); overflow:hidden; background:var(--bg-2); }
.hero-photo img{ width:100%; height:100%; object-fit:cover; }
.hero-photo .badge{ position:absolute; left:16px; bottom:16px; background:var(--orange); color:#fff; padding:16px 20px; border-radius:var(--r); box-shadow:0 18px 36px -22px rgba(0,0,0,.5); }
.hero-photo .badge .num{ font-family:var(--display); font-size:38px; line-height:1; font-weight:600; }
.hero-photo .badge .lbl{ font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:.12em; margin-top:6px; opacity:.92; }

.stat-strip{ margin-top:clamp(36px,5vw,64px); display:grid; grid-template-columns:repeat(4,1fr); background:var(--graphite); color:#fff; border-radius:var(--r); overflow:hidden; }
.stat-strip>div{ padding:28px; display:flex; flex-direction:column; gap:8px; border-right:1px solid var(--hairline-d); }
.stat-strip>div:last-child{ border-right:0; }
.stat-strip .v{ font-family:var(--display); font-weight:500; font-size:48px; line-height:1; letter-spacing:-.03em; }
.stat-strip .v .u{ font-family:var(--sans); font-size:16px; color:var(--stone-2); margin-left:6px; font-weight:400; }
.stat-strip .v .hl{ color:var(--lime-bright); }
.stat-strip .l{ font-family:var(--mono); font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone-2); }

/* generic head */
.sec-head{ display:flex; align-items:end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:44px; }

/* services */
.services{ background:var(--bg-2); }
.svc-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.svc{ background:var(--card); border:1px solid var(--hairline); border-radius:var(--r); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s,border-color .2s,box-shadow .2s; }
.svc:hover{ transform:translateY(-3px); border-color:var(--lime); box-shadow:0 24px 40px -32px rgba(0,0,0,.3); }
.svc .ph{ aspect-ratio:16/10; background:var(--bg-3); overflow:hidden; }
.svc .ph img{ width:100%; height:100%; object-fit:cover; }
.svc .b{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }
.svc h4{ font-size:22px; }
.svc p{ font-size:15.5px; line-height:1.5; color:var(--stone); }
.svc .tag{ margin-top:auto; font-family:var(--mono); font-size:13px; letter-spacing:.02em; color:var(--lime-deep); padding-top:12px; }

/* technologies */
.tech-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.tech{ border:1px solid var(--hairline); border-radius:var(--r); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s,border-color .2s; }
.tech:hover{ transform:translateY(-3px); border-color:var(--lime); }
.tech .ph{ aspect-ratio:16/9; overflow:hidden; background:var(--bg-2); }
.tech .ph img{ width:100%; height:100%; object-fit:cover; }
.tech .b{ padding:24px 26px 28px; }
.tech h4{ margin-bottom:10px; }
.tech p{ font-size:16px; line-height:1.55; color:var(--stone); }

/* projects: series cards + masonry grid */
.serie-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.serie-card{ border:1px solid var(--hairline); border-radius:var(--r); overflow:hidden; background:var(--card); transition:transform .2s,box-shadow .2s; display:block; }
.serie-card:hover{ transform:translateY(-3px); box-shadow:0 24px 44px -34px rgba(0,0,0,.35); }
.serie-card img{ width:100%; height:auto; display:block; }
.serie-cap{ padding:14px 16px; font-family:var(--mono); font-size:14px; color:var(--ink); border-top:1px solid var(--hairline); }
.projgrid{ columns:3; column-gap:16px; margin-top:8px; }
.projgrid .projcard{ break-inside:avoid; margin:0 0 16px; border-radius:var(--r); overflow:hidden; border:1px solid var(--hairline); background:var(--card); display:block; }
.projgrid img{ width:100%; height:auto; display:block; cursor:zoom-in; }
.projgrid figcaption{ font-family:var(--mono); font-size:14px; color:var(--ink); line-height:1.45; padding:12px 14px; border-top:1px solid var(--hairline); white-space:pre-line; }

/* packages (dark) */
.pkg-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
.pkg{ background:var(--graphite-2); border:1px solid var(--hairline-d); border-radius:var(--r); padding:36px 32px; display:flex; flex-direction:column; transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s; }
.pkg:hover{ background:var(--lime); border-color:var(--lime); transform:translateY(-4px); box-shadow:0 24px 50px -32px rgba(0,0,0,.5); }
.pkg.featured{ background:var(--lime); color:var(--ink); border-color:var(--lime); }
.pkg .meta{ font-family:var(--mono); font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--lime-bright); }
.pkg.featured .meta{ color:#2c4a10; }
.pkg h3{ font-size:32px; margin-top:8px; color:#fff; }
.pkg.featured h3{ color:var(--ink); }
.pkg .term{ font-family:var(--mono); font-size:14px; color:var(--stone-2); margin-top:8px; }
.pkg.featured .term{ color:#3c5a18; }
.pkg ul{ list-style:none; margin:24px 0; display:flex; flex-direction:column; gap:11px; flex:1; }
.pkg li{ display:flex; gap:11px; font-size:15.5px; color:rgba(255,255,255,.85); line-height:1.45; }
.pkg.featured li{ color:#243d0e; }
.pkg li svg{ flex:0 0 17px; width:17px; height:17px; color:var(--lime-bright); margin-top:3px; }
.pkg.featured li svg{ color:#2c4a10; }
.pkg .btn{ width:100%; justify-content:center; }
.pkg .star{ align-self:flex-start; background:var(--orange); color:#fff; font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; padding:6px 13px; border-radius:999px; margin-bottom:12px; }
.pkg:hover .meta,.pkg:hover h3,.pkg:hover .term,.pkg:hover li{ color:var(--ink) !important; }
.pkg:hover li svg{ color:#2c4a10 !important; }
.pkg:hover .btn-ghost{ border-color:rgba(0,0,0,.28); color:var(--ink); }
.price-note{ margin-top:28px; text-align:center; font-size:15.5px; color:rgba(255,255,255,.74); }
.price-note b{ color:var(--lime-bright); }

/* trust (dark) */
.about-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(28px,5vw,72px); align-items:center; }
.about-photo{ aspect-ratio:5/6; border-radius:var(--r); overflow:hidden; background:var(--bg-2); }
.about-photo img{ width:100%; height:100%; object-fit:cover; }
.about-grid p{ font-size:17px; line-height:1.6; max-width:62ch; }
.about-grid p+p{ margin-top:1em; }
.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:44px; }
.trust{ border:1px solid var(--hairline-d); border-radius:var(--r); padding:28px 26px; }
.trust .v{ font-family:var(--display); font-weight:600; font-size:42px; color:var(--lime-bright); line-height:1; letter-spacing:-.03em; }
.trust .v.o{ color:var(--orange); }
.trust .l{ margin-top:10px; font-size:16px; color:rgba(255,255,255,.78); line-height:1.45; }

/* faq */
.faq-grid{ display:grid; grid-template-columns:1fr 1.6fr; gap:clamp(28px,5vw,72px); align-items:start; }
.faq-list{ border-top:1px solid var(--hairline); }
details.q{ border-bottom:1px solid var(--hairline); padding:22px 0; }
details.q summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; }
details.q summary::-webkit-details-marker{ display:none; }
details.q summary h4{ font-family:var(--display); font-size:21px; letter-spacing:-.015em; }
details.q .plus{ width:32px; height:32px; border-radius:50%; border:1px solid var(--hairline); background:var(--card); display:grid; place-items:center; flex:0 0 32px; transition:transform .25s,background .25s,border-color .25s; }
details.q[open] .plus{ transform:rotate(45deg); background:var(--lime); border-color:var(--lime); }
details.q .ans{ margin-top:14px; color:var(--ink-2); max-width:76ch; font-size:16.5px; line-height:1.6; }

/* agent */
.agent{ border:1px solid var(--hairline); border-radius:var(--r); overflow:hidden; }
.agent-grid{ display:grid; grid-template-columns:1fr 1.05fr; min-height:560px; }
.agent-info{ padding:clamp(36px,5vw,60px); display:flex; flex-direction:column; justify-content:space-between; gap:28px; background:var(--graphite); color:#fff; }
.agent-info h2{ color:#fff; }
.agent-info .accent{ color:var(--lime-bright); }
.agent-info .sub{ color:rgba(255,255,255,.76); font-size:17px; line-height:1.55; max-width:42ch; margin-top:16px; }
.agent-info .topics{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:22px; }
.agent-info .topic{ background:rgba(255,255,255,.05); border:1px solid var(--hairline-d); border-radius:var(--r); padding:13px 15px; font-size:14.5px; color:rgba(255,255,255,.88); cursor:pointer; transition:border-color .15s,background .15s; text-align:left; }
.agent-info .topic:hover{ border-color:var(--lime); background:rgba(174,230,59,.10); }
.agent-chat{ background:var(--card); display:flex; flex-direction:column; }
.agent-head{ padding:20px 26px; display:flex; align-items:center; gap:14px; border-bottom:1px solid var(--hairline); }
.agent-head .av{ width:44px; height:44px; border-radius:50%; background:var(--lime); display:grid; place-items:center; color:var(--ink); font-family:var(--display); font-weight:600; font-size:19px; position:relative; }
.agent-head .av::after{ content:''; position:absolute; right:-2px; bottom:-2px; width:12px; height:12px; border-radius:50%; background:var(--lime); border:2px solid var(--card); }
.agent-head .meta strong{ font-size:16px; font-weight:600; }
.agent-head .meta span{ font-size:13px; color:var(--stone); font-family:var(--mono); display:block; }
.agent-thread{ flex:1; padding:22px 26px; display:flex; flex-direction:column; gap:14px; overflow-y:auto; max-height:440px; min-height:340px; }
.msg{ display:flex; gap:10px; max-width:88%; }
.msg.you{ margin-left:auto; flex-direction:row-reverse; }
.msg .bubble{ padding:13px 17px; border-radius:var(--r); font-size:15.5px; line-height:1.5; white-space:pre-wrap; }
.msg.bot .bubble{ background:var(--bg-2); color:var(--ink); }
.msg.you .bubble{ background:var(--lime); color:var(--ink); }
.typing{ display:inline-flex; gap:4px; padding:6px 0; }
.typing span{ width:7px; height:7px; background:var(--stone); border-radius:50%; animation:tdot 1.2s infinite; }
.typing span:nth-child(2){ animation-delay:.18s; } .typing span:nth-child(3){ animation-delay:.36s; }
@keyframes tdot{ 0%,60%,100%{ opacity:.3; transform:translateY(0);} 30%{ opacity:1; transform:translateY(-3px);} }
.agent-input{ padding:16px 20px 22px; border-top:1px solid var(--hairline); }
.agent-input form{ display:flex; gap:8px; background:var(--bg-2); border:1px solid var(--hairline); border-radius:var(--r); padding:6px 6px 6px 16px; align-items:center; }
.agent-input form:focus-within{ border-color:var(--lime-deep); }
.agent-input input{ flex:1; background:transparent; border:0; color:var(--ink); font:inherit; font-size:16px; outline:none; padding:11px 0; }
.agent-input input::placeholder{ color:var(--stone); }
.agent-input button{ height:44px; padding:0 20px; background:var(--orange); color:#fff; border-radius:var(--r); font-weight:600; font-size:15px; transition:background .15s; }
.agent-input button:hover{ background:var(--orange-deep); }
.agent-input button:disabled{ opacity:.5; cursor:not-allowed; }
.agent-input .hint{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-top:10px; text-align:center; }

/* footer */
footer.site{ margin-top:clamp(70px,9vw,130px); background:var(--graphite); color:#fff; border-radius:var(--r) var(--r) 0 0; }
.foot-top{ padding:60px 0; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.foot-top h5{ font-family:var(--mono); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone-2); margin-bottom:16px; }
.foot-top ul{ list-style:none; display:flex; flex-direction:column; gap:9px; font-size:15.5px; color:rgba(255,255,255,.84); }
.foot-top ul a:hover{ color:var(--lime-bright); }
.foot-top .big{ font-family:var(--display); font-weight:500; font-size:30px; line-height:1.15; color:#fff; max-width:16ch; margin-bottom:22px; letter-spacing:-.02em; }
.foot-top .addr{ font-size:15.5px; line-height:1.65; color:rgba(255,255,255,.84); }
.foot-bottom{ border-top:1px solid var(--hairline-d); padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.foot-bottom small{ font-family:var(--mono); font-size:12.5px; letter-spacing:.04em; color:var(--stone-2); }
.foot-mega{ font-family:var(--display); font-weight:500; font-size:clamp(70px,16vw,220px); line-height:.9; color:#fff; padding:28px 0 0; text-align:center; letter-spacing:-.04em; user-select:none; }
.foot-mega .dot{ color:var(--lime-bright); }

/* detail / multipage */
.cur{ color:var(--ink); }
.page-hero{ padding-top:clamp(28px,4vw,52px); padding-bottom:clamp(18px,3vw,30px); }
.breadcrumb{ font-family:var(--mono); font-size:14px; letter-spacing:.02em; color:var(--stone); margin-bottom:18px; }
.breadcrumb a{ color:var(--lime-deep); } .breadcrumb span{ color:var(--ink); }
.page-hero h1{ font-size:clamp(36px,5.4vw,68px); }
.page-hero .lead{ margin-top:18px; }
.article{ padding-top:clamp(6px,2vw,18px); }
.prose{ max-width:80ch; }
.prose h3{ font-family:var(--display); font-size:clamp(22px,2.2vw,30px); margin:28px 0 12px; letter-spacing:-.02em; color:var(--ink); }
.prose p{ font-size:17px; line-height:1.65; margin-bottom:13px; color:var(--ink-2); }
.prose ul{ list-style:none; margin:8px 0 16px; display:flex; flex-direction:column; gap:9px; }
.prose ul li{ position:relative; padding-left:24px; font-size:16.5px; line-height:1.5; color:var(--ink-2); }
.prose ul li::before{ content:''; position:absolute; left:0; top:11px; width:12px; height:2px; background:var(--lime); }
.gallery{ columns:3; column-gap:16px; margin-top:22px; }
.gallery.masonry{ columns:4; }
.gallery figure{ break-inside:avoid; margin:0 0 16px; border-radius:var(--r); overflow:hidden; border:1px solid var(--hairline); background:var(--card); display:block; }
.gallery img,figure.single img{ width:100%; height:auto; display:block; cursor:zoom-in; }
figure.single{ margin:22px 0; border-radius:var(--r); overflow:hidden; border:1px solid var(--hairline); max-width:900px; }
figcaption,.gcap{ display:block; padding:11px 15px; font-size:14.5px; color:var(--ink-2); background:var(--card); border-top:1px solid var(--hairline); white-space:pre-line; }
.block-title{ margin:44px 0 18px; font-size:clamp(24px,3vw,40px); }
.price-callout{ background:var(--lime-tint); border:1px solid var(--lime); border-radius:var(--r); padding:18px 22px; font-size:16.5px; line-height:1.55; color:var(--ink-2); }
.price-callout b{ color:var(--ink); }
.cta-band{ background:transparent; color:var(--ink); margin-top:clamp(40px,5vw,70px); padding-inline:var(--pad); }
.cta-band .wrap{ max-width:720px; margin:0 auto; padding:clamp(26px,3.5vw,40px); background:var(--lime-tint); border:1px solid var(--lime); border-radius:var(--r); text-align:center; }
.cta-band h2{ color:var(--ink); font-size:clamp(22px,2.6vw,32px); }
.cta-band p{ color:var(--ink-2); margin:12px auto 20px; max-width:48ch; font-size:16px; }
.cta-band .btn{ margin:0 auto; }

/* lightbox */
.lightbox{ position:fixed; inset:0; background:rgba(8,10,8,.93); display:none; align-items:center; justify-content:center; z-index:200; padding:24px; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:94vw; max-height:90vh; border-radius:var(--r); }
.lightbox .lb-close{ position:absolute; top:14px; right:24px; color:#fff; font-size:44px; cursor:pointer; line-height:1; }

/* responsive */
@media(max-width:1080px){
  .hero-grid,.about-grid,.agent-grid,.faq-grid{ grid-template-columns:1fr; }
  .stat-strip{ grid-template-columns:repeat(2,1fr); }
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
  .tech-grid{ grid-template-columns:1fr; }
  .pkg-grid{ grid-template-columns:1fr; }
  .trust-grid{ grid-template-columns:repeat(2,1fr); }
  .serie-row{ grid-template-columns:1fr; }
  .foot-top{ grid-template-columns:1fr 1fr; }
  .gallery,.gallery.masonry,.projgrid{ columns:2; }
}
@media(max-width:640px){
  body{ font-size:16px; }
  .nav .phone,nav.links{ display:none; }
  .burger{ display:inline-flex; margin-left:0; }
  /* шапка на телефоне: лого слева, «Поговорить»+бургер справа, без наезда */
  .nav{ gap:10px; }
  .brand{ font-size:20px; min-width:0; margin-right:auto; }
  .brand span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .brand small{ display:none; }
  .nav .btn-orange{ padding-inline:14px !important; }
  header.site.nav-open nav.links .phone-in-menu{ display:block; }
  header.site.nav-open nav.links{ display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--hairline); padding:8px var(--pad) 16px; gap:2px; box-shadow:0 18px 30px -24px rgba(0,0,0,.4); }
  header.site.nav-open nav.links a{ padding:13px 2px; font-size:18px; border-bottom:1px solid var(--hairline-2); }
  header.site.nav-open nav.links a::after{ display:none; }
  .svc-grid,.trust-grid{ grid-template-columns:1fr; }
  .gallery,.gallery.masonry,.projgrid{ columns:1; }
  .prose{ max-width:none; }
}


/* scroll-reveal — плавное появление блоков при прокрутке (нативно, без библиотек) */
.js-reveal .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1); }
.js-reveal .reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .js-reveal .reveal{ opacity:1 !important; transform:none !important; transition:none !important; } }
