/*
Theme Name: AVENI Shared
Theme URI: https://aveni.ru/
Author: AVENI
Description: Индивидуальная общая тема для sumki.promo и avenibags.ru.
Version: 0.1.0
Text Domain: aveni
*/

@font-face {
  font-family: 'Ubuntu';
  src: url('assets/fonts/ubuntu-webfont.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@media (max-width: 900px) {
  .home-about__backdrop {
    height: 180px;
  }

  .home-about__content {
    margin: -40px 16px 40px;
    position: relative;
  }

  .home-about__copy {
    padding: 28px 22px;
  }

  .home-about__copy h2 span {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 32px;
  }

  .home-about__mosaic {
    grid-auto-rows: minmax(150px, 44vw);
  }

  .home-about__stat strong {
    font-size: 38px;
  }
}

/* Mobile reconstruction based on the legacy AVENI layout. */
.mobile-header-contact,
.mobile-catalog-menu,
.mobile-group-menu { display: none; }

.portfolio-page__hint { margin: 0 15px 8px; color: #52636c; font-size: 14px; line-height: 20px; }

@media (max-width: 900px) {
  .site-header__main {
    grid-template-columns: minmax(0,1fr) 48px;
    gap: 10px;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .brand img { width: min(180px,48vw); }
  .menu-toggle { position: relative; z-index: 13020; width: 48px; height: 48px; padding: 10px; cursor: pointer; }
  .menu-toggle[aria-expanded="true"] { position: fixed; top: 0; left: min(82vw,360px); transform: translateX(-100%); background: #1c303c; }
  .menu-toggle[aria-expanded="true"] > span:not(.screen-reader-text) { position: absolute; left: 11px; width: 27px; background: #fff; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: rotate(-45deg); }

  .mobile-header-contact {
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-width: 0;
    font-family: Ubuntu,Arial,sans-serif;
  }
  .mobile-header-contact a:first-child { color: #1c303c; font-size: 16px; text-decoration: none; }
  .mobile-header-contact a:first-child span { color: #8b9aa2; }
  .mobile-header-contact a:last-child { color: #006fae; font-size: 14px; text-decoration: none; border-bottom: 1px dashed #006fae; }

  .primary-navigation.is-open {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 13010;
    display: block;
    width: min(82vw,360px);
    height: 100vh;
    overflow-y: auto;
    background: #fff;
    box-shadow: 10px 0 30px rgb(0 0 0 / 35%);
  }
  .primary-menu { margin: 0; }
  .primary-menu a,
  .mobile-catalog-menu a,
  .mobile-group-menu a { display: block; padding: 18px 24px; border-bottom: 1px solid #edf0f1; font-size: 18px; line-height: 24px; text-decoration: none; }
  .mobile-catalog-menu { display: flex; flex-direction: column; background: #e3e7e8; }
  .mobile-catalog-menu a { color: #1c303c; border-bottom-color: #f5f6f6; }
  .primary-navigation .primary-menu { display: flex; flex-direction: column; }
  .primary-navigation .primary-menu a { color: #006fae; }
  .mobile-group-menu { display: flex; flex-direction: column; background: #1c303c; }
  .mobile-group-menu a { color: #fff; border-bottom-color: #344b57; }

  .hero--bags { min-height: 0; background-position: 22% center; }
  .hero__grid { padding-top: 42px; }
  .hero h1 { font-size: 25px; line-height: 1.2; }
  .hero h1 strong { font-size: clamp(20px,6.1vw,27px); line-height: 1.2; white-space: nowrap; }

  .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px 20px; }
  .category-card { min-height: 210px; padding: 0; background: transparent; }
  .category-card__image { max-height: 190px; }
  .catalog-actions { width: 100%; justify-content: flex-start; }
  .catalog-actions__button { display: grid; width: min(100%,285px); height: 48px; padding: 0; color: #fff; background: #1c303c; place-items: center; }

  .client-showcase { height: auto; padding: 56px 20px; }
  .client-showcase__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px 14px; }
  .client-showcase__logo { min-width: 0; min-height: 74px; padding: 0; }
  .client-showcase__logo img { display: block; width: auto; max-width: 100%; height: auto; max-height: 70px; object-fit: contain; }
  .client-showcase__button { display: grid; width: min(100%,285px); height: 48px; place-items: center; }

  .testimonials-home__inner { width: min(100% - 32px,620px); }
  .testimonials-home__grid { grid-template-columns: 1fr; gap: 36px; }
  .testimonial-home { padding: 0; }
  .testimonial-home img { max-width: 100%; margin-bottom: 14px; }
  .testimonials-home__actions { display: grid; gap: 18px; padding: 0; }
  .testimonials-home__button { width: min(100%,285px); height: 48px; }
  .testimonials-home__link { margin-left: 0; }

  .home-location__map iframe { height: 360px; }

  .aveni-footer { display: grid; grid-template-columns: 1fr; }
  .aveni-footer__column { order: 1; align-items: center; text-align: center; }
  .aveni-footer__identity { order: 4; display: flex; flex-direction: column; align-items: center; padding: 28px 15px 0; text-align: center; }
  .aveni-footer__phone { width: min(260px,100%); text-align: center; }
  .aveni-footer__phone > a:first-child,
  .aveni-footer__phone > a:last-child { justify-content: center; }

  .catalog-page--original .product-grid { grid-auto-rows: 340px; gap: 30px 14px; }
  .catalog-page--original .product-card { height: 340px; border: 1px solid #d6dadd; padding: 10px 5px; }
  .catalog-page--original .product-card__image { height: 195px; margin-bottom: 10px; border: 1px solid #e0e3e5; }
  .catalog-page--original .product-card__image img { width: 190px; max-width: 100%; height: 190px; }

  .product-page--original,
  .product-page--original .product-detail,
  .product-detail__content,
  .product-page__description,
  .product-request { min-width: 0; max-width: 100%; }
  .product-detail__content h1 { font-size: clamp(21px,7vw,28px); line-height: 1.2; overflow-wrap: anywhere; word-break: normal; }
  .product-page__description { overflow-wrap: anywhere; }
  .product-request { box-sizing: border-box; overflow: hidden; }
  .product-request__contacts { grid-template-columns: 1fr; }
  .product-request input,
  .product-request textarea,
  .request-file { min-width: 0; max-width: 100%; box-sizing: border-box; }

  .portfolio-filters { display: flex; flex-flow: row wrap; gap: 8px; margin-bottom: 12px; }
  .portfolio-filters strong { flex-basis: 100%; }
  .portfolio-filters button { flex: 0 1 auto; }
  .portfolio-card__open::after { position: absolute; right: 8px; bottom: 8px; content: 'Увеличить'; padding: 6px 10px; color: #fff; background: rgb(28 48 60 / 88%); font-size: 12px; }
  .portfolio-lightbox__previous,
  .portfolio-lightbox__next { width: 42px; height: 54px; border-radius: 4px; background: rgb(255 255 255 / 18%); font-size: 48px; line-height: 48px; }
}

@media (max-width: 520px) {
  .hero--bags { background-position: 20% center; }
  .hero h1 { font-size: 22px; }
  .hero h1 strong { font-size: 5.9vw; }
  .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-showcase__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .catalog-page--original .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Final mobile polish v2 — must be the last responsive block. */
@media (max-width: 900px) {
  html,body { width: 100%; max-width: 100%; overflow-x: hidden; overscroll-behavior-x: none; }
  .site-header,.site-content,.site-footer { max-width: 100%; overflow-x: clip; }
  .category-grid { width: 100%; max-width: 100%; }
  .category-card { min-width: 0; max-width: 100%; overflow: hidden; }
  .category-card__image { width: 100%; max-width: 100%; height: 190px; object-fit: contain; }
  .aveni-footer__column { align-items: flex-end; padding-right: 28px; text-align: right; }
  .aveni-footer__column h2 { width: 100%; text-align: right; }
  .aveni-footer__column a { display: inline-flex; min-height: 32px; align-items: center; padding-left: 24px; text-align: right; }
  .aveni-footer__column a::before { top: 50%; line-height: 1; transform: translateY(-50%); }
  .aveni-footer__identity { align-items: center; text-align: center; }
  .aveni-footer__phone { border-top: 0; }
  .portfolio-lightbox__previous,.portfolio-lightbox__next { position: relative; color: transparent!important; text-shadow: none; }
  .portfolio-lightbox__previous::before,.portfolio-lightbox__next::before { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font: 700 48px/1 Arial,sans-serif; }
  .portfolio-lightbox__previous::before { content: '\2039'; }
  .portfolio-lightbox__next::before { content: '\203A'; }
  .catalog-page--original .product-card__image { border: 0; }
}

/* Mobile polish v2. */
@media (max-width: 900px) {
  html,body { width: 100%; max-width: 100%; overflow-x: hidden; overscroll-behavior-x: none; }
  .site-header,.site-content,.site-footer { max-width: 100%; overflow-x: clip; }

  .category-grid { width: 100%; max-width: 100%; }
  .category-card { min-width: 0; max-width: 100%; overflow: hidden; }
  .category-card__image { width: 100%; max-width: 100%; height: 190px; object-fit: contain; }

  .aveni-footer__column { align-items: flex-end; padding-right: 28px; text-align: right; }
  .aveni-footer__column h2 { width: 100%; text-align: right; }
  .aveni-footer__column a { display: inline-flex; min-height: 32px; align-items: center; padding-left: 24px; text-align: right; }
  .aveni-footer__column a::before { top: 50%; line-height: 1; transform: translateY(-50%); }
  .aveni-footer__identity { align-items: center; text-align: center; }
  .aveni-footer__phone { border-top: 0; }

  .portfolio-lightbox__previous,
  .portfolio-lightbox__next { position: relative; color: transparent!important; text-shadow: none; }
  .portfolio-lightbox__previous::before,
  .portfolio-lightbox__next::before { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font: 700 48px/1 Arial,sans-serif; }
  .portfolio-lightbox__previous::before { content: '\2039'; }
  .portfolio-lightbox__next::before { content: '\203A'; }

  .catalog-page--original .product-card__image { border: 0; }
}

@font-face {
  font-family: 'Ubuntu';
  src: url('assets/fonts/ubuntubold-webfont.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'FontAwesome';
  src: url('assets/fonts/fontawesome-webfont.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

.hero--bags{background-image:linear-gradient(90deg,rgba(255,255,255,.10),rgba(255,255,255,.04)),url('assets/images/back_main.webp');background-size:cover;background-position:center}.request-card__trap{position:absolute!important;left:-10000px!important}.request-card__privacy{display:flex!important;align-items:flex-start;gap:8px;color:#fff;font-size:12px;text-align:left}.request-card__privacy input{width:auto!important;margin-top:2px}.request-card__status{background:#eaf6ea;color:#245d2a;padding:9px}.request-card__status--error{background:#ffe9e6;color:#8b281d}.product-page__media{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start}.product-gallery__main{grid-column:1/-1}.product-gallery__thumb{aspect-ratio:1/1;cursor:pointer}

.portfolio-page{padding-top:40px;padding-bottom:80px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.portfolio-page>h1{margin:20px 15px 10px;font-size:24px;line-height:26.4px;font-weight:500}.portfolio-page__layout{display:grid;grid-template-columns:292.5px 877.5px}.portfolio-filters{display:flex;flex-direction:column;align-items:stretch;margin:24px 15px 0;padding:0}.portfolio-filters strong{margin-bottom:10px;font-size:14px;font-weight:400}.portfolio-filters button{padding:0;border:0;background:transparent;color:#337ab7;font:14px/24px "Helvetica Neue",Helvetica,Arial,sans-serif;text-align:left;text-decoration:underline}.portfolio-filters button.is-active,.portfolio-filters button:hover{background:transparent;color:#ff3818}.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;padding:24px 15px 0}.portfolio-card{position:relative;min-height:197px;background:#eef2f4;overflow:hidden}.portfolio-card>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.portfolio-card__caption{display:none}.portfolio-card__caption h2{font-size:20px;margin:24px 0 4px}.portfolio-card__caption p{margin:0;font-size:14px}@media(max-width:800px){.portfolio-page__layout{grid-template-columns:1fr}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.portfolio-grid{grid-template-columns:1fr}}

.portfolio-filters button{padding:9px 15px;border:1px solid #cad2d6;background:#fff;color:#173542;font:inherit;cursor:pointer}.portfolio-filters button.is-active,.portfolio-filters button:hover{background:#173542;color:#fff;border-color:#173542}.portfolio-card[hidden]{display:none}

.portfolio-card__open{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:#eef2f4;cursor:pointer}.portfolio-card__open>img{display:block;width:100%;height:100%;object-fit:cover}.portfolio-card__open:hover>img,.portfolio-card__open:focus-visible>img{opacity:.88}.portfolio-lightbox-open{overflow:hidden}.portfolio-lightbox[hidden]{display:none}.portfolio-lightbox{position:fixed;inset:0;z-index:10000;display:grid;grid-template-columns:80px minmax(0,1fr) 80px;align-items:center;padding:40px 20px;background:rgba(0,0,0,.88)}.portfolio-lightbox__figure{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:calc(100vw - 200px);max-height:calc(100vh - 80px);margin:0 auto}.portfolio-lightbox__image{display:block;max-width:100%;max-height:calc(100vh - 120px);width:auto;height:auto;object-fit:contain;box-shadow:0 2px 18px rgba(0,0,0,.45)}.portfolio-lightbox__caption{min-height:20px;margin-top:10px;color:#fff;font:14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;text-align:center}.portfolio-lightbox__close,.portfolio-lightbox__previous,.portfolio-lightbox__next{border:0;background:transparent;color:#fff;cursor:pointer;text-shadow:0 1px 4px #000}.portfolio-lightbox__close{position:absolute;top:10px;right:20px;font:300 48px/48px Arial,sans-serif}.portfolio-lightbox__previous,.portfolio-lightbox__next{font:300 70px/70px Arial,sans-serif}.portfolio-lightbox__close:hover,.portfolio-lightbox__close:focus-visible,.portfolio-lightbox__previous:hover,.portfolio-lightbox__previous:focus-visible,.portfolio-lightbox__next:hover,.portfolio-lightbox__next:focus-visible{color:#ff3818;outline:0}@media(max-width:800px){.portfolio-lightbox{grid-template-columns:42px minmax(0,1fr) 42px;padding:35px 4px}.portfolio-lightbox__figure{max-width:calc(100vw - 92px)}}

.catalog-page,.product-page{padding-top:40px;padding-bottom:80px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4}.catalog-header{text-align:left;margin-bottom:50px}.catalog-header h1{margin:-20px 0 20px;font-size:36px;line-height:39.6px;font-weight:500}.category-description{max-width:none;margin:0;text-align:left;color:#606060}.catalog-page__quote{float:right;margin-top:-20px;padding:12px 22px;color:#fff;background:#ff3818;text-decoration:none}.product-grid{clear:both;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 15px}.product-card{min-width:0;background:#fff;border:0;padding:0}.product-card__image{display:block;aspect-ratio:1/1;overflow:hidden;background:#f2f4f5}.product-card__image img,.product-page__media img{width:100%;height:100%;object-fit:contain}.product-card h2{font-size:16px;line-height:20px;font-weight:400;margin:12px 0 6px}.product-card h2 a{color:#173542;text-decoration:underline}.product-card__description{max-height:58.8px;overflow:hidden;color:#606060;font-size:14px;line-height:19.6px}.product-card__sku{color:#78858b;font-size:14px}.product-card__price{margin-top:7px;color:#ff3818;font-size:16px}.product-page article{display:grid;grid-template-columns:555px 555px;gap:30px}.product-page__media{display:grid;background:#fff;min-height:420px}.product-page__content h1{margin:0 0 20px;font-size:32px;line-height:36px;font-weight:500;text-transform:uppercase}.product-page__description{color:#606060;font-size:14px;line-height:19.6px}.button{display:inline-block;background:#f23b23;color:#fff;text-decoration:none;padding:14px 24px;margin-top:20px}.category-card{background-position:center;background-size:cover}.category-card span{position:relative;z-index:1}@media(max-width:800px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-page article{grid-template-columns:1fr}.catalog-page__quote{float:none;display:inline-block;margin:-20px 0 30px}}@media(max-width:520px){.product-grid{grid-template-columns:1fr}}

/* Размеры товарной сетки повторяют исходный каталог KsenMart. */
.catalog-page--original .product-grid {
  grid-auto-rows: 302px;
  align-items: start;
  row-gap: 40px;
  column-gap: 15px;
}

.catalog-page--original .product-card {
  height: 302px;
  overflow: hidden;
  text-align: center;
}

.catalog-page--original .product-card__image {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  height: 170px;
  margin: 0 0 8px;
  aspect-ratio: auto;
  background: transparent;
}

.catalog-page--original .product-card__image img {
  display: block;
  width: 170px;
  height: 170px;
  object-fit: contain;
}

.catalog-page--original .product-card h2 {
  width: calc(100% - 22px);
  height: 38px;
  margin: 0 11px 7px;
  overflow: hidden;
  font-size: 16px;
  line-height: 18px;
  font-weight: 400;
}

.catalog-page--original .product-card__description {
  width: calc(100% - 22px);
  height: 32px;
  max-height: 32px;
  margin: 0 11px 7px;
  overflow: hidden;
  color: #1c303c;
  font-size: 13px;
  line-height: 16px;
}

.catalog-page--original .product-card__sku,
.catalog-page--original .product-card__price {
  display: none;
}

/* Страница товара: пропорции и блоки исходного шаблона AVENI. */
.product-page--original {
  padding-top: 70px;
  padding-bottom: 80px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #1c303c;
}

.product-page--original .product-detail {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 25px;
  align-items: start;
}

.product-gallery__main-button {
  display: block;
  width: 350px;
  height: 350px;
  margin: 0;
  padding: 0;
  border: 0;
  background: #fff;
  cursor: zoom-in;
}

.product-gallery__main {
  display: block;
  width: 350px;
  height: 350px;
  object-fit: contain;
}

.product-gallery__thumbs {
  display: flex;
  gap: 11px;
  width: 420px;
  margin-top: 26px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.product-gallery__thumb {
  flex: 0 0 110px;
  width: 110px;
  height: 110px;
  margin: 0;
  padding: 5px;
  border: 1px solid transparent;
  background: #fff;
  cursor: pointer;
}

.product-gallery__thumb.is-active,
.product-gallery__thumb:hover,
.product-gallery__thumb:focus-visible {
  border-color: #d7d7d7;
  outline: 0;
}

.product-gallery__thumb img {
  display: block;
  width: 98px;
  height: 98px;
  object-fit: contain;
}

.product-detail__content h1 {
  margin: -4px 0 42px;
  font-size: 24px;
  line-height: 28px;
  font-weight: 400;
  text-transform: uppercase;
}

.product-detail__sku {
  margin: 0 0 26px;
  font-size: 14px;
  line-height: 20px;
}

.product-page--original .product-page__description {
  min-height: 112px;
  margin-bottom: 24px;
  color: #1c303c;
  font-size: 14px;
  line-height: 19.6px;
}

.product-page--original .product-page__description p { margin: 0; }

.product-request {
  padding: 40px 45px 60px;
  background: #eff2f4;
}

.product-request h2 {
  margin: 0 0 18px;
  font-size: 24px;
  line-height: 30px;
  font-weight: 400;
}

.product-request__contacts {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 15px;
}

.product-request input,
.product-request textarea {
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 0;
  background: #fff;
  color: #1c303c;
  font: 16px/22px "Helvetica Neue", Helvetica, Arial, sans-serif;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.08);
}

.product-request input { height: 44px; padding: 10px 8px; }
.product-request textarea { height: 101px; margin-top: 15px; padding: 3px 8px; resize: vertical; }
.product-request input::placeholder,
.product-request textarea::placeholder { color: #999; opacity: 1; }

.product-request > button {
  width: 100%;
  height: 50px;
  margin-top: 15px;
  border: 0;
  background: #ff381f;
  color: #fff;
  font: 16px/50px "Helvetica Neue", Helvetica, Arial, sans-serif;
  cursor: pointer;
}

.product-request > button:hover,
.product-request > button:focus-visible { background: #1c303c; }
.request-file { display: block; }
.request-file span { display: block; margin-bottom: 6px; font-size: 12px; line-height: 16px; }
.product-request .request-file--product { margin-top: 12px; color: #52636c; }
.product-request .request-file--product input[type='file'] { height: auto; padding: 7px 8px; font-size: 13px; line-height: 20px; cursor: pointer; }
.product-request__status { margin: 12px 0 -38px; color: #267133; }
.product-request__status--error { color: #a3271b; }

.product-properties {
  display: grid;
  grid-template-columns: 684px 435px;
  gap: 20px;
  margin-top: 70px;
  align-items: start;
}

.product-properties h2,
.product-portfolio > h2 {
  margin: 0 0 29px;
  font-size: 32px;
  line-height: 33px;
  font-weight: 400;
}

.product-property-grid { display: flex; flex-wrap: wrap; gap: 15px 10px; }
.product-property-grid figure { margin: 0; background: #949d99; color: #fff; }
.product-property-grid img { display: block; object-fit: cover; }
.product-property-grid figcaption { height: 33px; padding: 0 10px; font-size: 14px; line-height: 33px; }
.product-property-grid--materials img { width: 158px; height: 135px; }

.product-applications {
  padding: 29px 27px 44px 30px;
  background: #eff0f0;
}

.product-property-grid--applications { display: grid; grid-template-columns: repeat(2,184px); gap: 23px 10px; }
.product-property-grid--applications img { width: 184px; height: 173px; }

.product-portfolio { clear: both; margin-top: 48px; }
.product-portfolio__grid { display: grid; grid-template-columns: repeat(4,255px); grid-auto-rows: 222px; gap: 15px 30px; padding: 0 10px; }
.product-portfolio__item { width: 255px; height: 222px; margin: 0; padding: 0; overflow: hidden; border: 1px solid #ccc; background: #fff; cursor: zoom-in; }
.product-portfolio__item img { display: block; width: 100%; height: 100%; object-fit: contain; }
.product-portfolio__item:hover,.product-portfolio__item:focus-visible { border-color: #009aff; outline: 0; }
.product-portfolio__more { display: grid; place-items: center; width: 262px; height: 46px; margin-top: 54px; color: #fff; background: #1c303c; font-size: 16px; text-decoration: none; }
.product-portfolio__more:hover,.product-portfolio__more:focus-visible { background: #ff3818; }

.category-properties { margin-top: 74px; }
.category-properties .product-property-grid--materials { display: grid; grid-template-columns: repeat(4,158px); }
.category-portfolio { margin-top: 44px; }
.category-intro { margin-top: 54px; color: #0b2634; font-size: 14px; line-height: 20px; }
.category-intro p { margin: 0 0 10px; text-align: left !important; }
.category-intro p:empty { display: none; }

@media (max-width: 1170px) {
  .product-page--original .product-detail { grid-template-columns: minmax(330px,420px) minmax(0,1fr); }
  .product-properties { grid-template-columns: 60% calc(40% - 20px); }
  .product-portfolio__grid { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 0; }
  .product-portfolio__item { width: 100%; }
  .category-properties .product-property-grid--materials { grid-template-columns: repeat(3,158px); }
}

@media (max-width: 800px) {
  .product-page--original .product-detail,
  .product-properties { grid-template-columns: 1fr; }
  .product-gallery__main-button,.product-gallery__main { max-width: 100%; }
  .product-gallery__thumbs { max-width: 100%; }
  .product-request { padding: 30px 20px 40px; }
  .product-applications { margin-top: 20px; }
  .product-portfolio__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .category-properties .product-property-grid--materials { grid-template-columns: repeat(3,158px); }
}

@media (max-width: 560px) {
  .category-properties .product-property-grid--materials,
  .product-property-grid--applications { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .product-property-grid--materials img,
  .product-property-grid--applications img { width: 100%; }
  .product-portfolio__grid { grid-template-columns: 1fr; }
}

:root {
  --aveni-ink: #19313d;
  --aveni-accent: #ef3b24;
  --aveni-paper: #ffffff;
  --aveni-muted: #eef2f4;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--aveni-ink);
  background: var(--aveni-paper);
  font-family: Arial, Helvetica, sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

.screen-reader-text,
.skip-link:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.site-shell {
  width: min(1180px, calc(100% - 32px));
  margin-inline: auto;
}

.group-bar {
  color: #fff;
  background: var(--aveni-ink);
  font-size: 13px;
}

.group-bar__inner {
  display: flex;
  justify-content: center;
  overflow-x: auto;
}

.group-bar a {
  flex: 0 0 auto;
  padding: 14px 24px;
  border-right: 1px solid rgb(255 255 255 / 12%);
}

.site-header__main {
  display: grid;
  grid-template-columns: 240px 1fr auto;
  align-items: center;
  gap: 24px;
  min-height: 150px;
}

.brand img {
  display: block;
  width: 230px;
  height: auto;
}

.primary-menu {
  display: flex;
  justify-content: center;
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.header-contact {
  display: grid;
  text-align: right;
}

.header-phone {
  font-size: 18px;
}

.callback-link {
  color: #63a2c4;
  text-decoration: underline;
}

.callback-modal-open { overflow: hidden; }
.callback-modal[hidden] { display: none; }
.callback-modal { position: fixed; inset: 0; z-index: 12000; display: grid; place-items: start center; padding-top: 18px; }
.callback-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.68); }
.callback-form { position: relative; z-index: 1; width: 400px; min-height: 290px; padding: 28px 30px 46px; background: #626b72; box-shadow: 0 2px 12px rgba(0,0,0,.35); font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; }
.callback-form h2 { margin: 0 0 24px; padding: 0 34px; border: 0; color: #fff; font-size: 24px; line-height: 28px; font-weight: 400; text-align: center; }
.callback-form__close { position: absolute; top: 14px; right: 14px; width: 26px; height: 26px; padding: 0; border: 0; background: transparent; color: #e60012; font: 700 27px/26px Arial,sans-serif; cursor: pointer; }
.callback-form input:not([type="hidden"]) { display: block; width: 100%; height: 44px; margin: 0 0 15px; padding: 10px 20px; border: 1px solid #ddd; border-radius: 0; background: #fff; color: #1c303c; font: 14px/22px "Helvetica Neue",Helvetica,Arial,sans-serif; }
.callback-form > button[type="submit"] { width: 100%; height: 50px; margin: 0; border: 0; background: #ff381f; color: #fff; font: 16px/50px "Helvetica Neue",Helvetica,Arial,sans-serif; cursor: pointer; }
.callback-form > button[type="submit"]:hover,.callback-form > button[type="submit"]:focus-visible { background: #1c303c; }
.callback-form.is-submitting > button[type="submit"] { opacity: .65; pointer-events: none; }
.callback-form__status { margin: -5px 0 12px; padding: 8px 10px; background: #e9f7e9; color: #245d2a; font-size: 13px; }
.callback-form__status--error { background: #ffe9e6; color: #8b281d; }
.callback-form .request-consent { margin: 12px 0 20px; }
@media(max-width:520px){.callback-modal{padding:12px}.callback-form{width:100%;padding:28px 20px 38px}}

.quote-modal-open { overflow: hidden; }
.quote-modal[hidden] { display: none; }
.quote-modal { position: fixed; inset: 0; z-index: 12000; display: grid; place-items: center; padding: 20px; }
.quote-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.68); }
.quote-form { position: relative; z-index: 1; width: min(820px,calc(100vw - 40px)); max-height: calc(100vh - 40px); overflow-y: auto; padding: 38px 45px 42px; box-shadow: 0 2px 14px rgba(0,0,0,.35); }
.quote-form__close { position: absolute; top: 8px; right: 12px; width: 30px!important; height: 30px!important; margin: 0!important; padding: 0!important; border: 0; background: transparent!important; color: #e60012!important; font: 700 29px/30px Arial,sans-serif!important; cursor: pointer; }
.quote-form.is-submitting > button[type='submit'] { opacity: .65; pointer-events: none; }
@media(max-width:700px){.product-request__contacts{grid-template-columns:1fr;gap:12px}.quote-form{padding:36px 20px 30px}}

.request-file .request-file__picker { position: relative; display: block; height: 42px; margin: 0; overflow: hidden; }
.request-file .request-file__button { display: grid; place-items: center; width: 100%; height: 42px; margin: 0; border: 1px solid #1c303c; background: #fff; color: #1c303c; font-size: 14px; line-height: 20px; cursor: pointer; }
.request-file .request-file__picker:hover .request-file__button,.request-file .request-file__picker:focus-within .request-file__button { background: #1c303c; color: #fff; }
.request-file .request-file__picker input[type='file'] { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%!important; margin: 0!important; padding: 0!important; opacity: 0; cursor: pointer; }
.request-file__list { display: block; max-height: 42px; margin-top: 5px; overflow: auto; font-size: 11px!important; line-height: 14px!important; overflow-wrap: anywhere; }
.request-consent { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0 0; font-size: 12px; line-height: 16px; text-align: left; cursor: pointer; }
.request-consent span { min-width: 0; }
.request-consent a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.request-consent input[type='checkbox'],
.product-request .request-consent input[type='checkbox'],
.callback-form .request-consent input[type='checkbox'] { flex: 0 0 18px; width: 18px!important; height: 18px!important; margin: 0!important; padding: 0!important; border: 1px solid currentColor; box-shadow: none; accent-color: #ff381f; }
.request-card .request-consent,
.callback-form .request-consent { color: #fff; }
.product-request .request-consent { color: #52636c; }
.request-result { position: fixed; left: 50%; top: 24px; z-index: 15000; width: min(520px,calc(100vw - 30px)); padding: 18px 52px 18px 20px; transform: translateX(-50%); color: #fff; box-shadow: 0 4px 18px rgba(0,0,0,.3); font: 16px/22px "Helvetica Neue",Helvetica,Arial,sans-serif; text-align: center; }
.request-result--success { background: #26713b; }
.request-result--error { background: #a52c20; }
.request-result__close { position: absolute; top: 7px; right: 10px; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: #fff; font: 28px/32px Arial,sans-serif; cursor: pointer; }
@media(max-width:520px){.request-result{top:15px}}

.quote-link {
  white-space: nowrap;
}

.quote-link span {
  color: #63a2c4;
  text-decoration: underline;
}

.product-navigation {
  background: #dfe5e7;
}

.product-navigation__inner {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.product-navigation a {
  padding: 18px 10px;
  border-right: 1px solid #c8d1d5;
  text-align: center;
}

.site-breadcrumbs {
  border-bottom: 1px solid #e2e6e8;
  background: #fff;
  color: #68767d;
  font: 13px/20px Arial, Helvetica, sans-serif;
}

.site-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 10px;
  padding-right: 0;
  padding-bottom: 10px;
  padding-left: 0;
  list-style: none;
}

.site-breadcrumbs li:not(:last-child)::after {
  content: '›';
  display: inline-block;
  margin: 0 9px;
  color: #9aa4a9;
}

.site-breadcrumbs a {
  color: #337ab7;
  text-decoration: underline;
}

.site-breadcrumbs a:hover,
.site-breadcrumbs a:focus-visible {
  color: #ff3818;
}

.site-breadcrumbs [aria-current='page'] {
  color: #1c303c;
}

.hero--bags {
  min-height: 500px;
  background: linear-gradient(110deg, #dce4e8 0%, #f5f2ed 65%, #e8daca 100%);
}

.hero__grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  padding-block: 55px;
}

.hero h1 {
  margin: 0;
  font-size: clamp(48px, 6vw, 86px);
  font-weight: 300;
  line-height: 1.08;
  text-align: center;
  text-transform: uppercase;
}

.hero h1 strong {
  font-weight: 700;
}

.request-card {
  padding: 32px 38px;
  color: #fff;
  background: rgb(44 57 64 / 48%);
}

.request-card h2 {
  margin: 0 0 28px;
  text-align: center;
  text-transform: none;
}

.request-card input,
.request-card textarea,
.request-card button {
  width: 100%;
  margin-top: 14px;
  padding: 14px 16px;
  border: 0;
  font: inherit;
}

.request-card textarea {
  min-height: 100px;
  resize: vertical;
}

.request-card button {
  color: #fff;
  background: var(--aveni-accent);
  cursor: pointer;
}

.request-card__note {
  margin-bottom: 0;
  font-size: 12px;
}

.section-intro {
  padding-block: 72px;
  text-align: center;
}

.category-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.category-card {
  padding: 30px 16px;
  background: var(--aveni-muted);
}

.category-card__image--active {
  display: none;
}

.category-card:hover .category-card__image--default,
.category-card:focus-visible .category-card__image--default {
  display: none;
}

.category-card:hover .category-card__image--active,
.category-card:focus-visible .category-card__image--active {
  display: block;
}

.home-portfolio {
  padding-block: 48px;
}

.home-portfolio__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.home-portfolio__item img {
  display: block;
  width: 100%;
  height: auto;
}

.home-portfolio__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin-top: 32px;
}

.home-portfolio__button {
  padding: 14px 24px;
  color: #fff;
  background: #1c303c;
}

.home-portfolio__link {
  color: #009aff;
  text-decoration: underline;
}

.order-proof {
  padding: 40px 20px;
  color: #fff;
  background: #26301f url('assets/images/proof/111-2.webp') center / cover no-repeat;
}

.order-proof__inner {
  max-width: 1026px;
  margin: 0 auto;
}

.order-proof__stat strong {
  font-size: 56px;
}

.order-proof__try a {
  display: inline-block;
  margin-top: 24px;
  padding: 16px 28px;
  color: #1c303c;
  background: #fff;
}

.client-showcase {
  padding: 48px 16px;
}

.client-showcase__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.client-showcase__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70px;
}

.client-showcase__button {
  display: inline-block;
  margin-top: 32px;
  padding: 13px 24px;
  color: #fff;
  background: #ff3818;
}

.client-showcase__logo img {
  display: block;
  max-width: 100%;
  max-height: 100%;
}

.home-about__backdrop {
  background: url('assets/images/about-home/aveni-bags-bottom.jpg') center / cover no-repeat;
}

.home-about__copy {
  background: #eef1f3;
}

.home-about__mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-about__mosaic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-about__stat {
  display: grid;
  place-content: center;
  color: #fff;
  text-align: center;
  text-transform: uppercase;
}

.home-about__stat--orange {
  background: #ff3818;
}

.home-about__stat--dark {
  background: #1c303c;
}

.testimonials-home {
  padding: 48px 16px;
  background: #eef1f3;
}

.testimonials-home__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 20px;
}

.testimonial-home img {
  display: block;
  max-width: 100%;
  height: 52px;
  object-fit: contain;
  object-position: left center;
}

.testimonials-home__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 28px;
}

.site-footer {
  padding-block: 48px 24px;
  color: #fff;
  background: var(--aveni-ink);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 48px;
}

.site-footer__grid > div {
  display: grid;
  align-content: start;
  gap: 8px;
}

.site-footer__heading {
  margin-top: 0;
  font-weight: 700;
  text-transform: uppercase;
}

.site-footer__copyright {
  margin-top: 36px;
  opacity: .7;
}

.home-location {
  border-top: 1px solid #d9e0e4;
  font-family: Arial, Helvetica, sans-serif;
}

.home-location h2 {
  height: 120px;
  margin: 0;
  display: grid;
  place-items: center;
  color: #1c303c;
  font-family: Ubuntu, Arial, sans-serif;
  font-size: 20px;
  font-weight: 400;
  text-transform: uppercase;
}

.home-location__map {
  position: relative;
  height: 480px;
  overflow: hidden;
  background: #edf2e8;
}

.home-location__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.home-location__card {
  position: absolute;
  top: 100px;
  left: calc(50% + 145px);
  width: 440px;
  height: 277px;
  padding: 20px 30px 25px 73px;
  border: 8px solid rgb(40 52 62 / 29%);
  box-sizing: border-box;
  background: #fff;
  color: #39474d;
  font-size: 18px;
  line-height: 24px;
}

.home-location__card img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 0 40px;
}

.home-location__card p { margin: 0 0 20px 10px; }
.home-location__card a { padding-left: 36px; color: #2b80b7; font-size: 14px; line-height: 24px; text-decoration: underline; background: url('assets/images/map/print.png') left center / 22px 22px no-repeat; }
.home-location__card a::before { content: none; }

.site-footer--aveni {
  min-height: 0;
  padding: 0;
  background: #1c303c;
  font-family: Arial, Helvetica, sans-serif;
}

.aveni-footer {
  display: grid;
  grid-template-columns: repeat(4, 292.5px);
  gap: 0;
  width: 1170px;
  margin: 0 auto;
  padding: 100px 0;
  color: #fff;
}

.aveni-footer > * { padding: 0 15px; box-sizing: border-box; }
.aveni-footer__identity { padding-right: 60px; font-size: 12px; line-height: 1.4; }
.aveni-footer__wordmark { display: block; margin-bottom: 15px; }
.aveni-footer__wordmark img { display: block; width: 98px; height: 47px; }
.aveni-footer__identity p { margin: 0 0 24px; }
.aveni-footer__identity > a { display: block; margin-bottom: 9px; color: #2c8ac0; text-decoration: underline; }
.aveni-footer__identity > span a { color: #2c8ac0; text-decoration: underline; }
.aveni-footer__phone { width: 100%; margin-top: 70px; padding: 10px 0; border-top: 1px dashed #a5b9c6; text-align: right; }
.aveni-footer__phone > a:first-child {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 10px;
  color: #a5b9c6;
  font-size: 19px;
  line-height: 23px;
  letter-spacing: 1px;
  text-decoration: none;
}
.aveni-footer__phone > a:first-child::before {
  content: '';
  flex: 0 0 17px;
  width: 17px;
  height: 23px;
  background: url('assets/images/footer/phone-wh.png') center 6px / 17px 17px no-repeat;
}
.aveni-footer__phone strong { color: #fff; font-weight: 400; }
.aveni-footer__phone > a:last-child {
  display: inline-block;
  margin-top: 4px;
  color: #2c9fe8;
  font-size: 11px;
  line-height: 11px;
  letter-spacing: normal;
  text-decoration: none;
  border-bottom: 1px dashed #009aff;
}
.aveni-footer__column { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.aveni-footer__column:nth-child(2) { padding-left: 50px; }
.aveni-footer__column h2 { margin: 0 0 20px; color: #a5b9c6; font-size: 16px; line-height: 20px; font-weight: 400; text-transform: uppercase; }
.aveni-footer__column a { position: relative; display: inline-block; padding-left: 25px; color: #fff; font-size: 16px; line-height: 28px; text-decoration: none; }
.aveni-footer__column a::before { position: absolute; left: 0; content: '\203A'; color: #fff; font-size: 20px; line-height: 26px; }
.aveni-footer__column a:hover, .aveni-footer__column a:focus-visible { color: #ff3818; }

@media (max-width: 900px) {
  .home-location h2 { height: 92px; font-size: 18px; }
  .home-location__map { height: auto; overflow: visible; background: #eef2ea; }
  .home-location__map iframe { display: block; height: 330px; }
  .home-location__card {
    position: relative;
    inset: auto;
    width: min(100% - 32px, 420px);
    min-height: 0;
    margin: -40px auto 28px;
    padding: 28px 36px;
  }
  .aveni-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100% - 40px, 620px);
    gap: 42px 32px;
    padding: 54px 0;
  }
  .site-footer--aveni { min-height: 0; }
  .aveni-footer__identity { font-size: 9px; }
  .aveni-footer__identity { padding-right: 15px; }
  .aveni-footer__column:nth-child(2) { padding-left: 15px; }
  .aveni-footer__wordmark { font-size: 38px; }
  .aveni-footer__phone { width: 175px; margin-top: 32px; padding-top: 10px; }
  .aveni-footer__phone > a:first-child { font-size: 16px; }
  .aveni-footer__phone > a:last-child { font-size: 9px; }
  .aveni-footer__column { gap: 10px; }
  .aveni-footer__column h2 { margin-bottom: 10px; font-size: 12px; }
  .aveni-footer__column a { padding-left: 16px; font-size: 12px; }
  .aveni-footer__column a::before { font-size: 18px; line-height: 12px; }
}

@media (max-width: 520px) {
  .home-location__map iframe { height: 270px; }
  .home-location__card { padding: 25px 30px; }
  .aveni-footer { grid-template-columns: 1fr; gap: 34px; }
}

.menu-toggle {
  display: none;
}

.content-layout {
  padding-block: 48px;
}

/* The original Joomla article layout used on the “О компании” page. */
.about-page {
  padding: 40px 0;
  color: #1c303c;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.4;
}

.about-page__container {
  width: 1170px;
  margin: 0 auto;
  padding: 0 15px;
}

.about-page__article {
  margin: 0 0 80px;
}

.about-page__header {
  margin: 0 0 35px;
}

.about-page__header h1,
.about-page__header h2 {
  margin: 30px 0 0;
  padding: 0;
  color: #24252a;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 32px;
  font-weight: 500;
  line-height: 36px;
  text-transform: uppercase;
}

.about-page__content {
  color: #606060;
}

.about-page__content p {
  margin: 0 0 19.6px;
  font-size: 14px;
  line-height: 1.4;
}

.about-page__content p:last-child {
  margin-bottom: 0;
}

.about-page__content a {
  color: #337ab7;
  text-decoration: underline;
}

.about-page__content a:hover,
.about-page__content a:focus-visible {
  color: #23527c;
  text-decoration: none;
}

.contact-channels {
  padding: 100px 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.contact-channels__inner {
  display: grid;
  grid-template-columns: repeat(3, 360px);
  gap: 30px;
  width: 1140px;
  margin: 0 auto;
}

.contact-channel {
  min-height: 155px;
  text-align: center;
}

.contact-channel:hover {
  cursor: pointer;
}

.contact-channel__icon {
  display: block;
  margin-bottom: 30px;
  color: #706d6d;
  font-family: FontAwesome;
  font-size: 40px;
  line-height: 40px;
  transition: transform .3s, text-shadow .3s;
  transform-origin: center;
}

.contact-channel:hover .contact-channel__icon {
  transform: scale(1.3);
  text-shadow: 2px 2px 2px rgba(0, 0, 0, .2);
}

.contact-channel > a {
  display: block;
  color: #337ab7;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  text-decoration: underline;
}

.contact-channel > a h3 {
  margin: 0 0 30px;
  padding: 0;
  color: #706d6d;
  font-family: Ubuntu, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  text-transform: uppercase;
  transition: .3s;
}

.contact-channel p {
  margin: 0;
  color: #1c303c;
  font-size: 14px;
  line-height: 19.6px;
}

.contact-location { margin-top: 50px; }
.contact-location h2 { height: 84px; margin: 0 auto; padding-top: 20px; text-align: left; }

.faq-page {
  padding: 0 0 40px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #1c303c;
}

.faq-page__inner { width: 1140px; margin: 0 auto; }
.faq-page h1,
.faq-page h2 { margin: 20px 0; font-family: Ubuntu, Arial, sans-serif; font-size: 24px; line-height: 24px; font-weight: 400; text-transform: uppercase; }
.faq-item { margin: 0; border: 0; }
.faq-item summary { position: relative; height: 48px; padding: 0 20px 0 50px; border: 1px solid #706d6d; background: #fff; font-size: 14px; line-height: 46px; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before { position: absolute; left: 20px; content: '+'; font-size: 20px; }
.faq-item[open] summary::before { content: '\2212'; }
.faq-item__body { padding: 30px 20px 10px; color: #1c303c; font-size: 16px; line-height: 24px; }
.faq-item__body p { margin: 0; }

@media (max-width: 1170px) {
  .contact-channels__inner,
  .faq-page__inner { width: calc(100% - 30px); }
  .contact-channels__inner { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1170px) {
  .about-page__container {
    width: 100%;
  }
}

@media (max-width: 900px) {
  .group-bar {
    display: none;
  }

  .site-header__main {
    grid-template-columns: 1fr auto;
    min-height: 92px;
  }

  .brand img {
    width: 180px;
  }

  .menu-toggle {
    display: grid;
    gap: 5px;
    width: 42px;
    padding: 8px;
    border: 0;
    background: transparent;
  }

  .menu-toggle > span:not(.screen-reader-text) {
    height: 2px;
    background: var(--aveni-ink);
  }

  .primary-navigation {
    display: none;
    grid-column: 1 / -1;
  }

  .primary-navigation.is-open {
    display: block;
  }

  .primary-menu {
    display: grid;
    gap: 0;
  }

  .primary-menu a {
    display: block;
    padding: 12px 0;
  }

  .header-contact,
  .quote-link,
  .product-navigation {
    display: none;
  }

  .hero__grid {
    grid-template-columns: 1fr;
  }

  .hero h1 {
    font-size: clamp(38px, 12vw, 64px);
  }

  .request-card {
    width: min(100%, 420px);
    margin-inline: auto;
  }

  .category-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .hero--bags {
    background-image: linear-gradient(90deg, rgb(255 255 255 / 38%), rgb(255 255 255 / 12%)), url('assets/images/back_main.webp');
    background-size: cover;
    background-position: 35% center;
  }

  .hero__grid > * {
    min-width: 0;
  }

  .hero h1 {
    font-size: clamp(30px, 9.5vw, 42px);
    overflow-wrap: anywhere;
  }

  .request-card {
    width: 100%;
    padding: 28px 20px;
  }

  .category-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 521px) {
  .hero--bags {
    background-image: linear-gradient(90deg, rgb(255 255 255 / 12%), rgb(255 255 255 / 4%)), url('assets/images/back_main.webp');
    background-size: cover;
    background-position: center;
  }
}

/* AVENI BAGS desktop reconstruction, measured against the legacy homepage. */
@media (min-width: 901px) {
  .site-shell {
    width: 1144px;
    max-width: calc(100% - 32px);
  }

  .group-bar {
    height: 44px;
    font-family: Ubuntu, Arial, sans-serif;
    font-size: 12px;
  }

  .group-bar__inner {
    height: 44px;
  }

  .group-bar a {
    padding: 0 15px;
    line-height: 44px;
    border-right-color: #48525b;
  }

  .group-bar a::before {
    margin-right: 8px;
    content: '\f105';
    font-family: 'FontAwesome';
  }

  .group-bar a:hover,
  .group-bar a:focus-visible {
    color: #1c303c;
    background: #fff;
  }

  .site-header__main {
    grid-template-columns: 240px 1fr 200px;
    gap: 24px;
    min-height: 153px;
  }

  .brand img {
    width: 228px;
  }

  .primary-menu {
    gap: 0;
    font-family: Ubuntu, Arial, sans-serif;
    font-size: 14px;
  }

  .primary-menu a {
    display: block;
    padding: 10px 12px;
    color: #009aff;
  }

  .primary-menu a:hover,
  .primary-menu a:focus-visible {
    color: #009aff;
    background: #eee;
  }

  .header-contact {
    position: relative;
    width: max-content;
    padding-left: 25px;
    font-family: Ubuntu, Arial, sans-serif;
    justify-self: end;
  }

  .header-contact::before {
    position: absolute;
    left: 0;
    top: 1px;
    width: 20px;
    height: 20px;
    content: '';
    background: url('assets/images/phone-header.png') left 2px / 17px 17px no-repeat;
  }

  .header-phone {
    font-size: 15px;
    color: #1c303c;
  }

  .header-phone span {
    color: #a5b9c6;
  }

  .callback-link {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1;
    color: #009aff;
    text-decoration: none;
    border-bottom: 1px dashed #009aff;
    justify-self: end;
  }

  .callback-link:hover,
  .callback-link:focus-visible {
    color: #ff3818;
    border-bottom-color: #ff3818;
  }

  .quote-link {
    position: relative;
    padding-left: 28px;
    font-family: Ubuntu, Arial, sans-serif;
    font-size: 14px;
  }

  .quote-link::before {
    position: absolute;
    left: 0;
    top: 50%;
    width: 16px;
    height: 18px;
    content: '';
    transform: translateY(-50%);
    background: url('assets/images/cart.png') center / 16px 18px no-repeat;
  }

  .product-navigation {
    height: 44px;
    background: #fff;
  }

  .product-navigation__inner {
    display: flex;
    justify-content: center;
    height: 44px;
    background: #dadedc;
  }

  .product-navigation a {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    height: 44px;
    padding: 0 38px;
    border-right: 1px solid #b7c2cd;
    font-family: Ubuntu, Arial, sans-serif;
    font-size: 14px;
    color: #2e3230;
  }

  .product-navigation a:first-child {
    border-left: 0;
  }

  .product-navigation a:last-child {
    border-right: 0;
  }

  .product-navigation a:hover,
  .product-navigation a:focus-visible,
  .product-navigation a[aria-current='page'] {
    color: #ff3818;
    background: #fff;
  }

  .hero--bags {
    min-height: 770px;
    background-image: url('assets/images/back_main.webp');
    background-size: cover;
    background-position: 37% 50%;
  }

  .hero__grid {
    grid-template-columns: minmax(0, 829px) 315px;
    gap: 0;
    min-height: 770px;
    padding: 58px 0 52px;
  }

  .hero__copy {
    min-width: 0;
    padding: 13px 31px 0 0;
  }

  .hero h1 {
    font-size: 48px;
    line-height: 1.16;
    text-align: right;
    white-space: nowrap;
  }

  .hero h1 strong {
    display: block;
    font-size: 68px;
    line-height: 1.17;
  }

  .request-card {
    width: 315px;
    min-height: 660px;
    height: auto;
    padding: 0 39px 28px;
    background: rgb(44 57 64 / 48%);
  }

  .request-card h2 {
    margin: 0 -39px 49px;
    padding: 35px 39px 30px;
    border-bottom: 1px dashed rgb(255 255 255 / 45%);
    font-size: 20px;
    line-height: 1.2;
  }

  .request-card input,
  .request-card textarea,
  .request-card button {
    margin-top: 0;
    font-size: 14px;
  }

  .request-card label:not(.request-card__privacy):not(.request-card__trap) {
    display: block;
    margin-bottom: 15px;
  }

  .request-card input[type='text']:not([name='company_website']),
  .request-card input[type='tel'],
  .request-card input[type='email'] {
    height: 45px;
    padding: 12px 12px 12px 55px;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: 15px center;
  }

  .request-card input[type='tel'] {
    background-image: url('assets/images/phone-icon.png');
  }

  .request-card input[type='email'] {
    background-image: url('assets/images/e-mail.png');
  }

  .request-card input[type='text']:not([name='company_website']) {
    padding-left: 20px;
  }

  .request-card .request-file > span:first-child,
  .request-card .request-file > .request-file__list {
    margin-bottom: 5px;
    color: #fff;
  }

  .request-card .request-file input[type='file'] {
    padding: 7px 8px;
    background: #fff;
    color: #1c303c;
    font-size: 12px;
    cursor: pointer;
  }

  .request-card textarea {
    min-height: 100px;
    padding: 10px 20px;
  }

  .request-card button {
    height: 50px;
    padding: 0;
    font-size: 16px;
  }

  .section-intro {
    padding: 55px 0 33px;
    font-family: Ubuntu, Arial, sans-serif;
  }

  .section-intro h2 {
    margin: 0 0 24px;
    font-size: 24px;
    line-height: 29px;
    font-weight: 400;
    text-transform: uppercase;
  }

  .category-grid {
    display: grid;
    grid-template-columns: repeat(4, 262px);
    grid-auto-rows: 250px;
    justify-content: center;
    gap: 50px 31px;
  }

  .category-card {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
    background: transparent;
  }

  .category-card__image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 250px;
  }

  .category-card__image--active {
    display: none;
  }

  .catalog-actions {
    display: flex;
    align-items: center;
    gap: 54px;
    width: 1064px;
    margin: 79px auto 0;
    text-align: left;
  }

  .catalog-actions__button {
    display: grid;
    place-items: center;
    width: 238px;
    height: 47px;
    color: #fff;
    background: #1c303c;
    font-size: 16px;
  }

  .catalog-actions__button:hover,
  .catalog-actions__button:focus-visible {
    background: #ff3818;
  }

  .catalog-actions__link {
    color: #009aff;
    font-size: 14px;
    text-decoration: underline;
  }

  .catalog-actions__link:hover,
  .catalog-actions__link:focus-visible {
    color: #ff3818;
    text-decoration: none;
  }

  .home-portfolio {
    padding: 22px 0 44px;
    font-family: Ubuntu, Arial, sans-serif;
  }

  .home-portfolio h2 {
    margin: 0 0 22px;
    font-size: 24px;
    line-height: 29px;
    font-weight: 400;
    text-transform: uppercase;
  }

  .home-portfolio__grid {
    display: grid;
    grid-template-columns: repeat(4, 254px);
    grid-auto-rows: 222px;
    justify-content: center;
    gap: 15px 31px;
  }

  .home-portfolio__item {
    display: block;
    overflow: hidden;
    border: 1px solid #ccc;
    background: #fff;
  }

  .home-portfolio__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .home-portfolio__item:hover,
  .home-portfolio__item:focus-visible {
    border-color: #009aff;
  }

  .home-portfolio__actions {
    display: flex;
    align-items: center;
    gap: 30px;
    margin-top: 54px;
  }

  .home-portfolio__button {
    display: grid;
    place-items: center;
    width: 262px;
    height: 46px;
    color: #fff;
    background: #1c303c;
    font-size: 16px;
  }

  .home-portfolio__button:hover,
  .home-portfolio__button:focus-visible {
    background: #ff3818;
  }

  .home-portfolio__link {
    color: #009aff;
    font-size: 14px;
    text-decoration: underline;
  }

  .home-portfolio__link:hover,
  .home-portfolio__link:focus-visible {
    color: #ff3818;
    text-decoration: none;
  }

  .order-proof {
    height: 357px;
    margin-top: 45px;
    padding: 0;
    font-family: Ubuntu, Arial, sans-serif;
  }

  .order-proof__inner {
    display: grid;
    grid-template-columns: 780px 390px;
    align-items: center;
    gap: 0;
    width: 1170px;
    max-width: 1170px;
    height: 100%;
    margin: 0 auto;
  }

  .order-proof__stat {
    display: flex;
    align-items: center;
    height: 168px;
    margin: 0 15px;
    padding: 0 20px;
    background: rgb(255 255 255 / 9%);
    text-transform: uppercase;
    box-sizing: border-box;
  }

  .order-proof__stat strong {
    margin-right: 16px;
    min-width: 210px;
    font-size: 98px;
    line-height: 1;
    font-weight: 700;
  }

  .order-proof__stat strong span {
    font-size: 59px;
  }

  .order-proof__stat span {
    font-size: 24px;
    line-height: 24px;
  }

  .order-proof__try {
    padding: 0 15px;
    text-align: center;
  }

  .order-proof__try a {
    display: grid;
    place-items: center;
    width: 100%;
    height: 69px;
    color: #1c303c;
    background: #fff;
    font-size: 25px;
    box-sizing: border-box;
  }

  .order-proof__try a:hover,
  .order-proof__try a:focus-visible {
    color: #ff3818;
  }

  .order-proof__try p {
    margin: 20px 0 0;
    font-size: 16px;
    line-height: 1.35;
  }

  .client-showcase {
    width: 1170px;
    max-width: 1170px;
    height: 438px;
    margin: 0 auto;
    padding: 84px 0 0;
    font-family: Ubuntu, Arial, sans-serif;
  }

  .client-showcase h2 {
    margin: 0 0 22px;
    text-align: center;
    font-size: 24px;
    line-height: 29px;
    font-weight: 400;
    text-transform: uppercase;
  }

  .client-showcase__grid {
    display: grid;
    grid-template-columns: repeat(6, 195px);
    grid-auto-rows: 85px;
    gap: 30px 0;
  }

  .client-showcase__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    box-sizing: border-box;
  }

  .client-showcase__logo img {
    max-width: 165px;
    max-height: 85px;
    object-fit: contain;
  }

  .client-showcase__button {
    display: grid;
    place-items: center;
    width: 285px;
    height: 44px;
    margin: 30px 0 0 15px;
    color: #fff;
    background: #ff3818;
    font-size: 16px;
  }

  .client-showcase__button:hover,
  .client-showcase__button:focus-visible {
    background: #1c303c;
  }

  .home-about {
    width: 100%;
    max-width: none;
    margin: 45px 0 0;
    padding: 300px 0 100px;
    background: url('assets/images/about-home/aveni-bags-bottom.jpg') 50% 0 / auto no-repeat;
    font-family: Ubuntu, Arial, sans-serif;
  }

  .home-about__backdrop {
    display: none;
  }

  .home-about__content {
    display: grid;
    grid-template-columns: 585px 585px;
    gap: 0;
    width: 1170px;
    margin: 0 auto;
    position: relative;
  }

  .home-about__copy {
    min-height: 494px;
    padding: 50px 50px 60px;
    box-sizing: border-box;
    color: #102c3a;
    font-family: Arial, Helvetica, sans-serif;
  }

  .home-about__copy h2 {
    display: flex;
    align-items: center;
    margin: 0 0 30px;
    font-size: 24px;
    line-height: 30px;
    font-weight: 400;
  }

  .home-about__copy h2 img {
    flex: 0 0 auto;
    width: 92px;
    height: 41px;
    margin-right: 4px;
  }

  .home-about__copy p {
    margin: 0 0 15px;
    font-size: 14px;
    line-height: 24px;
  }

  .home-about__copy a {
    display: inline-block;
    margin-top: 4px;
    color: #009aff;
    font-size: 14px;
    text-decoration: underline;
  }

  .home-about__copy a:hover,
  .home-about__copy a:focus-visible {
    color: #ff3818;
    text-decoration: none;
  }

  .home-about__mosaic {
    grid-template-columns: repeat(2, 262.5px);
    grid-template-rows: repeat(2, 232px);
    gap: 30px;
    padding-left: 30px;
    box-sizing: border-box;
  }

  .home-about__mosaic img,
  .home-about__stat {
    width: 262.5px;
    height: 232px;
  }

  .home-about__stat {
    place-content: start;
    padding: 60px 40px 40px;
    box-sizing: border-box;
    text-align: left;
  }

  .home-about__stat strong {
    font-size: 60px;
    line-height: 60px;
  }

  .home-about__stat span {
    margin-top: 8px;
    font-size: 20px;
    line-height: 20px;
  }

  .testimonials-home {
    min-height: 0;
    padding: 60px 0;
    background: #f2f5f7;
    font-family: Arial, Helvetica, sans-serif;
  }

  .testimonials-home__inner {
    width: 1170px;
    margin: 0 auto;
  }

  .testimonials-home h2 {
    margin: 0 0 25px;
    text-align: center;
    font-family: Ubuntu, Arial, sans-serif;
    font-size: 24px;
    line-height: 24px;
    font-weight: 400;
    text-transform: uppercase;
  }

  .testimonials-home__grid {
    display: grid;
    grid-template-columns: repeat(4, 292.5px);
    gap: 0;
  }

  .testimonial-home {
    position: relative;
    min-height: 0;
    margin: 0;
    padding: 0 15px;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.45;
    background: url('assets/images/testimonials/mail.png') 50% 40% no-repeat;
  }

  .testimonial-home::before { content: none; }

  .testimonial-home > * {
    position: relative;
    z-index: 1;
  }

  .testimonial-home img {
    display: block;
    width: auto;
    max-width: 262.5px;
    height: 70px;
    margin-bottom: 30px;
    object-fit: contain;
    object-position: left center;
  }

  .testimonial-home p {
    margin: 0 0 20px;
  }

  .testimonials-home__actions {
    display: flex;
    align-items: center;
    gap: 0;
    margin-top: 30px;
    padding: 0 15px;
  }

  .testimonials-home__button {
    display: grid;
    place-items: center;
    width: 262.5px;
    height: 44px;
    color: #fff;
    background: #1c303c;
    font-size: 16px;
  }

  .testimonials-home__button:hover,
  .testimonials-home__button:focus-visible {
    background: #ff3818;
  }

  .testimonials-home__link {
    margin-left: 30px;
    color: #009aff;
    font-size: 14px;
    text-decoration: underline;
  }

  .testimonials-home__link:hover,
  .testimonials-home__link:focus-visible {
    color: #ff3818;
    text-decoration: none;
  }
}

/* Final accessibility overrides must remain after the desktop fidelity rules. */
.primary-menu a,
.callback-link,
.catalog-actions__link,
.home-portfolio__link,
.home-about__copy a,
.testimonials-home__link,
.home-location__card a { color: #006fae; }
.callback-link { border-bottom-color: #006fae; }
.request-card button,
.callback-form > button[type="submit"],
.product-request button[type="submit"],
.client-showcase__button,
.home-about__stat--orange { background-color: #c72d16; }
.product-property-grid figure { background-color: #626d69; }
.aveni-footer__identity > a,
.aveni-footer__identity > span a,
.aveni-footer__phone a { color: #66bff0; }
.aveni-footer__identity p,
.aveni-footer__column h2 { color: #c0cbd2; }
.header-phone,
.callback-link { display: flex; min-height: 28px; align-items: center; justify-content: flex-end; }
.header-contact { row-gap: 4px; }
.home-portfolio__item:focus-visible,
.category-card:focus-visible,
.header-phone:focus-visible,
.callback-link:focus-visible { outline: 3px solid #006fae; outline-offset: 3px; }

@media (max-width: 900px) {
  .category-grid { gap: 24px; }
  .catalog-actions { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 32px; }
  .catalog-actions__button { min-height: 44px; padding: 0 20px; }
  .aveni-footer__phone { display: grid; gap: 8px; }
  .aveni-footer__phone > a:first-child,
  .aveni-footer__phone > a:last-child { min-height: 32px; align-items: center; justify-content: flex-end; margin-top: 0; }
  .aveni-footer__phone > a:last-child { display: flex; }
}

/* Final mobile overrides — keep after desktop fidelity and accessibility rules. */
@media (max-width: 900px) {
  html.mobile-menu-open { overflow: hidden; }
  .site-header__main { grid-template-columns: minmax(0,1fr) 48px; gap: 10px; padding-top: 14px; padding-bottom: 14px; }
  .brand img { width: min(180px,48vw); }
  .menu-toggle { position: relative; z-index: 13020; width: 48px; height: 48px; padding: 10px; cursor: pointer; }
  .menu-toggle[aria-expanded="true"] { position: fixed; top: 0; left: min(82vw,360px); transform: translateX(-100%); background: #1c303c; }
  .menu-toggle[aria-expanded="true"] > span:not(.screen-reader-text) { position: absolute; left: 11px; width: 27px; background: #fff; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: rotate(-45deg); }
  .mobile-header-contact { display: flex; grid-column: 1/-1; align-items: center; justify-content: center; gap: 14px; min-width: 0; font-family: Ubuntu,Arial,sans-serif; }
  .mobile-header-contact a:first-child { color: #1c303c; font-size: 16px; text-decoration: none; }
  .mobile-header-contact a:first-child span { color: #8b9aa2; }
  .mobile-header-contact a:last-child { color: #006fae; font-size: 14px; text-decoration: none; border-bottom: 1px dashed #006fae; }
  .primary-navigation.is-open { position: fixed; inset: 0 auto 0 0; z-index: 13010; display: flex; flex-direction: column; width: min(82vw,360px); height: 100vh; overflow-y: auto; background: #fff; box-shadow: 10px 0 30px rgb(0 0 0 / 35%); }
  .primary-navigation .primary-menu { display: flex; flex-direction: column; order: 2; margin: 0; }
  .primary-menu a,.mobile-catalog-menu a,.mobile-group-menu a { display: block; padding: 18px 24px; border-bottom: 1px solid #edf0f1; font-size: 18px; line-height: 24px; text-decoration: none; }
  .mobile-catalog-menu { display: flex; flex-direction: column; order: 1; background: #e3e7e8; }
  .mobile-catalog-menu a { color: #1c303c; border-bottom-color: #f5f6f6; }
  .primary-navigation .primary-menu a { color: #006fae; }
  .mobile-group-menu { display: flex; flex-direction: column; order: 3; background: #1c303c; }
  .mobile-group-menu a { color: #fff; border-bottom-color: #344b57; }
  .hero--bags { min-height: 0; background-position: 22% center; }
  .hero__grid { padding-top: 42px; }
  .hero h1 { font-size: 25px; line-height: 1.2; }
  .hero h1 strong { font-size: clamp(20px,6.1vw,27px); line-height: 1.2; white-space: nowrap; }
  .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px 20px; }
  .category-card { min-height: 210px; padding: 0; background: transparent; }
  .category-card__image { max-height: 190px; }
  .catalog-actions { width: 100%; justify-content: flex-start; }
  .catalog-actions__button { display: grid; width: min(100%,285px); height: 48px; padding: 0; color: #fff; background: #1c303c; place-items: center; }
  .client-showcase { width: 100%; max-width: 100%; height: auto; padding: 56px 20px; box-sizing: border-box; }
  .client-showcase__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px 14px; }
  .client-showcase__logo { min-width: 0; min-height: 74px; padding: 0; }
  .client-showcase__logo img { display: block; width: auto; max-width: 100%; height: auto; max-height: 70px; object-fit: contain; }
  .client-showcase__button { display: grid; width: min(100%,285px); height: 48px; place-items: center; }
  .testimonials-home__inner { width: min(100% - 32px,620px); }
  .testimonials-home__grid { grid-template-columns: 1fr; gap: 36px; }
  .testimonial-home { padding: 0; }
  .testimonial-home img { max-width: 100%; margin-bottom: 14px; }
  .testimonials-home__actions { display: grid; gap: 18px; padding: 0; }
  .testimonials-home__button { width: min(100%,285px); height: 48px; }
  .testimonials-home__link { margin-left: 0; }
  .home-location__map iframe { height: 360px; }
  .aveni-footer { display: grid; grid-template-columns: 1fr; }
  .aveni-footer__column { order: 1; align-items: center; text-align: center; }
  .aveni-footer__identity { order: 4; display: flex; flex-direction: column; align-items: center; padding: 28px 15px 0; text-align: center; }
  .aveni-footer__phone { width: min(260px,100%); text-align: center; }
  .aveni-footer__phone > a:first-child,.aveni-footer__phone > a:last-child { justify-content: center; }
  .catalog-page--original .product-grid { grid-auto-rows: 340px; gap: 30px 14px; }
  .catalog-page--original .product-card { height: 340px; border: 1px solid #d6dadd; padding: 10px 5px; }
  .catalog-page--original .product-card__image { height: 195px; margin-bottom: 10px; border: 1px solid #e0e3e5; }
  .catalog-page--original .product-card__image img { width: 190px; max-width: 100%; height: 190px; }
  .product-page--original,.product-page--original .product-detail,.product-detail__content,.product-page__description,.product-request { min-width: 0; max-width: 100%; }
  .product-detail__content h1 { font-size: clamp(21px,7vw,28px); line-height: 1.2; overflow-wrap: anywhere; }
  .product-page__description { overflow-wrap: anywhere; }
  .product-request { box-sizing: border-box; overflow: hidden; }
  .product-request__contacts { grid-template-columns: 1fr; }
  .product-request input,.product-request textarea,.request-file { min-width: 0; max-width: 100%; box-sizing: border-box; }
  .portfolio-page__hint { margin-bottom: 18px; }
  .portfolio-filters { display: flex; flex-flow: row wrap; gap: 8px; margin-bottom: 12px; }
  .portfolio-filters strong { flex-basis: 100%; }
  .portfolio-filters button { flex: 0 1 auto; }
  .portfolio-card__open::after { position: absolute; right: 8px; bottom: 8px; content: 'Увеличить'; padding: 6px 10px; color: #fff; background: rgb(28 48 60 / 88%); font-size: 12px; }
  .portfolio-lightbox__previous,.portfolio-lightbox__next { width: 42px; height: 54px; border-radius: 4px; background: rgb(255 255 255 / 18%); font-size: 48px; line-height: 48px; }
}
@media (max-width: 520px) {
  .hero--bags { background-position: 20% center; }
  .hero h1 { font-size: 22px; }
  .hero h1 strong { font-size: 5.9vw; }
  .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-showcase__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .catalog-page--original .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
