
/* ==================================================
                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
   ================================================== */



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

/* grid */
.view-content,
.view-content .views-row .node .field.field--type-image.field__items {
    --cols: 1;
    --gap: 20px;
    --row-gap: 20px;
    --column-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 {width: 100%; height: 100%; object-fit: cover;}





/* ==================================================
                GRID — MODIFIERS - for row-items
   ================================================== */

/* B E N E F I T S */
div#benefits-block .region.region-benefits .benefits {
    --cols: 4;
    --gap: 30px;
    --row-gap: 30px;
    --column-gap: 30px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
div#benefits-block .region.region-benefits .benefits .benefit-item {width: 100%;}
div#benefits-block .region.region-benefits .benefits .benefit-item .benefit-inner {width: 100%;}
/* div#benefits-block .region.region-benefits .benefits .benefit-item .benefit-inner .field--type-image {width: 100%;}
div#benefits-block .region.region-benefits .benefits .benefit-item .benefit-inner .field--type-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
} */


/* C A T A L O G */
.view.view-catalogs.view-id-catalogs .view-content {
    --cols: 5;
    --gap: 30px;
    --row-gap: 30px;
    --column-gap: 30px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.view.view-catalogs.view-id-catalogs .view-content .views-row {width: 100%;}
.view.view-catalogs.view-id-catalogs .view-content .views-row .node {width: 100%;}
.view.view-catalogs.view-id-catalogs .view-content .views-row .node .field--type-image {width: 100%;}
.view.view-catalogs.view-id-catalogs .view-content .views-row .node .field--type-image img { width: 100%; height: 100%; object-fit: cover;}

/* C A T A L O G // Product */
.view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {
    --cols: 5;
    --gap: 30px;
    --row-gap: 30px;
    --column-gap: 30px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content .views-row {width: 100%;}
.view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content .views-row .node {width: 100%;}
.view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content .views-row .node .field--type-image {width: 100%;}
.view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content .views-row .node .field--type-image img { width: 100%; height: 100%; object-fit: cover;}

/* S E R V I C E S */
.view.view-services.view-id-services .view-content {
    --cols: 3;
    --gap: 30px;
    --row-gap: 30px;
    --column-gap: 30px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.view.view-services.view-id-services .view-content .views-row {width: 100%;}
.view.view-services.view-id-services .view-content .views-row .node {width: 100%;}
.view.view-services.view-id-services .view-content .views-row .node .field--type-image {width: 100%; aspect-ratio: 5/5;}
.view.view-services.view-id-services .view-content .views-row .node .field--type-image img { width: 100%; height: 100%; object-fit: cover;}

/* G A L L E R Y */
.not-front .view.view-photogallery.view-id-photogallery .view-content {
    --cols: 3;
    --gap: 30px;
    --row-gap: 30px;
    --column-gap: 30px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.not-front .view.view-photogallery.view-id-photogallery .view-content .views-row {width: 100%;}
.not-front .view.view-photogallery.view-id-photogallery .view-content .views-row .taxonomy-term {width: 100%;}
.not-front .view.view-photogallery.view-id-photogallery .view-content .views-row .taxonomy-term .field--type-image {width: 100%; aspect-ratio: 8/5;}
.not-front .view.view-photogallery.view-id-photogallery .view-content .views-row .taxonomy-term .field--type-image img { width: 100%; height: 100%; object-fit: cover;}





/* ==================================================
                GRID — MODIFIERS - for fields in row
   ================================================== */

/* T E C H */
.view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {
    --cols: 3;
    --gap: 30px;
    --row-gap: 30px;
    --column-gap: 30px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items .field__item {width: 100%;}
.view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items .field__item img { width: 100%; height: 100%; object-fit: cover;}
.view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items::after {
    display: none;
}




/* ==================================================
            GRID — MODIFIERS - for field  in card
   ================================================== */

/* A B O U T */
.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 {
    --cols: 4;
    --gap: 20px;
    --row-gap: 20px;
    --column-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.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 .field__item {width: 100%;}
.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 .field__item img { width: 100%; height: 100%; object-fit: cover;}

/* C A T A L O G */
.node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items {
    --cols: 4;
    --gap: 20px;
    --row-gap: 20px;
    --column-gap: 20px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items .field__item {width: 100%;}
.node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items .field__item img { width: 100%; height: 100%; object-fit: cover;}

/* S E R V I C E S */
.node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items {
    --cols: 4;
    --gap: 20px;
    --row-gap: 20px;
    --column-gap: 20px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items .field__item {width: 100%;}
.node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items .field__item img { width: 100%; height: 100%; object-fit: cover;}


/* P H O T O - G A L L E R Y */
.node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items {
    --cols: 4;
    --gap: 15px;
    --row-gap: 15px;
    --column-gap: 15px;

    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    gap: var(--gap);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
}
.node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items .field__item {width: 100%;}
.node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items .field__item img { width: 100%; height: 100%; object-fit: cover;}





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

@media (max-width: 1199px) {
    /* row-items */
        /* B E N E F I T S      */ div#benefits-block .region.region-benefits .benefits {--cols: 4; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs.view-id-catalogs .view-content {--cols: 4; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {--cols: 4; --column-gap: 20px; --row-gap: 20px; }
        /* S E R V I C E S      */ .front .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 20px; --row-gap: 30px; }
                                   .view.view-services.view-id-services .view-content {--cols: 2; --column-gap: 20px; --row-gap: 30px; }
        /* G A L L E R Y        */ .not-front .view.view-photogallery.view-id-photogallery .view-content {--cols: 3; --column-gap: 20px; --row-gap: 20px; }


    /* fields in row */
        /* T E C H */ .view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {--cols: 3; --column-gap: 20px; --row-gap: 20px; }
    
    
    /* fields in card */
    .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,
    .node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items
     {--cols: 4; --column-gap: 15px; --row-gap: 15px; }
}

@media (max-width: 991px) {
    /* row-items */
        /* B E N E F I T S      */ div#benefits-block .region.region-benefits .benefits {--cols: 2; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs.view-id-catalogs .view-content {--cols: 3; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {--cols: 3; --column-gap: 20px; --row-gap: 20px; }
        /* S E R V I C E S      */ .front .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 20px; --row-gap: 30px; }
                                   .view.view-services.view-id-services .view-content {--cols: 2; --column-gap: 20px; --row-gap: 30px; }
        /* G A L L E R Y        */ .not-front .view.view-photogallery.view-id-photogallery .view-content {--cols: 2; --column-gap: 20px; --row-gap: 20px; }


    /* fields in row */
        /* T E C H */ .view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {--cols: 2; --column-gap: 20px; --row-gap: 20px; }
    
    
    /* fields in card */
    .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,
    .node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items
     {--cols: 4; --column-gap: 15px; --row-gap: 15px; }
}

@media (max-width: 767px) {
    /* row-items */
        /* B E N E F I T S      */ div#benefits-block .region.region-benefits .benefits {--cols: 2; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs.view-id-catalogs .view-content {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
        /* C A T A L O G        */ .view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
        /* S E R V I C E S      */ .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 20px; --row-gap: 30px; }
        /* G A L L E R Y        */ .not-front .view.view-photogallery.view-id-photogallery .view-content {--cols: 2; --column-gap: 15px; --row-gap: 15px; }


    /* fields in row */
        /* T E C H */ .view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
    
    
    /* fields in card */
    .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,
    .node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items
     {--cols: 3; --column-gap: 10px; --row-gap: 10px; }
}

@media (max-width: 575px) {
    /* row-items */
        /* B E N E F I T S      */ div#benefits-block .region.region-benefits .benefits {--cols: 2; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs.view-id-catalogs .view-content {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
        /* C A T A L O G        */ .view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
        /* S E R V I C E S      */ .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 20px; --row-gap: 30px; }
        /* G A L L E R Y        */ .not-front .view.view-photogallery.view-id-photogallery .view-content {--cols: 2; --column-gap: 15px; --row-gap: 15px; }


    /* fields in row */
        /* T E C H */ .view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {--cols: 2; --column-gap: 15px; --row-gap: 15px; }
    
    
    /* fields in card */
    .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,
    .node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items
     {--cols: 3; --column-gap: 10px; --row-gap: 10px; }
}

@media (max-width: 460px) {
    /* row-items */
        /* B E N E F I T S      */ div#benefits-block .region.region-benefits .benefits {--cols: 1; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs.view-id-catalogs .view-content {--cols: 1; --column-gap: 15px; --row-gap: 15px; }
        /* C A T A L O G        */ .view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {--cols: 1; --column-gap: 15px; --row-gap: 15px; }
        /* S E R V I C E S      */ .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 20px; --row-gap: 20px; }
        /* G A L L E R Y        */ .not-front .view.view-photogallery.view-id-photogallery .view-content {--cols: 1; --column-gap: 10px; --row-gap: 15px; }


    /* fields in row */
        /* T E C H */ .view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {--cols: 1; --column-gap: 10px; --row-gap: 10px; }
    
    
    /* fields in card */
    .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,
    .node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items
     {--cols: 2; --column-gap: 5px; --row-gap: 5px; }
}

@media (max-width: 350px) {
    /* row-items */
        /* B E N E F I T S      */ div#benefits-block .region.region-benefits .benefits {--cols: 1; --column-gap: 20px; --row-gap: 20px; }
        /* C A T A L O G        */ .view.view-catalogs.view-id-catalogs .view-content {--cols: 1; --column-gap: 15px; --row-gap: 15px; }
        /* C A T A L O G        */ .view.view-catalogs-products-tovary.view-id-catalogs_products_tovary .view-content {--cols: 1; --column-gap: 15px; --row-gap: 15px; }
        /* S E R V I C E S      */ .view.view-services.view-id-services .view-content {--cols: 1; --column-gap: 20px; --row-gap: 20px; }
        /* G A L L E R Y        */ .not-front .view.view-photogallery.view-id-photogallery .view-content {--cols: 1; --column-gap: 10px; --row-gap: 10px; }


    /* fields in row */
        /* T E C H */ .view.view-process-production.view-id-process_production .view-content .views-row .node.node--type-process-production.node--view-mode-teaser .field.field--name-field-production-stages.field--type-text-long.field--label-hidden.field__items {--cols: 1; --column-gap: 10px; --row-gap: 10px; }
    
    
    /* fields in card */
    .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,
    .node.node--type-catalogs-production.node--view-mode-full .field.field--name-field-catalogs-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-services.node--view-mode-full .field.field--name-field-service-photo-set.field--type-image.field--label-hidden.field__items,
    .node.node--type-photogallery.node--view-mode-full .field.field--name-field-photogallery-photo-set.field--type-image.field--label-hidden.field__items
     {--cols: 2; --column-gap: 5px; --row-gap: 5px; }
}


/* ==================================================
                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));
    }
}







