/*
    Theme Name: Okila
    Theme URI: https://okila.net/
    Author: Nodo
    Author URI: https://nodo.pw/
    Description: Hoja de estilos de la página de Okila
    Version: 1.0
    */

/*
Document
========
*/

*,
::before,
::after {
  box-sizing: border-box;
}

/**
Use a more readable tab size (opinionated).
*/

html {
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/*
Sections
========
*/

/**
Remove the margin in all browsers.
*/

body {
  margin: 0;
}

/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/

body {
  font-family:
    system-ui,
    -apple-system, /* Firefox supports this but not yet `system-ui` */
    'Segoe UI',
    Roboto,
    Helvetica,
    Arial,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji';
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    'Liberation Mono',
    Menlo,
    monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/

/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/

button,
select { /* 1 */
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

:root {
  --black: #000;
  --black-shadow: rgba(0,0,0,0.5);
  --black-modal: rgba(0,0,0,0.85);
  --blue-500: #1f274c;
  --blue-500-shadow: rgba(2,30,75,0.5);
  --gray-300: #f5f5f5;
  --gray-400: #e6e6e6;
  --gray-500: #c4c4c4;
  --gray-500-transparency: rgba(196,196,196,0.4);
  --gray-500-shadow: rgba(196,196,196,0.5);
  --red-500: #bd0000;
  --yellow-500: #ffd92e;
  --beige-500: #f8f0ce;
  --white: #fff;
  --font-primary: 'Nunito', sans-serif;
  --font-secondary: 'Montserrat', sans-serif;
  --font-base: 16px;
  --font-sm: 0.5rem;
  --font-nm: 1.125rem;
  --font-md: 1.25rem;
  --font-lg: 1.5rem;
  --font-lg-x: 1.875rem;
  --font-hg: 2rem;
  --font-hg-x: 2.5rem;
  --line-height-1: 1.125;
  --line-height-2: 1.25;
  --line-height-3: 1.375;
  --line-height-4: 1.5;
  --line-height-5: 2;
  --margin-tiny-x: 0.125rem;
  --margin-tiny: 0.25rem;
  --margin-sm-x: 0.5rem;
  --margin-sm: 0.75rem;
  --margin-nm: 1rem;
  --margin-md: 1.125rem;
  --margin-md-x: 1.5rem;
  --margin-lg: 1.75rem;
  --margin-lg-x: 2rem;
  --margin-hg: 2.5rem;
  --margin-hg-x: 3.75rem;
  --zi-n-2: -20;
  --zi-n-1: -10;
  --zi-0: 0;
  --zi-1: 10;
  --zi-2: 20;
  --zi-3: 30;
  --zi-4: 40;
  --zi-5: 50;
}
html,
body {
  font: 400 var(--font-base)/var(--line-height-1) var(--font-primary);
  background: var(--gray-300);
}
* {
  margin: 0;
  padding: 0;
}
body {
  background: var(--gray-300);
}
main {
  max-width: 80rem;
  margin: auto;
}
main.fullwidth {
  max-width: 100%;
}
.u_wrap {
  max-width: 80rem;
  margin-inline: auto !important;
  width: calc(100% - 2rem);
}
p + p {
  margin-top: var(--margin-nm);
}
small {
  font-size: 70%;
}
ul {
  list-style: none;
}
img {
  max-width: 100%;
  height: auto;
}
iframe {
  max-width: 100%;
  max-height: 100vh;
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
}
.header {
  max-width: 1280px;
  height: 7.25rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5rem;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: var(--zi-5);
  background-color: var(--gray-300);
}
@media screen and (min-width: 1024px) {
  .header {
    overflow: revert;
  }
}
.navbar {
  position: relative;
  z-index: var(--zi-5);
  display: flex;
  align-items: center;
  gap: 1rem;
  height: 6.5rem;
  background: url("img/background__header.svg") no-repeat 200px bottom/100% 100%;
}
@media screen and (min-width: 1100px) {
  .navbar {
    background-size: calc(100% - 300px);
    background-position-x: right;
  }
}
.logo {
  flex: 0 0 160px;
  margin-left: 1.5rem;
  margin-right: auto;
}
.logo-image {
  max-height: 40px;
  max-width: 262px;
}
@media screen and (max-width: 480px) {
  .logo-image {
    max-width: 160px;
  }
}
.button-menu {
  z-index: var(--zi-1);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  width: 1.5rem;
  height: 1.5rem;
  margin-bottom: 1rem;
  margin-right: 6rem;
  background: transparent;
  accent-color: transparent;
  color: var(--white);
  cursor: pointer;
}
.button-menu::before,
.button-menu::after {
  content: '';
  display: block;
  height: 0.15rem;
  background: currentColor;
}
.button-menu::after {
  box-shadow: 0 0.5rem 0 0 currentColor;
}
.button-menu:checked {
  color: var(--yellow-500);
}
.button-menu:checked + .button-menu-close {
  opacity: 1;
  pointer-events: auto;
}
.button-menu:checked ~ .menu {
  left: 0;
}
.menu {
  position: fixed;
  top: 0;
  left: 100%;
  z-index: var(--zi-2);
  width: 100%;
  height: 100%;
  padding-left: var(--margin-hg-x);
  background: var(--white);
  transition: left 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
  overflow-y: auto;
}
.menu > li {
  margin-block: var(--margin-hg-x);
}
.menu .button {
  display: block;
  width: calc(100% - 4rem);
  max-width: 15rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
  margin-inline: 1rem;
}
.menu .button span {
  margin: auto;
}
.button-menu-close {
  position: fixed;
  top: var(--margin-nm);
  right: var(--margin-nm);
  z-index: var(--zi-3);
  font-size: var(--font-hg-x);
  color: var(--red-500);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
  transition: opacity 0.25s;
  transition-delay: 0.5s;
}
.menu > .menu__li > .menu__item {
  font-size: var(--font-md);
  font-weight: 900;
}
.submenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s;
}
.submenu .menu__item {
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin: 1rem 0;
}
@media screen and (min-width: 1024px) {
  .submenu .menu__item {
    margin: 2rem 0;
  }
}
.menu__item {
  text-decoration: none;
  color: currentColor;
}
.menu__item:hover,
.menu__item:focus {
  color: var(--red-500);
}
.has-dropdown:hover > .submenu,
.has-dropdown:focus > .submenu,
.has-dropdown:focus-within > .submenu {
  max-height: -webkit-max-content;
  max-height: -moz-max-content;
  max-height: max-content;
}
@media screen and (min-width: 1024px) {
  .has-dropdown:hover > .submenu,
  .has-dropdown:focus > .submenu,
  .has-dropdown:focus-within > .submenu {
    max-height: calc(100vh - 6rem);
  }
}
.has-dropdown:hover > .menu__item::after,
.has-dropdown:focus > .menu__item::after,
.has-dropdown:focus-within > .menu__item::after {
  transform: rotate(45deg);
}
.has-dropdown > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 12rem;
}
.has-dropdown > a::after {
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform-origin: center;
  transform: rotate(-45deg);
  transition: transform 0.25s;
}
.has-dropdown.categories > a::before {
  content: '';
  display: block;
  width: 1rem;
  height: 1rem;
  position: absolute;
  margin-left: -2rem;
  background: url("img/icons/icon__arrow-down.svg") no-repeat center/contain;
}
.submenu .has-dropdown > a {
  display: flex;
  width: 100%;
}
.header-search {
  position: absolute;
  right: 0;
  z-index: var(--zi-1);
  display: grid;
  place-items: center;
  height: 3.5rem;
  margin-left: 0.5rem;
  margin-bottom: 1rem;
  padding-left: 2rem;
  background: linear-gradient(110deg, transparent 2rem, var(--red-500) 2rem);
}
.header-search__input {
  width: 3.5rem;
  padding-left: 2.5rem;
  border: 0;
  outline: 0;
  background: var(--red-500) url("img/icons/icon__search-white.svg") no-repeat 1rem center/contain;
  color: var(--white);
  transition: width 0.25s linear;
}
.header-search__input:hover,
.header-search__input:focus {
  width: 12rem;
}
.header-search__input:hover {
  cursor: pointer;
}
.header-search__input:focus {
  cursor: text;
}
@media screen and (min-width: 1024px) {
  .logo {
    flex: 0 0 262px;
  }
  .logo-image {
    max-height: 70px;
  }
  .button-menu {
    display: none;
  }
  .menu {
    flex: 1 1;
    position: revert;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 1.5rem;
    max-width: 55rem;
    margin-right: 8rem;
    background: none;
    overflow: unset;
    z-index: 1;
  }
  .menu > .menu__li {
    position: relative;
    margin-top: var(--margin-lg);
    margin-bottom: var(--margin-md);
  }
  .menu > .menu__li > .menu__item {
    color: var(--white);
  }
  .menu > .menu__li > .menu__item:hover {
    color: var(--yellow-500);
  }
  .has-dropdown.categories {
    margin-right: auto;
    margin-left: var(--margin-lg);
  }
  .has-dropdown > a {
    gap: var(--margin-sm-x);
  }
  .has-dropdown > a::before {
    filter: invert(1);
  }
  /*.has-dropdown:not(:first-child) > a::after {
    display: none;
  }*/
  .has-dropdown:hover .submenu {
    display: revert;
  }
  .submenu .has-dropdown:hover .submenu {
    overflow-y: auto;
  }
  .submenu {
    position: absolute;
    top: 100%;
    display: none;
    background: var(--white);
    box-shadow: 0 0 25px var(--black-shadow);
    overflow: revert;
  }
  .submenu .menu__li {
    padding-inline: var(--margin-sm);
  }
  .submenu .menu__item {
    display: block;
    margin: 0;
    padding: var(--margin-sm);
    min-width: 100%;
  }
  .submenu .submenu {
    top: 0;
    left: 100%;
    max-height: unset;
    min-height: 100%;
    box-shadow: 0 0 25px inset var(--gray-500-transparency);
    opacity: 0;
    pointer-events: none;
    transition: 0.25s;
  }
  .submenu .has-dropdown:hover .submenu {
    opacity: 1;
    pointer-events: auto;
  }
  .submenu .has-dropdown > a::after {
    display: block;
    transform: rotate(45deg) !important;
  }
  .submenu .has-dropdown:hover > a::after {
    transform: rotate(-45deg) !important;
  }
  .header-search__input:hover,
  .header-search__input:focus {
    width: 15rem;
  }
}
.footer {
  font-size: var(--font-nm);
  text-transform: uppercase;
  line-height: var(--line-height-3);
  background: var(--blue-500);
  color: var(--white);
}
@media screen and (min-width: 1024px) {
  .footer {
    background: linear-gradient(70deg, var(--blue-500) 78%, var(--red-500) 78%);
  }
}
.footer__container {
  max-width: 1280px;
  margin: auto;
}
.footer__content {
  display: flex;
  flex-wrap: wrap;
}
.footer__links,
.footer__address,
.footer__contact {
  flex: 1 0 9rem;
  max-width: 100%;
  margin: var(--margin-nm);
}
.footer__title {
  margin-bottom: var(--margin-tiny);
  font-size: var(--font-nm);
  font-weight: 900;
}
@media screen and (min-width: 1024px) {
  .footer__title {
    font-size: var(--font-lg);
  }
}
.footer__link {
  text-decoration: none;
  color: currentColor;
}
.footer__address {
  flex-basis: 12rem;
  order: 2;
}
.footer__address address {
  font-style: normal;
}
.footer__contact {
  order: 1;
  margin-left: 0;
  margin-right: 0;
  padding: 2rem 1rem;
  background: linear-gradient(110deg, var(--red-500) 70%, var(--blue-500) 70%);
}
@media screen and (min-width: 1024px) {
  .footer__contact {
    order: 2;
    padding-top: 0;
    background: none;
  }
}
.footer__contact .footer__title {
  margin-bottom: var(--margin-nm);
}
.footer__contact .button {
  max-width: 95%;
  margin-top: var(--margin-tiny);
  margin-bottom: var(--margin-tiny);
  margin-right: var(--margin-md);
  box-shadow: none;
  font-size: var(--font-base);
}
.footer__contact .button span {
  max-width: 100%;
  word-break: break-all;
  white-space: break-spaces;
}
.footer__notices {
  padding: 0 var(--margin-md);
}
@media screen and (min-width: 1024px) {
  .footer__notices {
    display: flex;
    align-items: flex-end;
  }
}
@media screen and (min-width: 1024px) {
  .footer__notices-legal {
    order: 1;
    margin-left: auto;
  }
}
.footer__notice {
  margin-bottom: var(--margin-md);
  font-weight: 900;
}
.footer__figure {
  padding: var(--margin-hg-x) 0;
  background: var(--white);
}
.footer__image {
  display: block;
  max-width: min(100%, 35rem);
  margin: auto;
  padding: var(--margin-nm);
  background: var(--white);
}
.title {
  --ribbon-border-color: var(--blue-500-shadow);
  position: relative;
  padding: 2rem 0;
  font-size: var(--font-nm);
  font-weight: 800;
  text-transform: uppercase;
  line-height: var(--line-height-4);
  overflow-x: hidden;
  background: linear-gradient(110deg, transparent 2rem, var(--blue-500) 1rem) no-repeat;
  background-clip: content-box;
  color: var(--white);
}
@media screen and (min-width: 1024px) {
  .title {
    font-size: var(--font-lg);
    text-align: left;
  }
}
.title.red {
  --ribbon-border-color: var(--gray-500);
  background: var(--red-500);
  background-clip: content-box;
}
.title.red::before {
  background: linear-gradient(var(--white), var(--white)) no-repeat 8px center/100% 30px, linear-gradient(var(--red-500), var(--red-500)) no-repeat left center/100% 27px, linear-gradient(to right, transparent 1px, var(--ribbon-border-color) 1px, var(--ribbon-border-color));
}
@media screen and (min-width: 1024px) {
  .title.red::before {
    height: 84px;
    width: 300px;
    background: linear-gradient(var(--white), var(--white)) no-repeat 12px center/100% 64px, linear-gradient(var(--red-500), var(--red-500)) no-repeat left center/100% 60px, linear-gradient(to right, var(--ribbon-border-color), var(--ribbon-border-color));
  }
}
.title.small {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: var(--margin-tiny) var(--margin-hg-x) var(--margin-tiny) var(--margin-sm);
  font-size: var(--font-lg);
  background: linear-gradient(110deg, var(--blue-500) calc(100% - 2rem), transparent calc(100% - 2rem));
}
.title.small::before {
  content: none;
}
.title::before {
  content: '';
  position: absolute;
  top: 50%;
  right: -1rem;
  transform: translateY(-50%) skewX(-20deg);
  height: calc(100% - 3.25rem);
  width: 73px;
  background: linear-gradient(var(--white), var(--white)) no-repeat 8px center/100% calc(100% - 12px), linear-gradient(var(--blue-500), var(--blue-500)) no-repeat left center/100% 25px, linear-gradient(to right, transparent 1px, var(--ribbon-border-color) 1px, var(--ribbon-border-color));
}
@media screen and (min-width: 1024px) {
  .title::before {
    height: 84px;
    width: 300px;
    background: linear-gradient(var(--white), var(--white)) no-repeat 12px center/100% 64px, linear-gradient(var(--blue-500), var(--blue-500)) no-repeat left center/100% 45px, linear-gradient(to right, var(--ribbon-border-color), var(--ribbon-border-color));
  }
}
.title span {
  display: block;
  margin-left: 2rem;
  width: calc(100% - 95px);
  position: relative;
  z-index: var(--zi-2);
  margin-left: 2rem;
  padding-right: 80px;
  text-shadow: 1px 1px 1px var(--blue-500);
}
@media screen and (min-width: 1024px) {
  .title span {
    width: calc(100% - 325px);
  }
}
@media screen and (min-width: 640px) {
  .title span {
    text-shadow: none;
  }
}
@media screen and (min-width: 1024px) {
  .title span {
    padding-right: 310px;
    text-shadow: none;
  }
}
.subtitle {
  margin-top: var(--margin-lg-x);
  margin-bottom: var(--margin-sm-x);
  font-size: var(--font-lg);
  color: var(--red-500);
}
.button {
  border: 0;
  display: flex;
  justify-content: center;
  gap: 1rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 15rem;
  margin-left: var(--margin-sm-x);
  padding: 0.65rem var(--margin-lg);
  font-weight: 800;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--white);
  background: var(--red-500);
  box-shadow: 2px 2px 20px -5px var(--black-shadow);
  transform: skewX(-20deg);
  transition: box-shadow 250ms;
  cursor: pointer;
}
.button:active,
.button:focus,
.button:hover {
  box-shadow: 2px 2px 20px -3px var(--black);
}
.button img {
  max-width: 24px;
  filter: invert(1);
}
.button span {
  display: inline-block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  transform: skewX(20deg);
}
.button.white {
  background: var(--white);
  color: var(--black);
}
.button.transparency {
  background: var(--gray-500-transparency);
}
.button.left {
  transform: skewX(20deg);
}
.button.left span {
  transform: skewX(-20deg);
}
.input__check {
  display: flex;
  align-items: center;
  gap: var(--margin-sm-x);
  margin: var(--margin-tiny);
  cursor: pointer;
}
.input__check:hover {
  font-weight: 900;
}
.input__check input {
  position: relative;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.input__check input::before {
  content: "";
  width: inherit;
  height: inherit;
  border: 2px solid currentColor;
  border-radius: 3px;
}
.input__check input:checked + span {
  font-weight: 800;
}
.input__check input:checked::before {
  border-color: var(--red-500);
}
.input__check input:checked::after {
  position: absolute;
  content: "";
  display: block;
  width: 6px;
  height: 12px;
  border-bottom: 2px solid var(--red-500);
  border-right: 2px solid var(--red-500);
  transform: rotate(45deg) translateY(-1px);
}
ul.dots-red,
ul.product-s__details-list {
  margin-top: var(--margin-nm);
  margin-bottom: var(--margin-nm);
}
ul.dots-red li::before,
ul.product-s__details-list li::before {
  content: '· ';
  color: var(--red-500);
}
ul.dots-red li + li,
ul.product-s__details-list li + li {
  margin-top: var(--margin-sm);
}
.grid,
.product__gallery,
.tech-cards.home,
.search-grid {
  margin-left: var(--margin-nm);
  margin-right: var(--margin-nm);
  --grid-layout-gap: 1rem;
  --grid-column-count: 4;
  --grid-item--min-width: 160px;
  --grid-fill: auto-fill;
  --gap-count: calc(var(--grid-column-count) - 1);
  --total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));
  --grid-item--max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));
  grid-template-columns: repeat(var(--grid-fill), minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
  grid-gap: var(--grid-layout-gap);
  display: grid;
}
.grid.auto-fit {
  --grid-fill: auto-fit;
}
.grid.columns-2 {
  --grid-column-count: 2;
}
.grid.columns-3,
.tech-cards.home,
.product__gallery {
  --grid-column-count: 3;
}
@media screen and (min-width: 1024px) {
  .autocolumns {
    display: flex;
    gap: var(--margin-lg);
    margin: var(--margin-hg) 0;
    padding-inline: 0;
  }
  .autocolumns > * {
    flex: 1;
  }
}
.product__item {
  position: relative;
}
.product__item:hover .product__image,
.product__item:active .product__image,
.product__item:focus .product__image {
  filter: blur(2px);
  transform: scale(1.05);
}
.product__item:hover .product__link,
.product__item:active .product__link,
.product__item:focus .product__link {
  z-index: var(--zi-1);
  opacity: 1;
}
.product__item figure {
  overflow: hidden;
}
.product__image {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.25s;
}
.product__title {
  margin-top: var(--margin-sm-x);
  font-weight: 700;
  text-align: center;
}
.product__link {
  position: absolute;
  z-index: var(--zi-n-1);
  top: 50%;
  left: 50%;
  opacity: 0;
  transform: translate(-50%, -50%) skewX(-20deg);
  transition: opacity 0.25s;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
}
img.banner {
  display: block;
  width: 100%;
  height: 16rem;
  -o-object-fit: cover;
     object-fit: cover;
}
img.banner + .title {
  margin-top: calc(var(--margin-lg-x) * -1);
}
.carousel {
  margin: var(--margin-hg) 0;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .carousel {
    display: flex;
  }
  .carousel .carousel__controls {
    order: -1;
    padding: var(--margin-nm);
  }
}
.carousel__container {
  display: flex;
  gap: var(--margin-nm);
  padding-left: var(--margin-nm);
  padding-right: var(--margin-nm);
  padding-bottom: var(--margin-hg-x);
  overflow-x: auto;
  background: url("img/background__carousel.svg") no-repeat left bottom/cover;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.carousel__container::-webkit-scrollbar {
  height: 0;
  width: 0;
}
.carousel__item {
  flex: 1 0 calc(25% - var(--margin-sm-x));
}
@media screen and (max-width: 768px) {
  .carousel__item {
    flex-basis: calc(50% - var(--margin-tiny-x));
  }
}
.carousel__item .promocard {
  display: grid;
  place-items: center;
  height: 100%;
  background: url("img/promocard.png") no-repeat center/cover;
}
.carousel__item .promocard a {
  font-size: var(--font-lg);
  font-weight: 800;
  text-align: center;
  text-decoration: none;
  color: var(--white);
}
@media screen and (min-width: 500px) {
  .carousel__item .promocard a {
    font-size: var(--font-hg-x);
  }
}
.carousel__controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: var(--margin-md);
}
.carousel__button {
  margin: 0 -0.25rem;
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
  min-width: -webkit-min-content;
  min-width: -moz-min-content;
  min-width: min-content;
  padding: var(--margin-sm-x);
  padding-top: var(--margin-sm);
  transform: scale(1.2) skewX(-20deg);
}
.galler__image {
  max-width: 100%;
  max-height: 22rem;
  -o-object-fit: cover;
     object-fit: cover;
}
.gallery__image {
  width: 100%;
  height: 22rem;
  min-height: 22rem;
  -o-object-fit: cover;
     object-fit: cover;
  cursor: pointer;
}
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--margin-nm);
  background: var(--white);
  box-shadow: 0.25rem 0.25rem 1rem var(--gray-500-transparency);
}
.card__image {
  display: block;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.card__title {
  margin-top: var(--margin-nm);
  font-weight: 800;
  color: var(--red-500);
}
.card__subtitle {
  font-weight: 800;
  margin-top: var(--margin-nm);
  margin-bottom: var(--margin-nm);
}
.card__description {
  margin-bottom: var(--margin-nm);
  overflow: hidden;
  text-overflow: ellipsis;
}
.card__link {
  position: relative;
  align-self: flex-end;
  margin-top: auto;
  font-weight: 800;
  text-decoration: none;
  color: var(--red-500);
}
.card__link::after {
  content: '';
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  border: 2px solid transparent;
  border-right-color: var(--red-500);
  border-bottom-color: var(--red-500);
  transform: rotate(-45deg);
}
.ribbon {
  position: absolute;
  top: 1rem;
  left: -1rem;
  max-width: -webkit-max-content;
  max-width: -moz-max-content;
  max-width: max-content;
  padding: var(--margin-tiny) var(--margin-nm);
  font-weight: 700;
  color: var(--white);
  -webkit-clip-path: polygon(0.5rem 0, 100% 0, calc(100% - 0.5rem) 100%, 0 100%);
          clip-path: polygon(0.5rem 0, 100% 0, calc(100% - 0.5rem) 100%, 0 100%);
}
.ribbon + .ribbon {
  top: 3rem;
}
.ribbon + .ribbon + .ribbon {
  top: 5rem;
}
.ribbon.new {
  background: var(--red-500);
}
.ribbon.highlight {
  background: var(--black);
}
.ribbon.promo {
  background: var(--yellow-500);
  color: var(--red-500);
}
.video {
  margin-top: var(--margin-md);
  margin-bottom: var(--margin-md);
}
.video .button {
  margin-left: auto;
}
.video__title {
  font-size: var(--font-hg);
  font-weight: 400;
  text-align: center;
}
.video__frame {
  width: 100%;
  aspect-ratio: 16/9;
}
@supports not (aspect-ratio: 16/9) {
  .video__frame {
    min-height: 46.25%;
  }
}
.news__article {
  position: relative;
  margin: var(--margin-hg-x) 0;
}
.news__title {
  position: absolute;
  top: 0;
  left: 50%;
  margin: 0 auto;
  padding: var(--margin-tiny) var(--margin-md);
  width: calc(100% - 3rem);
  font-family: var(--font-secondary, sans-serif);
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  line-height: var(--line-height-3);
  background: var(--gray-400);
  transform: translate(calc(-50% - 0.5rem), -50%);
  -webkit-clip-path: polygon(1.5rem 0, 100% 0, calc(100% - 1.5rem) 100%, 0 100%);
          clip-path: polygon(1.5rem 0, 100% 0, calc(100% - 1.5rem) 100%, 0 100%);
}
@media screen and (min-width: 1024px) {
  .news__title {
    position: revert;
    transform: none;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: 100%;
    padding: var(--margin-md);
    margin-bottom: var(--margin-nm);
    font-size: var(--font-hg);
  }
}
.news__title span {
  display: block;
  margin-inline: var(--margin-nm);
}
.news__image {
  width: 100%;
  max-height: 75vh;
  -o-object-fit: cover;
     object-fit: cover;
}
.news__content {
  margin: var(--margin-lg) var(--margin-nm);
}
.news__text {
  margin-bottom: var(--margin-nm);
  font-weight: 500;
  line-height: var(--line-height-3);
}
.news__text:not(:first-of-type) {
  display: none;
}
@media screen and (min-width: 1024px) {
  .news__container {
    display: flex;
    gap: var(--margin-lg);
  }
  .news__image-container {
    order: 1;
    flex: 2.5;
  }
  .news__image-container:empty {
    display: none;
  }
  .news__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-top: 0;
    margin-bottom: 0;
  }
  .news__content img {
    margin-bottom: var(--margin-nm);
  }
  .news__content .button.news__button {
    width: 100%;
    max-width: 35rem;
    margin-top: auto;
    margin-bottom: var(--margin-tiny);
  }
  .news__content .news__text {
    display: revert;
  }
}
.breadcrumbs {
  margin-top: var(--margin-nm);
  margin-bottom: var(--margin-nm);
  padding-left: var(--margin-sm);
}
.crumb {
  display: inline-flex;
  align-items: center;
  gap: var(--margin-tiny);
  padding-right: var(--margin-tiny);
  text-decoration: none;
  color: currentColor;
}
.crumb:last-child {
  color: var(--red-500);
  pointer-events: none;
}
.crumb + .crumb::before {
  content: '';
  display: block;
  height: var(--margin-sm);
  width: var(--margin-nm);
  background: url("img/icons/icon__chevron-right.svg") no-repeat center/contain;
}
.search-term {
  padding-bottom: var(--margin-tiny);
  padding-left: var(--margin-nm);
  border-bottom: 1px solid var(--red-500);
  margin-bottom: var(--margin-nm);
}
@media screen and (min-width: 1024px) {
  .search-term {
    font-size: var(--font-lg-x);
    padding-left: 0;
    border-bottom-width: 2px;
  }
}
.p_search {
  margin-block: var(--margin-hg);
  font-size: var(--font-lg-x);
  text-align: center;
}
.paginator {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--margin-md);
  margin: var(--margin-lg) auto;
}
.paginator__button,
.paginator__prev,
.paginator__next {
  margin: 0 -0.25rem;
  width: 2rem;
  min-width: 2rem;
  padding: var(--margin-sm-x);
  padding-top: var(--margin-sm);
  font-weight: 400;
  transform: scale(1.2) skewX(-20deg);
}
.paginator__button {
  background: var(--gray-500);
  color: var(--black);
}
.paginator__button.current,
.paginator__button:hover,
.paginator__button:active,
.paginator__button:focus {
  background: var(--blue-500);
  color: var(--white);
}
.input,
.select,
.file,
.textarea,
.submit,
.contact form input,
.contact form select,
.contact form textarea {
  font-size: var(--font-md);
  padding: var(--margin-tiny);
  border: 1px solid var(--gray-500);
  border-radius: 0;
  background: var(--gray-300);
  display: block;
  min-width: 100%;
  outline: none;
  caret-color: var(--blue-500);
}
.contact form {
  margin-top: var(--margin-lg);
}
.contact form input[type="submit"] {
  width: fit-content;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--white);
  box-shadow: 2px 2px 20px -5px var(--black-shadow);
  transform: skewX(-20deg);
  transition: box-shadow 250ms;
  cursor: pointer;
  background: var(--red-500);
  padding: 0.65rem var(--margin-lg);
  padding-top: var(--margin-sm);
  padding-bottom: var(--margin-sm);
  margin-top: var(--margin-nm);
  margin-left: auto;
  min-width: max-content;
}
.input::-moz-placeholder, .select::-moz-placeholder, .file::-moz-placeholder, .textarea::-moz-placeholder, .submit::-moz-placeholder {
  color: var(--black);
  opacity: 1;
}
.input:-ms-input-placeholder, .select:-ms-input-placeholder, .file:-ms-input-placeholder, .textarea:-ms-input-placeholder, .submit:-ms-input-placeholder {
  color: var(--black);
  opacity: 1;
}
.input::placeholder,
.select::placeholder,
.file::placeholder,
.textarea::placeholder,
.submit::placeholder {
  color: var(--black);
  opacity: 1;
}
.input:focus,
.select:focus,
.file:focus,
.textarea:focus,
.submit:focus {
  box-shadow: 0 0 20px -8px var(--gray-500);
}
.input:focus::-moz-placeholder, .select:focus::-moz-placeholder, .file:focus::-moz-placeholder, .textarea:focus::-moz-placeholder, .submit:focus::-moz-placeholder {
  opacity: 0;
}
.input:focus:-ms-input-placeholder, .select:focus:-ms-input-placeholder, .file:focus:-ms-input-placeholder, .textarea:focus:-ms-input-placeholder, .submit:focus:-ms-input-placeholder {
  opacity: 0;
}
.input:focus::placeholder,
.select:focus::placeholder,
.file:focus::placeholder,
.textarea:focus::placeholder,
.submit:focus::placeholder {
  opacity: 0;
}
.input + .input {
  margin: var(--margin-nm) 0;
}
.select {
  margin: var(--margin-nm) 0;
  cursor: pointer;
}
.textarea {
  min-height: 15rem;
  margin: var(--margin-nm) 0;
}
.file {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--margin-sm);
  padding-top: var(--margin-sm);
  padding-bottom: var(--margin-sm);
  border: 0;
  background: var(--blue-500);
  color: var(--white);
  cursor: pointer;
}
.file::before {
  content: '';
  display: block;
  width: 1rem;
  height: 1rem;
  background: url("img/icons/icon__plus.svg") no-repeat center/contain;
}
.submit {
  background: var(--red-500);
  padding-top: var(--margin-sm);
  padding-bottom: var(--margin-sm);
  margin-top: var(--margin-nm);
  margin-left: auto;
}
@media screen and (min-width: 1296px) {
  .submit {
    min-width: -webkit-max-content;
    min-width: -moz-max-content;
    min-width: max-content;
  }
}
.checkbox {
  margin: var(--margin-nm) 0;
  accent-color: var(--blue-500);
}
.checkbox + .label,
.radio + .label {
  cursor: pointer;
}
.label + .select {
  margin-top: var(--margin-tiny);
}
.modal {
  position: fixed;
  inset: 0;
  z-index: var(--zi-5);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: var(--black-modal);
}
.modal-close {
  position: absolute;
  top: var(--margin-nm);
  right: var(--margin-nm);
  font-size: var(--font-hg);
  color: var(--white);
  cursor: pointer;
}
.modal-button {
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin: var(--margin-nm) auto;
  padding: var(--margin-sm) var(--margin-lg);
  border: 0;
  color: var(--red-500);
  background: var(--white);
  cursor: pointer;
}
.gallery__modal-container {
  overflow-y: auto;
}
.gallery__modal-image {
  display: block;
  margin: auto;
  max-width: 100%;
}
.form__modal-container {
  max-width: 30rem;
  background: var(--white);
}
.form__modal-container .modal-close {
  position: revert;
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin-left: auto;
  margin-right: var(--margin-nm);
  font-size: var(--font-lg-x);
  color: currentColor;
}
.form__modal-content {
  padding: var(--margin-nm);
  font-size: var(--font-lg);
}
.table-container {
  overflow: auto;
}
table {
  min-width: 100%;
  margin-block: var(--margin-hg);
  table-layout: fixed;
  border-collapse: collapse;
}
caption {
  margin-block: var(--margin-nm);
  font-size: var(--font-lg);
  font-weight: 700;
}
th {
  font-size: var(--font-md);
  text-align: left;
}
th,
td {
  padding: var(--margin-sm-x);
}
thead tr {
  background: var(--blue-500);
  color: var(--white);
}
tbody tr:nth-child(odd) {
  background: var(--gray-400);
}
tbody tr:nth-child(even) {
  background: var(--gray-300);
}
tbody tr:hover {
  background: var(--blue-500);
  color: var(--white);
}
.tech-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.8rem, 1fr));
}
.tech-card {
  position: relative;
  padding: 0.5rem;
  text-align: center;
}
@media screen and (hover: hover) {
  .tech-card:hover {
    background-color: var(--gray-400);
  }
  .tech-card:hover ul {
    opacity: 1;
    pointer-events: auto;
  }
}
@media screen and (orientation: portrait) {
  .tech-card {
    display: flex;
    flex-direction: column;
  }
}
.tech-card img {
  width: 100%;
  aspect-ratio: 1;
  -o-object-fit: cover;
     object-fit: cover;
}
@supports not (aspect-ratio: 1) {
  .tech-card img {
    height: 8rem;
  }
}
.tech-card a {
  text-decoration: none;
  color: currentColor;
}
.tech-card button {
  display: grid;
  place-items: center;
  margin-left: var(--margin-nm);
  font-weight: bolder;
  border: 0;
  border-radius: 4px;
  width: 1.5rem;
  height: 1.5rem;
}
.tech-card button.active + ul {
  opacity: 1;
  pointer-events: auto;
}
@media screen and (hover: hover) {
  .tech-card button {
    display: none;
  }
}
@media screen and (orientation: portrait) {
  .tech-card button {
    margin-top: auto;
    margin-left: auto;
  }
}
.tech-card ul {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: var(--zi-1);
  width: min(100vw, 80rem);
  padding: 1rem;
  -moz-columns: 3 160px;
       columns: 3 160px;
  text-align: left;
  background-color: var(--gray-400);
  opacity: 0;
  pointer-events: none;
  transition: 0.25s;
}
.tech-card ul a {
  display: inline-block;
  padding-block: 4px;
}
.tech-cards.home {
  margin: 0;
}
.tech-cards.home .tech-card {
  padding: 0;
}
.tech-cards.home .tech-card:focus,
.tech-cards.home .tech-card:hover,
.tech-cards.home .tech-card:focus-within,
.tech-cards.home .tech-card.active {
  background-color: var(--white);
  box-shadow: 0 0 20px var(--black-shadow);
}
.tech-cards.home .tech-card:focus > a,
.tech-cards.home .tech-card:hover > a,
.tech-cards.home .tech-card:focus-within > a,
.tech-cards.home .tech-card.active > a {
  font-weight: 800;
}
.tech-cards.home .tech-card > a {
  font-size: var(--font-lg) !important;
}
.tech-cards.home .tech-card a {
  font-size: var(--font-nm);
}
.tech-cards.home img {
  aspect-ratio: 27/17;
}
@supports not (aspect-ratio: 27/17) {
  .tech-cards.home img {
    height: 15rem;
  }
}
.tech-cards.home ul {
  background-color: var(--white);
  box-shadow: 0 20px 20px var(--black-shadow);
}
.tech-cards.home li {
  margin-bottom: var(--margin-sm-x);
}
.filters {
  margin-block: 4rem;
}
.filters .button {
  min-width: 100%;
  margin-block: 0.5rem;
  margin-inline: 1rem;
}
.filters .filter-buttons {
  margin-bottom: 1rem;
  padding-inline: 1rem;
  place-items: center;
}
.products {
  margin: var(--margin-nm) 0;
}
.banners {
  margin: var(--margin-nm) 0;
}
.banners a {
  display: grid;
  text-align: center;
  place-items: center;
  font-size: var(--font-lg);
  text-decoration: none;
  color: var(--white);
}
.banners img {
  display: block;
  max-width: 100%;
}
.banners .grid {
  margin: 0;
  padding: var(--margin-sm-x);
  background: url("img/background__banners.jpg") no-repeat center/cover;
}
@media screen and (min-width: 1024px) {
  .catalog .button.catalog__link {
    margin-left: var(--margin-nm);
    /* transform: translateY(calc(var(--margin-hg-x) * -2)) skew(-20deg); */
  }
}
.catalog__download {
  margin-bottom: 1rem;
  padding-top: 1rem;
  padding-right: 1rem;
  text-align: center;
  /* background: url("img/background__catalog.png") no-repeat left top/100%; */
}
.catalog__image {
  display: inline-block;
  width: clamp(11rem, 35vw, 28rem);
  border: 20px solid var(--white);
  box-shadow: 10px 10px 30px -5px var(--black-shadow);
  box-shadow: 10px 10px 30px -5px var(--black-shadow);
}
.news {
  margin: var(--margin-nm) 0;
}
.catalog .button,
.videos .button,
.news .button {
  margin: auto;
}
@media screen and (min-width: 1024px) {
  .catalog .button,
  .videos .button,
  .news .button {
    margin-right: var(--margin-nm);
  }
}
@supports not (aspect-ratio: 16/9) {
  .catalog + .videos .video__frame {
    height: calc(min(100vw, 1280px)/16*9);
  }
}
.product-s {
  padding: var(--margin-nm);
  margin-bottom: var(--margin-lg);
}
@media screen and (min-width: 1296px) {
  .product-s {
    padding: 0;
  }
}
.product-s .button + .button {
  margin-top: var(--margin-nm);
}
.product-s__title,
.product-s__part {
  padding: var(--margin-sm);
  font-size: var(--font-lg);
  color: var(--white);
}
@media screen and (min-width: 960px) {
  .product-s__title,
  .product-s__part {
    padding-right: var(--margin-hg-x);
  }
}
.product-s__title {
  background: var(--red-500);
}
@media screen and (min-width: 960px) {
  .product-s__title {
    background: linear-gradient(110deg, var(--red-500) calc(100% - 5rem), transparent calc(100% - 5rem));
  }
}
.product-s__part {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  background: var(--blue-500);
}
@media screen and (min-width: 960px) {
  .product-s__part {
    background: linear-gradient(110deg, var(--blue-500) calc(100% - 2rem), transparent calc(100% - 2rem));
  }
}
.product-s__description {
  margin-block: var(--margin-lg-x);
  padding: var(--margin-nm);
  font-size: var(--font-lg);
  background-color: var(--beige-500);
  box-shadow: 0 0 40px rgba(192,192,192,0.867);
}
.product-s__details {
  font-size: var(--font-nm);
  line-height: var(--line-height-3);
}
.product-s__details-title {
  margin-top: var(--margin-hg);
  margin-bottom: var(--margin-nm);
  font-size: var(--font-hg);
  font-weight: 800;
  text-transform: uppercase;
}
.product__preview {
  width: 100%;
  padding-bottom: 100%;
  aspect-ratio: 1;
  margin-left: auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  cursor: crosshair;
  background-image: var(--data-img);
}
.product__thumbnail {
  display: block;
  width: 100%;
  box-shadow: 0 0 30px -8px var(--gray-500-transparency), 0 0 40px -12px var(--gray-500-shadow);
}
.product__thumbnails {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
  gap: var(--margin-nm);
  margin-top: var(--margin-nm);
}
.product__thumbnail {
  cursor: pointer;
  aspect-ratio: 1;
}
.additiona-info,
.additiona-info > p {
  margin-top: var(--margin-lg);
  margin-bottom: var(--margin-lg);
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: var(--margin-nm);
}
.additiona-info img,
.additiona-info > p img {
  display: block;
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
  max-width: 100%;
}
.product-s__table label,
.product-s__variation label {
  cursor: pointer;
}
.product-s__table .input,
.product-s__variation .input {
  display: inline-block;
  min-width: unset;
  margin-right: var(--margin-sm);
  accent-color: var(--red-500);
}
.product-s__img {
  position: -webkit-sticky;
  position: sticky;
  top: 8rem;
  align-self: flex-start;
}
@-webkit-keyframes spin {
  to {
    transform: rotate(-360deg);
  }
}
@keyframes spin {
  to {
    transform: rotate(-360deg);
  }
}
.grid.grid-promo {
  margin-top: var(--margin-hg);
  margin-bottom: var(--margin-hg);
}
.blog,
.blog-s {
  margin-top: var(--margin-hg);
  margin-bottom: var(--margin-hg);
}
.blog-grid {
  --grid-column-count: 3;
  --grid-item--min-width: 260px;
}
@media screen and (min-width: 1296px) {
  .blog-grid {
    margin-left: 0;
    margin-right: 0;
  }
}
.blog-grid .card__title {
  margin-top: auto;
  margin-bottom: 0;
}
.blog-s__title {
  margin-top: var(--margin-nm);
  margin-bottom: var(--margin-lg);
  padding: var(--margin-sm);
  font-size: var(--font-lg);
  background: var(--red-500);
  color: var(--white);
}
@media screen and (min-width: 960px) {
  .blog-s__title {
    padding-right: var(--margin-hg);
    background: linear-gradient(110deg, var(--red-500) calc(100% - 2rem), transparent calc(100% - 2rem));
  }
}
.blog-s__image-header {
  display: block;
  width: 100%;
  margin-top: var(--margin-nm);
  margin-bottom: var(--margin-hg);
  max-height: 30rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.blog-s__content {
  max-width: 52rem;
  margin: var(--margin-hg-x) auto;
  padding-left: var(--margin-nm);
  padding-right: var(--margin-nm);
  font-size: var(--font-md);
}
.blog-s__subtitle {
  margin-bottom: var(--margin-md);
  font-size: var(--font-hg);
  text-transform: uppercase;
}
.blog-s__subtitle-sm {
  margin-top: var(--margin-hg);
  margin-bottom: var(--margin-sm-x);
}
.blog-s__subtitle-sm.red {
  color: var(--red-500);
}
.mision,
.mision-gallery,
.mision-videos {
  margin: var(--margin-hg) var(--margin-nm);
  font-size: var(--font-md);
}
.mision .title,
.mision-gallery .title,
.mision-videos .title {
  margin-left: calc(var(--margin-nm) * -1);
}
.mision .carousel__container,
.mision-gallery .carousel__container,
.mision-videos .carousel__container {
  background: none;
}

.grupo-tracsa {
  background: url(imgs/bg_aniversario.webp) no-repeat center center / cover;
  text-align: center;
  padding: 4.4rem 2rem;
  margin-block: 4rem;
  color: var(--white);
  .u_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }
}
.tracsa-subtitulo {
  max-width: 830px;
  text-transform: uppercase;
  font-size: 2.6rem;
  line-height: 1;
}
.tracsa-text {
  color: var(--white);
  max-width: 600px;
  line-height: 1.4;
}
.tracsa-btn {
  border-radius: 2rem;
  background: url(imgs/icon_flecha.svg) no-repeat calc(100% - 1.5rem) center #007CF3;
  padding: 1.2rem 5rem 1.2rem 2.5rem;
  color: var(--white);
  text-decoration: none;
  font-weight: 800;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  font-size: var(--font-md);
  display: inline-block;
}
.nuestros-principios {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4rem;
  margin-bottom: 4rem;
}
.principios {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 4rem 2rem;
  width: 100%;
}
.principios_title {
  font-size: var(--font-lg-x);
  text-align: center;
  font-weight: 800;
  text-transform: uppercase;
}

.principio {
  display: flex;
  text-align: center;
  gap: 2rem;
  p {
    font-size: var(--font-nm);
  }
}

@media screen and (min-width: 1296px) {
  .mision,
  .mision-gallery,
  .mision-videos {
    margin-left: 0;
    margin-right: 0;
  }
  .mision .title,
  .mision-gallery .title,
  .mision-videos .title {
    margin-left: 0;
  }
}
.contact {
  font-size: var(--font-lg);
}

.contact .autocolumns {
  padding-inline: 1rem;
}
.contact iframe {
  width: 100%;
  aspect-ratio: 16/9;
}
.contact iframe + .contact__headline {
  margin-top: var(--margin-hg-x);
}
.contact iframe[id*='auto_size_iframe'] {
  min-height: 180vh;
  padding-inline: 1rem;
  aspect-ratio: 0;
}
.contact form,
.contact form input,
.contact form select,
.contact form span {
  font-size: var(--font-md);
}

.contact form label:not(:first-of-type) {
  margin-block-start: 1.5rem;
}
.contact form label {
  margin-block-end: 0.2rem;
  display: flex;
  font-size: var(--font-md);
  gap: 0.8rem;
  align-items: baseline;
}
.contact form label i {
  font-size: 0.8rem;
  color: var(--red-500);
  opacity: 0.8;
}
@media screen and (min-width: 768px) {
  .contact iframe[id*='auto_size_iframe'] {
    min-height: min-height 115vh;
  }
}
@media screen and (min-width: 810px) {
  .contact iframe[id*='auto_size_iframe'] {
    min-height: min-height 110vh;
  }
}
@media screen and (min-width: 1280px) {
  .contact iframe[id*='auto_size_iframe'] {
    min-height: min-height 165vh;
  }
}
.contact__headline {
  font-size: var(--font-lg-x);
  margin-bottom: var(--margin-sm);
  padding-bottom: var(--margin-tiny);
  border-bottom: 1px solid var(--red-500);
}
@media screen and (max-width: 1024px) {
  .contact__headline {
    padding-inline: var(--margin-nm);
  }
}
.contact__info {
  align-self: flex-start;
  box-shadow: 20px 20px 50px rgba(26,60,93,0.17);
}
.contact__info a {
  text-decoration: none;
  color: currentColor;
}
.contact__info__text {
  padding: 1rem;
}
.contanct__info-header {
  background: var(--gray-400);
  border-bottom: 1px solid var(--red-500);
}
.contanct__info-header a {
  display: inline-block;
  padding-left: var(--margin-md);
  margin-top: var(--margin-lg);
  margin-bottom: var(--margin-lg);
}
.contact__form {
  padding-left: var(--margin-nm);
  padding-right: var(--margin-nm);
  margin-bottom: var(--margin-hg);
}
.select2-container--default .select2-selection--multiple {
  background: none !important;
}
@media screen and (min-width: 1296px) {
  .contact__form {
    padding-left: 0;
    padding-right: 0;
  }
}
.contact__address {
  padding: var(--margin-md);
  font-style: normal;
  line-height: var(--line-height-3);
  background: var(--white);
}
.address__title {
  font-weight: 800;
  text-transform: uppercase;
}
.attachment-info {
  display: flex;
  align-items: flex-start;
  gap: var(--margin-sm);
  margin-top: var(--margin-sm);
  margin-bottom: var(--margin-lg);
}
.attachment-info::before {
  content: '';
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  background: url("img/icons/icon__question.svg") no-repeat center/contain;
}
.newsletter {
  margin-top: var(--margin-lg);
}
.contact #mc-embedded-subscribe-form  div:last-child {
  float: unset !important;
  max-width: 80%;
  margin-inline: auto;
}
.contact #mc-embedded-subscribe-form  div:last-child input {
  min-width: 15rem;
  margin-inline: auto;
}
.videos {
  margin-bottom: var(--margin-hg-x);
}
.videos-grid {
  --grid-item--min-width: 340px;
}
.workshops {
  font-size: var(--font-lg);
}
.workshops img:not([class*="leaflet"]) {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  padding-bottom: var(--margin-nm);
}
.workshops .autocolumns {
  padding-left: var(--margin-nm);
  padding-right: var(--margin-nm);
}
@media screen and (min-width: 1296px) {
  .workshops .autocolumns {
    padding-left: 0;
    padding-right: 0;
  }
}
.workshops .autocolumns > :first-child {
  height: 80vh;
}
@media screen and (min-width: 1024px) {
  .workshops .autocolumns > :first-child {
    align-self: flex-start;
    height: 80vh;
    position: -webkit-sticky !important;
    position: sticky !important;
    top: var(--margin-nm);
    z-index: 0;
  }
}
.workshops .blog-s__subtitle-sm {
  margin-top: 0;
  font-weight: 800;
}
.workshops__list li {
  margin-bottom: var(--margin-hg-x);
}

.workshops__list .ribbon {
  position: revert;
  align-self: center;
}

.workshops__title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1rem;
}

.workshops__address {
  font-style: normal;
}
.catalog iframe {
  width: 100%;
  height: 80vh;
}
.support .autocolumns > :first-child p {
  text-align: center;
}
.support .contact-form {
  padding: var(--margin-nm);
  height: -webkit-min-content;
  height: -moz-min-content;
  height: min-content;
  background-color: var(--gray-400);
}
.support .contact-form .submit {
  width: 100%;
}
.support .workshops__list {
  padding-inline: 1rem;
}
@media screen and (min-width: 1024px) {
  .support .workshops__list {
    padding-inline: 0;
    -moz-column-count: 2;
         column-count: 2;
  }
  .support .workshops__list li {
    -moz-column-break-inside: avoid;
         break-inside: avoid;
  }
}
.support img {
  display: block;
  margin-inline: auto;
  width: 20rem;
  filter: drop-shadow(0 0 20px rgba(192,192,192,0.667));
}
.support a {
  text-decoration: none;
  font-size: var(--font-md);
  color: currentColor;
}
.support a span {
  display: block;
  text-align: center;
  margin-block: var(--margin-sm);
}
#map {
  z-index: 0;
}
.subcategories .banners img {
  width: 100%;
  aspect-ratio: 16/4;
  -o-object-fit: cover;
     object-fit: cover;
}
.subcategories .product__gallery {
  --grid-column-count: 5;
}
.subcategories .product__gallery .product__image {
  aspect-ratio: 1;
}
.grid-schemes {
  justify-items: center;
}
.grid-schemes img {
  max-height: 100%;
}
 .promoimage {
  max-width: 100%;
  max-height: 60vh;
  margin: 3rem auto;
}
.promoimage img {
  display: block;
  margin: 0 auto;
  max-height: 60vh;
}

@media screen and (max-width: 1023px) {
  .workshops .autocolumns {
    display: flex;
    flex-direction: column-reverse;
  }
}


tbody tr:hover img {
  filter: invert();
}
tbody a {
  display: block;
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
  margin-inline: auto;
}
tbody img {
  display: block;
  max-width: 32px;
}

.marcador_nuevo {
  filter: hue-rotate(140deg);
}

@media screen and (max-width: 480px) {
  table[data-table-responsive] thead {
    display: none;
  }

  table[data-table-responsive] tr {
    display: flex;
    flex-direction: column;
    margin-bottom: 2rem;
  }

  table[data-table-responsive] td {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    text-align: right;
  }
  table[data-table-responsive] td::before {
    content: attr(data-title) ": ";
    text-transform: capitalize;
    font-weight: bold;
  }
  table[data-table-responsive] a {
    margin-inline: 0 1rem;
  }
}
