/* ag4 style.css: everything below the first screen. Loaded without blocking render. */


/* universal card and grid */

.grd{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--m,280px)),1fr));gap:16px;margin:0;padding:0;list-style:none}

.crd{padding:20px;background:var(--c5);border:1px solid var(--c6);border-radius:12px}

.alt{background:var(--c5);border-block:1px solid var(--c6)}

.grd>li>.crd{height:100%}

.bln{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}


/* works: shared by main (one row) and gallery */

.wrk figure{margin:0}

.wrk a{display:block;overflow:hidden;border-radius:10px;background:var(--c3)}

.wrk img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s}

.wrk a:hover img{transform:scale(1.03)}

.wrk figcaption{display:flex;flex-direction:column;gap:2px;margin-top:10px;font-size:.9375rem;line-height:1.35}

.wrk time{font-size:.8125rem;color:color-mix(in srgb,var(--c0) 64%,var(--c4))}

/* .one: works in a single row; on phones the row scrolls sideways */

.one{grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width:639px){.one{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.one>li{scroll-snap-align:start}}


/* steps as a timeline: a real sequence, so the line and numbers carry order */

.tml{display:grid;gap:24px;margin:0;padding:0;list-style:none;counter-reset:s}

.tml li{position:relative;counter-increment:s;padding-left:44px}

.tml li::before{content:counter(s);position:absolute;left:0;top:-2px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--c0);color:var(--c5);font-weight:700;font-size:.875rem}

.tml li::after{content:"";position:absolute;left:14px;top:32px;bottom:-22px;border-left:2px solid var(--c6)}

.tml li:last-child::after{display:none}

.tml h3{margin-bottom:4px}

@media (min-width:860px){
  .tml{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
  .tml li{padding:44px 0 0}
  .tml li::after{left:38px;right:-26px;top:14px;bottom:auto;border-left:0;border-top:2px solid var(--c6)}
}


/* reviews */

.rvh{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:20px}

.rvh strong{font-size:1.5rem}

.sts{--str:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5L2.5 9.4l6.6-.9z'/%3E%3C/svg%3E") 0 0/20px 20px repeat-x;display:inline-block;flex:none;width:100px;height:20px;background:linear-gradient(90deg,var(--c2) calc(var(--r,5) * 20%),var(--c6) 0);-webkit-mask:var(--str);mask:var(--str)}

.rvw{display:flex;flex-direction:column;gap:10px}

.rvw header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}

.rvw p{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}

.rvw footer{font-size:.8125rem;color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.rvc{display:grid;gap:28px;margin:0;padding:0;list-style:none}

@media (min-width:860px){.rvc{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.rvc li{padding:0 28px}.rvc li:first-child{padding-left:0}.rvc li:last-child{padding-right:0}.rvc li+li{border-left:1px solid var(--c6)}}

.rvc .rvw p{-webkit-line-clamp:6}


/* team: who on the left, what they do on the right; 1–2 people fill the width */

.tem{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:20px 48px;margin:0;padding:0;list-style:none}

.tem li{display:grid;grid-template-columns:72px minmax(0,190px) minmax(0,1fr);gap:4px 18px;align-items:start;padding-top:18px;border-top:1px solid var(--c6)}

.tem img{width:72px;height:72px;border-radius:50%;object-fit:cover;background:var(--c3)}

.tmn{display:grid;gap:2px;min-width:0}

.tmn span{font-size:.875rem;color:color-mix(in srgb,var(--c0) 64%,var(--c4))}

.tem p{font-size:.9375rem;min-width:0}

@media (max-width:599px){.tem li{grid-template-columns:56px minmax(0,1fr)}.tem img{width:56px;height:56px}.tem p{grid-column:1/-1}}


/* long text */

.txt{max-width:74ch;font-size:1.0625rem;line-height:1.65}

.txt>*+*{margin-top:1em}

.txt h2{margin-top:1.6em}

.txt>:first-child{margin-top:0}

/* .tx2: long text spreads over two columns on wide screens; h2 spans both */

@media (min-width:1080px){
  .tx2{max-width:none;columns:2;column-gap:56px}
  .tx2 h2{column-span:all;max-width:30ch;margin-bottom:.6em}
  .tx2>*{break-inside:avoid-column}
  .tx2 h3{break-after:avoid-column}
  .tx2 figure{margin-block:1em}
  .tx2 h2+*{margin-top:0}
  .tx2>:last-child{margin-bottom:0}
}

.txt h3{margin-top:1.4em}

.txt ul,.txt ol{padding-left:1.3em}

.txt li+li{margin-top:.35em}

.txt figure{margin-inline:0}

.txt figure img{border-radius:10px;background:var(--c3)}

.txt figcaption{margin-top:8px;font-size:.875rem;color:color-mix(in srgb,var(--c0) 64%,var(--c4))}

.txt table,.tbl{width:100%;border-collapse:collapse;font-size:.9375rem}

.txt th,.txt td,.tbl th,.tbl td{padding:10px 12px;border-bottom:1px solid var(--c6);text-align:left;vertical-align:top}

.txt th,.tbl th{font-weight:600;background:var(--c3)}


/* faq */

.faq{max-width:74ch;margin:0;padding:0;list-style:none;border-top:1px solid var(--c6)}

.faq details{border-bottom:1px solid var(--c6)}

.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;font-weight:600;cursor:pointer;list-style:none}

.faq summary::-webkit-details-marker{display:none}

.faq summary .ico{color:var(--c1);transition:transform .2s}

.faq details[open] summary .ico{transform:rotate(180deg)}

.faq details>div{padding:0 0 18px}


/* forms */

.frm{display:grid;gap:12px}

.frm label{display:grid;gap:4px;font-size:.875rem;font-weight:600}

.frm input,.frm textarea,.frm select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--c6);border-radius:10px;background:var(--c5);color:var(--c0);font:inherit;font-weight:400}

.frm textarea{min-height:110px;resize:vertical}

.frm input:focus,.frm textarea:focus{outline:none;border-color:var(--c1);box-shadow:0 0 0 3px var(--c3)}

.frm .chb{display:flex;align-items:flex-start;gap:10px;font-weight:400;line-height:1.4}

.frm .chb input{width:20px;height:20px;min-height:0;margin:1px 0 0;flex:none;accent-color:var(--c1)}

.frm .btn{width:100%}

.frm .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.frm .fil{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border:1px dashed var(--c6);border-radius:10px;background:var(--c4);font-weight:400!important;cursor:pointer}

.fil input{position:absolute;width:1px;height:1px;opacity:0}

.fil .ico{color:var(--c1)}

.rat{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;border:0;margin:0;padding:0}

.rat input{position:absolute;opacity:0}

.rat label{color:var(--c6);cursor:pointer}

.rat .ico{width:30px;height:30px}

.rat input:checked~label,.rat label:hover,.rat label:hover~label{color:var(--c2)}

.rat input:focus-visible+label{outline:2px solid var(--c1)}

/* faq left, request form right */

.qfm{display:grid;gap:40px}

@media (min-width:960px){.qfm{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:56px;align-items:start}}

.qfm h2{margin-bottom:16px}

.qfm .faq{max-width:none}

.qal{display:inline-block;margin-top:16px;font-weight:600}

.qfr .fsub{margin:-8px 0 16px}


/* ---------- service page (land) ---------- */


/* price table with a summary card */

.psm{display:grid;gap:24px;align-items:start}

@media (min-width:960px){.psm{grid-template-columns:minmax(0,1fr) 320px;gap:48px}.pcd{position:sticky;top:20px}}

.pcd{display:grid;gap:14px;padding:22px;background:var(--c5);border:1px solid var(--c6);border-radius:8px}

.pcv b{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;white-space:nowrap}

.pcv span{color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.pcd ul{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:.9375rem}

.pcd li{display:flex;gap:10px;align-items:flex-start}

.pcd .ico{color:var(--c1)}


/* products: one block, 1–2 rows of cards */

.gdl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px;margin:0;padding:0;list-style:none}

.gdc{display:flex;flex-direction:column;gap:10px;height:100%;padding:14px;background:var(--c5);border:1px solid var(--c6);border-radius:8px}

.gdi{display:block;overflow:hidden;border-radius:6px;background:var(--c3)}

.gdi img{width:100%;aspect-ratio:1;object-fit:cover}

.gdc h3{font-size:1rem;font-weight:600;line-height:1.35}

.gdc h3 a{color:var(--c0);text-decoration:none}

.gdc h3 a:hover{color:var(--c1)}

.gdp{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;margin-top:auto}

.gdp b{font-size:1.125rem;white-space:nowrap}

.gdp span{font-size:.8125rem;color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.gdc .btn{width:100%;min-height:42px}

@media (max-width:599px){.gdl{grid-template-columns:1fr 1fr;gap:10px}.gdc{padding:10px}.gdc h3{font-size:.875rem}}

.mrb{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;margin-top:24px}

.mrb .btn[hidden]{display:none}


/* long text with an aside */

.txa{display:grid;gap:40px}

@media (min-width:1000px){.txa{grid-template-columns:minmax(0,1fr) 340px;gap:64px}.rla{position:sticky;top:20px;align-self:start}}

.rla h2{font-size:1.25rem;margin-bottom:8px}

.rla .prl{grid-template-columns:1fr}

.rla .prl small{width:auto}

.rlc{display:grid;gap:12px;margin-top:24px;padding:18px;background:var(--c5);border:1px solid var(--c6);border-radius:8px}

.rlc b{font-size:1.25rem}


/* modals */

.mdl{width:min(520px,calc(100% - 24px));max-height:calc(100% - 24px);padding:0;border:2px solid var(--c0);border-radius:6px;background:var(--c5);color:var(--c0);box-shadow:6px 6px 0 var(--c0)}

.mdl::backdrop{background:color-mix(in srgb,var(--c0) 55%,transparent)}

.mdl>div{position:relative;padding:24px}

.mdl h2{padding-right:40px;font-size:1.375rem}

.fsub{margin:6px 0 18px;color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.mdc{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:50%;background:var(--c4);color:var(--c0);cursor:pointer}

/* city list: fixed height, so the dialog keeps its size while the list is filtered */

.cyl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:min-content;align-content:start;gap:4px 16px;height:min(52vh,420px);overflow:auto;overscroll-behavior:contain;margin:14px 0 0;padding:0;list-style:none}

.cye{grid-column:1/-1;padding:6px 0;color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.cyl a{display:block;padding:6px 0;color:var(--c0);text-decoration:none}

.cyl a:hover{color:var(--c1)}

.lbx{width:min(1100px,calc(100% - 24px));background:var(--c0)}

.lbx>div{padding:0}

.lbx img{width:100%;max-height:80vh;object-fit:contain}

.lbx p{padding:12px 16px;color:var(--c5)}

.lbx .mdc{background:var(--c5)}


/* footer */

.ftr{padding-block:40px 24px;background:var(--c5);border-top:1px solid var(--c6);font-size:.9375rem}

.ftc{display:grid;gap:28px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}

.ftc h3{margin-bottom:10px;font-size:1rem}

.ftc ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}

.ftc a{color:var(--c0);text-decoration:none}

.ftc a:hover{color:var(--c1)}

.req{display:grid;gap:4px;margin-top:10px;font-size:.875rem;color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.ftr .soc{margin-top:16px}

.ftr .soc a{width:40px;height:40px;background:var(--c4);border:1px solid var(--c6)}

.ftr .soc a:hover{border-color:currentColor}

.ftr .soc .ico{width:20px;height:20px}


.fbt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:32px;padding-top:20px;border-top:1px solid var(--c6);font-size:.8125rem;color:color-mix(in srgb,var(--c0) 64%,var(--c5))}

.fbt a{color:inherit}

.fbt p{max-width:80ch}


/* cookie notice: fixed over content, never shifts layout */

.cki{position:fixed;z-index:50;left:0;right:0;bottom:0;display:flex;align-items:center;min-height:25vh;padding:20px 0 calc(20px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--c0) 86%,transparent);color:var(--c5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}

.cki .wrp{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px}

.cki p{max-width:70ch;font-size:.9375rem}

.cki a{color:inherit}

.cki .btn{background:var(--c5);border-color:var(--c5);color:var(--c0);min-width:140px}

@media (max-width:599px){.cki{min-height:0;padding-block:12px calc(12px + env(safe-area-inset-bottom,0px))}.cki p{font-size:.8125rem}.cki .btn{min-height:40px;width:100%}}


/* map facade, show more, product strip: shared helpers */

.fad{animation:fad .25s ease-out}

@keyframes fad{from{opacity:0}to{opacity:1}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* engine price tables (land, price_list): the engine prints the header row with <td>, styled here like <th> */
.ptb thead td{padding:10px 12px;border-bottom:2px solid var(--c0);font-size:.8125rem;font-weight:600;text-align:left;color:color-mix(in srgb,var(--c0) 64%,var(--c4));white-space:normal}
.ptb thead td:first-child{padding-left:0}
.ptb thead td:last-child{padding-right:0;text-align:right;font-weight:600}
.ptb thead td:nth-child(2){width:120px}
.ptb thead td:last-child{width:140px}
.ptb tr:hover td{background:var(--c3)}
.ptb thead tr:hover td{background:none}
.prg h2 a{color:inherit;text-decoration:none}
.prg h2 a:hover{color:var(--c1)}

/* news cards: news_list and the latest news on main. The engine prints "not.yet" when there is no news, so an empty block hides itself */
.nwl{--m:300px}
.nwc{display:flex;flex-direction:column;gap:10px;height:100%}
.nwc>a{display:block;overflow:hidden;border-radius:10px;background:var(--c3)}
.nwc img{width:100%;aspect-ratio:16/9;object-fit:cover}
.nwc time{font-size:.8125rem;color:color-mix(in srgb,var(--c0) 64%,var(--c4))}
.nwc :is(h2,h3){font-size:1.125rem}
.nwc :is(h2,h3) a{color:var(--c0);text-decoration:none}
.nwc :is(h2,h3) a:hover{color:var(--c1)}
.nwc p{font-size:.9375rem;color:color-mix(in srgb,var(--c0) 80%,var(--c4))}
.nws:not(:has(.nwc)){display:none}

/* Laz.Am: модалки витрины — выбор действия, способ связи, превью поставщика */
.byl{display:grid;gap:14px;margin:16px 0 0;padding:0;list-style:none}
.byl li{display:grid;gap:6px}
.byl .btn{width:100%}
.byl span{font-size:.875rem}
.cmt{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0}
.cmt legend{margin-bottom:6px;font-size:.875rem;font-weight:600}
.cmt label{display:block;margin:0}
.cmt input{position:absolute;opacity:0}
.cmt span{display:inline-block;padding:6px 12px;border:2px solid var(--c0);border-radius:6px;background:var(--c5);font-size:.875rem;font-weight:600;cursor:pointer}
.cmt input:checked+span{background:var(--c0);color:var(--c5)}
.cmt input:focus-visible+span{outline:2px solid var(--c1);outline-offset:2px}
.spv{margin:12px 0;padding:12px 14px;border:2px solid var(--c0);border-radius:6px;background:var(--c3);font-size:.875rem;line-height:1.5;white-space:pre-wrap;overflow-x:auto}
.lgm{box-shadow:none}.lgm i{color:inherit}
.pkg .dsc{text-decoration:none;color:var(--c2);font-weight:800}.cmt input:checked+span .dsc{color:var(--c5)}

.pcd{margin:4px 0}.pcd summary{cursor:pointer;color:var(--c1);font-weight:600}.fer{color:var(--c2);font-weight:700}
