.p0{
padding:  0;
}
@media (min-width:  1200px){
.container{
width:  1200px;
}

}
* {
    box-sizing: border-box;
}
html, body {
    overflow-x: hidden;
}
body{
	position: relative;
    padding-top: 130px; /* Для десктопной версии */
	min-height: 100vh; /* Предотвратите сдвиги из-за нехватки контента */
    transition: none; /* Уберите переходы */
	margin:  0;
	font-family:  -apple-system, BlinkMacSystemFont, "Segoe UI", Montserrat, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	color:  #212529;
	text-align:  left;
	background-color:  #fff;
}
/* Класс для смещения вниз при первом скролле */
body.scrolled {
    top: 0px; /* Смещение вниз на 50px */
}
.fleft{
float:  left;
}
.fright{
float:  right;
}
section.row,
header.row,
footer.row{
margin:  0px;
position:  relative;
}
a,
.btn,
button{
outline:  none;
-webkit-transition:  all 300ms ease-in-out 0s;
transition:  all 300ms ease-in-out 0s;
}
a:focus,
.btn:focus,
button:focus,
a:hover,
.btn:hover,
button:hover{
outline:  none;
text-decoration:  none;
-webkit-transition:  all 300ms ease-in-out 0s;
transition:  all 300ms ease-in-out 0s;
}
.contentRowPad{
padding-top:  0px;
padding-bottom:  10px;
}
.contentRowPad.pb0{
padding-bottom:  0px;
}
.sectionTitle{
color:  #303030;
text-align:  center;
max-width:  770px;
margin:  0 auto 0px;
}
.sectionTitle h4{
margin-top:  0;
margin-bottom:  15px;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
text-transform:  uppercase;
}
.sectionTitle p{
line-height:  24px;
font-family:  'Lato', sans-serif;
font-style:  italic;
margin:  0;
}

/* Fix the topRow with modern styling and spacing */
header .topRow {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1100; /* Higher than bottomRow */
    font-size: 12px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    color: #676767;
    line-height: 50px;
    background: #303030;
}
header .topRow .top-row-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    min-height: 50px;
}
header .topRow .top-row-item {
    margin: 0 10px; /* Reduced margin for tighter layout */
}

header .topRow .logo {
    font-weight: 600;
    color: #106400;
}

header .topRow .contact-info {
    display: flex;
    gap: 15px;
}

header .topRow .contact-info .phone,
header .topRow .contact-info .email {
    color: #106400;
}

header .topRow .contact-info .email a {
    color: #106400;
    text-decoration: none;
}

header .topRow .contact-info .email a:hover {
    text-decoration: underline;
}

header .topRow .search-cart-group {
    display: flex;
    align-items: center;
    gap: 15px; /* Space between search and cart */
}

header .topRow .search {
    position: relative;
}

header .topRow .search .search-input {
	width: 150px; /* Fixed width */
    padding: 5px 10px;
    border: 1px solid #106400;
    border-radius: 4px;
    background-color: #ffffff;
    color: #2a2a2a;
    font-size: 12px;
    width: 150px;
    transition: width 0.3s ease;
}

header .topRow .search .search-input:focus {
    outline: none;
    width: 150px; /* Prevent expansion */
    border-color: #106400;
    box-shadow: 0 0 5px rgba(0, 170, 255, 0.5);
}

header .topRow .cart a {
    color: #106400;
    text-decoration: none;
    align-items: center;
    gap: 20px;
}

header .topRow .cart a:hover {
    text-decoration: underline;
}

header .topRow .cart .fa-shopping-cart {
    color: #106400;
}

/* Hide topRow when it has the hidden class */
header .topRow.hidden {
    opacity: 0;
    visibility: hidden;
}
header .topRow.visible {
    opacity: 1;
    visibility: visible;
}

/* Remove fixed-header class effects, as topRow and bottomRow are now independently fixed */
.fixed-header {
    position: static; /* Remove fixed positioning from the entire header */
}

/* Neutralize .hidden and .visible to prevent interference */
.fixed-header.hidden,
.fixed-header.visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}


/* Fix the bottomRow below the topRow */
header .bottomRow {
    position: fixed;
    top: 50px; /* Default position; will be adjusted by JS */
	height: 62px;
    width: 100%;
    z-index: 1000;
    background-color: #ffffff;
}
/* Ensure navbar styles remain consistent */
header .bottomRow .navbar {
    border: none;
    background: none;
    -webkit-box-shadow: none;
    box-shadow: none;
}
header .bottomRow .navbar .navbar-header {
    display: flex;
    align-items: center; /* Vertically centers the logo */
}
header .bottomRow .navbar .navbar-header .navbar-brand {
    padding: 0; /* Remove default padding if any */
    margin: 0 auto; /* Center horizontally */
    display: block; /* Ensures it behaves as a block for centering */
}
header .bottomRow .navbar .navbar-header .navbar-brand img {
    width: 200px; /* Keep the width */
    height: auto; /* Let height adjust proportionally */
    object-fit: contain; /* Better fit than scale-down for logos */
    max-height: 62px; /* Limit max height to fit within the navbar */
    display: block; /* Ensure it respects centering */
    margin: 20px; /* Add some vertical spacing and center */
    
}

header .bottomRow .navbar #mainNav .nav li a {
    padding: 0 15px;
    line-height: 62px;
    text-transform: uppercase;
    font-family: 'Montserrat', sans-serif;
    color: #303030;
}

header .bottomRow .navbar #mainNav .nav li a:hover{
background:  none;
-webkit-box-shadow:  none;
box-shadow:  none;
color:  #2f7829;
}
header .bottomRow .navbar #mainNav .nav li a:focus{
background:  none;
-webkit-box-shadow:  none;
box-shadow:  none;
}
header .bottomRow .navbar #mainNav .nav li.active a{
background:  none;
-webkit-box-shadow:  none;
box-shadow:  none;
color:  #2f7829;
position:  relative;
}
header .bottomRow .navbar #mainNav .nav li.active a:after{
width:  4px;
height:  4px;
content:  '';
background:  #2f7829;
display:  block;
position:  absolute;
top:  65px;
left:  -webkit-calc(50% - 2px);
left:  calc(50% - 2px);
border-radius:  100%;
}
header .bottomRow .navbar #mainNav .nav li.open a{
color:  #2f7829;
}
header .bottomRow .navbar #mainNav .nav li.open a:after{
display:  none;
}
header .bottomRow .navbar #mainNav .nav li.dropdown a,
header .bottomRow .navbar #mainNav .nav li.open a{
background:  none;
-webkit-box-shadow:  none;
box-shadow:  none;
}
header .bottomRow .navbar #mainNav .nav li.dropdown .dropdown-menu,
header .bottomRow .navbar #mainNav .nav li.open .dropdown-menu{
border-radius:  0;
}
header .bottomRow .navbar #mainNav .nav li.dropdown .dropdown-menu li + li,
header .bottomRow .navbar #mainNav .nav li.open .dropdown-menu li + li{
border-top:  1px solid rgba(48, 48, 48, 0.1);
}
header .bottomRow .navbar #mainNav .nav li.dropdown .dropdown-menu li a,
header .bottomRow .navbar #mainNav .nav li.open .dropdown-menu li a{
line-height:  40px;
font-family:  'Montserrat', sans-serif;
font-weight:  400;
color:  #303030;
}
header .bottomRow .navbar #mainNav .nav li.dropdown .dropdown-menu li a:after,
header .bottomRow .navbar #mainNav .nav li.open .dropdown-menu li a:after{
display:  none;
}
header .bottomRow .navbar #mainNav .nav > li:last-child a{
border-left:  none;
}
header .bottomRow .navbar #mainNav .nav > li:last-child a:focus{
color:  #303030;
}
header .bottomRow .navbar #mainNav .nav > li:last-child a.open{
color:  #2f7829;
}
#topFooter{
background:  #303030;
padding-bottom:  0px;
}
#topFooter.topFooter2{
padding-bottom:  20px;
}
.footer_widgetRow{
position:  relative;
z-index:  2;
}
.footer_widget{
min-height:  28px;
margin-bottom:  0px;
}
.footer_widget .widgetHeading{
color:  #fff;
font-size: 20px;
font-family:  'Montserrat', sans-serif;
line-height:  58px;
margin:  0 0 0px;
}
.footer_widget .widgetHeading img{
margin-right:  15px;
}
.footer_widget .widgetHeading span{
display:  inline-block;
width:  5px;
height:  13px;
margin-right:  10px;
background:  #2f7829;
}
.footer_widget p{
color:  #676767;
font-family:  'Lato', sans-serif;
font-weight:  normal;
line-height:  24px;
margin:  0;
}
.footer_widget address{
color:  #676767;
font-family:  'Lato', sans-serif;
font-weight:  normal;
line-height:  30px;
}
.footer_widget .list-menu li a{
color:  #676767;
font-family:  'Lato', sans-serif;
font-weight:  normal;
line-height:  30px;
}
.footer_widget .list-menu li a:hover{
color:  #2f7829;
}
footer{
background:  #303030;
padding:  0px 0 0px;
text-align:  center;
}
footer ul{
margin:  0 0 15px;
padding:  0;
}
footer ul li{
display:  inline-block;
padding:  0 5px;
}
footer ul li a{
width:  30px;
line-height:  30px;
border-radius:  10px;
background:  #282828;
color:  #2f7829;
display:  block;
}
footer ul li a:hover{
color:  #282828;
background:  #2f7829;
}
footer p{
font-family:  'Lato', sans-serif;
font-weight:  bold;
color:  #676767;
margin:  0;
}
footer p i{
color:  #2f7829;
margin:  0 3px;
}
#heroBox{
background:  url('../images/slide.webp') no-repeat scroll center 0;
text-align:  center;
color:  #fff;
	aspect-ratio: 1200 / 660; /* Match image dimensions */
	width: 100%;
    height: auto;
    min-height: 150px; /* Existing in responsive.css */
	max-height: 600px;
padding-top:  20px;
padding-bottom: 50px;
text-transform:  inherit;
	aspect-ratio-ratio: 2 / 3; /* Prevent layout shift */
}
#heroBox h5{
font-family:  'Montserrat', sans-serif;
margin:  0;
}
#heroBox h2{
font-family:  'Montserrat', sans-serif;
font-size:  20px;
line-height:  24px;
}
#heroBox h6{
font-family:  'Montserrat', sans-serif;
font-size:  32px;
}
#heroBox h1{
font-family:  'Montserrat', sans-serif;
font-size:  24px;
margin:  10;
line-height:  30px;
}
#heroBox h3{
font-family:  'Montserrat', sans-serif;
font-size:  24px;
margin:  0;
line-height:  70px;
}
#heroBox h4{
font-family:  'Lato', sans-serif;
margin:  0;
text-transform:  none;
}
#heroBox a{
display:  inline-block;
line-height:  40px;
padding:  0 37px;
background:  #2f7829;
border-radius:  3px;
margin-top:  40px;
font-family:  'Montserrat', sans-serif;
color:  black;
font-size:  16px;
}
.blogsSection.homeBlogArea{
padding:  85px 0;
}
.blogsSection .blog{
margin:  15px 0;
cursor:  crosshair;
}
.blogsSection .blog .blog_title{
line-height:  1.5;
font-size:  30px;
font-family:  'Montserrat', sans-serif;
text-transform:  uppercase;
margin:  30px 0 15px;
}
.blogsSection .blog .blog_title a{
color:  #303030;
display:  inline-block;
}
.blogsSection .blog .postMeta{
font-family:  'Lato', sans-serif;
font-style:  italic;
line-height:  1;
margin: 0 0 20px 0;
color:  rgba(48, 48, 48, 0.5);
}
.blogsSection .blog .postMeta i{
margin-right:  10px;
}
.blogsSection .blog .postMeta a{
color:  rgba(48, 48, 48, 0.5);
}
.blogsSection .blog .postMeta .fleft{
margin-right:  40px;
}
.blogsSection .blog p{
font-family:  'Lato', sans-serif;
line-height:  24px;
font-weight:  400;
color:  #303030;
}
.blogsSection .blog a.read_more{
text-transform:  uppercase;
color:  #2f7829;
display:  inline-block;
line-height:  14px;
}
.blogsSection .blog a.read_more i{
margin-right:  0;
width:  0;
overflow:  hidden;
float:  left;
-webkit-transition:  all 300ms ease-in-out 0s;
transition:  all 300ms ease-in-out 0s;
}
.blogsSection .blog:hover .blog_title a{
color:  #2f7829;
}
.blogsSection .blog:hover a.read_more i{
margin-right:  5px;
width:  auto;
}
.blogsSection .blog.blog_page{
margin:  0;
}
.blogsSection .blog.blog_page + .blog{
margin-top:  90px;
}
.blogsSection .blog.blog_page .blog_title{
text-transform:  none;
margin:  20px 0 5px;
}
.blogsSection .blog.blog_page .postMeta{
margin:  0;
font-style:  normal;
}
.blogsSection .blog.blog_page p{
margin:  20px 0;
}
.blogsSection .blog.blog_page a.read_more i{
margin-right:  5px;
width:  auto;
}
.blogsSection .blog.blog_page .post_thumbnail_row .post_thumbnail{
width:  -webkit-calc(100% - 10px);
width:  calc(100% - 10px);
}
.blogsSection .blog.blog_page .post_thumbnail_row .post_thumbnail_bg{
width:  -webkit-calc(100% - 10px);
width:  calc(100% - 10px);
top:  10px;
left:  10px;
}
.blogsSection .blog.blog_page .post_thumbnail_row i{
bottom:  -10px;
}
.blogsSection .blog.blog_page.single_blog .contents{
padding:  30px;
}
.blogsSection .blog.blog_page.single_blog .contents .blog_title{
text-transform:  uppercase;
}
.blogsSection .blog.blog_page.single_blog .contents .postMeta{
font-style:  italic;
}
.blogsSection .blog.blog_page.single_blog .contents .postMeta a{
color:  #2f7829;
}
.blogsSection .blog.blog_page.single_blog .contents p{
margin:  30px 0;
color:  #000;
}
.blogsSection .blog.blog_page.single_blog .contents blockquote{
border-left-color:  #2f7829;
font-family:  'Lato', sans-serif;
font-style:  italic;
line-height:  24px;
font-weight:  400;
color:  #acacac;
}
.post_thumbnail_row{
position:  relative;
}
.post_thumbnail_row .post_thumbnail{
width:  -webkit-calc(100% - 5px);
width:  calc(100% - 5px);
z-index:  2;
position:  relative;
border-radius:  3px;
}
.post_thumbnail_row .post_thumbnail_bg{
position:  absolute;
width:  -webkit-calc(100% - 5px);
width:  calc(100% - 5px);
height:  100%;
top:  5px;
left:  5px;
background:  #2f7829;
border-radius:  3px;
-webkit-transition:  all 300ms ease-in-out 0s;
transition:  all 300ms ease-in-out 0s;
}
.post_thumbnail_row i{
position:  absolute;
right:  0;
bottom:  -5px;
z-index:  4;
border-radius:  3px;
background:  #2f7829;
color:  #303030;
font-size:  48px;
line-height:  100px;
width:  100px;
text-align:  center;
-webkit-transition:  all 300ms ease-in-out 0s;
transition:  all 300ms ease-in-out 0s;
}
.post_thumbnail_row:hover .post_thumbnail_bg{
background:  #303030;
}
.post_thumbnail_row:hover i{
color:  #2f7829;
background:  #303030;
}
.youMightLike{
padding:  80px 30px;
}
.youMightLike h4{
text-transform:  uppercase;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
color:  #000;
margin-top:  0;
margin-bottom:  30px;
font-size:  16px;
}
.youMightLike .youMightLikeBlog {
    width: 320px;
    float: left;
    margin-top: 20px;
    margin-right: 20px; /* добавлено */
}
.youMightLike .youMightLikeBlog img{
width:  100%;
}
.youMightLike .youMightLikeBlog h6{
margin-top:  10px;
margin-bottom:  5px;
color:  #000;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
text-transform:  uppercase;
}
.whyChooseRow .col-sm-3 {
padding-right: 15px; /* Right margin for all columns */
padding-left: 15px;  /* Left margin for all columns */
}
.whyChoose{
margin-top:  50px;
color:  #303030;
}
.whyChoose h4{
margin-top:  20px;
margin-bottom:  10px;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
}
.whyChoose h4 i{
color:  #2f7829;
margin-right:  15px;
margin-left:  0;
}
#workWithUs{
background:  url('../images/workWithUs.webp') no-repeat scroll center 0 #272f38;
}
.workWithUs h4{
font-family:  'geometria', sans-serif;
font-size:  22px;
font-weight:  400;
color:  #fff;
margin-top:  40px;
margin-bottom:  20px;
line-height:  25px;
-webkit-text-stroke-width:  0.2px;
-webkit-text-stroke-color:  black;
}
.workWithUs img{
	width: 100%; 
  height: 100%;
}
.workWithUs a{
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
color:  #303030;
margin-top:  30px;
margin-bottom:  50px;
border-radius:  3px;
display:  inline-block;
line-height:  40px;
padding:  0 45px;
background:  #2f7829;
text-transform:  uppercase;
}
.workWithUs a:hover{
color:  #2f7829;
background:  #303030;
}
#partners{
text-align:  center;
background:  #f3f3f3;
line-height:  1;
padding:  50px 0;
}
#partners .col-sm-3{
padding:  40px 15px;
border-right:  1px solid  #e5e5e5;
}
#partners .col-sm-3:last-child{
border-right:  0;
}
#partners img{
display:  inline-block;
}
#pageCover{
background:  url('../images/pageCover.webp') no-repeat scroll center 0;
position:  relative;
	margin-bottom: 20px; /* Добавляет отступ снизу */
	z-index: 900; /* Below header z-indexes */

}
#pageCover ~ * {
    position: relative;

}
#pageCover h1{
line-height:  50px;
width:  320px;
font-size:  30px;
padding-left:  5px;
display:  inline-block;
margin:  0;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
color:  #fff;
text-transform:  inherit;
}
#pageCover .pageDirection{
align-items: center; /* Выравнивание по вертикали */
text-align: right;
}
#pageCover .pageDirection .breadcrumb{
background:  none;
padding:  0;
}
#pageCover .pageDirection .breadcrumb li{
color:  #fff;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
line-height:  35px;
}
#pageCover .pageDirection .breadcrumb li a{
color:  #FFF;
padding:  0;
}
.porjectTitle{
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
font-size:  14px;
color:  #303030;
margin-top:  25px;
margin-bottom:  5px;
cursor:  pointer;
-webkit-transition:  all 300ms ease-in-out 0s;
transition:  all 300ms ease-in-out 0s;
	white-space: normal;
  word-wrap: break-word;
  word-break: break-word;
  line-height: 1.2em;
}
.project_meta{
font-family:  'Lato', sans-serif;
color:  rgba(48, 48, 48, 0.5);
}
.project_meta i{
margin-right:  5px;
}
.project_meta .project_category{
margin-right:  30px;
}
.project{
cursor:  crosshair;
padding-top:  20px;
padding-bottom:  20px;
}
.project .post_thumbnail_row i{
flex: 1 1 auto;
    margin-bottom: 10px;
}
.project:hover .porjectTitle{
color:  #2f7829;
}
.project.col-sm-6 .post_thumbnail_row i{
line-height:  100px;
width:  100px;
font-size:  48px;
}
.project.col-sm-4 .post_thumbnail_row i{
line-height:  70px;
width:  70px;
font-size:  31px;
}
.filtersRow #filters{
margin:  0 0 25px;
padding:  0;
}
.filtersRow #filters li{
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
padding:  0 10px;
color:  #303030;
}
.filtersRow #filters li.active{
color:  #2f7829;
}
.single-project .project-description .projectImages{
position:  relative;
margin-bottom:  10px;
}
.single-project .project-description .projectImages .projectImgSlider{
border:  none;
border-radius:  3px;
position:  relative;
z-index:  2;
overflow:  hidden;
width:  -webkit-calc(100% - 10px);
width:  calc(100% - 10px);
}
.single-project .project-description .projectImages .thumbnail_bg{
position:  absolute;
width:  -webkit-calc(100% - 10px);
width:  calc(100% - 10px);
height:  100%;
z-index:  0;
background:  #2f7829;
top:  10px;
left:  10px;
border-radius:  3px;
}
.single-project .project-description .description_row{
color:  #303030;
}
.single-project .project-description .description_row h4{
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
line-height:  1;
margin:  30px 0 25px;
text-transform:  uppercase;
}
.single-project .project-description .description_row p{
font-family:  'Lato', sans-serif;
font-weight:  normal;
line-height:  24px;
margin:  0;
}
.single-project .project_about h1{
font-family:  'Montserrat', sans-serif;
font-weight:  normal;
margin-bottom:  15px;
font-size:  16px;
}
.single-project .project_about p{
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
font-size:  18px;
line-height:  1;
margin:  0 0 20px;
}
.single-project .project_about h2{
font-family:  'Lato', sans-serif;
font-size:  16px;
line-height:  24px;
margin:  0;
}
.single-project .project_about dl{
margin-bottom:  0;
}
.single-project .project_about dl dt{
text-align:  left;
font-family:  'Lato', sans-serif;
font-weight:  400;
line-height:  30px;
margin:  0;
}
.single-project .project_about dl dd{
font-family:  'Lato', sans-serif;
font-weight:  400;
line-height:  30px;
margin:  0;
font-weight:  bold;
}
.single-project .project_about .list-inline{
padding:  0;
margin:  0;
}
.single-project .project_about .list-inline li{
padding:  0;
}
.single-project .project_about .list-inline li + li{
margin-left:  16px;
}
.single-project .project_about .list-inline li a{
font-size:  18px;
color:  #676767;
line-height:  1;
}
.single-project .project_about .list-inline li a:hover{
color:  #303030;
}
.single-project .project_about .aboutRow{
margin-bottom:  35px;
}

.shotInfo .logo_header{
display:  inline-block;
clear:  both;
margin-bottom:  20px;
}
.shotInfo p{
font-family:  'Lato', sans-serif;
color:  #303030;
line-height:  24px;
margin:  0;
font-weight:  400;
}
.shotInfo h1{
font-family:  'Lato', sans-serif;
color:  #303030;
font-size:  14px;
line-height:  24px;
margin:  0;
font-weight:  400;
}
.shotInfo img{
	width: 200px;
    height: 50px;
    object-fit: scale-down; /* Это сохранит пропорции изображения, если оно не идеально подходит */
	}
.addressRow{
margin:  35px -15px 25px;
}
.addressRow .addressCol{
min-width:  242px;
margin:  15px 0;
}
.addressRow .addressCol h5{
text-transform:  uppercase;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
margin-top:  0;
margin-bottom:  15px;
}
.addressRow .addressCol ul{
margin:  0;
}
.addressRow .addressCol ul li{
line-height:  30px;
font-family:  'Lato', sans-serif;
font-weight:  400;
color:  #303030;
}
.addressRow .addressCol ul li i{
margin-right:  20px;
}
#contactFormRow{
background:  url('../images/blog/contactForm.webp') no-repeat scroll center bottom #2f7829;
}
#contactFormRow .contactFormRow{
position:  relative;
}
#contactForm{
max-width:  770px;
margin:  0 auto;
}
#contactForm .form-group{
margin-bottom:  20px;
}
#contactForm .form-group .form-control{
color:  #303030;
font-family:  'Lato', sans-serif;
font-weight:  400;
border-radius:  0;
height:  40px;
line-height:  40px;
padding:  0 20px;
-webkit-box-shadow:  none;
box-shadow:  none;
}
#contactForm .form-group .form-control::-moz-placeholder{
color:  #303030;
opacity:  0.6;
}
#contactForm .form-group .form-control:-ms-input-placeholder{
color:  #303030;
opacity:  0.6;
}
#contactForm .form-group .form-control::-webkit-input-placeholder{
color:  #303030;
opacity:  0.6;
}
#contactForm .form-group textarea.form-control{
resize:  none;
height:  150px;
}
.thumb-wrap{
position:  relative;
padding-bottom:  56.25%;
height:  0;
overflow:  hidden;
}
.thumb-wrap iframe{
position:  absolute;
top:  0;
left:  0;
width:  95%;
height:  95%;
border-width:  0;
outline-width:  0;
overflow:  hidden;
}
.figure{
width:  80%;
position:  relative;
display:  block;
margin-left:  auto;
margin-right:  auto;
background:  #f0f0f0;
border-radius:  5px;
padding:  2%;
}
figure:first-child{
margin-left:  20px;
}
.remont p{
margin-top:  20px;
line-height:  20px;
margin-left:  5px;
margin-right:  5px;
max-width:  900px;
margin:  10px auto 0 auto;
}
.remont h3{
font-size: 18px;
}
.lel h1{
font-size:  22px;
}
.kek2 p{
font-size:  12px;
font-weight:  normal;
}
.bomba {
font-size:  26px;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
width:  -webkit-calc(30%);
padding: 10px;
width:  calc(40%);
margin-left:  20px;
color: white;
padding-left: 10px; /* Add padding on the left */
padding-right: 10px; /* Add padding on the right */
font-weight: 600;
}
.kek2 h1{
font-size:  22px;
font-weight:  600;
}
.kek h1{
font-size:  22px;
font-weight:  600;
}
.kek h2{
font-size:  20px;
font-weight:  400;
}
.tele{
font-size:  16px;
font-weight:  600;
}
.uslugi{
font-size:  28px;
font-family:  'Montserrat', sans-serif;
font-weight:  bold;
width:  -webkit-calc(30%);
width:  calc(30%);
margin-left:  20px;
font-weight: 600;
}
.d-none{
display:  none !important;
}
.mapSide iframe {
	width: 100%;
	height: 35vh;
}
html{
font-family:  sans-serif;
line-height:  1.15;
-webkit-text-size-adjust:  100%;
-webkit-tap-highlight-color:  rgba(0, 0, 0, 0);
}
label{
display:  inline-block;
margin-bottom:  0.5rem;
}
button{
border-radius:  0;
}
input,
button,
select,
optgroup,
textarea{
margin:  0;
font-family:  inherit;
font-size:  inherit;
line-height:  inherit;
}
button,
input{
overflow:  visible;
}
button,
select{
text-transform:  none;
}
select{
word-wrap:  normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"]{
-webkit-appearance:  button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled){
cursor:  pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner{
padding:  0;
border-style:  none;
}
input[type="radio"],
input[type="checkbox"]{
box-sizing:  border-box;
padding:  0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"]{
-webkit-appearance:  listbox;
}
textarea{
overflow:  auto;
resize:  vertical;
}
.form-group{
margin-bottom:  1rem;
}
.form-control{
display:  block;
width:  100%;
height:  calc(1.5em + .75rem + 2px);
padding:  .375rem .75rem;
font-size:  1rem;
font-weight:  400;
line-height:  1.5;
color:  #495057;
background-color:  #fff;
background-clip:  padding-box;
border:  1px solid #ced4da;
border-radius:  .25rem;
transition:  border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
.form-control:focus{
color:  #495057;
background-color:  #fff;
border-color:  #80bdff;
outline:  0;
box-shadow:  0 0 0 0.2rem rgba(0, 123, 255, .25);
}
label{
display:  inline-block;
margin-bottom:  .5rem;
}
input[type=checkbox],
input[type=radio]{
box-sizing:  border-box;
padding:  0;
}
textarea.form-control{
overflow:  auto;
resize:  vertical;
height:  auto;
}
.form-submit{
text-align:  right;
}
button[type="submit"]{
display:  inline-block;
font-weight:  400;
color:  #fff;
text-align:  center;
vertical-align:  middle;
-webkit-user-select:  none;
-moz-user-select:  none;
-ms-user-select:  none;
user-select:  none;
background-color:  #007bff;
border:  1px solid #007bff;
padding:  .375rem .75rem .375rem 2rem;
font-size:  1rem;
line-height:  1.5;
border-radius:  .25rem;
transition:  color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
position:  relative;
}
button[type="submit"]::before {
    content: "";
    position: absolute;
    width: 1rem;
    height: 1rem;
    left: .5rem;
    top: 50%;
    transform: translateY(-50%);
    background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512.333 512'%3E%3Cpath fill='%23fff' d='M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z'/%3E%3C/svg%3E") transparent no-repeat center center;
    background-size: 100% 100%;
}
button[type="submit"]:hover {
    color: #fff;
    background-color: #0069d9;
    border-color: #0062cc;
}
button[type="submit"]:focus{
outline:  0;
box-shadow:  0 0 0 0.2rem rgba(38, 143, 255, 0.5);
}
button[type="submit"]:disabled{
opacity:  0.65;
}
#whyChoose h2 {
  font-size: 1.5rem;
  line-height: 1.8;
  color: #333;
  font-family: 'Lato', sans-serif;
  margin-bottom: 30px;
}

#whyChoose h3 {
  font-size: 1.5rem;
  color: #2f7829;
  font-family: 'Montserrat', sans-serif;
  font-weight: bold;
  text-align: center;
  margin-bottom: 40px;
}

/* Стили для параграфов и описания */
#whyChoose p {
  font-size: 1rem;
  line-height: 1.8;
  color: #666;
  font-family: 'Lato', sans-serif;
  text-align: justify;
  margin-bottom: 20px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
#whyChoose .sectionTitle h3 {
  font-size: 2.5rem;
  color: #2f7829;
  font-family: 'Montserrat', sans-serif;
  font-weight: bold;
  text-align: center;
}

/* Стили для параграфов и описания */
#whyChoose .sectionTitle p {
  font-size: 1.3rem;
  color: #666;
  font-family: 'Lato', sans-serif;
  text-align: justify;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
#whyChoose .stolbindex h4 {
  font-size: 1.5rem;
  color: #2f7829;
  font-family: 'Montserrat', sans-serif;
  font-weight: bold;
  text-align: center;
}

#whyChoose .stolbindex p {
  font-size: 1.2rem;
  line-height: 1.5;
  color: #2A2A2A;
  font-family: Verdana, sans-serif;
  text-align: justify;
  margin-bottom: 20px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.stolbindex img {
width: 200px;
}
/* Стили для сертификатов */
.certificates img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.certificates img:hover {
  transform: scale(1.1);
}
.modal-body {
    padding: 0; /* Remove extra padding */
}
.modal-body img {
	width: 100%; /* Изображение будет растягиваться на всю ширину контейнера */
    height: auto; /* Сохраняем пропорции */
    max-height: 60vh; /* Ограничение по высоте */
    object-fit: contain; /* Изображение не искажается */
}
.modal-dialog {
	width: 90%; /* Adjust dialog width */
    max-width: 1200px; /* Установим максимальную ширину для больших экранов */
    margin: 0 auto;
}
.modal-content {
	width: 100%; /* Устанавливаем ширину под содержимое */
    height: auto; /* Адаптируем высоту */
    max-height: 90vh; /* Ограничение по высоте модального окна */
    overflow-y: auto; /* Добавляем прокрутку, если содержимое выходит за пределы */
}
/* Отступы и выравнивание для карточек сертификатов */
.certificates .container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}

.certificates .col-md-3 {
  margin: 0 10px;
}

.certificates .img-thumbnail {
  border: none;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease-in-out;
}

.certificates .img-thumbnail:hover {
  transform: scale(1.05);
}
.welcome-text {
    max-width: 90%;
    margin: 0 auto;
    padding: 0 15px;
    min-height: 200px; /* Reserve space for text */
}

.welcome-text h1 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: 32px;
    line-height: 42px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.welcome-text h2 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 36px;
    margin-bottom: 15px;
}

.welcome-text p {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    margin-bottom: 15px;
}

.hero-button {
    display: inline-block;
    min-width: 200px;
    min-height: 50px;
    padding: 15px 30px;
    margin-top: 0px;
    text-align: center;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    line-height: 20px;
}

.hero-button a {
    background: #2f7829 none repeat scroll 0 0;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    padding: 15px 30px;
    border-radius: 3px;
    -webkit-transition: all 300ms ease-in-out 0s;
    transition: all 300ms ease-in-out 0s;
}

.hero-button a:hover {
    background: #303030 none repeat scroll 0 0;
    color: #2f7829;
}
.card-button {
    margin: 30px 0;
}

.card-button a {
    background: #2f7829 none repeat scroll 0 0;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    padding: 15px 30px;
    border-radius: 3px;
    -webkit-transition: all 300ms ease-in-out 0s;
    transition: all 300ms ease-in-out 0s;
}

.card-button a:hover {
    background: #303030 none repeat scroll 0 0;
    color: #2f7829;
}
.prof h4 {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 36px;
    color: #fff;
}
#contactInfos {
	margin-top: 30px;
}
#contactFormRow{
padding-bottom:  10px;
}
#articles {
	margin-top: 30px;
}
.article-summary {
	padding-bottom: 20px;
	padding-top: 20px;
}
.thumbnail-gallery { display: flex; gap: 10px; margin-top: 10px; }
.thumbnail-gallery a { flex: 0 0 80px; }
.thumbnail-gallery img { width: 80px; height:80px; border: 1px solid #e5e5e5; object-fit: contain;}
.thumbnail-gallery a.active img { border-color: #2f7829; }
/* Стили для уведомления о добавлении в корзину */

.search-results {
    position: absolute;
    top: 100%;
    left: 0;
    width: 400px; /* Fixed width */
    max-height: 500px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    overflow-y: auto;
    z-index: 1000;
    display: none;
}

.search-result-item {
    display: flex;
    align-items: center;
    padding: 10px;
    text-decoration: none;
    color: #333;
    border-bottom: 1px solid #eee;
}

.search-result-item:hover {
    background: #f5f5f5;
}

.search-result-image {
    width: 50px;
    height: 50px;
    object-fit: cover;
    margin-right: 10px;
    border-radius: 4px;
}
.search-result-name {
    font-size: 12px;
    font-family: 'Montserrat', sans-serif;
    font-weight: bold;
    color: #303030;
    display: block;
}
.search-result-price {
    font-size: 14px;
    font-family: 'Lato', sans-serif;
    color: #676767;
    display: block;
    margin-top: 5px;
}
/* Existing styles for .fixed-header, updated to ensure always fixed */
.fixed-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff; /* Match your existing design */
}



/* Общие стили для всех списков с классом description-list */
.description-list {
    line-height: 28px;
    margin-top: 15px;
}

/* Добавим класс для иконок */
.green-icon {
    color: #2f7829;
    margin-right: 10px;
}


/* Стили для количества */
.quantity-input {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.quantity-input label {
    margin-right: 10px;
}

.quantity-input input {
    width: 60px;
    padding: 5px;
}

.cart-count, #cart-count {
    font-weight: bold;
}

.filter-group {
    margin-bottom: 20px;
}


.btn-primary {
    background-color: #2f7829;
    border-color: #2f7829;
    font-family: 'Montserrat', sans-serif;
    padding: 8px 15px;
}

.btn-primary:hover {
    background-color: #1e5b1e;
    border-color: #1e5b1e;
}

/* Accessibility: sr-only for screen readers */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
.product-item {
  /* Ограничиваем ширину и добавляем перенос */
  max-width: 100%;
	min-height: 380px;
  height: auto;
  white-space: normal; /* разрешаем перенос */
  word-wrap: break-word;
  word-break: break-word; /* для переноса длинных слов */
  line-height: 1.2em;
  margin-top: 30px;
  font-weight: 600;
  font-size: 14px;
  color: #2f7829;
  box-sizing: border-box;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
  padding-bottom: 10px;
	justify-content: center;
	
}


.product-item img {
  max-width: 100%;
  height: auto;
	max-height: 220px;
  object-fit: contain;
	display: block; /* Ensures the image behaves like a block element */
    margin: 0 auto; /* Centers the image if it's smaller than its container */
}
.product-item a {
  display: flex;
	
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
/* Стили для изображения в карточках товаров */
.product-item .product-image {
    width: auto; /* Фиксированная ширина */
    object-fit: contain; /* Обрезка или масштабирование для заполнения */
	justify-content: center;
}
.product-item .catalog-image {
    width: 100%; /* Фиксированная ширина */
    height: 300px; 
    object-fit: contain; /* Обрезка или масштабирование для заполнения */
    margin-bottom: 0px;
	justify-content: center;
}
/* Стили для заголовка под изображением */
.product-item h3 {
  white-space: normal;      /* разрешить перенос строк */
  word-wrap: break-word;    /* перенос длинных слов */
  word-break: break-word;   /* перенос слов, чтобы не выходили за пределы */
  margin-top: 20px; /* This pushes the heading down 20px from the bottom of the image (220px image + 20px margin = 240px total) */
  font-size: 16px;
  line-height: 1.3;
  flex-grow: 1;    
	color: #2f7829;
}
.product-item .product-image-wrapper {
    height: 220px; /* Fixed height for the image container */
    display: flex; /* Use flexbox for centering */
    justify-content: center; /* Center horizontally */
    align-items: center; /* Center vertically */
    overflow: hidden; /* Hide any overflow if images are somehow larger than 220px */
}
.project {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%; /* Убедиться, что col-sm-3 не обрезает контент */
    min-height: 420px; /* Можно подстроить под контент */
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    padding: 10px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    text-align: center;
}
.project img.post_thumbnail {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 4px;
}
.carousel-inner.montazh-carousel img {
	align-content: center;
	width: 100%;
	height: auto; /* фиксированная высота, можешь подстроить под вкус */
	object-fit: contain; /* обрезка по высоте, изображение во всю ширину */
	display: flex;
}
.project-carousel {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    overflow: hidden;
}

.project-carousel .carousel-inner {
    width: 100%;
    height: auto;
}

.project-carousel .carousel-inner .item {
    width: 100%;
    text-align: center;
}

.project-carousel .carousel-inner .item img {
    width: 100%;
    height: auto;
    max-height: 60vh; /* Limit max height to fit modal */
    object-fit: contain; /* Preserve aspect ratio, no cropping */
    display: block;
    margin: 0 auto;
}

.project-carousel .carousel-control {
    background: none;
    font-size: 30px;
    opacity: 0.7;
    color: #2f7829;
}

.project-carousel .carousel-control:hover {
    opacity: 1;
}

/* Ensure modal styles are specific to project carousel */
.modal-body .project-carousel {
    padding: 0;
}

.modal-body .project-carousel .carousel-inner .item img {
    max-height: 60vh;
    object-fit: contain;
}

#projectsRow .col-sm-4 {
	margin-bottom: 20px;
	text-align: center;
}
#projectsRow .product-item {
	margin-bottom: 10px;
	justify-content: center;
}
#projectCarousel .carousel-inner {
    width: 100%;
    overflow: hidden;
}

#projectCarousel .carousel-inner .item {
    width: 100%;
    text-align: center;
}

#projectCarousel .carousel-inner .item img {
    width: 100%;
    height: auto;
    max-height: 400px; /* Ограничьте высоту для единообразия */
    object-fit: contain; /* Сохраняет пропорции изображения */
    display: block; /* Убираем flex */
    margin: 0 auto;
}

#projectCarousel .carousel-control {
    background: none !important;
    font-size: 30px;
    color: #2f7829;
    opacity: 0.7;
}

#projectCarousel .carousel-control:hover {
    opacity: 1;
}
.add-to-cart {
    display: inline-block;
    background-color: #2f7829; /* Matches menu active/hover color */
    color: #ffffff; /* White text for contrast */
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    padding: 12px 20px;
    border-radius: 3px;
    border: none;
    cursor: pointer;
    transition: all 300ms ease-in-out; /* Matches menu transition */
    font-size: 16px;
    line-height: 1.5;
    width: auto;
    min-width: 200px; /* Ensure button is wide enough */
    text-align: center;
}

.add-to-cart:hover {
    background-color: #303030; /* Matches menu hover background */
    color: #2f7829; /* Matches menu hover text */
    text-decoration: none;
}

.add-to-cart:focus {
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(47, 120, 41, 0.5); /* Subtle focus ring */
}

/* Ensure button aligns with quantity input */
.quantity-input {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.quantity-input label {
    margin-right: 10px;
    font-family: 'Lato', sans-serif;
    color: #303030;
}

.quantity-input input {
    width: 60px;
    padding: 5px;
    border: 1px solid #ced4da;
    border-radius: 3px;
    font-family: 'Lato', sans-serif;
}

.btn {
  background-color: #034D02; /* основной зелёный цвет */
  color: white;              /* белый текст */
  border: none;
  padding: 12px 30px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  font-size: 16px;
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(47, 120, 41, 0.3);
  cursor: pointer;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
  display: inline-block;
  text-align: center;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  min-width: 160px;
}

.btn:hover,
.btn:focus {
  background-color: #245b1f; /* чуть темнее при наведении */
  box-shadow: 0 6px 12px rgba(36, 91, 31, 0.5);
  outline: none;
  transform: translateY(-2px);
}

.btn:active {
  background-color: #1e4217; /* ещё темнее при нажатии */
  box-shadow: 0 2px 4px rgba(30, 66, 23, 0.7);
  transform: translateY(0);
}
.btn:disabled,
.btn[disabled] {
  background-color: #a0a0a0;
  cursor: not-allowed;
  box-shadow: none;
  color: #555;
  transform: none;
}

/* Для кнопок, которые идут в ряд, можно добавить небольшой отступ */
.cart-actions .btn + .btn {
  padding-left: 15px;
	padding-right: 15px;
}
.cart-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 20px 0;
}
.checkout-form {
    margin-top: 30px;
}
.checkout-form .form-group {
    margin-bottom: 15px;
}
.checkout-form .form-control {
    font-family: 'Lato', sans-serif;
    border: 1px solid #ced4da;
    border-radius: 3px;
    padding: 8px;
}
.checkout-form label {
    font-family: 'Lato', sans-serif;
    color: #303030;
    margin-bottom: 5px;
    display: block;
}
/* Ширина блока во весь экран с отступами */
#order-form-section {
  background-color: #f5f9f5;       /* светлый зелёный фон */
  border: 1px solid #2f7829;       /* тонкая зелёная рамка */
  border-radius: 6px;
  padding: 15px 20px;
  margin: 20px 0 40px 0;
  box-shadow: 0 3px 8px rgba(47, 120, 41, 0.2);
  font-family: 'Montserrat', sans-serif;
  color: #2f7829;
  max-width: 100%;
  box-sizing: border-box;
}

/* Заголовок поменьше и аккуратнее */
#order-form-section h3 {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 12px;
  text-align: center;
  color: #2f7829;
  text-transform: uppercase;
}

/* Форм-группы с уменьшенным отступом */
#order-form-section .form-group {
  margin-bottom: 12px;
}

/* Лейблы поменьше */
#order-form-section label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
  color: #245b1f;
  font-size: 14px;
}

/* Поля ввода компактные */
#order-form-section input[type="text"],
#order-form-section input[type="email"],
#order-form-section input[type="tel"] {
  width: 100%;
  padding: 8px 10px;
  border: 1.2px solid #2f7829;
  border-radius: 4px;
  font-size: 14px;
  color: #245b1f;
  background-color: #eaf3ea;
  transition: border-color 0.3s ease;
  box-sizing: border-box;
}

#order-form-section input[type="text"]:focus,
#order-form-section input[type="email"]:focus,
#order-form-section input[type="tel"]:focus {
  border-color: #1e4217;
  outline: none;
  background-color: #d5e4d4;
}

/* Ошибки меньше */
#order-form-section .error {
  color: #b22222;
  font-size: 12px;
  margin-top: 3px;
  display: block;
  min-height: 16px;
}

/* Сообщение успеха аккуратное */
#order-form-section .success {
  display: block;
  color: #2f7829;
  font-weight: 600;
  margin-top: 15px;
  text-align: center;
  font-size: 14px;
}

/* Кнопка подтверждения компактная */
#order-form-section button.btn {
  background-color: #2f7829;
  color: white;
  font-size: 16px;
  font-weight: 700;
  padding: 10px 0;
  width: 100%;
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(47, 120, 41, 0.3);
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.15s ease;
  user-select: none;
}

#order-form-section button.btn:hover,
#order-form-section button.btn:focus {
  background-color: #245b1f;
  outline: none;
  transform: translateY(-1.5px);
}

#order-form-section button.btn:active {
  background-color: #1e4217;
  transform: translateY(0);
}
#cart-bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #ffffff;
    border-top: 1px solid #ddd;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.1);
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 1050; /* чтобы быть поверх других элементов */
    box-sizing: border-box;
}

#cart-bottom-bar .cart-summary p {
    margin: 0 15px 0 0;
    font-weight: bold;
    font-size: 16px;
    color: #303030;
}

#cart-bottom-bar .cart-actions button {
    padding: 12px 30px;
    font-size: 16px;
    background-color: #2f7829;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

#cart-bottom-bar .cart-actions button:hover {
    background-color: #245b1f;
}
#cartRow {
    padding-bottom: 80px; /* высота фиксированного нижнего блока + отступ */
}
#cart-table-and-form-wrapper {
    width: 100%;
}

#cart-table {
    width: 100% !important;
}

#order-form-section {
    width: 100%;
    box-sizing: border-box;
    background-color: #f9f9f9;
    padding: 20px;
    margin-top: 20px;
}
.remove-from-cart {
    background: none;
    border: none;
    color: #888;
    font-size: 22px;
    padding: 4px 8px;
    cursor: pointer;
    border-radius: 50%;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.remove-from-cart:hover,
.remove-from-cart:focus {
    background: #ffeaea;
    color: #c62828;
    outline: none;
    box-shadow: 0 2px 8px rgba(198,40,40,0.09);
}

.remove-from-cart i {
    pointer-events: none;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  grid-auto-rows: auto; /* обязательно авто, чтобы высота строки адаптировалась под контент */
  gap: 20px;
}
		.filter-sort-frame {
            border: 1px solid #e5e5e5;
            border-radius: 6px;
            padding: 15px;
            background-color: #fff;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);

        }
        .filter-group {
            margin-bottom: 10px;
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }
        .filter-group label {
            margin-right: 20px;
            font-family: 'Lato', sans-serif;
            color: #303030;
        }
        .filter-group button {
            background-color: #2f7829;
            border-color: #2f7829;
            color: #fff;
            padding: 6px 12px; /* Reduced height */
            font-size: 14px;
            border-radius: 3px;
            transition: background-color 0.3s ease;
        }
        .filter-group button:hover {
            background-color: #245b1f;
            border-color: #245b1f;
        }
        .sort-buttons {
            margin-top: 10px;
            text-align: right;
        }
        .sort-buttons a {
            margin-left: 10px;
            padding: 6px 12px;
            border: 1px solid #ccc;
            border-radius: 4px;
            text-decoration: none;
            color: #333;
            background-color: #f9f9f9;
        }
        .sort-buttons a.active {
            background-color: #2f7829;
            color: #fff;
            border-color: #2f7829;
        }
        .sort-buttons a:hover {
            background-color: #e6e6e6;
        }
.catalog-item {
  /* Ограничиваем ширину и добавляем перенос */
  max-width: 100%;
  height: auto;
  white-space: normal; /* разрешаем перенос */
  word-wrap: break-word;
  word-break: break-word; /* для переноса длинных слов */
  line-height: 1.2em;
  margin-top: 30px;
  font-weight: 600;
  font-size: 14px;
  color: #2f7829;
  box-sizing: border-box;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
  padding-bottom: 10px;
	justify-content: center;
}
.catalog-item img {
  max-width: 100%;
  height: auto;
	max-height: 220px;
  object-fit: contain;
	justify-content: center;
}
.catalog-item a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
/* Notification styles */

#cart-notification,
#order-notification {
    position: fixed;
    background-color: #074A02;
    padding: 12px 20px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    z-index: 2000;
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #ffffff;
    pointer-events: none; /* Prevent interaction with notification */
}

/* Cart notification (top-right, unchanged) */
#cart-notification {
    top: 20px;
    right: 20px;
}

/* Order notification (centered) */
#order-notification {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 300px;
    text-align: center;
    padding: 20px 30px; /* Slightly larger for prominence */
}

/* Show class for both notifications */
#cart-notification.show,
#order-notification.show {
    opacity: 1;
    display: block;
}

/* Close button for both notifications */
#cart-notification .close,
#order-notification .close {
    color: #ffffff;
    opacity: 0.8;
    text-shadow: none;
    font-size: 20px;
    pointer-events: auto; /* Allow clicking the close button */
}

#cart-notification .close:hover,
#order-notification .close:hover {
    opacity: 1;
}

/* Overlay for order notification */
body.notification-active::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5); /* Semi-transparent black */
    z-index: 1999; /* Below notification */
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
}

body.notification-active #order-notification.show {
    opacity: 1;
}

body.notification-active::before {
    opacity: 1;
}
header .logo img {
    width: 150px;
    height: 50px;
    object-fit: contain;
}
#projectsContainer .project {
    min-height: 300px; /* Резервное пространство */
    width: 100%;
}
.project-img {
    min-height: 200px;
    aspect-ratio: 4 / 3;
}
.post_thumbnail {
    width: 100%;
    height: auto;
    min-height: 200px;
    object-fit: cover;
}
@font-face {
    font-family: 'Montserrat';
    src: url('/fonts/montserrat.woff2') format('woff2');
    font-display: swap;
}
