*{font-family: "HelveticaRegular";}
body{margin: 0px; background-color: #ffffff;}

.block{
    max-width: 1200px;
    margin: auto;
    padding: 20px 40px;
    opacity: 0;
    animation: ani 1.5s forwards;
}

.body--main{
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    /* height: 50vh; */
    height: 500px;
    max-height: 80vh;
}

.body--about{
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    /* height: 50vh; */
    height: 570px;
}

.body--container{
    /* padding-top: 18vh; */
    display: flex;
    flex-direction: column;
    margin: 0px;
}

.body--c{
    max-width: 650px;
    font-size: 30px;
    margin: 0 0 50px 0;
}

.body--h{
    font-size: 3.5rem;
    margin-bottom: 10px;
    /* font-family: "SF-Semi"; */
}

.btw-header{
    font-size: 34px;
    text-align: center;
    margin: 0px 0px 20px 0px;
}

button{
    border: 1px solid #fff;
    /* box-shadow: 0px 0px 3px rgba(181, 186, 187, 0.55); */
    border-radius: 0px;
    transition: 0.2s;
    background-color: #fff;
    text-decoration: underline;
    font-size: 22px;
    margin: auto;
    padding: 2px 28px;
}

button:hover{
    border: 1px solid #000;
    box-shadow: 0px 0px 3px rgba(181, 186, 187, 0.55);
    border-radius: 3px;
    transition: 0.2s;
    /* background-color: #352626; */
    /* text-decoration: underline; */
    font-size: 22px;
    margin: auto;
    padding: 2px 28px;
    /* color: #ffffff; */
}

.card--catalog{
    margin: 15px;
    max-width: 27%;
    width: 100%;
    min-height: 200px;
    /* text-align: center; */
    padding: 20px;
    font-size: 18px;
    background-color: white;
    box-shadow: 0px 0px 9px rgba(181, 186, 187, 0.55);
    /* flex: 1 1 0px;
    width: 0; */
}

.card-projects{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;
    width: 350px;
    text-align: center;
    padding: 10px;
    margin: 15px;
    box-shadow: 0px 0px 5px rgba(173, 169, 168, 0.55);
}

.card-projects p{
    margin: 15px;
    font-size: 23px;
}

.card-projects button{
    margin-bottom: 16px;
}

.card-wide{
    display: flex;
    flex-direction: row;
    margin: 0px auto 40px auto;
    /* max-width: 300px; */
    width: 96%;
    min-height: 200px;
    /* text-align: center; */
    padding: 20px;
    font-size: 18px;
    background-color: white;
    box-shadow: 0px 0px 9px rgba(181, 186, 187, 0.55);
}

.card-zero{
    margin: 10px;
    /* max-width: 350px; */
    width: 100%;
    min-height: 200px;
    text-align: center;
    /* padding: 25px; */
    font-size: 18px;
    /* background-color: white; */
    /* box-shadow: 0px 0px 7px rgba(209, 216, 217, 0.55); */
}

.card--container{
    /* height: 400px; */
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
}

.container-wide{
    flex-direction: column;
}

.card--head{
    font-size: 30px;
    padding: 15px 0px 0px 0px;
    margin: 0px;
    text-align: center;
}

.crop-catalog{
    object-fit: cover;
    width: 350px;
    height: 250px;
    /* object-position: 0px 0px; */
}

.crop-main{
    object-fit: cover;
    width: 600px;
    height: 400px;
    object-position: 0px 0px;
}

header{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin: auto;
    padding: 18px 40px;
    max-width: 1200px;
}

.header--a{
    padding-left: 20px;
    font-size: 18px;
    margin: auto;
    /* height: 30px; */
    color: #0b0c00;
    text-decoration: none;
    font-family: "HelveticaLight";
}

.header--container{
    width: 100%;
    background-color: #f8f6f5;
    box-shadow: 0px 0px 3px #acbabb;
    min-height: 70px;
}

.header--p{
    font-size: 30px;
    margin: auto 0px auto 0px;
    color: #0b0c00;
    /* font-family: "SF-Semi"; */
}

hr{
    width: 100%;
    height: 0px;
    border: 0;
    border-top: 1px solid #000;
}

.img--main{
    /* max-height: 400px; */
    max-height: 45vh;
    max-width: 600px;
    /* padding-top: 5vh; */
    /* box-shadow: 2px 2px 7px #a3abac; */
}

.img--about{
    /* max-height: 400px; */
    max-height: 55vh;
    max-width: 450px;
    margin: 10px 50px;
    /* padding-top: 5vh; */
    /* box-shadow: 2px 2px 7px #a3abac; */
}

.projects-img{
    object-fit: cover;
    width: 340px;
    height: 250px;
    /* margin: 10px 10px; */
}

.projects-main-block{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    flex-wrap: wrap;
}

.row{
    display: flex;
    flex-direction: row;
}

.sticky-top {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1020;
}

.text-wide{
    max-width: 30%;
}

.album-img{
    object-fit: cover;
    width: 33%;
    height: 250px;
    margin-bottom: 3px;
}

.album-head{
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-content: center;
}

@font-face {
    font-family: HelveticaRegular;
    src: url(../fonts/helveticaneuecyr_roman.otf);
}

@font-face {
    font-family: HelveticaLight;
    src: url(../fonts/helveticaneuecyr_thin.otf)
}

@font-face {
    font-family: HelveticaBold;
    src: url(../fonts/helveticaneueltw1g_bd.otf)
}

.light{
    font-family: HelveticaLight;
}

.bold{
    font-family: HelveticaBold;
    /* font-weight: 100; */
}

@keyframes ani {
    0% {opacity: 0;}
    100% {opacity: 1;}
}

.wide-price{
    visibility: visible;
    height: auto;
}

.tight-price{
    visibility: hidden;
    height: 0px;
}

.pc-price{
    display: block;
}

.mobile-price{
    display: none;
}

.wide-menu{
    visibility: visible;
    height: auto;
    width: auto;
    display: flex;
}

.hamburger-menu{
    display: none;
    visibility: hidden;
    height: 0;
    width: 0;
    /* display: flex; */
    flex-direction: column;
    justify-content: center;
}

/* .calc-menu{
    display: none; */
    /* visibility: hidden; */
    /* height: 0; */
    /* width: 0; */
    /* display: flex; */
    /* flex-direction: column; */
    /* justify-content: center;
} */

.menu-button-container{
    display: flex;
    height: 100%;
    width: 30px;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    /* margin: auto; */
}

#menu-toggle{
    display: none;
}

#menu-toggle ~ .hamburger-menu a {
    height: 0;
    visibility: hidden;
    /* display: none; */
    margin: 0;
    padding: 0;
    /* border: 0; */
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

#menu-toggle:checked ~ .hamburger-menu a {
    visibility: visible;
    height: 38px;
    margin: auto;
    /* display: block; */
    /* padding: 0.5em; */
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

.calc-menu{
    visibility: visible;
    height: auto;
    width: auto;
    display: flex;
}

#calc-toggle{
    display: none;
}

#calc-toggle ~ .calc-menu .element {
    height: 0;
    visibility: hidden;
    /* display: none; */
    /* margin: 0; */
    /* padding: 0; */
    /* border: 0; */
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

#calc-toggle:checked ~ .calc-menu .element {
    visibility: visible;
    height: 38px;
    /* margin: auto; */
    /* display: block; */
    /* padding: 0.5em; */
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

.icon-contacts{
    height: 48px;
    width: auto;
    margin: 5px;
}

.p-contacts{
    font-size: 32px;
    margin: 11px 10px 0px 20px;
}

.contacts-container{
    display: flex;
    flex-direction: row;
}

@media (max-width: 1290px){
    .card-projects{width: 310px;}
    .projects-img{width: 300px;}
}

@media (max-width: 1200px){
    .body--c{font-size: 30px;}
    .body--h{font-size: 45px;}
    .header--p{font-size: 35px;}
    .wide-price{visibility: hidden; height: 0px;}
    .tight-price{visibility: visible; height: auto;}
    .card-wide{flex-direction: column; margin: 20px 10px}
    .container-wide{flex-direction: row;}
    .text-wide{max-width: 100%; margin: 0px !important;}
    .crop-catalog{width: 100%; height: 300px;}
    .card--catalog{max-width: 280px;}
    .card-wide{width: auto;}
    .pc-price{display: none;}
    .mobile-price{display: block;}
}

@media (max-width: 992px){
    .body--c{font-size: 30px;}
    .body--h{font-size: 50px;}
    .header--p{font-size: 40px;}
    .body--main{flex-direction: column;}
    .body--about{flex-direction: column; height: auto !important;}
    .reverce{flex-direction: column-reverse;}
    .img--main{padding: 0; max-width: 60vw;}
    .body--main{height: 75vh; justify-content: flex-start; height: auto; padding-bottom: 30px;}
    /* .body--main *{margin-top: 20px;} */
    .card-container{flex-direction: column; align-items: center;}
    .card--catalog{max-width: 240px;}
    header{flex-direction: column; padding: 20px 20px 0px 20px}
    .header--a{margin-top: 10px; padding: 0px;}
    .wide-menu{visibility: hidden; height: 0; width: 0; display: none;}
    .hamburger-menu{visibility: visible; height: auto; width: auto; display: flex;}
    /* .calc-menu{visibility: hidden;} */
    .row{width: 100%; justify-content: space-between;}
    .crop-catalog{width: 100%; height: 260px;}
    .contacts-h{font-size: 38px; margin: 8px;}
    .album-img{width: 49%; height: 300px;}
    .album-head{flex-direction: column; align-items: center;}
    .album-head img{max-width: 95vw !important; width: 500px;}
    .album-head div{max-width: 95vw !important; margin: 20px 0px 0px 0px !important;}
    .album-container{padding: 0px 10px;}
    #magnify img{max-width: 95% !important;}
    .body--main{max-height: none;}
}

@media (max-width: 767px){
    .body--c{font-size: 25px;}
    .body--h{font-size: 45px;}
    .header--p{font-size: 30px;}
    .link-bar{flex-direction: column;}
    .card--catalog{max-width: 360px;}
    .container-wide{flex-direction: column;}
    .crop-catalog{width: 100%; height: 240px;}
    .contacts-h{font-size: 30px; margin: 5px;}
    .contacts-c{font-size: 20px; line-height: 35px !important;}
    .p-contacts{font-size: 24px; margin: 11px 5px 0px 5px;}
    .icon-contacts{height: 36px; margin: 2px;}
    .img--main{padding: 0; max-width: 350px; max-height: 70vw;}
    .album-img{height: 200px;}
    input{max-width: 180px;}
    .calculator{max-width: 350px;}
}

@media (max-width: 420px){
    .body--c{font-size: 25px;}
    .body--h{font-size: 45px;}
    .header--p{font-size: 26px;}
    header{flex-direction: column;}
    .link-bar{flex-direction: column;}
    .header--a{margin-top: 5px;}
    .crop-catalog{width: 100%; height: 200px;}
    .icon-contacts{margin: 20px 2px 2px 2px;}
    .contacts-container{flex-direction: column; justify-content: center;}
    .contacts-container *{margin-left: auto; margin-right: auto;}
    .contacts-h{font-size: 30px; text-align: center;}
    .block{padding: 20px 10px;}
    .album-img{width: 99%; height: 300px;}
}

.minimized {
    cursor: pointer;
}
  
#magnify {
    display: none;
    position: fixed;
    width: 100%;
    z-index: 9999;
}
  
#magnify img {
    max-width: 70%;
    max-height: 80vh;
    margin: auto;
}
  
#overlay {
    display: none;
    background: #000;
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    opacity: 0.8;
    z-index: 9990;
}

.calculator{
    display: flex;
    flex-direction: column;
    margin: auto;
    width: 400px;
    transition: 0.2s;
}

.element{
    max-width: 400px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
}

.element p{
    margin: 10px;
    font-size: 18px;
}

input{
    border: 1px solid #000;
    border-radius: 0px;
    font-size: 18px;
}

select{
    background-color: white;
    border: 1px solid #000;
    font-size: 18px;
    padding: 5px;
}
  /* правки 2025*/
/* Стили для миниатюры */
.album-img.minimized {
  cursor: pointer;
  max-width: 200px;
  transition: 0.3s;
}
.album-img.minimized:hover {
  opacity: 0.8;
}

#previewModal {
  display: none;
  position: fixed;
  left: 0; top: 0; width: 100%; height: 100%;
  background: rgba(0,0,0,0.8);
  justify-content: center;
  align-items: center;
}

#previewModal.active {
  display: flex;
}

#previewModal img {
    max-width: 90%;
    max-height: 80%;
    box-shadow: 0 0 20px white;
    user-select: none;
    z-index: 1100;

}

#previewModal .close-btn {
  position: absolute;
  top: 20px; right: 30px;
  font-size: 30px;
  color: white;
  cursor: pointer;
  user-select: none;
}
/* Контейнер для стрелок */
#previewModal .nav-arrows {
    z-index: 1200;
    position: absolute;
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    max-width: 90%;
}

#previewModal .nav-arrows span {
    z-index: 1210;
    color: white;
    font-size: 40px;
    cursor: pointer;
    user-select: none;
    padding: 10px 20px; /* Задаем ширину области клика */
    background: rgba(0,0,0,0.5);
    border-radius: 5px;
    transition: background 0.3s;
}

#previewModal .nav-arrows span:hover {
    background: rgba(255,255,255,0.3);
}
.tooltip {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.tooltip .tooltiptext {
    visibility: hidden;
    width: 250px;
    background-color: black;
    color: #fff;
    text-align: center;
    border-radius: 5px;
    padding: 5px;
    position: absolute;
    z-index: 1;
    bottom: 125%; /* Позиция подсказки */
    left: 50%;
    margin-left: -60px; /* Центрирование подсказки */
    opacity: 0;
    transition: opacity 0.3s;
}

.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}


.error-message {
    color: #e74c3c;
    font-size: 14px;
    margin-top: 5px;
    display: none;
}

.loading {
    display: none;
    text-align: center;
    padding: 40px 20px;
}

.loading-spinner {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #667eea;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    margin: 0 auto 20px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* select option{
    font-family: "HelveticaRegular";
} */