@charset "UTF-8";
/* «Терем из бруса» — основные стили */
    :root{
      --green:#75bd16;
      --green2:#98d941;
      --dark:#234d2e;
      --text:#244331;
      --muted:#52705a;
      --pale:#effbdc;
      --card:#fffff5;
      --line:rgba(80,132,45,.25);
      --shadow:0 18px 40px rgba(52,111,22,.14);
      --radius:28px;
      --max:1240px;
      --gap-section:clamp(44px,4.8vw,72px);
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip;scroll-padding-top:calc(var(--nav-h,98px) + 10px)}
    body{
      margin:0;
      font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
      color:var(--text);
      background:
        radial-gradient(circle at 7% 7%, rgba(164,226,68,.42), transparent 29rem),
        radial-gradient(circle at 94% 40%, rgba(173,231,73,.32), transparent 33rem),
        linear-gradient(180deg,#f7ffe9 0%, #f2fbdd 47%, #edfad8 100%);
      overflow-x:clip;
    }
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    .wrap{width:min(var(--max),calc(100% - 64px));margin:0 auto}
    .page{
      position:relative;
      min-height:100vh;
      --nav-h:98px;
      background:
        radial-gradient(circle at 0% 3%, rgba(124,202,19,.25), transparent 260px),
        radial-gradient(circle at 100% 69%, rgba(121,202,23,.21), transparent 300px);
    }
    .leaf{position:absolute;pointer-events:none;opacity:.72;filter:drop-shadow(0 10px 12px rgba(68,151,21,.12))}
    .leaf:before{
      content:"";
      display:block;
      width:48px;height:24px;
      background:linear-gradient(135deg,#b7ed68,#70c414);
      border-radius:100% 0 100% 0;
      transform:rotate(-24deg);
    }
    .leaf.l1{left:0;top:118px;transform:scale(1.25)}
    .leaf.l2{left:39%;top:91px;transform:rotate(34deg) scale(.8)}
    .leaf.l3{right:1%;top:645px;transform:rotate(-18deg) scale(1.45)}
    .leaf.l4{left:39%;top:1080px;transform:rotate(15deg) scale(1.35)}
    .leaf.l5{left:5%;bottom:265px;transform:rotate(88deg) scale(.9)}
    .hero{
      margin-top:calc(var(--nav-h,98px) * -1);
      padding-top:var(--nav-h,98px);
      min-height:575px;
      position:relative;
      overflow:hidden;
      border-bottom-left-radius:34px;
      border-bottom-right-radius:34px;
      background:
        linear-gradient(90deg,rgba(246,255,223,.98) 0%,rgba(241,253,213,.95) 37%,rgba(237,250,205,.38) 57%,rgba(237,250,205,.05) 100%);
    }
    .hero:after{
      content:"";
      position:absolute;inset:0;
      background:
        linear-gradient(90deg,rgba(246,255,225,.98) 0%,rgba(244,255,224,.90) 36%,rgba(244,255,224,.30) 56%,rgba(244,255,224,.02) 100%),
        radial-gradient(circle at 25% 90%, rgba(151,224,31,.42), transparent 310px);
      z-index:1;
      pointer-events:none;
    }
    .hero-bg{
      position:absolute;inset:0 0 0 42%;
      z-index:0;
    }
    .hero-bg img{
      width:100%;height:100%;object-fit:cover;object-position:center;
      filter:saturate(1.06) contrast(1.02);
    }
    .hero-bg:before{
      content:"";
      position:absolute;inset:0;
      background:linear-gradient(90deg,#f7ffe0 0%,rgba(247,255,224,.74) 9%,rgba(247,255,224,.03) 34%);
      z-index:1;
    }
    header{
      position:sticky;top:0;z-index:60;
      padding:12px 0 12px;
      background:rgba(255,255,245,0);
      border-bottom:1px solid transparent;
      -webkit-backdrop-filter:blur(0) saturate(100%);
      backdrop-filter:blur(0) saturate(100%);
      transition:transform .28s cubic-bezier(.4,0,.2,1),
                 padding-top .24s ease, padding-bottom .24s ease,
                 background-color .3s ease, border-color .3s ease, box-shadow .3s ease,
                 -webkit-backdrop-filter .3s ease, backdrop-filter .3s ease;
    }
    header.nav--hidden{transform:translateY(-102%)}
    header.menu-open,header.menu-open.nav--hidden{transform:none}
    header.nav--stuck{
      background:rgba(11,29,17,.93);
      border-bottom-color:rgba(200,240,150,.22);
      box-shadow:0 14px 34px rgba(8,26,12,.28);
      -webkit-backdrop-filter:blur(16px) saturate(155%);
      backdrop-filter:blur(16px) saturate(155%);
    }
    .brand,.menu,.phone,.logo path{transition:color .3s ease, stroke .3s ease;
    }
    header.nav--stuck .brand{color:#f1ffe2}
    header.nav--stuck .logo path{stroke:#c9ef8e}
    header.nav--stuck .menu{color:#f2ffe4}
    /* только десктопная шапка: на мобиле меню выпадающее и всегда светлое */
    @media (min-width:901px){
      header.nav--stuck .menu a:hover,
      header.nav--stuck .menu a:focus-visible{color:#ffffff}
      header.nav--stuck .menu a:before{background:rgba(117,189,22,.50)}
    }
    header.nav--stuck .phone{
      background:linear-gradient(135deg,#8fdc2b,#6cbb10);
      box-shadow:0 10px 22px rgba(0,0,0,.26);
    }
    .nav{
      position:relative;
      display:flex;align-items:center;justify-content:space-between;gap:24px;
    }
    .brand{display:flex;align-items:center;gap:14px;font-weight:900;color:var(--dark);line-height:1.02}
    .logo{
      width:76px;height:61px;flex:0 0 auto;
    }
    .brand img.logo{
      width:auto;height:52px;max-width:100%;display:block;object-fit:contain;
    }
    .brand span{font-size:24px;letter-spacing:-.7px}
    .menu{display:flex;gap:32px;align-items:center;font-size:15px;color:#173921;font-weight:600}
    .menu a{
      position:relative;padding:7px 2px;isolate:isolate;
      transition:color .25s ease, transform .25s ease;
    }
    .menu a:before{
      content:"";position:absolute;inset:-6px -14px;border-radius:999px;z-index:-1;
      background:rgba(117,189,22,.22);
      opacity:0;
      transition:opacity .22s ease;
    }
    .menu a:after{content:none;display:none}
    .menu a:hover,.menu a:focus-visible{color:#0a2f0a;transform:none}
    .menu a:hover:before,.menu a:focus-visible:before{opacity:1;transform:none}
    .menu a:hover:after,.menu a:focus-visible:after{transform:none}
    .phone{
      display:inline-flex;align-items:center;gap:10px;
      background:linear-gradient(135deg,#86ca18,#68aa09);
      color:#fff;border-radius:999px;padding:15px 26px;
      font-weight:900;box-shadow:0 12px 24px rgba(93,169,0,.25);
      white-space:nowrap;
    }
    .phone svg{width:18px;height:18px;fill:#fff}
    .hero-content{
      position:relative;z-index:2;
      padding:60px 0 96px;
      width:min(620px,58vw);
    }
    .pill{
      display:inline-flex;align-items:center;
      min-height:34px;
      padding:7px 23px;
      border-radius:999px;
      background:linear-gradient(90deg,#bde98b,#d5f6a9);
      color:#274f2e;
      font-weight:900;
      font-size:21px;
      letter-spacing:-.3px;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
    }
    h1{
      margin:28px 0 20px;
      font-size:76px;
      line-height:.97;
      letter-spacing:-3.8px;
      color:#214d2b;
      font-weight:950;
      max-width:710px;
    }
    .lead{
      font-size:25px;line-height:1.35;color:#294735;margin:0 0 36px;
      max-width:520px;font-weight:500;
    }
    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:16px;
      border:0;border-radius:999px;
      min-height:58px;padding:0 31px;
      background:linear-gradient(135deg,#73bd0e,#5a9705);
      color:#fff;font-size:17px;font-weight:900;
      box-shadow:0 14px 26px rgba(79,151,0,.25);
      cursor:pointer;transition:.18s transform,.18s box-shadow;
    }
    .btn:hover{transform:translateY(-2px);box-shadow:0 18px 32px rgba(79,151,0,.31)}
    .btn svg{width:21px;height:21px;stroke:currentColor;stroke-width:2.6;fill:none}
    .btn-outline{
      background:transparent;color:#335b2c;border:2px solid #78bd22;box-shadow:none;min-height:48px;padding:0 25px;
    }
    .btn-outline:hover{background:#f7ffe9;box-shadow:0 12px 25px rgba(99,171,17,.13)}
    .features{
      position:relative;z-index:4;
      margin-top:-37px;
      padding:0 0 var(--gap-section);
    }
    .feature-card{
      background:rgba(255,255,239,.86);
      backdrop-filter:blur(8px);
      border:1px solid rgba(255,255,255,.72);
      border-radius:27px;
      box-shadow:var(--shadow);
      display:grid;grid-template-columns:repeat(4,1fr);
      padding:19px 0;
      overflow:hidden;
    }
    .feature{
      min-height:102px;
      display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
      padding:5px 24px;position:relative;color:#294b32;font-size:18px;line-height:1.14;font-weight:600;
    }
    .feature:not(:last-child):after{
      content:"";position:absolute;right:0;top:18px;bottom:18px;width:1px;background:var(--line);
    }
    .feature svg{width:44px;height:44px;margin-bottom:10px;stroke:#315934;stroke-width:1.7;fill:none}
    section{position:relative;z-index:2}
    .advantages{padding:0 0 var(--gap-section)}
    .two-col{display:grid;grid-template-columns:1fr 1.27fr;gap:60px;align-items:center}
    .section-pill{
      display:inline-flex;background:#c8efa0;color:#31582b;border-radius:999px;
      padding:8px 22px;font-weight:900;font-size:18px;margin:0 0 16px;
    }
    h2{
      margin:0;color:#224d2b;font-size:45px;line-height:.96;font-weight:950;letter-spacing:-1.9px;
    }
    .checks{list-style:none;padding:0;margin:30px 0 30px;display:grid;gap:18px;font-size:18px;color:#334a38;font-weight:500}
    .checks li{display:flex;align-items:center;gap:16px}
    .check{
      width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#94d832,#69ba0e);display:inline-grid;place-items:center;flex:0 0 auto;color:#fff;font-weight:950;
    }
    .image-card{
      position:relative;border-radius:30px;overflow:hidden;box-shadow:var(--shadow);min-height:350px;background:#e8d1a8;
    }
    .image-card img{width:100%;height:100%;min-height:350px;object-fit:cover}
    .image-card:after{
      content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.68);border-radius:30px;pointer-events:none;
    }
    .works{padding:0 0 var(--gap-section);text-align:center}
    .works h2{font-size:43px;margin:0 0 26px}
    .gallery-wrap{position:relative}
    .gallery{
      display:grid;grid-template-columns:repeat(3,1fr);gap:21px;align-items:stretch;
    }
    .work{
      border-radius:14px;overflow:hidden;height:179px;box-shadow:0 12px 26px rgba(56,99,27,.12);background:#dfeec8;
      border:1px solid rgba(255,255,255,.72);
    }
    .work img{width:100%;height:100%;object-fit:cover}
    .arrow svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.5;fill:none}
    .reviews{padding:0 0 var(--gap-section);text-align:center}
    .reviews h2{font-size:39px;margin:0 0 26px}
    .review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px;text-align:left}
    .review{
      min-height:129px;background:rgba(255,255,246,.88);border:1px solid rgba(255,255,255,.8);
      border-radius:18px;box-shadow:0 12px 29px rgba(75,119,31,.11);
      padding:22px 24px;display:grid;grid-template-columns:66px 1fr;gap:18px;align-items:center;
    }
    .avatar{width:62px;height:62px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#dbeec0,#fff)}
    .avatar svg{width:100%;height:100%}
    .review b{display:block;font-size:15px;color:#2a4630;margin-bottom:4px}
    .stars{color:#7dc31a;letter-spacing:1px;font-size:15px;margin-bottom:10px}
    .review p{margin:0;font-size:14px;line-height:1.32;color:#263d2d;font-weight:500}
    footer{
      position:relative;z-index:2;margin-top:0;
      color:#fff;isolation:isolate;
      background:linear-gradient(152deg,#2f6b1d 0%,#245a15 46%,#163c0d 100%);
      border-top-left-radius:50% 26px;border-top-right-radius:50% 26px;
      overflow:hidden;
    }
    .foot-bg{
      position:absolute;inset:0;z-index:0;
      background-size:cover;background-position:center center;background-repeat:no-repeat;
      opacity:.20;filter:saturate(.65) contrast(1.12);
      transform:scale(1.06);
      pointer-events:none;
    }
    footer:before{
      content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
      background:
        radial-gradient(circle at 8% 0%,rgba(152,217,65,.30),transparent 330px),
        radial-gradient(circle at 94% 104%,rgba(0,0,0,.42),transparent 440px),
        linear-gradient(180deg,rgba(9,30,13,.30),rgba(5,20,9,.74));
    }
    .foot{position:relative;z-index:2;padding:74px 0 56px}
    .foot-top{display:grid;grid-template-columns:1.1fr .85fr .95fr 1.05fr;gap:28px;align-items:center}
    .foot .brand{color:#fff}
    .foot-note{margin:10px 0 0;font-size:15px;line-height:1.3;color:rgba(233,255,214,.88)}
    .foot-nav a:after{
      content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;
      background:linear-gradient(90deg,#c6f58c,#8fdc2b);
      transform:scaleX(0);transform-origin:left center;
      transition:transform .3s cubic-bezier(.2,.7,.2,1);
    }
    .foot-nav a:hover,.foot-nav a:focus-visible{color:#dcffb8;transform:translateY(-1px)}
    .foot-nav a:hover:after,.foot-nav a:focus-visible:after{transform:scaleX(1)}
    .foot-contact{display:inline-flex;align-items:center;gap:10px;font-weight:900;white-space:nowrap;color:#ecffd8;padding:11px 20px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(200,240,150,.24);transition:background-color .25s ease, border-color .25s ease, transform .25s ease}
    .foot-contact:hover,.foot-contact:focus-visible{
      background:rgba(255,255,255,.15);border-color:rgba(200,240,150,.48);transform:translateY(-1px);
    }
    .call-btn{display:inline-flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#a9e85a,#78c417);color:#12300c;border-radius:999px;padding:15px 27px;font-weight:900;font-size:14px;white-space:nowrap;box-shadow:0 14px 28px rgba(0,0,0,.28);transition:transform .25s ease, box-shadow .25s ease, filter .25s ease}
    .call-btn:hover,.call-btn:focus-visible{
      transform:translateY(-2px);box-shadow:0 20px 36px rgba(0,0,0,.34);filter:brightness(1.06);
    }
    .foot-bottom{
      margin-top:26px;padding-top:20px;
      border-top:1px solid rgba(200,240,150,.20);
      display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;
      font-size:13px;color:rgba(226,248,206,.86);
    }
    .legal{line-height:1.5}
    
    
    
    
    .address{
      text-align:center;font-size:13px;line-height:1.5;color:rgba(226,248,206,.92);
    }
    .mobile-actions{display:none}
    /* --- слайдер в шапке: мобильная баня / баня из бруса --- */
    .hero-bg{pointer-events:none}
    .hero-bg img{
      position:absolute;inset:0;width:100%;height:100%;
      object-fit:cover;object-position:center;
      filter:saturate(1.06) contrast(1.02);
      opacity:0;transition:opacity .5s ease;
    }
    .hero-bg img.is-active{opacity:1}
    .hero-content .pill,.hero-content h1,.hero-content .lead{
      transition:opacity .2s ease, transform .2s ease;
    }
    .hero-content.is-swapping .pill,
    .hero-content.is-swapping h1,
    .hero-content.is-swapping .lead{opacity:0;transform:translateY(8px)}
    .hero .wrap{position:relative}
    .hero-nav{
      position:absolute;right:0;bottom:110px;z-index:3;
      display:flex;align-items:center;gap:14px;
    }
    .hero-arrow{
      width:46px;height:46px;border-radius:50%;border:2px solid #85cb34;padding:0;
      background:rgba(252,255,242,.96);display:grid;place-items:center;color:#4b9510;
      cursor:pointer;flex:0 0 auto;
      box-shadow:0 8px 18px rgba(31,79,0,.16);
      -webkit-backdrop-filter:none;backdrop-filter:none;
      transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease;
    }
    .hero-arrow:hover{background:#fff;transform:translateY(-2px);box-shadow:0 12px 22px rgba(79,151,0,.2)}
    .hero-arrow:active{transform:translateY(0)}
    .hero-arrow:focus-visible{outline:3px solid rgba(117,189,22,.5);outline-offset:3px}
    .hero-arrow svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.5;fill:none}
    .hero-count{
      font-size:14px;font-weight:900;color:#2f5c2a;letter-spacing:.5px;
      padding:7px 13px;border-radius:999px;flex:0 0 auto;
      min-width:74px;text-align:center;
      font-variant-numeric:tabular-nums;
      background:#f9ffef;border:1px solid rgba(133,203,52,.34);
      -webkit-backdrop-filter:none;backdrop-filter:none;
    }
    .hero-count b{color:var(--green);font-size:16px;font-variant-numeric:tabular-nums}
    /* --- гамбургер для мобильной версии --- */
    .burger{
      display:none;width:44px;height:44px;flex:0 0 auto;padding:0;
      border:1px solid rgba(33,77,43,.14);border-radius:14px;
      background:rgba(255,255,244,.92);cursor:pointer;
      align-items:center;justify-content:center;flex-direction:column;gap:5px;
      transition:background-color .2s ease, border-color .2s ease;
    }
    .burger:hover{background:#fff;border-color:rgba(133,203,52,.55)}
    .burger span{
      display:block;width:20px;height:2px;border-radius:2px;background:#2f6b1d;
      transition:transform .25s ease, opacity .2s ease;
    }
    .burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .burger.is-open span:nth-child(2){opacity:0}
    .burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

    /* --- мега-меню «Каталог» --- */
    .nav-item--mega{position:static;align-self:stretch;display:flex;align-items:center}
    .nav-link--mega{display:inline-flex;align-items:center;gap:6px;height:100%}
    .nav-link--mega svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;transition:transform .25s ease}
    .nav-item--mega:hover .nav-link--mega svg,
    .nav-item--mega:focus-within .nav-link--mega svg{transform:rotate(180deg)}
    .mega{
      position:absolute;left:50%;top:100%;padding-top:12px;z-index:5;
      width:min(880px, calc(100vw - 80px));
      transform:translate(-50%, -8px);
      opacity:0;visibility:hidden;
      transition:opacity .2s ease, transform .2s ease, visibility 0s linear .34s;
    }
    .nav-item--mega:hover .mega,
    .nav-item--mega:focus-within .mega,
    .nav-item--mega.is-open .mega{
      opacity:1;visibility:visible;
      transform:translate(-50%, 0);
      transition:opacity .2s ease, transform .2s ease, visibility 0s;
    }
    .mega-inner{
      display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,1.35fr);
      gap:18px;padding:16px;border-radius:24px;
      background:rgba(255,255,246,.98);
      border:1px solid rgba(33,77,43,.10);
      box-shadow:0 30px 60px rgba(31,79,0,.22);
      -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    }
    /* --- Подменю «Наши работы»: фотоработы / видео работ --- */
    .nav-item--sub{position:relative;align-self:stretch;display:flex;align-items:center}
    .nav-link--sub{display:inline-flex;align-items:center;gap:6px;height:100%}
    .nav-link--sub svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;
      transition:transform .25s ease}
    .nav-item--sub:hover .nav-link--sub svg,
    .nav-item--sub:focus-within .nav-link--sub svg,
    .nav-item--sub.is-open .nav-link--sub svg{transform:rotate(180deg)}

    .submenu{
      position:absolute;left:50%;top:100%;z-index:7;
      min-width:250px;padding:10px;
      display:flex;flex-direction:column;gap:4px;
      background:rgba(255,255,246,.98);
      border:1px solid rgba(33,77,43,.10);border-radius:18px;
      box-shadow:0 24px 48px rgba(31,79,0,.20);
      -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
      transform:translate(-50%,-8px);
      opacity:0;visibility:hidden;
      transition:opacity .2s ease,transform .2s ease,visibility 0s linear .3s;
    }
    .submenu:before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
    .nav-item--sub:hover .submenu,
    .nav-item--sub:focus-within .submenu,
    .nav-item--sub.is-open .submenu{
      opacity:1;visibility:visible;transform:translate(-50%,0);
      transition:opacity .2s ease,transform .2s ease,visibility 0s;
    }
    .submenu a{
      display:flex;flex-direction:column;gap:2px;
      padding:10px 14px;border-radius:12px;
      text-decoration:none;transition:background-color .18s ease;
    }
    .submenu a:before{content:none}
    .submenu a:hover,.submenu a:focus-visible{background:rgba(117,189,22,.16)}
    .submenu a b{font-size:15px;font-weight:900;color:#173f1d;line-height:1.15}
    .submenu a span{font-size:12.5px;font-weight:600;color:#5b7d54;line-height:1.2}
    header.nav--stuck .submenu a b{color:#173f1d}
    header.nav--stuck .submenu a span{color:#5b7d54}

    .mega-tabs{display:flex;flex-direction:column;gap:6px}
    .mega-tab{
      display:flex;flex-direction:column;gap:3px;align-items:flex-start;
      padding:14px 16px;border:1px solid transparent;border-radius:16px;
      background:transparent;cursor:pointer;text-align:left;
      transition:background-color .2s ease, border-color .2s ease;
    }
    .mega-tab:hover{background:rgba(117,189,22,.12)}
    .mega-tab:focus-visible{outline:3px solid rgba(115,189,14,.65);outline-offset:2px}
    /* вкладка-ссылка «Мобильные бани» не наследует стили .menu a */
    .mega-tabs > a.mega-tab{padding:14px 16px;position:static}
    .mega-tabs > a.mega-tab::before{content:none;display:none;background:none}
    .mega-tab.is-active{background:rgba(117,189,22,.20);border-color:rgba(133,203,52,.55)}
    .mega-tab-title{font-size:17px;font-weight:900;color:#173f1d;line-height:1.1}
    .mega-tab-note{font-size:13px;color:#557a4f;font-weight:600;line-height:1.2}
    
.mega-photos{position:relative;overflow:hidden;border-radius:18px;background:#eaf5da;aspect-ratio:16/10;isolation:isolate;align-self:stretch;width:100%;height:100%;z-index:0;contain:paint}
    .mega-photos > .mega-photo{
      position:absolute!important;
      top:0!important;left:0!important;right:auto!important;bottom:auto!important;
      width:100%!important;height:100%!important;
      display:block!important;margin:0!important;
      border-radius:inherit;overflow:hidden;
      background-color:#dfeecb;
      background-position:center center;background-repeat:no-repeat;background-size:cover;
      opacity:0;transform:scale(1.02);
      transition:opacity .28s ease, transform .35s ease;
      -webkit-backface-visibility:hidden;backface-visibility:hidden;
    }
    .mega-photo.is-active{opacity:1;transform:scale(1);z-index:1}
    .mega-photo img{width:100%;height:100%;object-fit:cover;display:block}

    /* --- единый вид кнопок листания для всех каруселей --- */
    .hero-arrow, .arrow{
      width:46px;height:46px;border-radius:50%;flex:0 0 auto;
      border:2px solid #85cb34;padding:0;
      background:rgba(252,255,242,.96);
      display:grid;place-items:center;color:#4b9510;
      box-shadow:0 8px 18px rgba(31,79,0,.16);
      cursor:pointer;position:static;transform:none;
      -webkit-backdrop-filter:none;backdrop-filter:none;
      transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease;
    }
    .hero-arrow:hover, .arrow:hover{
      background:#fff;box-shadow:0 12px 22px rgba(79,151,0,.2);
    }
    .hero-arrow:active, .arrow:active{transform:translateY(1px)}
    .hero-arrow:focus-visible, .arrow:focus-visible{outline:3px solid rgba(117,189,22,.5);outline-offset:3px}
    .hero-arrow svg, .arrow svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.5;fill:none}
    .hero-count, .works-count{
      font-size:14px;font-weight:900;color:#2f5c2a;letter-spacing:.5px;
      padding:7px 13px;border-radius:999px;flex:0 0 auto;
      min-width:74px;text-align:center;font-variant-numeric:tabular-nums;
      background:#f9ffef;border:1px solid rgba(133,203,52,.34);
      -webkit-backdrop-filter:none;backdrop-filter:none;
    }
    .hero-count b, .works-count b{color:var(--green);font-size:16px}
    .works-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin:22px 0 0}
    .gallery-wrap .works-nav .arrow{position:static;transform:none}

    /* --- единая панель листания для всех каруселей --- */
    .carousel-nav{
      display:flex;align-items:center;justify-content:center;gap:14px;
      margin:24px 0 0;
    }
    .carousel-nav .arrow{position:static;transform:none}
    .carousel-count{
      font-size:14px;font-weight:900;color:#2f5c2a;letter-spacing:.5px;
      padding:7px 13px;border-radius:999px;flex:0 0 auto;
      min-width:74px;text-align:center;font-variant-numeric:tabular-nums;
      background:#f9ffef;border:1px solid rgba(133,203,52,.34);
    }
    .carousel-count b{color:var(--green);font-size:16px}
    .review-track{
      display:flex;gap:21px;align-items:stretch;
      overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;
      padding:6px 0 20px;scrollbar-width:none;
      cursor:grab;-webkit-overflow-scrolling:touch;
    }
    .review-track::-webkit-scrollbar{display:none}
    .review-track .review{flex:0 0 min(400px,100%)}

    /* --- плавающая кнопка связи: WhatsApp, Telegram, Viber --- */
    .fab{
      position:fixed;right:28px;bottom:28px;z-index:60;
      display:flex;flex-direction:column;align-items:center;
    }
    .fab__list{
      display:flex;flex-direction:column-reverse;align-items:center;gap:12px;
      margin-bottom:14px;
    }
    .fab__item{
      position:relative;width:54px;height:54px;border-radius:50%;
      display:grid;place-items:center;color:#fff;
      border:1px solid rgba(255,255,255,.4);
      box-shadow:0 12px 26px rgba(16,44,24,.26);
      opacity:0;visibility:hidden;transform:translateY(14px) scale(.7);
      transition:transform .28s cubic-bezier(.34,1.56,.64,1),opacity .22s ease,
                 visibility .22s ease,box-shadow .2s ease;
      transition-delay:calc(var(--i) * 45ms);
    }
    .fab.is-open .fab__item{
      opacity:1;visibility:visible;transform:translateY(0) scale(1);
    }
    .fab__item:hover,.fab__item:focus-visible{
      transform:translateY(-2px) scale(1.06);
      box-shadow:0 16px 32px rgba(16,44,24,.32);
      outline:none;
    }
    .fab__item svg{width:28px;height:28px;pointer-events:none}
    .fab__item--whatsapp{background:linear-gradient(135deg,#45e07f,#1aab4b)}
    .fab__item--telegram{background:linear-gradient(135deg,#4fc3f7,#1b8fce)}
    .fab__item--viber{background:linear-gradient(135deg,#a06bff,#6a37c9)}

    .fab__tip{
      position:absolute;right:64px;top:50%;transform:translateY(-50%) translateX(6px);
      white-space:nowrap;font-size:12px;font-weight:800;letter-spacing:.2px;
      color:#fff;background:rgba(20,52,30,.92);border-radius:8px;padding:5px 10px;
      opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;
    }
    .fab__item:hover .fab__tip,.fab__item:focus-visible .fab__tip{
      opacity:1;transform:translateY(-50%) translateX(0);
    }

    .fab__main{
      position:relative;width:60px;height:60px;border-radius:50%;
      display:grid;place-items:center;cursor:pointer;
      background:linear-gradient(135deg,#8fdc2b,#4e8c05);
      border:1px solid rgba(255,255,255,.42);
      box-shadow:0 14px 30px rgba(63,120,5,.34);
      transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
    }
    .fab__main:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(63,120,5,.4)}
    .fab__main:active{transform:translateY(-1px)}
    .fab__main:focus-visible{outline:3px solid rgba(143,220,43,.6);outline-offset:3px}
    .fab.is-open .fab__main{background:linear-gradient(135deg,#5d8f22,#3c6a08)}

    .fab__ico{
      position:absolute;width:28px;height:28px;
      fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
      transition:opacity .2s ease,transform .3s ease;
    }
    .fab__ico--close{opacity:0;transform:rotate(-90deg) scale(.6)}
    .fab.is-open .fab__ico--chat{opacity:0;transform:rotate(90deg) scale(.6)}
    .fab.is-open .fab__ico--close{opacity:1;transform:rotate(0) scale(1)}

    .fab__main::after{
      content:"";position:absolute;inset:-6px;border-radius:50%;
      border:2px solid rgba(143,220,43,.5);
      opacity:0;pointer-events:none;
    }
    .fab:not(.is-open) .fab__main::after{animation:fabPulse 2.8s ease-out infinite}
    @keyframes fabPulse{
      0%{opacity:.7;transform:scale(.9)}
      70%{opacity:0;transform:scale(1.35)}
      100%{opacity:0;transform:scale(1.35)}
    }
    @media (max-width:600px){
      .fab{right:16px;bottom:16px}
      .fab__main{width:56px;height:56px}
      .fab__item{width:50px;height:50px}
      .fab__item svg{width:26px;height:26px}
      .fab__tip{display:none}
    }
    @media (prefers-reduced-motion:reduce){
      .fab__item,.fab__main,.fab__ico{transition:none}
      .fab:not(.is-open) .fab__main::after{animation:none}
    }

    /* --- подвал: бренд, два меню, контактная колонка --- */
    .foot-brand{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
    .foot-menu{display:flex;flex-direction:column;gap:10px;font-size:15px;font-weight:600;line-height:1.25}
    .foot-menu a{
      color:rgba(240,255,226,.92);width:max-content;max-width:100%;
      transition:color .25s ease;
    }
    .foot-menu a:hover,.foot-menu a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:4px}
    .foot-cta{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
    .foot-cta .foot-contact,.foot-cta .call-btn{width:100%;justify-content:center}

    /* --- логотип в подвале: те же пропорции, что в шапке --- */
    .foot .logo{width:auto;height:52px;max-width:100%;display:block;object-fit:contain}
    .foot .brand{gap:0}

    @media (max-width:1100px){
      h1{font-size:62px}
      .menu{gap:20px}
      .hero-bg{inset-left:38%}
    }
    @media (max-width:900px){
      .foot{padding:34px 0 22px}

      .wrap{width:min(100% - 34px,var(--max))}
      header.nav--stuck .phone{
        background:none!important;box-shadow:none!important;
        color:#ffffff;padding:0;border-radius:0;
        text-shadow:0 1px 2px rgba(0,0,0,.55);
      }
      /* фон логотипа встроен в сам PNG */
      header.nav--stuck{
        padding-top:6px;padding-bottom:6px;
      }
      .brand img.logo{height:44px}
      .phone{
        display:inline-flex;align-items:center;
        background:none;box-shadow:none;border-radius:0;padding:0;
        color:#214d2b;font-weight:900;letter-spacing:-.2px;
        font-size:clamp(13px,3.4vw,17px);
        flex:0 1 auto;min-width:0;
        white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
      }
      .phone svg{display:none;width:0;height:0}
      .burger{display:inline-flex}
      /* на мобиле шапка липкая и всегда на месте — иначе меню «улетает» вверх */
      header.nav--hidden,header.nav--hidden.nav--stuck{transform:none}
      .nav-item--mega{width:100%}
      .nav-link--mega{display:flex;justify-content:space-between;width:100%;height:auto}
      .mega-tab{width:100%;touch-action:manipulation}
.nav-item--mega:hover .nav-link--mega svg,
      .nav-item--mega:focus-within .nav-link--mega svg{transform:none}
      .mega{
        position:static;width:100%;transform:none;margin-top:6px;padding-top:0;
        opacity:1;visibility:inherit;pointer-events:auto;transition:none;
      }
      .mega-inner{
        grid-template-columns:1fr;gap:10px;padding:10px;border-radius:16px;
        background:rgba(248,255,232,.96);border:1px solid rgba(33,77,43,.08);
        box-shadow:none;
        -webkit-backdrop-filter:none;backdrop-filter:none;
      }
      .mega-tabs{order:2}
      .mega-photos{order:1;aspect-ratio:16/9;border-radius:14px}
      .mega-photo{border-radius:inherit!important}
      .mega-tab{padding:12px 14px;border-radius:14px}
      .mega-tab-title{font-size:15px}
      .mega-tab-note{font-size:12px}
      /* подменю «Наши работы» на мобиле — раскрывается тапом, как мега-каталог */
      .nav-item--sub{display:block!important;width:100%!important;padding:0!important}
      .nav-link--sub{
        display:flex!important;justify-content:space-between;align-items:center;
        width:100%!important;height:auto!important;
        padding:12px 14px!important;border-radius:11px;
        color:#173921;font-size:16px;font-weight:700;text-decoration:none;
      }
      .nav-item--sub.is-open > .nav-link--sub{background:rgba(117,189,22,.14)}
      .submenu{
        position:static;min-width:0;width:100%;margin-top:6px;padding:8px;
        transform:none;opacity:1;visibility:inherit;pointer-events:auto;
        background:rgba(248,255,232,.96);border-radius:14px;box-shadow:none;
        -webkit-backdrop-filter:none;backdrop-filter:none;
        display:none;
      }
      .nav-item--sub.is-open .submenu{display:flex;transform:none}
      .submenu:before{content:none}
      .submenu a{padding:10px 12px}
      .submenu a b{font-size:15px}
      .menu.is-open{opacity:1;visibility:visible;transform:translateY(0)}
      .menu a{padding:11px 14px;border-radius:11px;color:#173921;font-size:16px}
      .menu a:before,.menu a:after{display:none}
      .menu a:hover,.menu a:focus-visible{background:rgba(117,189,22,.20);transform:none;color:#0a2f0a;font-weight:inherit}
      .hero{min-height:auto}
      .features{margin-top:32px}
      .hero-bg{inset:260px 0 0 0;opacity:.38}
      .hero:after{background:linear-gradient(180deg,rgba(246,255,223,.99) 0%,rgba(246,255,223,.95) 40%,rgba(246,255,223,.70) 64%,rgba(246,255,223,.16) 100%)}
      .hero-content{width:100%;padding:42px 0 20px;text-align:center}
      .hero-content h1{width:100%;max-width:100%}
      .hero-content .btn{margin-left:auto;margin-right:auto}
      .hero-content .lead,.hero-content .pill{margin-left:auto;margin-right:auto}
      .hero-nav{position:static;justify-content:center;padding:20px 0 34px}
      h1{font-size:52px;letter-spacing:-2.4px;min-height:2em}
      .lead{font-size:21px}
      .feature-card{grid-template-columns:repeat(2,1fr)}
      .feature:nth-child(2):after{display:none}
      .feature:nth-child(-n+2){border-bottom:1px solid var(--line)}
      .two-col{grid-template-columns:1fr;gap:26px}
      .gallery{grid-template-columns:1fr}
      .work{height:230px}
      .review-grid{grid-template-columns:1fr}
      .foot-top{grid-template-columns:1fr 1fr;gap:26px 18px;text-align:center}
      .foot-brand{grid-column:1 / -1;align-items:center;text-align:center}
      .foot-menu{align-items:center;width:100%}
      .foot-menu a{width:auto}
      .foot-cta{grid-column:1 / -1;align-items:center;margin-top:4px;width:100%;max-width:340px;justify-self:center}
      .foot .brand{justify-content:center}
      .call-btn,
      .foot-bottom{grid-template-columns:1fr;text-align:center}
      .legal{text-align:center}
    
      /* МОБИЛЬНОЕ МЕНЮ: вертикальный список + сворачиваемое мега-подменю */
      .menu{
        position:absolute!important;
        left:0!important;right:0!important;
        top:calc(100% + 10px)!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:4px!important;
        width:auto!important;
        padding:10px 8px!important;
        font-size:16px!important;font-weight:700;
        background:#fffff6!important;
        border:1px solid rgba(33,77,43,.10);
        border-radius:18px;
        box-shadow:0 24px 48px rgba(31,79,0,.22);
        max-height:calc(100dvh - 96px);
        overflow-y:auto!important;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
        opacity:0;visibility:hidden;transform:translateY(-8px);
        transition:opacity .22s ease,transform .22s ease,visibility .22s;
      }
      .menu.is-open{
        opacity:1!important;visibility:visible!important;
        transform:translateY(0)!important;
        z-index:55!important;
      }
      .menu > a{
        display:block!important;
        padding:12px 14px!important;
        border-radius:11px;
        color:#173921!important;font-size:16px!important;
        background:transparent;
        text-decoration:none;
      }
      .menu > a:hover,.menu > a:focus-visible{background:rgba(117,189,22,.14)!important}
      .nav-item--mega{
        display:block!important;width:100%!important;
        padding:0!important;
      }
      .nav-link--mega{
        display:flex!important;justify-content:space-between;align-items:center;
        width:100%!important;height:auto!important;
        padding:12px 14px!important;
        color:#173921;font-size:16px;font-weight:700;text-decoration:none;
        border-radius:11px;
      }
      .nav-link--mega svg{width:16px!important;height:16px!important;transition:transform .22s ease}
      .nav-item--mega.is-open > .nav-link--mega{background:rgba(117,189,22,.14)}
      .nav-item--mega.is-open > .nav-link--mega svg{transform:rotate(180deg)}
      .nav-item--mega .mega{
        position:static!important;
        left:auto!important;top:auto!important;
        width:100%!important;
        margin-top:6px!important;
        padding:0!important;
        opacity:1!important;visibility:visible!important;
        transform:none!important;
        transition:none!important;
        display:none;
      }
      .nav-item--mega.is-open .mega{display:block!important}
      .mega-inner{
        grid-template-columns:1fr!important;
        gap:10px!important;
        padding:10px!important;
        border-radius:14px!important;
        background:rgba(248,255,232,.98)!important;
        border:1px solid rgba(33,77,43,.08)!important;
        box-shadow:none!important;
        -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
      }
      .mega-photos{order:1!important;aspect-ratio:16/9!important;border-radius:12px!important}
      .mega-tabs{order:2!important;gap:4px!important}
      .mega-tab{padding:11px 12px!important;border-radius:12px!important;width:100%!important;text-align:left!important}
      .mega-tab-title{font-size:14px!important}
      .mega-tab-note{font-size:12px!important;line-height:1.25}
      .mega-more{
        margin:8px 0 0 0!important;
        padding:12px 14px!important;
        font-size:13px!important;min-height:44px!important;
        align-self:stretch!important;width:100%!important;
      }
}
    @media (max-width:560px){
  .reviews .review-track .review{flex:0 0 100%;grid-template-columns:54px 1fr;padding:18px}
  .geo-card{flex:0 0 100%}
      .brand span{font-size:16px;letter-spacing:-.4px}
      .logo{width:46px;height:38px}
      header{padding-top:17px}
      .brand img.logo{height:32px}
      .nav{gap:10px}
      header.nav--stuck{padding-top:8px;padding-bottom:6px}
      .phone{
        font-size:clamp(12px,3.9vw,16px);letter-spacing:-.3px;
        flex:0 1 auto;justify-content:flex-end;
      }
      .pill{font-size:16px}
      h1{font-size:42px;line-height:1;letter-spacing:-1.8px;min-height:2em}
      .lead{font-size:18px}
      .feature-card{grid-template-columns:1fr;padding:0}
      .feature{border-bottom:1px solid var(--line)}
      .feature:after{display:none!important}
      h2,.works h2,.reviews h2{font-size:34px}
      .review{grid-template-columns:54px 1fr;padding:18px}
      .avatar{width:52px;height:52px}
      .mobile-actions{
        display:flex;position:fixed;z-index:20;left:12px;right:12px;bottom:12px;gap:10px;
      }
      .mobile-actions a{
        flex:1;display:flex;align-items:center;justify-content:center;gap:5px;
        border-radius:999px;padding:12px 8px;font-size:13px;font-weight:900;
        color:#fff;background:#64af0d;box-shadow:0 10px 24px rgba(31,79,0,.22)
      }
      .mobile-actions a svg{width:17px;height:17px;fill:#fff;flex:0 0 auto}
      .mobile-actions a:nth-child(2){background:#239f4d}
      .mobile-actions a:nth-child(3){background:#2596d1}
      .fab-max{right:14px;bottom:78px;width:52px;height:52px}
      .fab-max img{width:29px;height:29px}
      .fab-max .fab-note{display:none}
      body{padding-bottom:0}
      .nav{z-index:56}
      header.menu-open:before{
        content:"";position:fixed;inset:0;z-index:54;
        background:rgba(20,48,28,.45);
      }
      body.menu-open{overscroll-behavior:none}
    
    /* --- мобильные стрелки галереи не выходят за край --- */
    .gallery-wrap{overflow:visible}
    footer{overflow:hidden}
    .foot-bg{transform:none}
}
  @media (max-width:380px){
    /* Телефон в шапке не скрываем: уменьшаем шрифт и оставляем иконку */
    .phone{
      padding:0;height:auto;width:auto;
      flex:1 1 auto;min-width:0;gap:5px;
      justify-content:flex-end;
      font-size:clamp(11px,3.5vw,15px);letter-spacing:-.35px;
    }
    .phone-label{
      display:inline;min-width:0;
      overflow:hidden;text-overflow:ellipsis;
      font-variant-numeric:tabular-nums;
    }
    .phone svg{display:block;width:16px;height:16px;flex:0 0 auto}
    .brand span{font-size:15px}
    .nav{gap:8px}
    .brand img.logo{height:30px}
    .burger{flex:0 0 auto}
  }
  @media (max-width:340px){
    .wrap{width:min(100% - 20px,var(--max))}
    .nav{gap:6px}
    .phone{font-size:clamp(11px,3.6vw,15px);gap:4px}
    .phone svg{width:15px;height:15px}
    .brand img.logo{height:28px}
  }
  @media (max-width:300px){
    .wrap{width:min(100% - 14px,var(--max))}
    .nav{gap:4px}
    .phone{font-size:clamp(9px,3.75vw,12px);gap:3px;letter-spacing:-.45px}
    .phone svg{width:14px;height:14px}
    .brand img.logo{height:26px}
  }
  

    
  
  
  
  

    /* Уважаем настройку «меньше движения» */
    @media (prefers-reduced-motion:reduce){
      header{transition:none}
    }

/* ============================================================
   ПОДКЛЮЧАЕМЫЕ БЛОКИ (inc/blocks/)
   ============================================================ */

.block-lead{max-width:720px;color:var(--muted);font-size:20px;line-height:1.5;margin:0 0 30px;font-weight:500}

.block-more{display:flex;justify-content:center;margin-top:36px}
.btn-ghost{
  display:inline-flex;align-items:center;gap:14px;
  padding:16px 30px;border-radius:999px;
  border:2px solid rgba(117,189,22,.45);background:rgba(255,255,245,.72);
  color:#31582b;font-weight:900;font-size:17px;text-decoration:none;
  box-shadow:0 8px 20px rgba(52,111,22,.08);
  transition:background-color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease
}
.btn-ghost svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease}
.btn-ghost:hover{background:rgba(117,189,22,.14);border-color:#75bd16;transform:translateY(-1px);box-shadow:0 14px 26px rgba(52,111,22,.14)}
.btn-ghost:hover svg{transform:translateX(3px)}

.block-stats{padding:0;position:relative;z-index:5}
.block-stats + .features{margin-top:32px}
@media (min-width:901px){
  .block-stats + .features{margin-top:var(--gap-section)}
}
.stats-row{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
  background:linear-gradient(135deg,rgba(255,255,245,.94),rgba(244,255,227,.84));
  border:1px solid rgba(117,189,22,.18);border-radius:var(--radius);
  padding:28px 32px;box-shadow:var(--shadow);backdrop-filter:blur(8px)
}
.stat{display:flex;flex-direction:column;gap:5px;text-align:center;position:relative;min-width:0}
.stat:not(:last-child):after{content:"";position:absolute;right:-9px;top:8%;bottom:8%;width:1px;background:rgba(117,189,22,.22)}
.stat-value{color:#2b6224;font-size:clamp(30px,3vw,40px);line-height:1;font-weight:950;letter-spacing:-1.2px}
.stat-label{font-size:14px;line-height:1.25;color:var(--muted);font-weight:600}

.block-projects{padding:0 0 var(--gap-section)}
.proj-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.proj{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);
  border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(52,111,22,.10);
  transition:transform .25s ease,box-shadow .25s ease}
.proj:hover{transform:translateY(-3px);box-shadow:0 20px 42px rgba(52,111,22,.16)}
.proj-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#dceac6}
.proj-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.proj:hover .proj-media img{transform:scale(1.04)}
.proj-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:12px;flex:1}
.proj-title{margin:0;font-size:20px;line-height:1.15;color:#224d2b;font-weight:900;letter-spacing:-.4px}
.proj-size{display:inline-block;align-self:flex-start;background:#e9f7d3;color:#3d6a1f;
  font-size:12px;font-weight:900;padding:4px 10px;border-radius:999px;letter-spacing:.1px}
.proj-specs{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.proj-specs li{font-size:12.5px;font-weight:600;color:#456b2f;background:rgba(117,189,22,.12);border-radius:8px;padding:4px 9px}
.proj-bottom{margin-top:auto;padding-top:14px;border-top:1px dashed rgba(80,132,45,.22);
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.proj-price{font-size:14px;font-weight:700;color:var(--muted);white-space:nowrap}
.proj-price b{color:#1e4d18;font-size:19px;font-weight:950;letter-spacing:-.4px}
.proj-btn{display:inline-flex;align-items:center;justify-content:center;
  padding:10px 18px;border-radius:999px;background:linear-gradient(135deg,#73bd0e,#5a9705);
  color:#fff;font-size:13px;font-weight:900;text-decoration:none;white-space:nowrap;
  box-shadow:0 8px 16px rgba(79,151,0,.22);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.proj-btn:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 12px 22px rgba(79,151,0,.30)}

.block-steps{padding:0 0 var(--gap-section)}
.steps-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:14px;max-width:1000px}
.step{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;
  gap:18px;align-items:start;padding:20px 24px;
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 8px 22px rgba(52,111,22,.07)}
.step:not(:last-child):after{content:"";position:absolute;left:50px;top:calc(100% + 2px);
  width:2px;height:14px;border-radius:1px;
  background:linear-gradient(180deg,rgba(117,189,22,.45),rgba(117,189,22,.10))}
.step-num{display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:999px;
  background:linear-gradient(135deg,#a9e85a,#69ae12);color:#fff;
  font-weight:950;font-size:22px;flex:0 0 auto;
  box-shadow:0 8px 18px rgba(93,169,0,.28)}
.step-body{display:flex;flex-direction:column;gap:5px;padding-top:3px;min-width:0}
.step-title{margin:0;font-size:20px;line-height:1.15;color:#224d2b;font-weight:900;letter-spacing:-.35px}
.step-lead{margin:0;font-size:15.5px;line-height:1.5;color:var(--muted)}
.step-time{align-self:flex-start;padding:7px 14px;border-radius:999px;
  background:#eefad7;color:#3d6a1f;font-size:13px;font-weight:900;white-space:nowrap}

.block-video{padding:0 0 var(--gap-section)}
.vid-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.vid{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#0d2212;
  box-shadow:0 16px 36px rgba(34,77,43,.18)}
.vid-trigger{position:absolute;inset:0;display:block;width:100%;height:100%;
  padding:0;border:0;background:none;cursor:pointer;color:inherit;font:inherit;text-align:left}
.vid-trigger img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.vid-trigger:hover img{transform:scale(1.03)}
.vid-overlay{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(9,26,14,.10) 0%,rgba(9,26,14,.05) 55%,rgba(9,26,14,.72) 100%)}
.vid-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:78px;height:78px;border-radius:999px;display:grid;place-items:center;
  background:rgba(255,255,255,.94);box-shadow:0 14px 32px rgba(0,0,0,.35);
  transition:transform .22s ease,background-color .22s ease}
.vid-play svg{width:34px;height:34px;fill:#55960e;margin-left:4px}
.vid-trigger:hover .vid-play{transform:translate(-50%,-50%) scale(1.08);background:#fff}
.vid-label{position:absolute;left:22px;right:22px;bottom:18px;color:#fff;
  font-size:18px;font-weight:900;line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.vid-modal{position:fixed;inset:0;z-index:120;padding:24px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,11,.82);backdrop-filter:blur(6px);animation:vidFade .2s ease both}
.vid-modal[hidden]{display:none}
@keyframes vidFade{from{opacity:0}to{opacity:1}}
.vid-modal-box{position:relative;width:min(100%,1100px);aspect-ratio:16/9;
  background:#000;border-radius:16px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.5)}
.vid-modal-box video{width:100%;height:100%;display:block;background:#000}
.vid-modal-close{position:absolute;top:-16px;right:-16px;width:46px;height:46px;
  border-radius:999px;border:0;background:#fff;color:#1a3d1a;
  font-size:26px;font-weight:400;line-height:1;cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.35)}
.vid-modal-close:hover{background:#f3ffe1;color:#0a2f0a}
body.vid-lock{overflow:hidden}

.block-geo{padding:0 0 var(--gap-section)}
.geo-wrap{position:relative}
.geo-track{display:flex;gap:28px;overflow-x:auto;overflow-y:hidden;
  scroll-behavior:smooth;scroll-snap-type:none;
  padding:22px 28px 46px;margin:-18px -28px -32px;
  scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}
.geo-track::-webkit-scrollbar{display:none}
.geo-track.is-drag{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none}
.geo-card{flex:0 0 calc((100% - 84px)/4);scroll-snap-align:start;padding:22px 22px 24px;min-height:140px;
  background:var(--card);border:1px solid var(--line);border-radius:20px;
  box-shadow:0 12px 26px rgba(52,111,22,.10);display:flex;flex-direction:column;gap:6px;
  user-select:none;-webkit-user-select:none}
.geo-name{font-size:19px;line-height:1.15;color:#224d2b;font-weight:900;letter-spacing:-.3px}
.geo-count{display:inline-block;align-self:flex-start;background:#e9f7d3;color:#3d6a1f;
  font-size:12px;font-weight:900;padding:3px 9px;border-radius:999px}
.geo-note{margin:6px 0 0;font-size:13.5px;line-height:1.4;color:var(--muted)}
.geo-arrow{position:absolute;top:50%;transform:translateY(-50%);
  width:48px;height:48px;border-radius:999px;border:2px solid rgba(117,189,22,.55);
  background:rgba(252,255,244,.96);color:#4b9510;display:grid;place-items:center;
  cursor:pointer;z-index:3;box-shadow:0 10px 22px rgba(52,111,22,.14);
  transition:background-color .2s ease,transform .2s ease,opacity .2s ease}
.geo-arrow:hover{background:#fff}
.geo-arrow:disabled{opacity:.35;cursor:default}
.geo-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.geo-arrow.left{left:-22px}
.geo-arrow.right{right:-22px}

@media (max-width:1100px){
  .geo-card{flex:0 0 calc((100% - 28px)/2)}
  .proj-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .stats-row{padding:24px 20px}
  .geo-arrow.left{left:-10px}
  .geo-arrow.right{right:-10px}
}
@media (max-width:900px){
  .block-lead{font-size:18px;margin-bottom:22px}
  .stats-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 8px;padding:22px 18px}
  .stat:after{display:none}
  .step{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:18px 18px}
  .step-num{width:44px;height:44px;font-size:19px}
  .step:not(:last-child):after{left:42px}
  .step-time{grid-column:2;justify-self:flex-start;margin-top:6px}
  .geo-card{flex:0 0 calc((100% - 28px)/2)}
  .geo-arrow{width:42px;height:42px}
}
@media (max-width:640px){
  .vid-grid{grid-template-columns:1fr;gap:20px}
}
@media (max-width:560px){
  .proj-grid{grid-template-columns:1fr;gap:18px}
  .proj-body{padding:18px 18px 20px}
  .proj-title{font-size:19px}
  .proj-bottom{flex-direction:column;align-items:stretch;gap:10px}
  .proj-price{text-align:center}
  .proj-btn{width:100%;padding:12px 18px}
  .vid-play{width:64px;height:64px}
  .vid-play svg{width:28px;height:28px}
  .vid-label{font-size:16px;left:16px;right:16px;bottom:14px}
  .vid-modal{padding:12px}
  .vid-modal-close{top:-12px;right:-8px;width:40px;height:40px;font-size:22px}
  .geo-card{flex:0 0 100%}
  .geo-arrow{width:38px;height:38px}
  .geo-arrow.left{left:2px}
  .geo-arrow.right{right:2px}
  .step{padding:16px 16px;grid-template-columns:42px minmax(0,1fr);gap:12px;border-radius:16px}
  .step-num{width:38px;height:38px;font-size:17px}
  .step:not(:last-child):after{left:36px;height:12px}
  .step-title{font-size:18px}
  .step-lead{font-size:14.5px}
  .stat-value{font-size:32px}
  .stat-label{font-size:13px}
  .block-more{margin-top:26px}
  .btn-ghost{padding:13px 22px;font-size:15px}
}

/* вкладки каталога */
.proj-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.proj-tab{
  padding:13px 26px;border-radius:999px;cursor:pointer;
  border:2px solid rgba(117,189,22,.35);background:rgba(255,255,245,.78);
  color:#31582b;font-size:16px;font-weight:900;line-height:1;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease
}
.proj-tab:hover{border-color:#75bd16;background:rgba(117,189,22,.10)}
.proj-tab.is-active{
  background:linear-gradient(135deg,#73bd0e,#5a9705);
  border-color:transparent;color:#fff;
  box-shadow:0 10px 22px rgba(79,151,0,.25)
}
.proj-tab:focus-visible{outline:3px solid rgba(117,189,22,.55);outline-offset:2px}
.proj-panel[hidden]{display:none!important}
@media (max-width:560px){
  .proj-tabs{gap:8px;margin-bottom:20px}
  .proj-tab{flex:1 1 auto;padding:12px 16px;font-size:15px}
}

/* ============================================================
   КАРУСЕЛИ «НАШИ РАБОТЫ» И «ОТЗЫВЫ» + БЛИК НА КНОПКАХ
   ============================================================ */

.works .gallery{
  display:flex;gap:28px;align-items:stretch;
  overflow-x:auto;overflow-y:hidden;
  scroll-behavior:smooth;scroll-snap-type:none;
  padding:22px 28px 46px;margin:-18px -28px -32px;
  scrollbar-width:none;
  cursor:grab;-webkit-overflow-scrolling:touch;
}
.works .gallery::-webkit-scrollbar{display:none}
.works .gallery.is-drag{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none}
.works .gallery .work{
  flex:0 0 clamp(238px,23vw,318px);
  height:240px;scroll-snap-align:start;
  border-radius:14px;overflow:hidden;
  box-shadow:0 12px 26px rgba(56,99,27,.12);
  background:#dfeec8;border:1px solid rgba(255,255,255,.72);
  user-select:none;-webkit-user-select:none;
}
.works .gallery .work img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}

.rev-wrap{position:relative}
.reviews .review-track{
  display:flex;gap:28px;text-align:left;
  overflow-x:auto;overflow-y:hidden;
  scroll-behavior:smooth;scroll-snap-type:none;
  padding:22px 28px 46px;margin:-18px -28px -32px;
  scrollbar-width:none;
  cursor:grab;-webkit-overflow-scrolling:touch;
}
.reviews .review-track::-webkit-scrollbar{display:none}
.reviews .review-track.is-drag{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none}
.reviews .review-track .review{
  flex:0 0 calc((100% - 28px)/2);
  scroll-snap-align:start;
  min-height:129px;background:rgba(255,255,246,.88);
  border:1px solid rgba(255,255,255,.8);border-radius:18px;
  box-shadow:0 12px 29px rgba(75,119,31,.11);
  padding:22px 24px;display:grid;grid-template-columns:66px 1fr;
  gap:18px;align-items:center;
  user-select:none;-webkit-user-select:none;
}

.works .arrow,.rev-wrap .arrow{
  padding:0;cursor:pointer;
  transition:background-color .2s ease,transform .2s ease,opacity .2s ease;
}
.works .arrow:disabled,.rev-wrap .arrow:disabled{opacity:.32;cursor:default}
.works .arrow:not(:disabled):hover,.rev-wrap .arrow:not(:disabled):hover{background:#fff}
.works .arrow:focus-visible,.rev-wrap .arrow:focus-visible{outline:3px solid rgba(117,189,22,.55);outline-offset:2px}

.proj-btn{position:relative;overflow:hidden;isolation:isolate}
.proj-btn::before{
  content:"";position:absolute;top:-60%;bottom:-60%;left:0;width:46%;
  background:linear-gradient(100deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.42) 42%,
    rgba(255,255,255,.88) 50%,
    rgba(255,255,255,.42) 58%,
    rgba(255,255,255,0) 100%);
  transform:translateX(-240%) skewX(-22deg);
  pointer-events:none;z-index:3;
}
.proj-btn:hover::before,.proj-btn:focus-visible::before{
  animation:projShine .85s cubic-bezier(.3,.7,.3,1);
}
@keyframes projShine{
  from{transform:translateX(-240%) skewX(-22deg)}
  to  {transform:translateX(520%) skewX(-22deg)}
}
@media (prefers-reduced-motion:reduce){
  .proj-btn:hover::before,.proj-btn:focus-visible::before{animation:none}
}

@media (max-width:900px){
  .works .gallery .work{height:210px}
}
@media (max-width:640px){
  .reviews .review-track .review{flex:0 0 calc((100% - 28px)/2)}
}
@media (max-width:560px){
  .works .gallery .work{flex:0 0 80%;height:238px}
  .reviews .review-track .review{flex:0 0 100%;grid-template-columns:54px 1fr;padding:18px}
  .geo-card{flex:0 0 100%}
}
/* не даём браузеру запустить нативный drag картинок в каруселях */
.works .gallery .work img,
.works .gallery .work svg,
.reviews .review-track .review img,
.reviews .review-track .review svg,
.geo-track .geo-card img,
.geo-track .geo-card svg{
  pointer-events:none;-webkit-user-drag:none;user-drag:none
}

/* на узких экранах отрицательный margin выкидывает карточку за край —
   оставляю только вертикальное расширение, боковое съедаю до 0 */
@media (max-width:560px){
  .works .gallery,
  .reviews .review-track,
  .geo-track{padding-left:28px;padding-right:28px;margin-left:-8px;margin-right:-8px;scroll-snap-type:none;scroll-snap-align:start}
}

/* Geo-карточки светлее остальных — тень у них теряется. Усиливаю,
   привожу к уровню .work / .review, чтобы края читались во всех каруселях. */
.geo-track .geo-card{
  box-shadow:0 12px 26px rgba(52,111,22,.18), 0 2px 6px rgba(52,111,22,.08)
}

/* мобильное поведение — растяжение и компактность */
@media (max-width:900px){
  .nav-item--mega .mega-more,
  .mega .mega-more,
  .mega-more{
    align-self:stretch!important;
    width:100%!important;
    margin:10px 0 0 0!important;
    min-height:50px!important;
    padding:0 20px!important;
    font-size:14px!important;
  }
}

/* ===== «Смотреть все работы» — стиль .btn, pill, белый текст ===== */
.mega-more{
  position:relative!important;
  z-index:15!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  align-self:flex-start!important;
  width:auto!important;
  max-width:100%!important;
  margin:auto 4px 4px 4px!important;
  border:0!important;
  border-radius:999px!important;
  min-height:54px!important;
  padding:0 30px!important;
  background:linear-gradient(135deg,#73bd0e,#5a9705)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:900!important;
  line-height:1.1!important;
  text-decoration:none!important;
  box-shadow:0 14px 26px rgba(79,151,0,.25)!important;
  cursor:pointer!important;
  transition:transform .18s ease,box-shadow .18s ease!important;
}
.mega-more:hover{
  color:#fff!important;
  transform:translateY(-2px)!important;
  box-shadow:0 18px 32px rgba(79,151,0,.31)!important;
}
.mega-more:focus-visible{
  outline:3px solid rgba(115,189,14,.55)!important;
  outline-offset:3px!important;
}
.mega-more:active{
  transform:translateY(0)!important;
  box-shadow:0 8px 18px rgba(79,151,0,.28)!important;
}
.mega-more svg{
  width:18px!important;height:18px!important;flex:0 0 auto!important;
  fill:none!important;stroke:currentColor!important;
  stroke-width:2.6!important;stroke-linecap:round!important;stroke-linejoin:round!important;
}
.mega-more span{position:relative!important;z-index:1!important}

/* мобильное меню — выше контента, кнопка на всю ширину */
@media (max-width:900px){
  .menu.is-open{z-index:45!important}
  .mega-more{
    align-self:stretch!important;
    width:100%!important;
    margin:10px 0 0 0!important;
    min-height:50px!important;
    padding:0 20px!important;
    font-size:14px!important;
  }
}

/* === SVG-иконки в заголовках и кнопках (2026-11-07) === */
.hd-icon{
  display:inline-block;flex:none;
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  vertical-align:middle;margin-right:.3em;
}
h1 > .hd-icon{width:.78em;height:.78em;margin-right:.26em;vertical-align:-.03em;color:#4a8a1a}
h2 > .hd-icon{width:.82em;height:.82em;margin-right:.24em;vertical-align:-.04em;color:#4a8a1a}

/* иконки в карточках проектов и этапах */
.proj-title > .hd-icon,
.step-title > .hd-icon{
  width:1em;height:1em;margin-right:.42em;vertical-align:-.08em;
  color:#5a9705;stroke-width:2.2;
}

/* вкладки каталога */
.proj-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.proj-tab > svg{
  width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;
  stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;
}

/* кнопки «Хочу такой», «Заказать звонок» */
.proj-btn{gap:8px}
.proj-btn > svg,
.call-btn > svg{
  width:1.05em;height:1.05em;flex:none;fill:none;stroke:currentColor;
  stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
}
.call-btn{gap:9px}

/* подвал: телефон в foot-contact */
.foot-contact > svg{
  width:18px;height:18px;flex:none;fill:none;stroke:currentColor;
  stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;
}

/* иконки в мега-меню (шапка) */
.mega-tab-title{display:inline-flex;align-items:center;gap:8px}
.mega-tab-title > svg{
  width:18px;height:18px;flex:none;fill:none;stroke:currentColor;
  stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;
}

/* модальное окно видео — крестик */
.vid-modal-close{display:inline-flex;align-items:center;justify-content:center}
.vid-modal-close > svg{
  width:1em;height:1em;fill:none;stroke:currentColor;
  stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
}

/* мобильная адаптация */
@media (max-width:720px){
  h1 > .hd-icon{width:.65em;height:.65em;margin-right:.22em}
  h2 > .hd-icon{width:.72em;height:.72em;margin-right:.22em}
}
/* Уточнение: в контейнерах с gap внешний отступ иконке не нужен */
.proj-tab > svg,
.proj-btn > svg,
.call-btn > svg,
.foot-contact > svg,
.mega-tab-title > svg,
.vid-modal-close > svg{margin-right:0}

/* Иконки заголовков не должны ломать перенос строк на узких экранах */
h1, h2{overflow-wrap:break-word}
/* ============================================================
   ВЫРАВНИВАНИЕ: заголовки слева на компьютере, по центру на мобиле
   (запрос пользователя, 2026-11-08)
   ============================================================ */

/* 1. Компьютерная версия — все заголовки и пилюли прижаты к левому краю */
.works,
.reviews{text-align:left}

.works .section-pill,
.reviews .section-pill{margin-left:0;margin-right:auto}

/* панели листания остаются по центру независимо от text-align родителя */
.works .works-nav,
.works .carousel-nav,
.reviews .rev-nav,
.reviews .carousel-nav,
.works .block-more,
.reviews .block-more,
.block-more{justify-content:center}

/* 2. Блок этапов — на всю ширину родительского контейнера */
.steps-list{max-width:none;width:100%}

/* 3. Мобильная версия — заголовки и карточки по центру */
@media (max-width:900px){
  .works,
  .reviews{text-align:center}

  .works .section-pill,
  .reviews .section-pill{margin-left:auto;margin-right:auto}

  /* карточки проектов: заголовок, размер, характеристики, цена, кнопка */
  .proj-body{align-items:center;text-align:center}
  .proj-title{text-align:center}
  .proj-size{align-self:center}
  .proj-specs{justify-content:center}
  .proj-bottom{align-items:center;text-align:center}

  /* этапы работы: текст по центру, время под ним */
  .step-body{text-align:center}
  .step-title{text-align:center}
}
/* ============================================================
   МОБИЛЬНАЯ ВЕРСИЯ: все заголовки и подписи секций по центру
   (дополнение к предыдущему блоку, 2026-11-08)
   ============================================================ */
@media (max-width:900px){
  .hero-content,
  .advantages,
  .block-projects,
  .block-steps,
  .works,
  .block-video,
  .reviews,
  .block-geo{text-align:center}

  .advantages h2,
  .block-projects h2,
  .block-steps h2,
  .block-video h2,
  .block-geo h2,
  .works h2,
  .reviews h2,
  .hero-content h1{text-align:center}

  .section-pill{margin-left:auto;margin-right:auto}
  .block-lead{margin-left:auto;margin-right:auto}

  /* списки и характеристики внутри карточек остаются читаемыми */
  .proj-specs{justify-content:center}
  .step-body,
  .step-title{text-align:center}

  /* блок преимуществ: маркированный список выравниваем по центру блока */
  .checks{margin-left:auto;margin-right:auto;text-align:left}
  .checks li{justify-content:flex-start}
}

/* ============================================================
   СТРАНИЦА КОНТАКТОВ (contacts.php) — в стиле главной
   ============================================================ */
.page-hero{
  --wave-h:clamp(72px,7vw,140px);
  margin-top:calc(var(--nav-h,98px) * -1);
  padding:calc(var(--nav-h,98px) + 46px) 0 calc(52px + var(--wave-h));
  position:relative;overflow:hidden;
  border-radius:0;
  background-color:#f6fbea;
}
.page-hero__bg{
  position:absolute;inset:0 0 0 42%;z-index:0;
  background-image:var(--page-hero-img,none);
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
.page-hero__bg:before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,#f7ffe0 0%,rgba(247,255,224,.74) 9%,rgba(247,255,224,.03) 34%);
}
.page-hero:before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(246,255,225,.98) 0%,rgba(244,255,224,.90) 36%,rgba(244,255,224,.30) 56%,rgba(244,255,224,.02) 100%),
    radial-gradient(circle at 25% 90%, rgba(151,224,31,.42), transparent 310px);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 66%,rgba(0,0,0,.5) 86%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 66%,rgba(0,0,0,.5) 86%,transparent 100%);
}
.page-hero:after{content:none}
.page-hero .wrap{position:relative;z-index:3}
.page-hero .page-hero__wave{
  position:absolute;left:0;right:0;bottom:-1px;
  height:var(--wave-h);z-index:2;pointer-events:none;line-height:0;
}
.page-hero .page-hero__wave svg{display:block;width:100%;height:100%}
.page-hero .wave-back{opacity:.95}
.page-hero .wave-mid{opacity:.9}
.page-hero .wave-line{opacity:.9}
.page-hero .page-hero__wave{filter:drop-shadow(0 -8px 18px rgba(69,124,26,.10))}
.page-hero h1{
  font-size:56px;max-width:880px;margin:18px 0 16px;
  color:#234d2e;
}
.page-hero .lead{
  max-width:680px;margin:0;
  color:#35563e;
}
.contacts-body{padding:var(--gap-section) 0 0}
.contacts-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:34px;align-items:start;
}
.contacts-col h2{font-size:36px;margin-bottom:4px}
.contact-list{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:14px}
.contact-row{
  display:flex;align-items:center;gap:16px;
  background:rgba(255,255,246,.9);border:1px solid rgba(255,255,255,.8);
  border-radius:18px;box-shadow:0 12px 29px rgba(75,119,31,.11);
  padding:16px 20px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a.contact-row:hover,a.contact-row:focus-visible{
  transform:translateY(-2px);border-color:rgba(133,203,52,.55);
  box-shadow:0 18px 34px rgba(75,119,31,.17);
}
.contact-ico{
  width:46px;height:46px;flex:0 0 auto;border-radius:14px;
  display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,#94d832,#69ba0e);
  box-shadow:0 8px 16px rgba(79,151,0,.22);
}
.contact-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.contact-ico--max{background:linear-gradient(135deg,#3f97ff,#0b5fd0);box-shadow:0 8px 16px rgba(9,48,110,.28)}
.contact-ico--max img{width:24px;height:24px;border-radius:6px;display:block}
.contact-ico--whatsapp{background:linear-gradient(135deg,#3ee07a,#1faf50);box-shadow:0 8px 16px rgba(18,140,60,.26)}
.contact-ico--telegram{background:linear-gradient(135deg,#4fc3f7,#2196d6);box-shadow:0 8px 16px rgba(23,120,180,.26)}
.contact-ico--whatsapp svg,.contact-ico--telegram svg{color:#fff}
.contact-ico--whatsapp svg{width:26px;height:26px}
.contact-ico--telegram svg{width:24px;height:24px}
.contact-row b{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#52705a;margin-bottom:3px}
.contact-row span{font-size:18px;font-weight:800;color:#224d2b;line-height:1.25}
.contact-form{
  background:rgba(255,255,246,.93);border:1px solid rgba(255,255,255,.85);
  border-radius:var(--radius);box-shadow:var(--shadow);
  padding:clamp(22px,3vw,34px);scroll-margin-top:120px;
}
.contact-form h2{font-size:32px;letter-spacing:-1px;margin:0 0 6px}
.contact-form .form-lead{margin:0 0 22px;color:#41603f;font-size:15px;line-height:1.45}
.field{display:grid;gap:7px;margin-bottom:15px}
.field label{font-size:14px;font-weight:800;color:#33522f}
.field label .req{color:#c0552b}
.field input,.field textarea{
  width:100%;font:inherit;font-size:16px;color:#22402b;
  padding:13px 16px;border-radius:14px;
  border:1.6px solid rgba(80,132,45,.30);background:#fdfff7;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.field textarea{min-height:118px;resize:vertical}
.field input:focus,.field textarea:focus{
  outline:none;border-color:#7ac21c;background:#fff;
  box-shadow:0 0 0 4px rgba(122,194,28,.16);
}
.field.has-error input,.field.has-error textarea{border-color:#d0663a;background:#fff8f5}
.field-error{font-size:12.5px;color:#b8491f;font-weight:700}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.consent{display:flex;align-items:flex-start;gap:11px;margin:6px 0 18px;font-size:13.5px;line-height:1.4;color:#41603f}
.consent input{width:19px;height:19px;flex:0 0 auto;margin:2px 0 0;accent-color:#75bd16}
.consent a{color:#3f7d17;font-weight:700;text-decoration:underline;text-decoration-thickness:1px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.form-actions .btn{min-width:230px}
.form-note{font-size:12.5px;color:#5b7a5f;line-height:1.4;max-width:260px}
.form-status{margin:0 0 20px;padding:14px 18px;border-radius:14px;font-size:15px;font-weight:600;line-height:1.45}
.form-status.ok{background:#eefbdc;border:1px solid #a8dc6b;color:#2c5c18}
.form-status.err{background:#fff1ec;border:1px solid #ecb5a0;color:#8d3313}
.form-status ul{margin:8px 0 0;padding-left:18px;font-weight:500}
.contacts-map{padding:var(--gap-section) 0 0}
.map-card{
  position:relative;border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);
  background:#e8f3d8;line-height:0;
}
.map-card iframe{width:100%;height:430px;border:0;display:block}
.map-note{
  display:flex;align-items:center;gap:10px;justify-content:space-between;
  flex-wrap:wrap;margin-top:16px;font-size:14.5px;color:#41603f;
}
.map-note a{font-weight:800;color:#3f7d17;text-decoration:underline;text-decoration-thickness:1px}
@media (max-width:980px){
  .contacts-grid{grid-template-columns:1fr;gap:26px}
  .page-hero h1{
  font-size:56px;max-width:880px;margin:18px 0 16px;
  color:#234d2e;
}
  .contacts-col h2{font-size:30px}
}
@media (max-width:600px){
  .page-hero{padding-top:calc(var(--nav-h,98px) + 28px)}
  .page-hero h1{
  font-size:56px;max-width:880px;margin:18px 0 16px;
  color:#234d2e;
}
  .field-row{grid-template-columns:1fr}
  .map-card iframe{height:340px}
  .contact-row span{font-size:16.5px}
  .form-note{max-width:none}
}

/* ============================================================
   Модальное окно заказа проекта «Хочу такой»
   Подложка: светлая полупрозрачная, эффект мутного стекла
   ============================================================ */
.order-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto;overscroll-behavior:contain}
.order-modal[hidden]{display:none}

/* подложка — мутное стекло */
.order-backdrop{
  position:fixed;inset:0;z-index:0;
  background:rgba(240,250,224,.55);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .order-backdrop{background:rgba(240,250,224,.92)}
}

.order-dialog{
  position:relative;z-index:1;
  width:min(560px,100%);
  margin:auto;
  padding:30px 32px 28px;
  border-radius:26px;
  background:rgba(255,255,248,.94);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 30px 70px rgba(35,77,46,.22),0 2px 0 rgba(255,255,255,.9) inset;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  animation:order-pop .22s ease-out;
}
@keyframes order-pop{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}

.order-close{
  position:absolute;top:12px;right:12px;
  width:40px;height:40px;border:0;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(122,194,28,.12);color:#2f5a1c;cursor:pointer;
  transition:background .18s ease,transform .18s ease;
}
.order-close:hover{background:rgba(122,194,28,.24);transform:rotate(90deg)}
.order-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}

.order-head{padding-right:44px}
.order-pill{
  display:inline-block;margin-bottom:12px;padding:6px 14px;border-radius:999px;
  background:#e6f7c9;color:#2f5a1c;font-size:12.5px;font-weight:800;
  letter-spacing:.4px;text-transform:uppercase;
}
.order-title{margin:0 0 8px;font-size:29px;line-height:1.15;letter-spacing:-.7px;color:var(--dark)}
.order-lead{margin:0 0 20px;font-size:15px;line-height:1.45;color:var(--muted)}

/* карточка выбранного проекта */
.order-project{
  display:flex;gap:16px;align-items:center;
  margin-bottom:20px;padding:12px;
  border-radius:18px;background:rgba(239,251,220,.75);
  border:1px solid rgba(122,194,28,.22);
}
.order-thumb{
  flex:0 0 112px;width:112px;height:80px;border-radius:12px;overflow:hidden;
  background:#e8f3d8;box-shadow:0 8px 18px rgba(52,111,22,.14);
}
.order-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.order-info{display:grid;gap:5px;min-width:0}
.order-info b{font-size:16px;line-height:1.25;color:#22402b}
.order-size{font-size:13px;color:#5b7a5f}
.order-price{font-size:14px;color:#41603f}
.order-price b{font-size:17px;color:#2f5a1c;white-space:nowrap}

/* форма */
.order-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.order-form .consent{margin:2px 0 10px}
.order-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.order-actions .btn{min-width:220px}
.order-call{font-size:13.5px;font-weight:700;color:#3f7d17;text-decoration:none;border-bottom:1px dashed rgba(63,125,23,.5)}
.order-call:hover{color:#2f5a1c;border-bottom-color:#2f5a1c}
.order-form.is-sending .btn{opacity:.65;pointer-events:none}

.order-status{
  margin:0 0 16px;padding:13px 16px;border-radius:14px;
  font-size:14.5px;font-weight:600;line-height:1.45;
}
.order-status.ok{background:#eefbdc;border:1px solid #a8dc6b;color:#2c5c18}
.order-status.err{background:#fff1ec;border:1px solid #ecb5a0;color:#8d3313}
.order-status ul{margin:6px 0 0;padding-left:18px;font-weight:500}

/* блокировка прокрутки страницы */
body.order-lock{overflow:hidden}

@media (max-width:600px){
  .order-modal{padding:10px}
  .order-dialog{padding:18px 16px 16px;border-radius:18px}
  .order-pill{margin-bottom:8px;padding:5px 12px;font-size:11.5px}
  .order-title{font-size:21px}
  .order-lead{font-size:13.5px;margin-bottom:12px;line-height:1.35}
  .order-head{padding-right:38px}
  .order-close{top:8px;right:8px;width:36px;height:36px}
  .order-project{flex-direction:row;align-items:center;gap:10px;margin-bottom:12px;padding:9px}
  .order-thumb{flex:0 0 76px;width:76px;height:58px;border-radius:10px}
  .order-info b{font-size:14px}
  .order-price b{font-size:15px}
  .order-form .field{margin-bottom:10px;gap:5px}
  .order-form .field label{font-size:13px}
  .order-form .field input,
  .order-form .field textarea{padding:10px 13px;font-size:15px;border-radius:12px}
  .order-form .field textarea{min-height:64px}
  .order-form .field-row{grid-template-columns:1fr;gap:0}
  .order-form .consent{font-size:12.5px;margin:0 0 8px;gap:9px}
  .order-actions .btn{width:100%;min-width:0}
  .order-call{font-size:12.5px}
}

/* страница политики */
.legal{padding:calc(var(--nav-h,98px) + 30px) 0 70px;max-width:900px}
.legal h1{margin:0 0 8px;font-size:clamp(28px,3.6vw,42px);letter-spacing:-1px;color:var(--dark)}
.legal-meta{margin:0 0 26px;font-size:14px;color:var(--muted)}
.legal h2{margin:32px 0 10px;font-size:21px;letter-spacing:-.3px;color:var(--dark)}
.legal p,.legal li{font-size:15.5px;line-height:1.65;color:#33522f}
.legal ul,.legal ol{margin:0 0 10px;padding-left:22px;display:grid;gap:6px}
.legal a{color:#3f7d17;font-weight:600}
.legal code{font-size:13.5px;padding:1px 6px;border-radius:6px;background:#eef7de}
.legal-contacts{list-style:none;padding-left:0}
.legal-back{margin-top:36px}
/* Кнопка «Хочу такой» стала <button> вместо <a> — убираем нативную рамку
   и прочие умолчания браузера, которые рисуют полоску вокруг кнопки */
.proj-btn{
  border:0;
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.proj-btn:focus-visible{
  outline:3px solid rgba(122,194,28,.55);
  outline-offset:3px;
}
.proj-btn::-moz-focus-inner{border:0;padding:0}
/* После закрытия окна заказа фокус возвращается на кнопку программно.
   Браузер считает это клавиатурным фокусом и рисует обводку — гасим её,
   пока пользователь сам не начнёт ходить по странице клавишей Tab. */
.proj-btn.is-focus-quiet,
.proj-btn.is-focus-quiet:focus,
.proj-btn.is-focus-quiet:focus-visible{outline:none!important}
/* ============================================================
   Модальное окно «Заказать звонок» — та же стеклянная подложка
   ============================================================ */
.call-perks{
  list-style:none;margin:0 0 18px;padding:0;
  display:grid;gap:8px;
}
.call-perks li{
  position:relative;padding-left:28px;
  font-size:14px;line-height:1.4;color:#3c5a3a;
}
.call-perks li::before{
  content:"";position:absolute;left:0;top:2px;
  width:18px;height:18px;border-radius:999px;
  background:#e6f7c9 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f5a1c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L19 7'/%3E%3C/svg%3E") center/12px 12px no-repeat;
}
.call-form .order-actions .btn{min-width:200px}

@media (max-width:600px){
  .call-perks{margin-bottom:12px;gap:6px}
  .call-perks li{font-size:12.5px;padding-left:24px}
  .call-perks li::before{width:16px;height:16px;background-size:10px 10px}
}
/* «Заказать звонок» стал <button> — снимаем нативные умолчания браузера */
.call-btn{
  border:0;
  -webkit-appearance:none;
  appearance:none;
  font-family:inherit;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.call-btn.is-focus-quiet,
.call-btn.is-focus-quiet:focus,
.call-btn.is-focus-quiet:focus-visible{outline:none!important}

/* --- страница контактов: читаемость меню поверх фото --- */
.page-contacts header .logo{filter:drop-shadow(0 2px 8px rgba(6,20,10,.28))}


/* --- контакты: чистый фон и обрезка фото по волне --- */
body.page-contacts{
  background:#f6fbea;
}
body.page-contacts .page{
  background:none;
}
.page-hero{
  background-color:#f6fbea;
}
.page-hero .page-hero__wave{
  filter:none;
}
.page-hero .wave-back{opacity:1}
.page-hero .wave-mid{opacity:1}
.page-hero .wave-front{opacity:1}
.page-hero .wave-line{opacity:.85}
@media (max-width:900px){
  body.page-contacts{background:#f6fbea}
}


/* мобильная раскладка шапки контактов — как на главной */
@media (max-width:900px){
  /* на мобиле фото на всю шапку, текст читаем за счёт вертикального градиента */
  .page-hero__bg{inset:0}
  .page-hero__bg:before{
    background:linear-gradient(180deg,rgba(247,255,224,.99) 0%,rgba(247,255,224,.98) 40%,rgba(247,255,224,.95) 58%,rgba(247,255,224,.80) 72%,rgba(247,255,224,.34) 86%,rgba(247,255,224,0) 100%);
  }
  .page-hero:before{
    background:
      linear-gradient(90deg,rgba(246,255,225,.96) 0%,rgba(244,255,224,.80) 46%,rgba(244,255,224,.20) 78%,rgba(244,255,224,.02) 100%),
      radial-gradient(circle at 25% 90%, rgba(151,224,31,.34), transparent 260px);
  }
}


/* ============ Страница благодарности ============ */
.thanks-body{padding:var(--gap-section) 0 0}
.thanks-head{max-width:780px}
.thanks-head h2{font-size:38px}
.thanks-steps{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;margin:34px 0 0;
}
.thanks-step{
  position:relative;
  background:rgba(255,255,246,.93);border:1px solid rgba(255,255,255,.85);
  border-radius:var(--radius);box-shadow:var(--shadow);
  padding:clamp(22px,2.6vw,30px);
  overflow:hidden;
}
.thanks-step:before{
  content:"";position:absolute;inset:0 0 auto;height:4px;
  background:linear-gradient(90deg,#8fdc2b,#5a9705);opacity:.9;
}
.thanks-num{
  position:absolute;right:18px;top:10px;
  font-size:64px;font-weight:950;line-height:1;
  color:rgba(117,189,22,.16);letter-spacing:-4px;
}
.thanks-ico{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:16px;
  background:linear-gradient(135deg,#bde98b,#8ed13f);
  box-shadow:0 10px 22px rgba(93,169,0,.20);
  margin-bottom:14px;
}
.thanks-ico svg{
  width:26px;height:26px;fill:none;stroke:#2b5c18;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;
}
.thanks-step h3{margin:0 0 8px;font-size:21px;letter-spacing:-.5px;color:#224d2b}
.thanks-step p{margin:0;color:#4a6650;font-size:15px;line-height:1.5}

.thanks-cta{
  display:flex;align-items:center;justify-content:space-between;gap:26px;
  flex-wrap:wrap;margin:32px 0 0;
  padding:clamp(22px,3vw,32px);
  border-radius:var(--radius);
  background:
    radial-gradient(circle at 92% 16%, rgba(164,226,68,.34), transparent 220px),
    linear-gradient(135deg,#f4ffe2,#eaf9d0);
  border:1px solid rgba(140,200,60,.36);
  box-shadow:var(--shadow);
}
.thanks-cta__text{display:grid;gap:6px;max-width:560px}
.thanks-cta__text b{font-size:22px;color:#224d2b;letter-spacing:-.6px}
.thanks-cta__text span{color:#41603f;font-size:15px;line-height:1.45}
.thanks-cta__actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}

.thanks-note{
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  margin:26px 0 0;color:#52705a;font-size:15px;
}
.thanks-note a{
  font-weight:800;color:#3f7a12;border-bottom:1px solid rgba(117,189,22,.45);
  padding-bottom:1px;
}
.thanks-note a:hover{color:#2c5c18;border-bottom-color:#2c5c18}

@media (max-width:980px){
  .thanks-steps{grid-template-columns:minmax(0,1fr)}
  .thanks-num{font-size:54px}
}
@media (max-width:900px){
  .thanks-head h2{font-size:30px}
  .thanks-cta__actions .btn,
  .thanks-cta__actions .btn-ghost{width:100%;justify-content:center}
  .thanks-cta__actions{width:100%}
}

    /* --- страницы «Наши работы» / «Отзывы» / «Комплектация» --- */
    body.page-inner{background:#f6fbea}
    body.page-inner .page{background:none}

    .works-page,.reviews-page,.komp-page,.komp-materials,
    .block-steps,.block-geo,.block-stats{scroll-margin-top:calc(var(--nav-h,98px) + 20px)}

    /* Наши работы */
    .works-page{padding:0 0 var(--gap-section);text-align:center}
    .works-grid{
      display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:34px;
    }
    .works-card{
      margin:0;background:rgba(255,255,246,.88);border:1px solid rgba(255,255,255,.8);
      border-radius:18px;overflow:hidden;box-shadow:0 12px 29px rgba(75,119,31,.11);
      display:flex;flex-direction:column;
    }
    .works-card img{
      width:100%;aspect-ratio:4/3;object-fit:cover;display:block;
    }
    .works-card figcaption{
      padding:14px 18px;font-weight:800;font-size:15px;color:#2a4630;text-align:left;
      border-top:1px solid rgba(117,189,22,.16);
    }

    /* Отзывы */
    .reviews-page{padding:0 0 var(--gap-section);text-align:center}
    .reviews-grid{
      display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:34px;text-align:left;
    }
    .review.review--card{
      grid-template-columns:66px 1fr;align-items:start;min-height:0;height:100%;
    }
    .review--card .review-body{display:flex;flex-direction:column;gap:4px}
    .review--card .review-city{font-size:13px;font-weight:700;color:#6d8a63}
    .review--card .stars{margin:2px 0 6px;letter-spacing:2px;color:#f0a029;font-size:15px}
    .reviews-cta{
      margin-top:34px;display:flex;align-items:center;justify-content:space-between;gap:22px;
      flex-wrap:wrap;text-align:left;
      background:rgba(255,255,246,.9);border:1px solid rgba(255,255,255,.8);
      border-radius:18px;padding:22px 26px;box-shadow:0 12px 29px rgba(75,119,31,.11);
    }
    .reviews-cta b{display:block;font-size:17px;color:#2a4630;margin-bottom:4px}
    .reviews-cta span{font-size:15px;color:#42634a;font-weight:500}

    /* Комплектация: пакеты */
    .komp-page{padding:0 0 var(--gap-section);text-align:center}
    .pack-grid{
      display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:38px;align-items:stretch;
    }
    .pack{
      position:relative;display:flex;flex-direction:column;text-align:left;
      background:rgba(255,255,246,.92);border:1px solid rgba(255,255,255,.85);
      border-radius:20px;padding:26px 24px 24px;box-shadow:0 12px 29px rgba(75,119,31,.11);
    }
    .pack--best{
      border-color:rgba(117,189,22,.55);
      box-shadow:0 18px 40px rgba(75,119,31,.2);
    }
    .pack-badge{
      position:absolute;top:-13px;left:50%;transform:translateX(-50%);
      white-space:nowrap;font-size:12px;font-weight:900;letter-spacing:.3px;
      color:#fff;background:linear-gradient(135deg,#8fdc2b,#5d8f22);
      border-radius:999px;padding:6px 14px;box-shadow:0 8px 18px rgba(93,143,34,.3);
    }
    .pack-name{margin:0 0 6px;font-size:24px;color:#23421f}
    .pack-lead{margin:0 0 16px;font-size:14px;line-height:1.4;color:#42634a;font-weight:500}
    .pack-price{
      font-size:28px;font-weight:900;color:#31582b;letter-spacing:-.5px;margin-bottom:16px;
    }
    .pack-price span{font-size:18px;font-weight:800;color:#6d8a63}
    .pack-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
    .pack-list li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.35;color:#2f4a35;font-weight:500}
    .pack-list .check{
      flex:0 0 auto;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;
      background:rgba(117,189,22,.18);color:#4e8c05;font-size:12px;font-weight:900;margin-top:1px;
    }
    .pack-note{margin:0 0 18px;font-size:13px;font-style:italic;color:#6d8a63}
    .pack .btn,.pack .btn-outline{margin-top:auto;width:100%;justify-content:center}

    /* Комплектация: таблица материалов */
    .komp-materials{padding:0 0 var(--gap-section);text-align:center}
    .komp-table-wrap{
      margin-top:30px;overflow-x:auto;-webkit-overflow-scrolling:touch;
      background:rgba(255,255,246,.9);border:1px solid rgba(255,255,255,.85);
      border-radius:18px;box-shadow:0 12px 29px rgba(75,119,31,.11);
    }
    .komp-table{width:100%;border-collapse:collapse;min-width:640px;text-align:left}
    .komp-table th,.komp-table td{padding:14px 18px;font-size:15px;vertical-align:top}
    .komp-table thead th{
      background:rgba(200,239,160,.55);color:#31582b;font-weight:900;font-size:14px;
      text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;
    }
    .komp-table tbody tr+tr{border-top:1px solid rgba(117,189,22,.16)}
    .komp-table tbody th{font-weight:900;color:#23421f;white-space:nowrap}
    .komp-table tbody td{color:#2f4a35;font-weight:500;line-height:1.4}
    .komp-table tbody td:last-child{color:#5c7a52}

    /* Комплектация: призыв */
    .komp-cta{padding:0 0 var(--gap-section)}
    .komp-cta__inner{
      display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;
      background:linear-gradient(135deg,rgba(200,239,160,.75),rgba(255,255,246,.9));
      border:1px solid rgba(255,255,255,.85);border-radius:20px;padding:26px 30px;
      box-shadow:0 12px 29px rgba(75,119,31,.11);text-align:left;
    }
    .komp-cta__inner b{display:block;font-size:19px;color:#23421f;margin-bottom:5px}
    .komp-cta__inner span{font-size:15px;color:#3d5c42;font-weight:500}

    @media (max-width:1100px){
      .works-grid,.reviews-grid,.pack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    }
    @media (max-width:760px){
      .works-grid,.reviews-grid,.pack-grid{grid-template-columns:1fr}
      .review.review--card{grid-template-columns:56px 1fr}
      .reviews-cta,.komp-cta__inner{padding:20px 22px}
      .reviews-cta .btn,.komp-cta__inner .btn{width:100%;justify-content:center}
    }
    @media (max-width:560px){
      .pack{padding:22px 18px}
      .pack-price{font-size:25px}
      .komp-table th,.komp-table td{padding:12px 14px;font-size:14px}
    }

    /* --- Галерея «Наши работы» --- */
    .gal{
      display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:32px;
    }
    .gal-item{
      display:block;padding:0;border:0;cursor:zoom-in;position:relative;overflow:hidden;
      border-radius:14px;background:#dfeec8;line-height:0;
      box-shadow:0 10px 24px rgba(56,99,27,.12);
      transition:transform .22s ease,box-shadow .22s ease;
    }
    .gal-item img{
      display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
      transition:transform .35s ease;
    }
    .gal-item:after{
      content:"";position:absolute;inset:0;border-radius:14px;
      border:1px solid rgba(255,255,255,.7);pointer-events:none;
      transition:border-color .22s ease,background-color .22s ease;
    }
    .gal-item:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(56,99,27,.2)}
    .gal-item:hover img{transform:scale(1.05)}
    .gal-item:hover:after{background:rgba(117,189,22,.1);border-color:#75bd16}
    .gal-item:focus-visible{outline:3px solid #8fdc2b;outline-offset:3px}
    .gal-note{margin:18px 0 0;font-size:14px;font-weight:600;color:#5c7a52}

    @media (max-width:1100px){
      .gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    }
    @media (max-width:560px){
      .gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
      .gal-item{border-radius:12px}
      .gal-item:after{border-radius:12px}
    }

    /* --- Лайтбокс --- */
    .lightbox{
      position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
      padding:20px;
    }
    .lightbox[hidden]{display:none}
    .lightbox__backdrop{
      position:absolute;inset:0;background:rgba(10,26,14,.86);backdrop-filter:blur(3px);
    }
    .lightbox__stage{
      position:relative;z-index:1;display:flex;align-items:center;justify-content:center;
      gap:12px;max-width:min(1200px,100%);max-height:100%;
    }
    .lightbox__figure{
      margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;
      max-width:min(1100px,calc(100vw - 140px));max-height:calc(100vh - 40px);
    }
    .lightbox__img{
      display:block;max-width:100%;max-height:calc(100vh - 120px);
      width:auto;height:auto;border-radius:14px;background:#0d1f13;
      box-shadow:0 24px 60px rgba(0,0,0,.5);
    }
    .lightbox__bar{
      display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
      color:#eaf7dc;font-size:14px;font-weight:700;
    }
    .lightbox__count b{color:#c8efa0}
    .lightbox__caption{color:#c9dcc0;font-weight:600}
    .lightbox__btn{
      flex:0 0 auto;width:52px;height:52px;border-radius:50%;cursor:pointer;
      display:grid;place-items:center;border:1px solid rgba(255,255,255,.32);
      background:rgba(255,255,255,.12);color:#fff;
      transition:background-color .2s ease,transform .2s ease,border-color .2s ease;
    }
    .lightbox__btn svg{
      width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;
      stroke-linecap:round;stroke-linejoin:round;
    }
    .lightbox__btn:hover{background:rgba(200,239,160,.35);border-color:#c8efa0;transform:scale(1.06)}
    .lightbox__btn:focus-visible{outline:3px solid #8fdc2b;outline-offset:2px}
    .lightbox__btn--close{position:absolute;top:-6px;right:0;width:44px;height:44px;z-index:2}
    .lightbox__stage > .lightbox__btn--close{top:0;right:0}

    @media (max-width:860px){
      .lightbox{padding:12px}
      .lightbox__stage{gap:8px}
      .lightbox__figure{max-width:calc(100vw - 100px)}
      .lightbox__btn{width:44px;height:44px}
      .lightbox__btn svg{width:20px;height:20px}
      .lightbox__btn--close{top:-4px;right:-4px;width:40px;height:40px}
    }
    @media (max-width:560px){
      .lightbox{padding:8px}
      .lightbox__stage{flex-wrap:wrap;gap:6px;justify-content:center}
      .lightbox__figure{order:-1;flex:1 0 100%;max-width:100%;max-height:none}
      .lightbox__img{max-height:calc(100vh - 150px);border-radius:10px}
      .lightbox__btn--prev,.lightbox__btn--next{order:1}
      .lightbox__btn--close{top:6px;right:6px}
      .lightbox__bar{order:2;flex:1 0 100%;font-size:13px}
    }
    body.lb-open{overflow:hidden}

    /* --- Страница «Видео работ» --- */
    body.page-video{background:#f6fbea}
    .video-page{padding:0 0 var(--gap-section);text-align:center}
    .vgrid{
      display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:34px;text-align:left;
    }
    .vcard{
      display:flex;flex-direction:column;overflow:hidden;
      background:rgba(255,255,246,.9);border:1px solid rgba(255,255,255,.85);
      border-radius:18px;box-shadow:0 12px 29px rgba(75,119,31,.11);
    }
    .vcard-media{
      position:relative;display:block;width:100%;padding:0;border:0;cursor:pointer;
      aspect-ratio:4/3;background:#0d2212;overflow:hidden;line-height:0;
    }
    .vcard-media img{
      width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;
    }
    .vcard-media:hover img{transform:scale(1.04)}
    .vcard-media:after{
      content:"";position:absolute;inset:0;pointer-events:none;
      background:linear-gradient(180deg,rgba(6,24,12,0) 45%,rgba(6,24,12,.45) 100%);
    }
    .vcard-play{
      position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
      width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
      background:rgba(255,255,255,.92);color:#2f6a12;
      box-shadow:0 10px 24px rgba(0,0,0,.28);transition:transform .22s ease,background-color .22s ease;
    }
    .vcard-play svg{width:24px;height:24px;fill:currentColor;stroke:none;margin-left:2px}
    .vcard-media:hover .vcard-play{transform:translate(-50%,-50%) scale(1.08);background:#fff}
    .vcard-media:focus-visible{outline:3px solid #8fdc2b;outline-offset:3px}
    .vcard-dur{
      position:absolute;right:10px;bottom:10px;z-index:2;
      padding:3px 8px;border-radius:7px;background:rgba(8,20,11,.78);
      color:#fff;font-size:12px;font-weight:800;letter-spacing:.3px;
    }
    .vcard-body{padding:12px 15px 14px;display:flex;flex-directi