:root {
  --Primary: #ff4646;
  --Primary-10: #ff46461a;
  --Dark: #181c29;
  --Overlay: #181c29cc;
  --Static-White: #ffffff;
  --Static-White-40: #ffffff66;
  --Static-White-20: #ffffff33;
  --Tag-Purple: #4361ff;
  --Tag-Pink: #ff43f7;
  --Tag-Green: #06a44f;
  --Content-Background: #ecf3f8;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: Montserrat, Arial, serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.48em;
  margin: 0 auto;
  padding: 0;
  width: 100%;
  background-color: var(--Static-White);
  color: var(--Dark);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  -webkit-tap-highlight-color: transparent;
}

body.noscroll {
  overflow: hidden;
  padding-right: 17px;
}

h1 {
  font-size: 32px;
  font-weight: 500;
  line-height: 1.5em;
  letter-spacing: 0.18em;
  text-align: left;
  text-transform: uppercase;
}

h2 {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5em;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

h3 {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.52em;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

h4 {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3em;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.action_large {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.52em;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.action_small {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3em;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.caption {
  font-family: Allura, Arial, serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1em;
  letter-spacing: 0.05em;
}

.button {
  cursor: pointer;
  background-color: var(--Dark);
  padding: 20px 32px;
  transition: all 0.5s ease-in-out;
  border: none;
  border-radius: 20px;
  color: var(--Static-White);
  text-decoration: none;
}

/* Header */

.header {
  width: 100%;
  max-width: 1440px;
  background-color: var(--Static-White);
  padding: 0 82px;
}

.header__container {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 12px 0;
  text-align: center;
}

.header__homepage-link {
  text-decoration: none;
}

.header__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
}

.header__logo-icon {
  width: 24px;
  height: 24px;
}

.header__logo-text {
  color: var(--Dark);
}

.header__menu {
  flex: 1;
  align-self: center;
}

.header__list {
  display: flex;
  justify-content: flex-end;
  list-style-type: none;
  gap: 8px;
  margin: 0;
}

.header__link {
  padding: 12px 20px;
  text-decoration: none;
  color: var(--Dark);
  transition: all 0.3s ease-in-out;
}

.header__link.active {
  cursor: default;
  color: var(--Primary);
  background-color: var(--Primary-10);
  border-radius: 12px;
}

.header__burger-menu {
  display: none;
  border: none;
  background: none;
  cursor: pointer;
  width: 40px;
  height: 40px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.header__burger-icon1 {
  display: block;
  width: 20px;
  height: 1px;
  background-color: var(--Dark);
  transition: all 0.3s ease-in-out;
}

.header__burger-icon2 {
  display: block;
  width: 20px;
  height: 1px;
  background-color: var(--Dark);
  transition: all 0.3s ease-in-out;
}

.header__burger-menu.active .header__burger-icon1 {
  transform: rotate(45deg) translate(3px, 3px);
}

.header__burger-menu.active .header__burger-icon2 {
  transform: rotate(-45deg) translate(3px, -3px);
}

/* Main */

.main {
  width: 100%;
  max-width: 1440px;
  display: flex;
  flex-direction: column;
}

.button-up {
  width: 56px;
  height: 56px;
  border: 1px solid var(--Primary);
  border-radius: 100px;
  background-color: var(--Static-White);
  background-image: url("../images/icons/arrow-up.png");
  background-repeat: no-repeat;
  background-position: center;
  position: fixed;
  bottom: 8px;
  right: 8px;
  cursor: pointer;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease-in-out;
}

.button-up.active {
  visibility: visible;
  opacity: 1;
}

/* Hero Section */

.hero {
  border-radius: 20px 20px 0 0;
  background-color: var(--Primary);
  background-image: url("../images/backgrounds/bg-snow.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero__container {
  padding: 60px 0;
  background-image: url("../images/backgrounds/bg-ball.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero__content {
  margin: 0 auto;
  width: 100%;
  max-width: 427px;
  padding: 60px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

.hero__caption {
  color: var(--Static-White);
  margin: 0;
}

.hero__title {
  margin: 0;
  text-align: center;
  color: var(--Static-White);
}

/* About Section */

.about {
  background-color: var(--Primary);
  background-image: url("../images/backgrounds/bg-snow.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 60px 82px;
}

.about__container {
  width: 100%;
  margin: 0 auto;
  background-color: var(--Static-White);
  display: flex;
  border-radius: 20px;
}

.about__content {
  width: 50%;
  padding: 100px 0 100px 60px;
  align-self: flex-start;
}

.about__content-container {
  width: 100%;
  max-width: 426px;
  padding: 60px 0;
}

.about__caption {
  color: var(--Primary);
  margin: 0;
  margin-bottom: 20px;
}

.about__title {
  margin: 0;
  margin-bottom: 20px;
}

.about__paragraph {
  margin: 0;
}

.about__illustration {
  width: 50%;
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  justify-content: center;
}

.about__illustration-image {
  width: auto;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

/* Slider Section */

.slider {
  background-color: var(--Primary);
  background-image: url("../images/backgrounds/bg-snow.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 60px 82px;
  overflow: hidden;
}

.slider__container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.slider__header {
  width: 100%;
  max-width: 427px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.slider__caption {
  margin: 0;
  margin-bottom: 12px;
  color: var(--Static-White);
}

.slider__title {
  margin: 0;
  color: var(--Static-White);
  letter-spacing: 0.15em;
}

.slider__row {
  width: 100%;
}

.slider__list {
  display: flex;
  gap: 20px;
  padding: 0;
  margin: 0;
  transition: all 0.3s ease-in-out;
}

.slider__item {
  display: flex;
  align-items: center;
  gap: 20px;
}

.slider__text {
  font-size: 80px;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--Static-White);
  letter-spacing: 0.01em;
}

.slider__image-container {
  width: 200px;
  height: 200px;
  border-radius: 20px;
  overflow: hidden;
}

.slider__image {
  width: 200px;
  height: 200px;
  object-fit: fill;
}

.slider__navigation {
  align-self: flex-end;
  display: flex;
  gap: 20px;
}

.slider__button {
  width: 56px;
  height: 56px;
  cursor: pointer;
  background-color: transparent;
  outline: none;
  border: 1px solid var(--Static-White);
  border-radius: 20px;
  color: var(--Static-White);
  transition: all 0.3s ease-in-out;
}

.slider__button.disabled {
  border: 1px solid var(--Static-White-40);
  color: var(--Static-White-40);
  cursor: default;
  background-color: transparent;
}

/* Best Items Section*/

.best {
  background-color: var(--Primary);
  background-image: url("../images/backgrounds/bg-snow.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 60px 82px;
}

.best__container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.best__header {
  width: 100%;
  max-width: 427px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.best__caption {
  margin: 0;
  margin-bottom: 12px;
  color: var(--Static-White);
}

.best__title {
  margin: 0;
  color: var(--Static-White);
  letter-spacing: 0.15em;
}

.best__list,
.gifts__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.best__item,
.gifts__item {
  width: 310px;
  height: 342px;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  background-color: var(--Content-Background);
}

.best__image-container,
.gifts__image-container {
  width: 310px;
  height: 230px;
}

.best__image,
.gifts__image {
  width: 310px;
  height: 230px;
}

.best__content-container,
.gifts__content-container {
  display: flex;
  flex-direction: column;
  background-color: var(--Static-White);
  padding: 20px;
  flex: 1;
  border-radius: 20px;
  gap: 9px;
}

.best__name,
.gifts__name {
  order: 1;
  color: var(--Dark);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: all 0.3s ease-in-out;
}

.best__subtitle,
.gifts__subtitle {
  order: 0;
  margin: 0;
}

.best__subtitle.work,
.gifts__subtitle.work {
  color: var(--Tag-Purple);
}

.best__subtitle.health,
.gifts__subtitle.health {
  color: var(--Tag-Green);
}

.best__subtitle.harmony,
.gifts__subtitle.harmony {
  color: var(--Tag-Pink);
}

/* CTA Section */

.cta {
  border-radius: 0 0 20px 20px;
  background-color: var(--Primary);
  background-image: url("../images/backgrounds/bg-snow.png"),
    url("../images/backgrounds/bg-forest.png");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  padding: 60px 82px;
}

.cta__container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 0;
}

.cta__content {
  width: 100%;
  max-width: 427px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
  padding: 60px 0 59px;
}

.cta__title {
  text-align: center;
  color: var(--Static-White);
  margin: 0;
  letter-spacing: 0.15em;
}

.cta__timer-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.cta__caption {
  color: var(--Static-White);
  margin: 0;
}

.cta__timer {
  display: flex;
  padding: 8px 12px 12px;
  background-color: var(--Static-White-40);
  border-radius: 20px;
}

.cta__timer-section {
  width: 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
}

.cta__timer-section::after {
  content: "";
  height: 20px;
  width: 1px;
  background-color: var(--Static-White-40);
  position: absolute;
  right: 0;
  top: 20px;
}

.cta__timer-section:last-child::after {
  content: none;
}

.cta__timer-number {
  margin: 0;
  color: var(--Static-White);
  margin-top: 2px;
  margin-left: 2px;
}

.cta__timer-period {
  margin: 0;
  color: var(--Static-White);
}

/* Gifts */

.gifts {
  width: 100%;
  max-width: 1440px;
  padding: 60px 82px;
  border-radius: 20px;
  background-color: var(--Primary);
  background-image: url("../images/backgrounds/bg-garland.png");
  background-size: contain;
  background-position: top;
  background-repeat: no-repeat;
}

.gifts__container {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

.gifts__title-container {
  width: 100%;
  max-width: 426px;
}

.gifts__title {
  text-align: center;
  color: var(--Static-White);
  margin: 0;
}

.gifts__tabs-list {
  margin: 0;
  padding: 0;
  list-style-type: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.gifts__tabs-radio {
  display: none;
}

.gifts__tabs-text {
  display: block;
  padding: 12px 20px;
  border-radius: 12px;
  cursor: pointer;
  color: var(--Static-White);
  transition: all 0.3s ease-in-out;
}

.gifts__tabs-radio:checked + .gifts__tabs-text {
  background-color: var(--Static-White-20);
}

.gifts__item {
  opacity: 1;
  animation: fadeIn 0.5s ease-in-out;
}

.gifts__item.hide {
  opacity: 0;
}

/* Modal Window */

.modal__gifts {
  max-width: 400px;
  border: none;
  border-radius: 20px;
  overflow: hidden;
  padding: 0;
}

.modal__gifts::backdrop {
  background-color: var(--Overlay);
}

.modal__gifts[open] {
  animation: fadeIn 0.3s ease-in-out;
}

.modal__gifts-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
}

.modal__image-container {
  width: 100%;
  display: flex;
  justify-content: center;
  background-color: var(--Content-Background);
}

.modal__image {
  width: 400px;
  object-fit: cover;
}

.modal__content-container {
  width: 100%;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

.modal__description-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
}

.modal__description-name {
  order: 2;
  padding: 0;
  margin: 0;
}

.modal__description-subtitle {
  order: 1;
  padding: 0;
  margin: 0;
}

.modal__description-subtitle.harmony {
  color: var(--Tag-Pink);
}

.modal__description-subtitle.work {
  color: var(--Tag-Purple);
}

.modal__description-subtitle.health {
  color: var(--Tag-Green);
}

.modal__description-text {
  order: 3;
  padding: 0;
  margin: 0;
}

.modal__details-container {
  width: 100%;
}

.modal__description-subtitle {
  padding: 0;
  margin: 0;
}

.modal__description-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.modal__description-item {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.modal__description-item-category,
.modal__description-item-rank {
  padding: 0;
  margin: 0;
}

.modal__description-item-category {
  flex: 1;
}

.modal__description-item-rank {
  margin-right: 12px;
}

.modal__description-rank-list {
  list-style-type: none;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
  gap: 8px;
}

.modal__description-rank-item {
  display: block;
  width: 16px;
  height: 16px;
  background: url(../images/icons/snowflake.png);
  background-position: center;
  background-repeat: no-repeat;
}

.modal__description-rank-item.colored {
  background: url(../images/icons/snowflake_colored.png);
  background-position: center;
  background-repeat: no-repeat;
}

.modal__close-button {
  border: none;
  background: none;
  cursor: pointer;
  width: 40px;
  height: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 12px;
  right: 12px;
  gap: 8px;
}

.modal__close-button:focus {
  outline: none;
}

.modal__close-button-icon1 {
  display: block;
  width: 30px;
  height: 2px;
  background-color: var(--Dark);
  transform: rotate(45deg) translate(3px, 4px);
}

.modal__close-button-icon2 {
  display: block;
  width: 30px;
  height: 2px;
  background-color: var(--Dark);
  transform: rotate(-45deg) translate(3px, -4px);
}

/* Footer */

.footer {
  width: 100%;
  max-width: 1440px;
  padding: 60px 82px;
}

.footer__container {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 60px;
}

.footer__contacts-list {
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 12px;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.footer__contacts-item {
  width: 100%;
}

.footer__contacts-detail-link {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  text-align: center;
  color: var(--Dark);
  text-decoration: none;
  width: 100%;
  padding: 20px;
  border-radius: 20px;
  background-color: var(--Content-Background);
}

.footer__contacts-icon {
  display: block;
  width: 80px;
  height: 80px;
}

.footer__contacts-icon.santa {
  background-image: url("../images/icons/santa-claus.svg");
  background-repeat: no-repeat;
}

.footer__contacts-icon.tree {
  background-image: url("../images/icons/christmas-tree.svg");
  background-repeat: no-repeat;
}

.footer__contacts-icon.snake {
  background-image: url("../images/icons/snake.svg");
  background-repeat: no-repeat;
}

.footer__contacts-detail {
  text-align: center;
  transition: all 0.3s ease-in-out;
  word-break: break-all;
  letter-spacing: 0.15em;
}

.footer__contacts-title {
  text-align: center;
  margin: 0;
  transition: all 0.3s ease-in-out;
}

.footer__socials-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

.footer__socials-list {
  margin: 0;
  list-style-type: none;
  display: flex;
  gap: 12px;
  padding: 0;
}

.footer__socials-link {
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
}

.footer__socials-icon {
  display: block;
  width: 24px;
  height: 24px;
  background-position: center;
}

.footer__socials-icon.telegram {
  background-image: url("../images/icons/telegram.svg");
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.3s ease-in-out;
}

.footer__socials-icon.facebook {
  background-image: url("../images/icons/facebook.svg");
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.3s ease-in-out;
}

.footer__socials-icon.instagram {
  background-image: url("../images/icons/instagram.svg");
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.3s ease-in-out;
}

.footer__socials-icon.twitter {
  background-image: url("../images/icons/X.svg");
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.3s ease-in-out;
}

.footer__copyright {
  margin: 0;
}

.footer__caption-link {
  color: var(--Dark);
  text-decoration: none;
  transition: all 0.3s ease-in-out;
}

.footer__caption {
  margin: 0;
}

/* Media Break Points */

@media only screen and (max-width: 1440px) {
  body.noscroll {
    padding-right: 0;
  }
}

@media only screen and (max-width: 1225px) {
  .footer__contacts-list {
    flex-direction: column;
  }
}

@media only screen and (max-width: 1150px) {
  .header {
    padding: 0 40px;
  }

  .about {
    padding: 60px 40px;
  }

  .about__content {
    padding: 46px 53px;
  }

  .best,
  .gifts {
    padding: 60px 40px;
  }

  .footer {
    padding: 60px 40px;
  }
}

@media only screen and (max-width: 768px) {
  .header {
    padding: 0 8px;
  }

  .header__logo {
    position: relative;
    z-index: 2;
  }

  .header__list {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 100%;
    margin-top: 35px;
    padding: 0;
    background-color: var(--Static-White);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
    transition: all 0.3s ease-in-out;
  }

  .header__list.active {
    left: 0;
  }

  .header__item {
    padding: 12px 20px;
  }

  .header__link {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.52em;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  .header__burger-menu {
    display: flex;
    position: absolute;
    top: 12px;
    right: 8px;
    z-index: 2;
  }

  .about {
    padding: 60px 8px;
  }

  .about__content {
    padding: 46px 45px 48px 60px;
  }

  .slider {
    padding: 60px 8px;
  }

  .best,
  .gifts {
    padding: 60px 8px;
  }

  .cta {
    padding: 60px 8px;
  }

  .footer {
    padding: 60px 8px;
    padding-bottom: 58px;
  }
}

@media only screen and (max-width: 650px) {
  .about__container {
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .about__content {
    width: 100%;
    padding: 0 20px 0 20px;
  }

  .about__content-container {
    width: 100%;
    padding-bottom: 62px;
  }

  .about__illustration {
    width: 100%;
  }

  .about__illustration-image {
    width: 658px;
    height: auto;
  }

  .modal__gifts {
    max-width: 364px;
  }

  .gifts__tabs-list {
    gap: 0;
  }

  .gifts__tabs-text {
    padding: 12px 8px;
  }

  .footer {
    padding-bottom: 58px;
  }

  .footer__container {
    gap: 58px;
  }
}

@media (hover: hover) {
  .button:hover {
    background-color: var(--Static-White);
    color: var(--Dark);
  }

  .header__link:hover {
    color: var(--Primary);
    background-color: var(--Primary-10);
    border-radius: 12px;
  }

  .slider__button:hover {
    background-color: var(--Static-White);
    color: var(--Primary);
  }

  .slider__button:hover.disabled {
    border: 1px solid var(--Static-White-40);
    color: var(--Static-White-40);
    cursor: default;
    background-color: transparent;
  }

  .best__item:hover .best__name,
  .gifts__item:hover .gifts__name {
    color: var(--Primary);
  }

  .gifts_tabs-item:hover {
    background-color: var(--Static-White-20);
  }

  .gifts__tabs-text:hover {
    background-color: var(--Static-White-20);
  }

  .footer__contacts-item:hover .footer__contacts-detail,
  .footer__contacts-item:hover .footer__contacts-title {
    color: var(--Primary);
  }

  .footer__socials-link:hover .footer__socials-icon.telegram {
    background-image: url("../images/icons/telegram_hover.svg");
  }

  .footer__socials-link:hover .footer__socials-icon.facebook {
    background-image: url("../images/icons/facebook_hover.svg");
  }

  .footer__socials-link:hover .footer__socials-icon.instagram {
    background-image: url("../images/icons/instagram_hover.svg");
  }

  .footer__socials-link:hover .footer__socials-icon.twitter {
    background-image: url("../images/icons/x_hover.svg");
  }

  .footer__caption-link:hover {
    color: var(--Primary);
  }

  .modal__close-button:hover .modal__close-button-icon1,
  .modal__close-button:hover .modal__close-button-icon2 {
    background-color: var(--Overlay);
  }
}
