/* --- Сдвиг основной сетки фото/видео вправо под логотип --- */
.photos-grid,
.masonry-gallery,
.short-videos-grid,
.video-grid {
  margin-left: auto !important;
  margin-right: auto !important;
}
/* --- Short video grid: 5 в ряд на десктопе, 3 в ряд на телефоне --- */
.short-videos-grid {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 18px;
  max-width: 1600px;
  margin: 40px auto 0 auto;
  padding: 0 32px;
  box-sizing: border-box;
  width: 100%;
}

.short-videos-grid video {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16/9 !important;
  object-fit: cover !important;
  background: #000;
  border: none;
  margin: 0;
  padding: 0;
  display: block !important;
  max-width: 100%;
}

@media (max-width: 1200px) {
  .short-videos-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 900px) {
  .short-videos-grid {
    gap: 8px;
    padding: 0 16px;
  }
}

@media (max-width: 600px) {
  .short-videos-grid {
    gap: 4px;
    padding: 0;
  }
}
    height: auto !important;
    object-fit: cover !important;
    max-width: 100% !important;
    background: #000 !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
  }
}
/* --- Гарантированная мобильная сетка для short-videos-grid --- */
/* === CRITICAL OVERRIDES FOR MOBILE === */
@media (max-width: 700px) {
  .about-flex {
    flex-direction: column !important;
    align-items: stretch !important;
    max-width: 100vw !important;
    margin: 24px auto 0 auto !important;
    gap: 0 !important;
    padding: 0 !important;
  }
  .about-photo {
    max-width: 100vw !important;
    width: 100vw !important;
    margin: 0 auto 18px auto !important;
    display: block !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 10px !important;
  }
  .about-text {
    margin: 0 !important;
    padding: 0 8vw !important;
    text-align: left !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* Удалён дублирующий media-запрос для short-videos-grid (оставлен только один — с 3 колонками и минимальным gap) */
@media (max-width: 700px) {
  .about-flex {
    flex-direction: column !important;
    align-items: stretch !important;
    max-width: 100vw !important;
    margin: 24px auto 0 auto !important;
    gap: 0 !important;
  }
  .about-photo {
    max-width: 100vw !important;
    width: 100vw !important;
    margin: 0 auto 18px auto !important;
    display: block !important;
  }
  .about-text {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 8vw !important;
    text-align: left !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* Сдвиг фото к левому краю и текст рядом */
.about-flex {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 32px;
  padding: 0;
  margin: 0;
}
.about-photo {
  margin: 0;
  padding: 0;
  max-width: 480px;
  width: 38vw;
  min-width: 220px;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 10px;
}
.about-text {
  margin: 0;
  padding: 0;
  align-self: flex-start;
  min-width: 180px;
}
@media (max-width: 900px) {
  .about-flex {
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }
  .about-photo {
    width: 100vw;
    max-width: 100vw;
    min-width: 0;
    margin: 0 auto 18px auto;
    border-radius: 10px;
  }
  .about-text {
    padding: 0 8vw;
    width: 100%;
    min-width: 0;
  }
}

/* Только один media-запрос для мобильных short-videos-grid */
@media (max-width: 600px) {
  .short-videos-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 4px !important;
    max-width: 100vw !important;
    width: 100vw !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }
  .short-videos-grid video {
    aspect-ratio: 16/9 !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    max-width: 100% !important;
    background: #000 !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
  }
}

  .masonry-gallery {
    column-count: 4;
    column-gap: 0;
    max-width: 1600px;
    width: 100%;
    margin: 40px auto 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
  }
  .masonry-photo {
    width: 100%;
    display: block;
    border-radius: 0;
    box-shadow: none !important;
    background: #fff !important;
    border: none !important;
    outline: none !important;
    vertical-align: top;
    padding: 0;
    object-fit: cover;
  }
  .masonry-gallery .masonry-photo:nth-child(-n+4) {
    grid-row: 1;
  }

  /* === RESPONSIVE PHOTO GALLERY === */
  @media (max-width: 1200px) {
    .masonry-gallery {
      column-count: 3;
      max-width: 100%;
      width: 100%;
      margin: 40px auto 0 auto;
      padding: 0 16px;
    }
  }

  @media (max-width: 900px) {
    .masonry-gallery {
      column-count: 2;
      max-width: 100%;
      width: 100%;
      margin: 40px auto 0 auto;
      padding: 0 16px;
    }
  }

  @media (max-width: 600px) {
    .masonry-gallery {
      column-count: 1;
      max-width: 100%;
      width: 100%;
      margin: 40px auto 0 auto;
      padding: 0 12px;
    }
  }
    .masonry-photo {
      width: 100%;
      margin-bottom: 0;
      border-radius: 0;
      box-shadow: none !important;
      display: block;
      background: #fff !important;
      border: none !important;
      outline: none !important;
      vertical-align: top;
      padding: 0;
      object-fit: cover;
    }
/* Фото на главной */
.main-home-photo {
  max-width: 420px;
  max-height: 600px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  box-shadow: 0 4px 24px #0002;
  border-radius: 0;
}
/* Видео */
.video-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 800px;
  margin: 0 auto;
}
.video-item {
  width: 100%;
  width: 100%;
  height: auto;
  background: #000;
  border-radius: 0;
  object-fit: contain;
  display: block;
  max-width: 100%;
  max-height: none;
}
.video-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
/* Удалены вложенные правила и лишние скобки */
}
.mute-btn:hover {
  background: #fff;
  opacity: 1;
}
.video-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mute-btn {
  position: absolute;
  bottom: 16px;
  right: 16px;
  background: rgba(255,255,255,0.85);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 1.2em;
  color: #222;
  cursor: pointer;
  box-shadow: 0 2px 8px #0002;
  transition: background 0.2s, opacity 0.2s;
  opacity: 0.85;
  z-index: 2;
}
.mute-btn:hover {
  background: #fff;
  opacity: 1;
}
/* Видео: сделать прямоугольными и ограничить размер на мобильных */
.video-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 800px;
  margin: 0 auto;
}
.video-item {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 0;
  object-fit: cover;
  display: block;
}
@media (max-width: 900px) {
    /* This media query is a duplicate and will be removed */
@media (max-width: 600px) {
  .video-item {
    aspect-ratio: 16/9;
    max-width: 100vw;
    max-height: 56vw;
  }
}
h1, h2, h3, .logo {
  font-size: 1.2rem !important;
  letter-spacing: 0.04em !important;
}
    .top-menu {
      flex-direction: row !important;
      align-items: center !important;
      justify-content: center !important;
      padding: 24px 0 0 0 !important;
    }
    .top-menu .logo {
      margin-bottom: 0 !important;
      margin-right: 48px !important;
      font-size: 1.2rem !important;
    }
    .top-menu .menu {
      gap: 24px !important;
      flex-wrap: wrap !important;
      font-size: 1.1rem !important;
      justify-content: center !important;
      margin-left: 0 !important;
    }
    .top-menu .menu-item {
      font-size: 1.1rem !important;
      padding: 2px 0 !important;
      white-space: nowrap !important;
      transform: none !important;
    }
.masonry-gallery {
  column-count: 4;
  column-gap: 18px;
  max-width: 1600px;
  margin: 40px auto 0 auto;
}
.masonry-photo {
  .video-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
  }
  .video-item {
    width: 100%;
    height: auto;
    background: #000;
    border-radius: 0;
    object-fit: contain;
    display: block;
    max-width: 100%;
    max-height: 420px;
  }
  @media (max-width: 900px) {
    .video-grid {
      grid-template-columns: 1fr;
      gap: 16px;
    }
    .video-item {
      max-width: 100vw;
      max-height: 240px;
    }
  }
  @media (max-width: 600px) {
    .video-item {
      max-width: 100vw;
      max-height: 180px;
    }
  }
  background: #000;
  object-fit: cover;
  display: block;
  border: none;
}
/* Фото на главной странице как в слайдере */
.main-home-photo {
  max-width: 420px;
  max-height: 600px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  box-shadow: 0 4px 24px #0002;
  border-radius: 0;
}

/* ===== Lightbox (shared) ===== */
.lightbox { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; z-index: 9999; }
.lightbox.open { display: flex; }
.lightbox__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.92); }
.lightbox__content { position: relative; z-index: 1; max-width: 90vw; max-height: 90vh; display: flex; align-items: center; justify-content: center; }
.lightbox__content img, .lightbox__content video { max-width: 90vw; max-height: 90vh; border-radius: 0; box-shadow: 0 8px 40px #0008; background: #000; }
.lightbox__close { position: absolute; top: 16px; right: 20px; z-index: 2; font-size: 32px; line-height: 1; border: 0; background: transparent; color: #fff; cursor: pointer; }
.about-name {
  font-weight: 700;
  letter-spacing: 0.04em;
}

.top-menu .logo, .top-menu .menu-item {
  text-transform: uppercase;
}

@media (max-width: 600px) {
  .about-flex {
    flex-direction: column;
    align-items: center;
    gap: 18px;
  }
  .about-photo {
    max-width: 90vw;
  }
  .about-text {
    margin-left: 12px;
    text-align: left;
  }
  .about-label {
    margin-bottom: 12px;
    margin-right: 0;
    justify-content: flex-start;
  }
}
/* --- ABOUT/CONTACT SECTION --- */
body, html {
  font-family: 'Montserrat', 'Arial', sans-serif !important;
  font-weight: 400;
  font-size: 18px;
  color: #222;
  letter-spacing: 0.01em;
  background: #fff;
}
/* --- ABOUT/CONTACT SECTION --- */
.about-flex {
  display: flex;
  align-items: flex-start;
  margin: 40px auto 0 auto;
  gap: 32px;
  position: relative;
  justify-content: flex-start;
}
.about-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 700 !important;
  font-size: 1em;
  letter-spacing: 2px;
  color: #111;
  margin-right: 18px;
  margin-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  align-self: stretch;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  height: 100%;
}
.about-photo {
  width: 100%;
  max-width: 220px;
  height: auto;
  box-shadow: 0 4px 24px #0002;
  border-radius: 8px;
  object-fit: cover;
  background: #fff;
  display: block;
}
.about-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-left: 32px;
  text-align: left;
  align-items: flex-start;
  gap: 12px;
    width: auto;
  color: #222;
}

@media (max-width: 600px) {
  .about-text {
    margin-right: 0;
    font-size: 1.2rem;
  }
  .top-menu .menu {
    gap: 16px;
    font-size: 1rem;
    flex-wrap: wrap;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-left: 0 !important;
  text-align: left;
  align-items: flex-start;
  gap: 24px;
}
.about-info-columns {
    margin-left: -16px !important;
    margin-right: 0 !important;
    white-space: nowrap;
  flex-wrap: wrap;
  gap: 40px;
  width: 100%;
}
.about-info-col {
  min-width: 160px;
  flex: 1 1 160px;
}
  .about-flex {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    justify-content: flex-start;
    text-align: left;
  }
  .about-label {
    writing-mode: unset;
    transform: none;
    display: block;
    text-align: left;
    margin-bottom: 12px;
    margin-right: 0;
    justify-content: flex-start;
    font-size: 1.1em;
    font-family: 'Montserrat', Arial, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px;
    color: #111;
    height: auto;
  }
  .about-photo {
    max-width: 60vw;
    margin: 0 0 18px 0 !important;
    display: block;
  }
  .about-text {
    margin-left: 0 !important;
    text-align: left;
    align-items: flex-start;
    justify-content: flex-start;
  }
  .about-flex {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    justify-content: flex-start;
    text-align: left;
  }
  .about-label {
    writing-mode: unset;
    transform: none;
    display: block;
    text-align: left;
    margin-bottom: 12px;
    margin-right: 0;
    justify-content: flex-start;
    font-size: 1.1em;
    font-family: 'Montserrat', Arial, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px;
    color: #111;
    height: auto;
    border-left: none;
    padding-left: 0;
  }
  .about-photo {
    max-width: 100vw;
    min-width: 0;
    margin: 0 0 18px 0 !important;
    display: block;
  }
  .about-text {
    margin-left: 0;
    text-align: left;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 18px;
  }
  .about-info-columns {
    flex-direction: column;
    gap: 18px;
  }
  .about-info-col {
    min-width: 0;
    flex: 1 1 100%;
  }
}
}
.about-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 1.05em;
  letter-spacing: 2px;
  color: #111;
  margin-right: 18px;
  margin-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-photo {
  width: 100%;
  max-width: 220px;
  height: auto;
  box-shadow: 0 4px 24px #0002;
  border-radius: 8px;
  object-fit: cover;
  background: #fff;
}
.about-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-left: 24px;
  text-align: left;
  align-items: flex-start;
}
.about-name, .about-contacts {
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 700;
  font-size: 1.05em;
  color: #222;
  margin-bottom: 8px;
  margin-top: 0;
}
.about-desc {
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 400;
  font-size: 1.05em;
  color: #222;
  margin-bottom: 8px;
  margin-top: 0;
}

@media (max-width: 600px) {
  .about-flex {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    justify-content: flex-start;
    text-align: left;
  }
  .about-label {
    writing-mode: unset;
    transform: none;
    display: block;
    text-align: left;
    margin-bottom: 12px;
    margin-right: 0;
    justify-content: flex-start;
    font-size: 1.1em;
    font-family: 'Montserrat', Arial, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px;
    color: #111;
  }
  .about-photo {
    max-width: 90vw;
    margin: 0 0 18px 0 !important;
    display: block;
  }
  .about-text {
    margin-left: 0;
    text-align: left;
    align-items: flex-start;
    justify-content: flex-start;
  }
.top-menu .menu-item:hover {
  color: #888;
}
.top-menu .menu-item:hover {
  color: #888;
}
.about-flex {
  display: flex;
  align-items: flex-start;
  max-width: 700px;
  margin: 60px auto 0 auto;
  gap: 0;
  position: relative;
}
.about-label {
  writing-mode: unset;
  transform: none;
  display: block;
  text-align: left;
  margin-bottom: 18px;
  margin-right: 0;
  font-family: 'Arial Black', Impact, 'Avenir Next', Arial, 'Helvetica Neue', Helvetica, sans-serif !important;
  font-weight: 900 !important;
  font-style: normal !important;
    font-size: 1.1em; /* Adjusted for consistency */
  letter-spacing: 2px;
  color: #111;
  margin-right: 24px;
  margin-left: 0;
  margin-top: 0;
  margin-bottom: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  }
  @media (max-width: 600px) {
    .about-label {
      font-size: 0.7em; /* Make the text smaller on mobile */
    }
.about-flex {
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
  justify-content: flex-start;
  text-align: left;
}
.about-label {
  position: absolute;
  left: 0;
  top: 0;
  writing-mode: vertical-rl !important;
  transform: rotate(180deg) !important;
  font-size: 1.1em;
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 2px;
  color: #111;
  margin: 0;
  height: auto;
  z-index: 2;
}
.about-desc {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 1.05em;
  color: #222;
  margin-bottom: 8px;
  margin-top: 0;
  line-height: 1.2;
}
.about-contacts {
  font-family: 'Montserrat', Arial, sans-serif !important;
  font-size: 1.05em;
  color: #222;
  margin-top: 0;
  font-weight: 700;
}
.about-contacts a {
  color: #111;
  text-decoration: none;
  margin-right: 18px;
  font-weight: 400;
}
/* --- Contact section: black text, Avenir Next Regular, 12px --- */
#contact, #contact * {
  color: #111 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
}
#contact a {
  color: #111 !important;
  text-decoration: none !important;
}
.menu-item.logo {
  text-transform: uppercase !important;
}
/* Four-in-a-row grid for photos.html */
.photos-four-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  max-width: 1400px;
  margin: 40px auto 0 auto;
}

.photos-four-grid img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 0;
  box-shadow: 0 2px 16px #0001;
}
}
.top-menu .menu a {
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.2px;
}
/* (reverted forced .top-menu font styles) */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');

/* ========================
  Шрифт Google Sans / Montserrat
======================== */
/* Исправлено: удалены лишние скобки и вложенность */


.google-sans-bold {
  font-family: inherit;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "GRAD" 0;
}

/* ========================
   Контактная секция
======================== */
#contact {
  padding: 50px 20px;
}

#contact .contact-wrapper {
  display: flex;
  align-items: flex-start; /* выравнивание по верхнему краю фото */
  gap: 40px;
  flex-wrap: wrap; /* адаптивно */
}

#contact img {
  width: 800px; /* увеличено по запросу */
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

/* (removed .contact-photo rollback to previous state) */

#contact .contact-text {
  text-align: left;
  max-width: 600px;
}


/* --- TOP MENU как на скриншоте --- */
.top-menu {
  position: sticky;
  top: 0;
  left: 0;
  width: 100vw;
  background: #fff;
  z-index: 100;
  margin: 0;
  padding: 32px 0 0 0;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  align-items: stretch;
  min-height: 1px;
}
.masonry-grid img {
  .masonry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 12px;
  max-width: 900px;
  margin: 40px auto 0 auto;
}
.masonry-grid img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  box-shadow: 0 2px 16px #0001;
  object-fit: cover;
}
}
}
.photos-grid .photo-item.placeholder {
  background: #fafafa;
  border: 2px dashed #e0e0e0;
  min-height: 1px;
}

/* Masonry gallery for photos.html */
.masonry-gallery {
   column-count: 4;
   column-gap: 18px;
   max-width: 1600px;
   margin: 40px auto 0 auto;
}
.masonry-gallery img {
  width: 100%;
  height: auto;
  max-width: 100%;
  margin-bottom: 10px;
  display: block;
  object-fit: contain;
  background: #fff;
  border-radius: 0;
  box-shadow: none;
}

@media (max-width: 900px) {
  .photos-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.hero img {
  /* уменьшено на 25% от предыдущих размеров */
  width: 67.5%; /* 90% * 0.75 */
  max-width: 900px; /* 1200px * 0.75 */
  max-height: 60vh; /* уменьшено на 25% */
  height: auto;
  display: block;
  object-fit: cover;
}

/* Для домашней страницы показываем фотографию целиком (оригинальное соотношение сторон).
   Масштабируется по ширине при необходимости, не обрезается. */
.home .hero img {
  /* Принудительно уменьшить изображение на главной */
  width: auto !important;
  max-width: 45% !important;
  height: auto !important;
  max-height: 45vh !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
}
/* Центрируем фото на главной для телефонов */
@media (max-width: 700px) {
  .home .hero {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 32px 16px 24px;
    min-height: 50vh;
  }
  .home .hero img {
    max-width: 90vw !important;
    width: auto !important;
    margin: 0 auto !important;
    display: block !important;
  }
}
.freeform-collage {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 6px;
  justify-items: stretch;
  align-items: center;
  width: 100%;
  max-width: 100vw;
  margin: 0 auto;
}
.freeform-collage img {
  max-width: 100%;
  max-height: 160px;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  background: #fff;
  box-shadow: none;
  border-radius: 0;
  margin: 0;
}
