/* ==============================
   📌 Импорты и переменные
============================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap');

:root {
  --bg-gradient: linear-gradient(
    180deg,
    hsl(190deg 81.83% 63.29%) 0%,
    hsl(200deg 96.38% 22.67%) 100%
  );

  --bg-noise: none;
  --glass-light: rgba(255, 255, 255, 0.35);
  --glass-border: rgba(255, 255, 255, 0.6);
  --text-color: #222;
  --accent-color: #555;

  --fade-blur: 4px; /* для эффекта блюра невыбранных карточек */
}

/* ==============================
   🌌 Фон и базовая разметка body
============================== */
body {
  margin: 0;
  min-height: 100vh;
  font-family: 'Inter', sans-serif;

  background: var(--bg-gradient);
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;

  overflow-x: hidden;
  color: var(--text-color, #222);
  line-height: 1.6;

  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 25px;
}

/* ✨ Мягкое свечение поверх фона */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;

  background: radial-gradient(
    circle at 50% 40%,
    rgba(255, 255, 255, 0.05) 0%,
    rgba(255, 255, 255, 0) 80%
  );
  filter: blur(120px);
}

/* ===============================
   🔝 Верхняя панель с логотипом и фильтрами
=============================== */
.topbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
justify-content: center;
  position: sticky;
  top: 5px;
  z-index: 100;
  padding-right:20px;
}

/* ===============================
   🔵 Логотип Traktin
=============================== */
/* 🔵 Левый логотип-кружок */
.logo-circle {
  position: absolute;
  left: -32%;
  top: 15%;

  display: flex;
  justify-content: center;
  align-items: center;

  width: 91px;
  height: 91px;
  border-radius: 50%;

  background: var(--glass-light);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  border: 1px solid var(--glass-border);

  box-shadow: 0 6px 18px rgba(0,0,0,0.05);

  cursor: default;
  text-decoration: none;

  opacity: 0;
  transform: translateY(-20px) translateZ(0);
  transition: opacity 1s ease, transform 1s ease;

  will-change: transform, background;
  
   --rotations: 1;
  --tilt: 0px;
   --twist: 0deg;
   overflow: hidden; /* чтобы блик не вылезал за круг */
}

/* Блики сверху и справа */
.logo-circle::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.82), transparent);
  pointer-events: none;
  z-index: 2;
}

.logo-circle::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 2%;
  background: linear-gradient(to left, rgba(255,255,255,0.94), transparent);
  pointer-events: none;
  z-index: 2;
}



.logo-circle:hover {
  cursor:pointer;
 transform: translateY(-3px);
  
  box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}


.logo-circle.show {
  opacity: 1;
  transform: translateY(0) translateZ(0);
}

.logo-circle img {
  width: 88%;
  height: auto;
  object-fit: contain;
  pointer-events: none; /* чтобы клик на лого не мешал */
  
}

/* 🎬 Анимация вращения монетки */
@keyframes spin-coin {
  0%   { transform: rotateY(0deg); }
  100% { transform: rotateY(360deg); }
}

.logo-circle.spin {
  animation: spin-coin 1s linear;
}
.logo-circle.spinning {
   animation: spinCoin 3s cubic-bezier(0.25, 0.9, 0.4, 1) forwards;
}

@keyframes spinCoin {
  0% {
    transform: translateX(0) rotate(0deg) rotateY(0deg);
  }
  80% {
    transform: translateX(var(--tilt)) rotate(var(--twist))
               rotateY(calc(360deg * var(--rotations)));
  }
  100% {
    transform: translateX(0) rotate(0deg)
               rotateY(calc(360deg * var(--rotations)));
  }
}

/* ===============================
   🔵 круглая кнопка справа
=============================== */
.cta-circle {
  position: absolute;
  right: -33%;
  top: 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 91px;
  height: 91px;
  border-radius: 50%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
  background: var(--glass-light);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  justify-content: center;
  align-items: center;
  border: 1px solid var(--glass-border);
  cursor: pointer;
  text-decoration: none;
  opacity: 0;
   transform: translateY(-20px) translateZ(0); /* как у лого */
  transition: transform 1.0s ease; /* плавный flip */
  transform-style: preserve-3d;
  backface-visibility: hidden;
	z-index: 300;
  will-change: transform, background;         /* 🔧 подсказка браузеру */
  overflow: hidden;
  
}

/* Блики сверху и справа */
.cta-circle::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.82), transparent);
  pointer-events: none;
  z-index: 2;
}

.cta-circle::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 2%;
  background: linear-gradient(to left, rgba(255,255,255,0.94), transparent);
  pointer-events: none;
  z-index: 2;
}



.cta-circle.show {
  opacity: 1;
  transform: translateY(0);
}


/* ✨ Подсветка при наведении */
.cta-circle:hover {
  cursor:pointer;
 transform: translateY(-3px);
  
  box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}





.cta-circle span {
  font-size: 1rem;
  font-weight: 400;
  text-align: center;
  color: #228aa8db;
  
  
  -webkit-background-clip: text;
  background-clip: text;
  line-height: 1.09;
  margin-top: 2px;
  letter-spacing: 0.06em;
  
}



/* Контейнер для дополнительных монет */
.contact-options {
  position: absolute;
  right: -33%;
  top: 16px;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  z-index: 200;
}

.contact-options.show {
  opacity: 1;
  pointer-events: auto;
}

/* Каждая дополнительная монетка */
.contact-option {
  width: 91px;
  height: 91px;
  border-radius: 50%;
  
    box-shadow: 0 6px 18px rgba(0,0,0,0.05);
  background: var(--glass-light);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
   border: 1px solid var(--glass-border);
  
  
  
 
  display: flex;
  justify-content: center;
  align-items: center;
  transform: scale(0) translateX(0) rotate(0deg);
  transition: transform 0.8s ease, opacity 0.5s ease;
  opacity: 0;
 position: absolute;
  right: 0;
  top:0;
   overflow: hidden;
}

/* Блики сверху и справа */
.contact-option::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.82), transparent);
  pointer-events: none;
  z-index: 2;
}

.contact-option::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 2%;
  background: linear-gradient(to left, rgba(255,255,255,0.94), transparent);
  pointer-events: none;
  z-index: 2;
}



.cta-circle.flipping {
animation: flipOne 0.6s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}
@keyframes flipOne {
  0%   { transform: rotateY(0deg); }
  25%  { transform: rotateY(45deg); }
  50%  { transform: rotateY(90deg); }
  75%  { transform: rotateY(135deg); }
  100% { transform: rotateY(180deg); }
}
.contact-option.show {
  opacity: 1;
  transform: scale(1) translateX(var(--shift, 0px)) rotate(var(--spin, 0deg));
}
.contact-option.hide {
  opacity: 1;
  transform: scale(0) translateX(0) rotate(0deg);
}

.cta-circle img {
  width: 35%;
  height: auto;
  pointer-events: none;
  opacity: 0.85;
}

.contact-option img {
  width: 35%;
  height: auto;
  pointer-events: none;
  opacity: 0.85;
}


/* ==============================
   🏷️ Шапка и фильтры
============================== */



header {
  background: var(--glass-light);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  border: 1px solid var(--glass-border);
  border-radius: 50px;
  padding: 1rem 2rem;
  margin-top: 1rem;
  text-align: center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
  


  position: sticky;
  top: 20px;
  z-index: 100;
  overflow: hidden;
    opacity: 0;
  transform: translateY(-40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
header.show {
  opacity: 1;
  transform: translateY(0);
}
/* ✨ Блики как у карточек */
header::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.42), transparent);
  pointer-events: none;
  z-index: 1;
}

header::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 1%;
  background: linear-gradient(to left, rgba(255,255,255), transparent);
  pointer-events: none;
  z-index: 1;
}

/* 🔽 Дополнительные градиенты */
header .gradient-bottom {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.31), transparent);
  z-index: 0;
}
header .gradient-left {
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 50%;
  background: linear-gradient(to right, rgba(205, 248, 255, 0.24), transparent);
  z-index: 0;
}


/* ✨ Подсветка при наведении */
header:hover {
 
   transform: translateY(-3px);
  
  box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}



header h1 {
  margin: 0;
  font-weight: 100;
  font-size: 1.3rem;
  color: #21788f;
  line-height: 18px;
   background: linear-gradient(to top, rgba(255,255,255,0.93), rgba(49,49,49,0));
  -webkit-background-clip: text;
  background-clip: text;
  letter-spacing: 0.04rem;
}
.controls {
  margin-top: 0.7rem;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
}
select {
  padding: 0.4rem 0.6rem;
  border-radius: 19px;
  border: 1px solid var(--glass-border);
  background: rgba(255, 255, 255, 0);
  color: #2e9eb7;
    text-shadow: 0 -1px 0 rgba(255,255,255,0.71);
  backdrop-filter: blur(12px);
  transition: background 0.3s, border 0.3s;
 min-width: 130px;
 width: 125px;
  text-align: center;
   text-align-last: center;   /* Chrome/Edge */
  -moz-text-align-last: center; /* Firefox */
}
select:hover {

  border-color: #fff;
}
select option {
	
 text-align: left;
  padding-left: 5rem;
  color: #062b37;
  padding: 0.5rem;
  border-radius: 15px;
 
}

/* при наведении */
select option:hover {
  background: rgba(255,255,255,0.45);
  color: #000;
}
select:focus,
select:focus-visible {
   outline: none;
  border-color: rgba(255,255,255,0.7);
  box-shadow: 0 0 8px rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.3);
}


/* ==============================
   📐 Сетка проектов
============================== */
main {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 2rem;
  padding: 2rem;
  max-width: 1200px;
  width: 100%;
}

/* ==============================
   🃏 Карточки проектов
============================== */
.project {
  background: var(--glass-light);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid var(--glass-border);
  border-radius: 82px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  position: relative;
    position: relative;
  clip-path: inset(0 round 82px); /* тот же радиус, что border-radius */
  border-radius: 82px;

  /* ✅ общий transition */
  transition: transform 0.4s ease, box-shadow 0.4s ease, background 0.4s ease;
}
.project:hover {
  transform: translateY(-10px);
  background: rgba(255,255,255,0.45);
  box-shadow: 0 12px 28px rgba(0,0,0,0.12);
  cursor:pointer;
}

/* Анимация появления карточек */
.project.animate {
  opacity: 0;
  transform: scale(0.05);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}
.project.animate.show {
  opacity: 1;
  transform: scale(1);
}
.project.animate.hide {
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.5s ease-in, transform 0.5s ease-in;
}

/* Hover-анимация с лёгким плаванием */
.project.animate.show:hover {
  transform: translateY(-10px);
  box-shadow: 0 14px 32px rgba(0,0,0,0.18);
  transition: transform 1.0s ease, box-shadow 0.6s ease;
  animation: float 3s ease-in-out infinite;
  animation-delay: 0.6s;
}
/* когда проект развёрнут — отключаем hover */
.project.expanded:hover {
  
  background: var(--glass-light) !important;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08) !important;
  cursor: default !important;
  
}


/* ==============================
   ✨ Эффекты карточек (блики)
============================== */
.project::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.64), transparent);
  pointer-events: none;
  z-index: 1;
}
.project::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(to left, rgba(255,255,255,0.43), transparent);
  pointer-events: none;
  z-index: 1;
}
.project .gradient {
  position: absolute;
  pointer-events: none;
  z-index: 1;
}
.project .gradient-bottom {
  left: 0; right: 0; bottom: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.31), #0000);
  z-index: 0;
}
.project .gradient-left {
  top: 0; bottom: 0; left: 0;
  width: 50%;
  background: linear-gradient(to right, rgba(205, 248, 255, 0.24), #0000);
  z-index: 0;
}

.project .gradient,
.project::before,
.project::after {
  border-radius: inherit;
}


/* ==============================
   ✨ Z-index fix
============================== */
.project .content,
.project-image {
  position: relative;
  z-index: 3;
}
.project.expanded {
  z-index: 10;
}
#projectsContainer.expanded {
  position: relative;
  z-index: 5;
}

/* ==============================
   🖼️ Блок с картинкой
============================== */
.project-image {
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(255,255,255,0.15);
  height: 185px;
  padding: 30px 15px 0;
  box-sizing: border-box;
}
.project-image img {
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  display: block;
  border-radius: 10px;
}

/* ==============================
   📄 Контент карточки
============================== */
.project .content {
  padding: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  text-align: center;
  background: rgba(255,255,255,0.15);
  justify-content: flex-start;
  flex-grow: 1;
}
.content-bottom {
  margin-top: auto;
  display: flex;
  flex-direction: column;
}
.project h3 {
  margin: 0 2px;
  font-size: 23px;
  font-weight: 400;
  color: #062b37c4;
  line-height: 25px;
  padding-bottom: 10px;
  letter-spacing: 0.03em
}
.project h4 {
  
  font-size: 22px;
  font-weight: 400;
  color: #0d3846;
  line-height: 0px;
  padding-bottom: 0px;
  letter-spacing: 0.02em;
  padding-top: 10px;
  margin-bottom: 24px;
}



.description, .type-description {
  font-size: 0.9em;
  color: #062b37c4;
  letter-spacing: 0.02em;
}
.description { line-height: 20px; }
.type-description { line-height: 8px; }

/* ==============================
   ⭐ Метки (сложность, решения, год)
============================== */
.resolved-issue {
  font-size: 16px;
  letter-spacing: 0.05em;
  color: #114657;
  
  -webkit-background-clip: text;
  background-clip: text;
  
  margin-top: 8px;
  line-height: 16px;
  padding-bottom: 13px;
}
.resolved-issue-digit {
  font-size: 60px;
  color: #0d4b5f;
  -webkit-background-clip: text;
  background-clip: text;
  
  line-height: 27px;
  letter-spacing: -0.04em;
}
.year {
  font-size: 0.9em;
  color: #062b37;
  line-height: 0;
  
  padding-top: 16px;
  margin-left: 6px;
}
.difficulty {
  font-size: 1.5rem;
  letter-spacing: 3px;
  color: #0f4659;
  text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.49);
  -webkit-background-clip: text;
  background-clip: text;
  
 
  line-height: 13px;
  padding-top: 3px;
  padding-bottom:1px;
}
span.difficulty2 {
  font-size: 0.6em;
  font-weight: 400;
  letter-spacing: 1px;
  color: #062b37;
  background: none;
}

/* ==============================
   📷 Скриншоты и слайдер
============================== */
.screenshots-controls {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin: 1rem 0;
}
.show-screenshots, .hide-screenshots {
  padding: 0.6rem 1.2rem;
  border-radius: 10px;
  border: 1px solid var(--glass-border);
  background: var(--glass-light);
  backdrop-filter: blur(10px);
  cursor: pointer;
  transition: background 0.3s;
}
.show-screenshots:hover, .hide-screenshots:hover {
  background: rgba(255,255,255,0.5);
}
.hidden { display: none !important; }

.screenshots-slider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1rem;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s ease;
}
.screenshots-slider.active { max-height: 450px; }
.screenshots-slider img {
  width: auto;
  max-width: 500px;
  height: 400px;
  object-fit: fill;
  border-radius: 12px;
  opacity: 1;
  transition: opacity 0.4s ease;
  cursor: pointer;
  border: 1px solid #fdfdfdcf;
  padding: 15px;
}
.screenshots-slider img.fade-out { opacity: 0; }
.screenshots-slider button {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid var(--glass-border);
  border-radius: 50%;
  width: 50px; height: 50px;
  font-size: 1.3rem;
  cursor: pointer;
  transition: background 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: #fff;
}
.screenshots-slider button:hover {
  background: rgba(255,255,255,0.3);
}

/* ==============================
   🔎 Lightbox
============================== */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}
.lightbox img {
  max-width: 90%;
  max-height: 90%;
  border-radius: 20px;
}
/* ==============================
   📂 Expanded project
============================== */
#projectsContainer.expanded { display: grid !important; }

/* стало */
#projectsContainer.expanded .project:not(.expanded):not(.will-expand):not(.collapsing):not(.expanding) {
  opacity: 0;
  filter: blur(var(--fade-blur));
  pointer-events: none;
   
  
}


.project.faded-out {
  opacity: 0;
  filter: blur(6px);
  transform: scale(0.96);
  transition: opacity 0.5s ease, transform 0.5s ease, filter 0.5s ease;
  pointer-events: none;
}
.project.hidden-project {
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  display: none !important;
}

.project.expanded .screenshots-slider {
  position: relative;
  z-index: 20; /* выше деталей и градиентов */
}

.project.expanded .screenshots-slider button,
.project.expanded .screenshots-slider img {
  pointer-events: auto !important;
}
/* Контейнер для визуальных эффектов внутри карточки */
.project-inner {
  position: relative;
  border-radius: inherit;
  overflow: hidden; /* только внутри этого контейнера */
}

/* Перемещаем псевдоэлементы и градиенты внутрь */
.project-inner::before,
.project-inner::after,
.project-inner .gradient {
  position: absolute;
  border-radius: inherit;
  pointer-events: none;
}


/* Финальное состояние раскрытой карточки */
.project.expanded {
  grid-column: 1 / -1;
  order: -1;            
  position: relative;
  max-width: 960px;
  margin: 52px auto;
  filter: none;
  opacity: 1 !important;  
  z-index: 10;
    overflow: visible !important; /* нужно, чтобы клики и стрелки проходили */
}

/* Фаза анимации открытия */
.project.expanding {
  transition: transform 0.7s cubic-bezier(0.22,1,0.36,1),
              opacity 0.4s ease;
	  will-change: transform;
	  z-index: 10;
}

/* Фаза анимации закрытия */
.project.collapsing {
  /* Важно: карточка остаётся expanded, пока проигрывается transform */
  transition: transform 0.7s cubic-bezier(0.22,1,0.36,1),
              opacity 0.4s ease;
  z-index: 10;
    will-change: transform;
}

/* кнопка закрытие карточки развернутого проекта */
.close-details-floating {
  position: absolute;
  padding: 0.7rem 1.2rem;
  border-radius: 22px;
  border: 1px solid var(--glass-border);
  background: rgba(138, 226, 246, 0.93);
  backdrop-filter: blur(10px);
  color: #1288a6;
  font-size: 0.95rem;
  letter-spacing: 0.04rem;
  cursor: pointer;
  z-index: 2500;
  transition: background 0.3s, transform 0.3s;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
.close-details-floating:hover {
  background: rgba(255, 255, 255, 0.45);
  transform: translateY(-2px);
}



/* Детали внутри карточки */
.project-details {
  display: none;
  padding: 0.3rem 2rem 2rem 2rem;
  background: rgba(255,255,255,0.25);
  margin-top: 1px;
  text-align: center;
  animation: fadeIn 0.3s ease forwards;
}

/* ✨ Мягкое появление деталей */
.project.expanded .project-details {
  display: block;
  animation: fadeIn 0.4s ease forwards;
   position: relative;
  z-index: 10;
  overflow: visible !important;
}

.project-details p { 
	margin: 0.5rem 0.7rem; 
	color: #0d4b5f;
	letter-spacing: 0.02rem;
	font-size: 1.05rem;
	line-height: 1.65;
	}

.close-details {
 display: inline-block;
  margin-bottom: 0.4rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--glass-border);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.16);
  cursor: pointer;
  color: #147084;
  font-size: 0.90rem;
  letter-spacing: 0.04rem;
}

.close-details:hover {
  background: rgba(255,255,255,0.3);
}


@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

/* Детали задачи и решения */
.solutions-block {
  margin-top: 1.5rem;
  text-align: center;
  padding-bottom: 3px;
}

.solutions-block h3 {
  font-size: 1.2rem;
  margin-bottom: 0.8rem;
  color: #044858;
}

.solution-item {
  border: 1px solid var(--glass-border);
  border-radius: 30px;
  margin: 0.8rem 1.7rem 0.8rem 1.7rem;
  background: rgba(255,255,255,0);
  overflow: hidden;
}

.solution-title {
 padding: 0.5rem 1rem;
 letter-spacing: 0.02rem;
	font-size: 1.05rem;
  cursor: pointer;
  background: rgba(255,255,255,0.09);
  color: #0d4b5f;
  display: flex;
  justify-content: center;    /* текст по центру */
  align-items: center;
  position: relative;         /* для фиксации стрелки */
}

.solution-title:hover {
  background: rgba(255,255,255,0.2);
}
/* стрелка */
.toggle-icon {
  position: absolute;
  right: 1rem;
  width: 0.6rem;
  height: 0.6rem;
  border-left: 1px solid #fff;   /* белая стрелка */
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg);     /* изначально «вниз» */
  transition: transform 0.3s ease;
}
/* при раскрытии */
.solution-item.active .toggle-icon {
  transform: rotate(135deg);     /* поворот «вверх» */
}
.solution-desc {
  color: #0d4b5f;
  letter-spacing: 0.02rem;
  font-size: 1.04rem;
  line-height: 1.65;
  max-height: 0;
  overflow: hidden;             /* полностью скрыт в свернутом виде */
  padding: 0 1rem;
  transition: max-height 1.4s ease, padding 0.3s ease;
}

/* раскрытие */
.solution-desc.show {
  display: block;
  max-height: 500px;            /* ограничиваем высоту */
  padding: 0.8rem 1rem;
  overflow-y: auto;             /* включаем скролл ТОЛЬКО в открытом */
  scrollbar-gutter: stable;     /* (CSS3) чтобы не мигал скроллбар */
}

/* для Firefox можно скрыть сам скроллбар, если хочется */
.solution-desc.show {
  scrollbar-width: thin;
  scrollbar-color: #ffffff1a transparent;
  
}

/* для Chrome/Safari */
.solution-desc.show::-webkit-scrollbar {
  width: 3px;
   background: #ffffff33;
  scrollbar-color: #ffffff1a transparent;
}
.solution-desc.show::-webkit-scrollbar-thumb:hover {
  background: #ffffff33;  /* чуть видимее при наведении */
   scrollbar-color: #ffffff1a transparent;
}
.solution-desc.show::-webkit-scrollbar-thumb {
  background-color: rgba(0,0,0,0.3);
  border-radius: 3px;
}

.solution-desc.show::-webkit-scrollbar-track {
  background: transparent;
}

.solution-item.active .solution-desc {
  max-height: 500px;         /* ставим значение больше, чем реальная высота текста */
  padding: 0.8rem 1rem;      /* нормальные отступы при раскрытии */
}


/* информация */
.info-block {
  margin-top: 1.5rem;
  text-align: center;
  padding-bottom: 20px;
}

.info-block h3 {
  font-size: 1.2rem;
  margin-bottom: 0.8rem;
  color: #044858;
  text-align: center;
}

.info-block ul {
  list-style-type: circle;
  list-style-position: inside; /* маркер переносится внутрь */
  text-align: center;
  padding-left: 0; /* убираем отступ слева */
  margin: 0 auto;
}

.info-block li {
	letter-spacing: 0.02rem;
  font-size: 1.05rem;
  margin-bottom: 0.5rem;
  
  color: #0d4b5f;
 
}

/* ===============================
   📱 ФИНАЛЬНАЯ МОБИЛЬНАЯ ВЕРСТКА
   Лого + Контакты — на одной линии, фильтры ниже
=============================== */
@media (max-width: 768px) {
  body {
    padding: 0 10px !important;
  }

  /* === Общая верхняя зона === */
  .topbar {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    position: relative;
    width: 100%;
	padding-bottom: 7px;
	 padding-right:0px;
  }

  /* === 1 строка: логотип + контакты === */
  .topbar-row {
    display: flex;
     justify-content: center !important;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: nowrap;
    width: 95%;
	padding-top:5px;
	    margin-left: -3px;             /* смещение в зависимости от gap */
transform: translateX(calc(var(--auto-shift, 0px) + 4px)); /* оставляем твой 4px базовый */
  transition: transform 0.55s cubic-bezier(0.25, 1, 0.3, 1);
	
  }

  .logo-circle,
  .cta-circle {
    position: static !important;
    width: 65px !important;
    height: 65px !important;
    margin: 0 !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
  }
 .cta-circle span {
	font-size: 0.75rem !important; 
 }
	 
 
  .contact-options {
    position: absolute !important;
    display: flex !important;
    transform: none !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.6rem !important;
    margin-top: 0.5rem !important;
	width: auto !important;           /* ⬅ убираем фикс. размеры */
    height: auto !important;          /* ⬅ убираем фикс. размеры */
	flex-wrap: nowrap !important; 
	margin: 0 !important;  
	  top: 5px;                   /* подогнать по центру “Контакты” */
  right: calc(39% - 33px);     /* вычисляем позицию по кругу */
   pointer-events: none;   
	
  }

.cta-circle img,
  .contact-option img {
    width: 60% !important;
    height: auto !important;        /* ✅ сохраняем пропорции */
    object-fit: contain !important;
    border-radius: 0 !important;
    display: block !important;
  }

  .contact-option {
       width: 65px !important;           /* ⬅ фиксируем круглую форму */
    height: 65px !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;        /* ⬅ запрещаем сжимание */
    right: 0 !important;
    top: 0 !important;
    transform: scale(0) translateX(0) rotate(0deg);
    transition: transform 0.8s ease, opacity 0.5s ease;
    opacity: 0;
  position: absolute !important;
    scale: 1 !important;
	    margin: 0 !important; 
  }
  
   /* при появлении — плавный выезд */
  .contact-option.show {
    opacity: 1;
    transform: scale(1)
      translateX(var(--shift-mobile, 65px))      /* ← радиус выкатывания */
      rotate(var(--spin, 0deg));
  }
   /* при скрытии */
  .contact-option.hide {
    opacity: 0;
    transform: scale(0) translateX(0) rotate(0deg);
  }
    /* задаём разный сдвиг для каждой монеты (чтобы не слипались) */
  .contact-option:nth-child(1) { --shift-mobile: 70px; }
  .contact-option:nth-child(2) { --shift-mobile: 140px; }
  .contact-option:nth-child(3) { --shift-mobile: 210px; }
  

  /* === 2 строка: фильтры === */
  header {
    margin-top: 0.5rem !important;
    border-radius: 30px !important;
    padding: 0.8rem 1rem !important;
    text-align: center !important;
    width: 79% !important;
    max-width: 600px !important;
    box-sizing: border-box;
  }

  .controls {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.6rem !important;
  }

  select {
    width: 100% !important;
    min-width: 100% !important;
    font-size: 0.9rem !important;
    text-align: center !important;
  }

  /* === 3 строка: проекты === */
  main {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 1.2rem !important;
    padding: 1rem !important;
    width: 94% !important;
    max-width: 100% !important;
  }

  .project {
    width: 100% !important;
    border-radius: 50px !important;
  }

  .project-image {
    height: 150px !important;
  }
   /* Дополнительно: чтобы не вылезали за границы */
  .contact-options {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0.4rem !important;
  }
  /* === 📱 Оптимизация раскрывающихся блоков решений для мобильной версии === */
  
   .solutions-block h3 {
    font-size: 1rem !important;
    margin-bottom: 0.6rem !important;
  }

  .solution-item {
    margin: 0.6rem 0.8rem !important;
    border-radius: 20px !important;
  }

  .solution-title {
  padding: 0.7rem 1.7rem 0.1rem 0.9rem;
  letter-spacing: 0.02rem;
  font-size: 0.9rem;
  cursor: pointer;
  color: #0d4b5f;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  line-height:1.2rem;
   background: none;
}
  .solution-title:hover {
  background: none;
	}
.project-details p {
  margin: 0.5rem 0.7rem;
  color: #0d4b5f;
  letter-spacing: 0.02rem;
  font-size: 0.95rem;
  line-height: 1.65;
}
  .solution-desc {
    font-size: 0.88rem !important;
    line-height: 1.45 !important;
    padding: 0.4rem 0.8rem !important;
  }

  .solution-desc.show {
    max-height: 400px !important;
    padding: 0.6rem 0.9rem !important;
  }

  .info-block h3 {
    font-size: 1rem !important;
    margin-bottom: 0.6rem !important;
  }

  .info-block li {
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
  }
  .project-details {
  display: none;
  padding: 1rem;
  background: rgba(255,255,255,0.25);
  margin-top: 1px;
  text-align: center;
  animation: fadeIn 0.3s ease forwards;
}



 .screenshots-slider {
    flex-direction: column !important;
    gap: 0.6rem !important;
    margin-top: 0.6rem !important;
    max-height: none !important;
	flex-direction: row !important; 
	position: relative !important; 
  }

  .screenshots-slider img {
    max-width: 88% !important;
    height: auto !important;          /* ✅ сохраняем пропорции */
    max-height: 260px !important;     /* мягкое ограничение */
    object-fit: contain !important;
    border-radius: 10px !important;
    padding: 8px !important;
  }

  .screenshots-slider button {
      position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    font-size: 1.1rem !important;
    background: rgba(255, 255, 255, 0.18) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
   .screenshots-slider button:first-of-type {
    left: 4% !important;
  }

  .screenshots-slider button:last-of-type {
    right: 4% !important;
  }
  
}

/* === Маленькие экраны (iPhone SE и т.п.) === */
@media (max-width: 480px) {
  .logo-circle,
  .cta-circle {
    width: 65px !important;
    height: 65px !important;
  }
.cta-circle span {
	font-size: 0.76rem !important; 
 }
  header {
    border-radius: 25px !important;
    padding: 0.6rem 0.8rem !important;
  }

  header h1 {
    font-size: 1rem !important;
  }

  .project-image {
    height: 130px !important;
  }
  .solution-title {
  padding: 0.7rem 2rem 0.1rem 1.2rem;
  letter-spacing: 0.02rem;
  font-size: 0.95rem;
  cursor: pointer;
  color: #0d4b5f;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  line-height:1.37rem;
}
.project-details p {
  margin: 0.5rem 0.7rem;
  color: #0d4b5f;
  letter-spacing: 0.02rem;
  font-size: 0.95rem;
  line-height: 1.65;
}

.solution-title:hover {
  background: none;
}
 .screenshots-slider img {
    max-width: 95% !important;
    max-height: 220px !important;
    padding: 6px !important;
  }

  .screenshots-slider button {
    width: 32px !important;
    height: 32px !important;
    font-size: 1.0rem !important;
	top: 50% !important;                     /* центр вертикально */
    transform: translateY(-50%) !important;  /* компенсируем высоту */
  }
.screenshots-slider button:first-of-type {
    left: 0% !important;
  }

  .screenshots-slider button:last-of-type {
    right: 0% !important;
  }
    .contact-option:nth-child(1) { --shift-mobile: 70px; }
  .contact-option:nth-child(2) { --shift-mobile: 140px; }
  .contact-option:nth-child(3) { --shift-mobile: 210px; }
}
