/**
 * Kuznitsa page styles
 */
.hero {
  background-color: var(--brand2-color);
  background-image: url("/assets/kuznitsa-video-poster.webp");
  background-size: cover;

  padding: 4.0625rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3.125rem;

  min-height: 31.25rem;
  position: relative;
}

.hero__header {
  margin: 0;
  font-size: 3.75rem;
  line-height: 1;
  font-weight: 800;
  max-width: 10em;
}

.hero__buttons {
  display: flex;
  gap: 0.75rem;
  font-size: 1.125rem;
}

.hero__background {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.hero__background-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__background-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #333333, transparent);
}

.hero__about-btn {
  font-weight: 600;
  display: flex;
  gap: 0.25rem;
  align-items: center;
  padding-inline: 1em;
  border-width: 0.09375rem;
}

.hero__donate-btn {
  padding-inline: 2.5em;
}

@media (max-width: 50em) {
  .hero {
    padding: 1.25rem;
    padding-bottom: 4rem;
    height: 31.25rem;

    gap: 2rem;
    align-items: flex-start;
    justify-content: flex-end;
  }

  .hero__background-shade {
    background: rgba(0, 0, 0, 0.4);
  }

  .hero__header {
    font-size: 2.5rem;
    line-height: 1.1;
  }

  .hero__buttons {
    font-size: 1rem;
    gap: 1rem;
    flex-direction: column;
    align-items: flex-start;
  }

  .hero__donate-btn {
    padding-inline: 1em;
  }
}

.about__header {
  margin-bottom: 0;
}

.about__content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.375rem 1.875rem;

  font-size: 1.125rem;
}

.about__image1 {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  object-fit: cover;
  border-radius: 2.5rem;
}

.about__image2 {
  width: 100%;
  height: auto;
}

.about__intro-text span {
  font-size: 1.625rem;
  line-height: 1.2;
  font-weight: 700;
  display: block;
  margin-bottom: 0.4em;
}

.about__content h3 {
  font-size: 1.625rem;
  line-height: 1.2;
  font-weight: 700;
  margin: 0;
}

.about__content ul {
  padding-left: 1.5em;
}

.about__content li {
  margin-bottom: 0.6em;
}

.about__emphasis {
  margin-top: 1.5em;
  padding: 1.5rem 2rem;
  font-weight: 700;
  border: 0.3125rem solid var(--accent-color);
  border-radius: 1.875rem;
}

@media (max-width: 50em) {
  .about__content {
    grid-template-columns: 1fr;
    gap: 0;

    font-size: 1rem;
  }

  .about__intro-text span {
    font-size: 1.125rem;
  }

  .about__content h3 {
    font-size: 1.125rem;
  }

  .about__image1 {
    border-radius: 1rem;
  }

  .about__image2 {
    margin-block: 1rem;
  }

  .about__emphasis {
    font-size: 0.875rem;
    padding: 0.875rem 1.25rem;
    border: 0.1875rem solid var(--accent-color);
    border-radius: 1.125rem;
  }
}

.routes__container {
  background: rgb(247, 249, 251);
  margin-inline: -4.375rem;
  padding: 4.375rem;
  border-radius: 3.125rem;
}

.routes__header {
  font-size: 3.75rem;
  font-weight: 800;
  margin: 0;
}

.routes__content {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6.25rem;
  margin-top: 1.875rem;
}

.routes__tags {
  list-style: none;
  margin: 0;
  margin-top: 2.875rem;
  padding: 0;
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.routes__tags > li {
  background-color: var(--brand-color);
  color: var(--invert-text-color);
  border-radius: 2.5rem;
  white-space: nowrap;
  padding: 0.5em 1em;
  font-weight: 600;
}

.routes__image {
  background: url(/assets/kuznitsa-ill-2-bg.png);
  background-position: center;
  background-size: cover;
  border-radius: 1.625rem;
  box-shadow: var(--box-shadow);

  width: 19.375rem;
  height: auto;
}

@media (max-width: 50em) {
  .routes__header {
    font-size: 1.125rem;
  }

  .routes__content {
    margin-top: 0;
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .routes__container {
    margin-inline: -1.25rem;
    padding: 1.25rem;
    border-radius: 0;
  }

  .routes__tags {
    margin-top: 0;
    font-size: 0.875rem;
    gap: 0.5rem;
  }

  .routes__image {
    border-radius: 1rem;
    width: 100%;
  }
}

.why__content {
  display: grid;
  grid-template-columns: 1fr 5rem 1fr;
}

.why__text1 {
  background-color: var(--brand-color);
  color: var(--invert-text-color);
  font-size: 1.25rem;
  padding: 2.5rem;
  border-radius: 1.875rem;
}

.why__text1 > p:first-child {
  font-size: 1.625rem;
  line-height: 1.5;
  font-weight: 700;
  margin-top: 0;
}

.why__text2 {
  font-size: 1.125rem;
  padding-bottom: 3.125rem;
}

.why__text2 ul {
  padding-left: 1.5em;
}

.why__text2 li {
  margin-bottom: 0.5em;
}

.why__divider {
  position: relative;
}

.why__divider-image1 {
  position: absolute;
  top: 0.625rem;
  right: 0;
  width: 7.8125rem;
  height: 3.125rem;
  background-image: url("/assets/kuznitsa-ill-3-1.png");
  background-size: 100%;
}

.why__divider-image2 {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 24.375rem;
  height: 3.125rem;
  background-image: url("/assets/kuznitsa-ill-3-2.png");
  background-size: 100%;
}

.why__divider-line {
  position: absolute;
  top: 3.75rem;
  left: 0;
  bottom: 3.125rem;
  width: 100%;

  background-image: url("/assets/kuznitsa-ill-3-3.png");
  background-size: contain;
  background-position: center;
  background-repeat: repeat-y;
}

@media (max-width: 50em) {
  .why__content {
    line-height: 1.2;

    grid-template-columns: 2.5rem 1fr;
    grid-template-areas:
      "text1 text1"
      "divider text2";
  }

  .why__text1 {
    grid-area: text1;

    border-radius: 1rem;
    padding: 1.5rem 1.5rem 2rem 2rem;
  }

  .why__text2 {
    grid-area: text2;
  }

  .why__divider {
    grid-area: divider;
  }

  .why__text1 > p:first-child {
    font-size: 1.125rem;
    line-height: 1.1;
  }

  .why__divider-image1 {
    transform: translateY(-3rem) rotate(90deg);
    background-size: 7.8125rem;
    background-position: left;
    width: 3.5rem;
  }

  .why__divider-image2 {
    width: calc(100vw - 2.5rem);
    background-position: right 1.0625rem top;
    background-repeat: no-repeat;
  }

  .why__divider-line {
    top: 0.9375rem;
    background-size: 5rem;
  }
}

.portrait__section {
  height: 25rem;
  margin-bottom: 0;

  background-image: url("/assets/portrait.webp");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: -2.5rem 0.25rem;
}

.portrait__content {
  padding-top: 5rem;
  margin-left: 22.5rem;
}

.portrait__slogan {
  font-size: 2.5rem;
  line-height: 1.2;
  font-weight: 800;
}

.portrait__subtitle {
  margin-top: 1em;
  font-size: 1.125rem;
  opacity: 0.5;
}

@media (max-width: 50em) {
  .portrait__section {
    height: 16.25rem;
    margin-left: -1.25rem;
    margin-top: -2.5rem;
    background-position-x: -4.375rem;
  }

  .portrait__content {
    padding-top: 1.5rem;
    margin-left: 11.875rem;
  }

  .portrait__slogan {
    font-size: 1.125rem;
  }

  .portrait__subtitle {
    font-size: 0.875rem;
  }
}

.join__section {
  background-color: var(--brand-color);
  color: var(--invert-text-color);
  padding-block: 3.75rem;
}

.join__header {
  color: inherit;
}

.join__blocks {
  display: flex;
  gap: 2.5rem;
  font-size: 1.125rem;
}

.join__block {
  background-color: var(--page-bg-color);
  color: var(--page-text-color);

  padding: 2.5rem 3.125rem;
  border-radius: 1.875rem;
  box-shadow: var(--box-shadow);
}

.join__block:first-child {
  flex: 2;

  background-image: url("/assets/kuznitsa-ill-4.png");
  background-repeat: no-repeat;
  background-size: 9.0625rem 5.9375rem;
  background-position: right 2.5rem bottom 2.5rem;
}

.join__block:last-child {
  flex: 1;

  text-align: center;
  padding-inline: 1.25rem;
}

.join__headline {
  margin-top: 0;
  font-size: 1.5rem;
  text-align: center;
}

.join__block ol {
  list-style: none;
  padding: 0;
  counter-reset: list;
}

.join__block li {
  counter-increment: list;

  display: flex;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.join__block li::before {
  content: counter(list);

  flex: none;
  font-weight: 700;
  background-color: var(--brand-color);
  color: var(--invert-text-color);
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.join__btn-container {
  text-align: center;
}

.join__btn {
  font-weight: 500;
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  padding: 0.75rem 1rem;
}

.join__btn--vk {
  background: rgba(54, 143, 244, 1);
}

.join__btn--vk::after {
  content: "";
  background-image: url(/assets/arrow-right-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 1.5rem;
  height: 1.5rem;
  flex: none;
}

.join__btn--tg {
  background: rgba(0, 136, 204, 1);
}

.join__btn--tg::before {
  content: "";
  background-image: url(/assets/tg-logo-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 1.625rem;
  height: 1.4375rem;
  flex: none;
}

.join__note {
  font-weight: 700;
  font-size: 1.5rem;
  margin-top: 3.75rem;
  display: flex;
  gap: 1.5rem;
  align-items: center;
  max-width: 62.5rem;
  margin-inline: auto;
}

.join__note img {
  width: 7.5rem;
  height: 8.125rem;
}

@media (max-width: 50em) {
  .join__section {
    padding-block: 1.5rem;
  }

  .join__blocks {
    flex-direction: column;
    gap: 1.5rem;
    font-size: 1rem;
    line-height: 1.2;
  }

  .join__block {
    padding: 1.5rem 1rem;
    border-radius: 1rem;
  }

  .join__block > p:first-child {
    margin-top: 0;
  }

  .join__headline {
    font-size: 1.125rem;
    text-align: unset;
  }

  .join__block li::before {
    width: 1.5rem;
    height: 1.5rem;
  }

  .join__block:first-child {
    background-image: none;
  }

  .join__btn-container {
    margin-top: 1.5em;
    margin-bottom: 0;
  }

  .join__note {
    font-size: 0.875rem;
    margin-top: 2rem;
    gap: 1rem;
    align-items: flex-start;
  }

  .join__note img {
    width: 5.625rem;
    height: 6.25rem;
  }
}

.instructors__section {
  font-size: 1.125rem;
}

.instructors__slider {
  --shadow-padding: 1.25rem;
}

.instructors__card {
  font-size: 1rem;
  box-shadow: 0 0.25rem 1.875rem 0 rgba(0, 0, 0, 0.05);
  border-radius: 2.5rem;
  padding: 2.25rem;
}

.instructors__portrait {
  width: 13.125rem;
  height: 13.125rem;
  border-radius: 50%;
  object-fit: cover;
  margin-inline: auto;
  display: block;
}

.instructors__title {
  font-size: 1.5rem;
  line-height: 1.2;
  font-weight: 700;
  margin-top: 0.5em;
  margin-bottom: 0;
}

.instructors__more-btn {
  cursor: pointer;
  opacity: 0.3;
}

.instructors__more-btn input {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 0.0625rem;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 0.0625rem;
}

.instructors__more-text {
  display: none;
}

.instructors__more::before {
  content: "\2026";
}

.instructors__more:has(input:checked)::before {
  content: "";
}

.instructors__more:has(input:checked) .instructors__more-text {
  display: inline;
}

.instructors__more:has(input:checked) .instructors__more-btn {
  display: none;
}

@media (max-width: 50em) {
  .instructors__section {
    font-size: 1rem;
    padding: 1.25rem;
    overflow: hidden;
  }

  .instructors__slider {
    --items-count: 1;
    --gap-fraction: calc(40 / 400);
  }

  .instructors__card {
    font-size: 0.875rem;
    border-radius: 1rem;
    padding: 2.25rem;
  }

  .instructors__portrait {
    width: 12.5rem;
    height: 12.5rem;
  }

  .instructors__title {
    font-size: 1.375rem;
  }
}

.gallery__slider {
  --items-count: 2;
}

.gallery__card img {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  object-fit: cover;
  object-position: center 33%;
  border-radius: 1.5rem;
}

@media (max-width: 50em) {
  .gallery__slider {
    --items-count: 1;
  }

  .gallery__card img {
    aspect-ratio: 1/1;
    border-radius: 1rem;
  }
}

.donate__section {
  display: flex;
  background: rgba(245, 245, 245, 1);
  border-radius: 2.5rem;
  padding: 3.125rem 4.375rem;
  gap: 3.75rem;

  font-size: 1.5rem;
}

.donate__header {
  margin-top: 3.125rem;
}

.donate__content {
  background-image: url(/assets/kuznitsa-ill-5.png);
  background-size: 17.6875rem 7.6875rem;
  background-repeat: no-repeat;
  background-position: left bottom 2.5rem;
}

@media (max-width: 50em) {
  .donate__section {
    flex-direction: column;
    gap: 0;
    border-radius: 0;
    padding: 1.5rem 1.25rem;
    padding-bottom: 2.25rem;
    margin-bottom: 0;
    font-size: 1rem;
  }

  .donate__header {
    margin-top: 0;
  }

  .donate__content {
    background-image: none;
  }
}
