
/* ==================================================
   AUTO GRID SYSTEM

   Использование:
   1. Добавить класс .auto-grid контейнеру
   2. Добавить модификатор .auto-grid--X
      где X — количество элементов в ряду
   3. Никаких width / flex / calc не использовать

   Пример:
   <div class="auto-grid auto-grid--4">

   Поддержка:
   - CSS Grid (основной)
   - Flex fallback (через @supports)


   классы для вставки:
   auto-grid
   auto-grid--4
   auto-grid--3
   auto-grid--2
   ================================================== */



/* ==================================================
   AUTO GRID — CORE
   ================================================== */

/* .auto-grid */
.view-content,
.view-content .views-row .node .field.field--type-image.field__items,
.node .field.field__items {
    /* значения по умолчанию — на случай если забыли модификатор */
    --cols: 1;
    --gap: 20px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}

.view-content .views-row {
    width: 100%;
}
.view-content .views-row .node {width: 100%;}
.view-content .views-row .node .field--type-image {width: 100%;}
.view-content .views-row .node .field--type-image img,
.node .field.field__items .field__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ==================================================
   AUTO GRID — MODIFIERS
   ================================================== */

/* .auto-grid--4 */
.view.view-services.view-id-services .view-content {
    --cols: 4;
    /* --gap: 30px; */
    --column-gap: 30px;
    --row-gap: 30px;
}

/* .auto-grid--3 */
.node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
.view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
.view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items {
    --cols: 4;
    /* --gap: 40px; */
    --column-gap: 30px;
    --row-gap: 30px;
}

/* .auto-grid--2 */
.elements--2 {
    --cols: 2;
    /* --gap: 20px; */
    --column-gap: 25px;
    --row-gap: 25px;
}


/* ==================================================
   AUTO GRID — RESPONSIVE
   ================================================== */

@media (max-width: 1199px) {
    /* .auto-grid--4 */ 
        .view.view-services.view-id-services .view-content {--cols: 3; --column-gap: 25px; --row-gap: 25px; }
    /* .auto-grid--3 */ 
        .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items
        {--cols: 4; --column-gap: 30px; --row-gap: 30px; }
    /* .auto-grid--2 */ .elements--2 {--cols: 2; --column-gap: 25px; --row-gap: 25px; }
}

@media (max-width: 991px) {
    /* .auto-grid--4 */ 
        .view.view-services.view-id-services .view-content {--cols: 3; --column-gap: 25px; --row-gap: 25px; }
    /* .auto-grid--3 */ 
        .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items 
        {--cols: 3; --column-gap: 20px; --row-gap: 20px; }
    /* .auto-grid--2 */ .elements--2 {--cols: 2; --column-gap: 25px; --row-gap: 25px; }
}

@media (max-width: 767px) {
    /* .auto-grid--4 */ 
        .view.view-services.view-id-services .view-content {--cols: 2; --column-gap: 25px; --row-gap: 25px; }
    /* .auto-grid--3 */ 
        .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items 
        {--cols: 3; --column-gap: 15px; --row-gap: 15px; }
    /* .auto-grid--2 */ .elements--2 {--cols: 2; --column-gap: 25px; --row-gap: 25px; }
}

@media (max-width: 575px) {
    /* .auto-grid--4 */ 
        .view.view-services.view-id-services .view-content {--cols: 2; --column-gap: 20px; --row-gap: 20px; }
    /* .auto-grid--3 */ 
        .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items 
        {--cols: 3; --column-gap: 15px; --row-gap: 15px; }
    /* .auto-grid--2 */ .elements--2 {--cols: 2; --column-gap: 25px; --row-gap: 25px; }
}

@media (max-width: 460px) {
    /* .auto-grid--4 */ 
        .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 15px; --row-gap: 15px; }
    /* .auto-grid--3 */ 
        .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items 
        {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
    /* .auto-grid--2 */ .elements--2 {--cols: 2; --column-gap: 20px; --row-gap: 20px; }
}

@media (max-width: 350px) {
    /* .auto-grid--4 */ 
        .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 10px; --row-gap: 10px; }
    /* .auto-grid--3 */ 
        .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-about.view-id-about .view-content .views-row .node.node--type-about.node--view-mode-default .field.field--name-field-about-photo-set.field--type-image.field--label-hidden.field__items,
        .view.view-photo-gallery.view-id-photo_gallery .view-content .views-row .node.node--type-photogallery.node--view-mode-teaser .field.field--name-field-photogallery-set.field--type-image.field--label-hidden.field__items 
        {--cols: 1; --column-gap: 10px; --row-gap: 10px; }
    /* .auto-grid--2 */ .elements--2 {--cols: 1; --column-gap: 15px; --row-gap: 15px; }
}


/* ==================================================
   AUTO GRID — FALLBACK (NO GRID SUPPORT)
   ================================================== */
@supports not (display: grid) {
    .view-content,
    .auto-grid {
        display: flex;
        flex-wrap: wrap;
        gap: var(--gap);
    }

    .view-content > *,
    .view-content .views-row .node .field.field--type-image.field__items > *,
    .auto-grid > * {
        flex: 0 0 calc(100% / var(--cols));
    }
}
