/*
Theme Name: Psychologist
Author: Siarhei Davidouski
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 8.2
Version: 1.0
*/

:root {
  --font-family: "Open Sans", sans-serif;
  --second-family: "Montserrat", sans-serif;

  /* colors */
  --background: #f6f8f9;
  --background-icon: #dbe9f5;
  --main: #498fcc;
  --accent: #eb9a04;
  --accent-hover: #d48b04;
  --text: #333;
  --border: #d8e0e2;
  --second-text: #616273;
  --header-height: 127px;
  
  --modal-overlay-z-index: 100;
  --mobile-menu-z-index: 101;
}

* {
  scroll-behavior: smooth;
}

body {
  display: flex;
  flex-direction: column;
  color: var(--text);
  font-family: var(--font-family);
  font-size: 24px;
  font-weight: 400;
}

main {
  overflow: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--second-family);
  font-weight: 700;
}

h1 {
  font-size: 70px;
  font-weight: 600;
}

h2 {
  font-size: 48px;
}

h3,
h4,
h5,
h6 {
  font-size: 36px;
  line-height: 130%;
}

p {
  line-height: 1.4;
}

a {
  color: var(--text);
  font-size: 24px;
  font-weight: 400;
  line-height: 140%;
  text-decoration: unset;
}

b,
strong {
  font-weight: 700;
}

button,
.button,
input[type="submit"] {
  padding: 20px 40px;
  border: none;
  border-radius: 20px;
  background: #161616;
  color: #f7f5e8;
  cursor: pointer;
  font-family: var(--second-family);
  font-size: 24px;
  font-weight: 600;
  line-height: 140%;
  height: unset;
}

.outline-btn {
  display: block;
  width: fit-content;
  padding: 18px 32px;
  border: 2px solid #161616;
  border-radius: 8px;
  color: #161616;
  cursor: pointer;
  font-family: var(--second-family);
  font-size: 24px;
  font-weight: 600;
  line-height: 140%;
}

input {
  width: 100%;
  height: 74px;
  padding: 20px;
  border: 2px solid #c2c2be;
  border-radius: 20px;
  color: #333;
  font-family: var(--second-family);
  font-size: 24px;
  font-weight: 600;
  line-height: 140%;
  outline: unset;

  &::placeholder {
    color: rgb(51 51 51 / 70%);
  }
}

textarea {
  width: 100%;
  height: 255px;
  padding: 20px;
  border: 2px solid #c2c2be;
  border-radius: 20px;
  color: #333;
  font-family: var(--second-family);
  font-size: 24px;
  font-weight: 600;
  line-height: 140%;
  outline: none;
  resize: none;

  &::placeholder {
    color: rgb(51 51 51 / 70%);
  }
}

ul,
ol {
  padding: 0;

  li {
    line-height: 1.4;
  }
}

ul {
  list-style-type: none;

  li::before {
    display: inline-block;
    width: 6px;
    height: 6px;
    flex-shrink: 0;
    border-radius: 50%;
    margin-top: 15px;
    margin-right: 10px;
    background-color: #333;
    content: "";
    vertical-align: top; 
  }
}

.container {
  width: 100%;
  max-width: 1440px;
  padding: 0 20px;
  margin: 0 auto;
}

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--modal-overlay-z-index);
  width: 100vw;
  height: 100vh;
  background: rgb(0 0 0 / 30%);
  user-select: none;
}

header {
  width: 100%;
  height: var(--header-height);
  padding: 30px 0;
  background: #eaeaea;

  .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
  }

  .phone {
    display: block;
    border-bottom: 1px solid #333;
    font-weight: 700;
    white-space: nowrap;

    &:last-child {
      margin-top: 5px;
    }
  }

  .phones-and-mobile-menu-wrapper {
    display: flex;
    align-items: center;
    gap: 20px;
  }

  .header-nav-mobile {
    display: none;

    .header-nav-mobile-btn {
      width: 40px;
      height: auto;
      cursor: pointer;
    }

    .header-nav-mobile-btn.active ~ .header-nav-mobile-content {
      display: flex;
    }

    .header-nav-mobile-content {
      display: none;
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      overflow-y: auto;
      max-width: 320px;
      width: 100%;
      background-color: #eaeaea;
      flex-direction: column;
      gap: 40px;
      padding: 10px 20px;
      z-index: var(--mobile-menu-z-index);

      .header-nav-mobile-content-btn {
        width: 40px;
        height: auto;
        cursor: pointer;
        align-self: flex-end;
        color: #333;
        margin-top: 8px;
      }

      nav {
        display: flex;
        flex-direction: column;
        flex-grow: 1;
        gap: 40px;
      }
    }
  }
}

footer {
  padding: 80px 0 20px;
  background: #eaeaea;

  nav {
    flex-grow: 0;
  }

  .columns {
    display: flex;
    width: 100%;
    justify-content: space-between;
    gap: 60px;

    .column {
      display: flex;
      flex-direction: column;
      gap: 40px;

      .footer-description {
        max-width: 500px;
      }
    }
  }

  .links {
    display: flex;
    flex-direction: column;
    gap: 10px;

    a {
      width: fit-content;
      border-bottom: 1px solid var(--text);
    }
  }

  .socials {
    display: flex;
    gap: 20px;

    a {
      display: flex;
      width: 50px;
      height: 50px;
      align-items: center;
      justify-content: center;
      border-radius: 8px;
      background: #c2c2be;
    }
  }

  .navigation {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
  }

  .contacts {
    display: flex;
    flex-direction: column;
    gap: 20px;

    .contacts-item {
      display: grid;
      align-items: center;
      gap: 20px;
      grid-template-columns: 30px 1fr;

      a {
        display: block;
        width: fit-content;
        border-bottom: 1px solid var(--text);

        &.second-number {
          margin-top: 5px;
        }
      }
    }

    .phone-numbers {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
  }

  .all-rights-reserved {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 20px;
    border-top: 1px solid var(--text);
    margin-top: 90px;
    gap: 20px;
    text-align: center;
  }
}

main {
  flex-grow: 1;
}

.logo {
  display: flex;
  align-items: center;
  gap: 5px;
  color: var(--text);
  text-decoration: none;
  white-space: nowrap;

  b {
    display: block;
  }
}

nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  flex-grow: 1;

  a {
    text-decoration: none;
    border-bottom: 1px solid transparent;

    &:hover {
      border-bottom-color: #333;
    }
  }
}

.banner-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: calc(100vh - var(--header-height));
  min-height: fit-content;
  padding: 40px 20px;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  object-fit: cover;

  &::before {
    position: absolute;
    background-color: rgb(0 0 0 / 40%);
    content: "";
    inset: 0;
  }

  .banner {
    position: relative;
    display: flex;
    height: 100%;
    min-height: fit-content;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;

    .banner-subtitle {
      font-size: 60px;
      font-weight: 400;
      text-align: center;
    }

    a {
      margin-top: 80px;
    }

    h1 {
      text-align: center;
    }
  }
}

section {
  padding: 130px 0;
}

.about-me-wrapper {
  background: #eaeaea;

  .container {
    display: grid;
    gap: 80px;
    grid-template-columns: 350px 1fr;
    align-items: center;

    img {
      width: 350px;
      height: 350px;
      border-radius: 50%;
      object-fit: cover;
    }
  }

  .about-me {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
}

.main-requests {
  h2 {
    text-align: center;
  }
}

.main-request-items {
  display: grid;
  margin-top: 80px;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;

  .main-request-item {
    display: flex;
    min-height: 320px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    border: 1px solid #c2c2be;
    gap: 15px;
    border-radius: 20px;
    transition: box-shadow 0.3s;

    &:hover {
      box-shadow: 0 0px 25px 3px #e1e1e1;
    }

    img {
      width: 60px;
      height: auto;
    }

    .title {
      color: var(--text);
      font-weight: 400;
      text-align: center;
    }

    .text {
      color: var(--second-text);
      font-family: var(--second-family);
      font-size: 16px;
      font-weight: 400;
      line-height: 140%;
      text-align: center;
    }
  }
}

.education {
  background: #eaeaea;
}

.education-items {
  --education-item-gap: 80px;

  display: flex;
  flex-direction: column;
  margin-top: 80px;
  gap: var(--education-item-gap);
}

.education-item {
  position: relative;
  display: grid;
  align-items: center;
  gap: 40px;
  grid-template-columns: 180px 100px 1fr;

  &::before {
    position: absolute;
    top: 0;
    left: 268px;
    width: 4px;
    height: calc(100% + var(--education-item-gap));
    background: #524d47;
    content: "";
  }

  &:first-child {
    &::before {
      top: 50%;
      height: calc(50% + var(--education-item-gap));
    }
  }

  &:last-child {
    &::before {
      height: 50%;
    }
  }

  .period-of-study {
    color: var(--text);
    font-family: var(--second-family);
    font-size: 32px;
    font-weight: 700;
    line-height: 140%;
    text-align: end;
  }

  .image-of-educational-institution {
    position: relative;
    width: 100px;
    height: 100px;
    border: 4px solid #524d47;
    border-radius: 50%;
    background: #eaeaea;
    object-fit: cover;
  }

  .education-info {
    display: flex;
    flex-direction: column;
    color: var(--text);
    font-family: var(--font-family);
    font-size: 24px;
    font-weight: 400;
    gap: 10px;

    .title {
      color: var(--text);
      font-family: var(--second-family);
      font-size: 36px;
      font-weight: 700;
      line-height: 130%;
    }
  }
}

.diplomas-and-certificates {
  background: #eaeaea;
  overflow: hidden;

  .diplomas-and-certificates-container {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
  }

  .splide {
    margin-top: 80px;

    .splide__track {
        overflow: unset;
    }

    .splide__slide {
      width: fit-content;
      height: fit-content;

      img {
        max-width: 711.11px;
        height: 400px;
        cursor: pointer;
        object-fit: cover;
      }
    }
  }

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

.splide-button-prev,
.splide-button-next {
  width: 50px;
  height: 50px;
  color: #333;
  cursor: pointer;
  user-select: none;
}

.splide-button-prev {
  transform: rotate(180deg);
}

.reviews {
  overflow: hidden;

  .title-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;

    .subtitle {
      margin-top: 10px;
    }

    a {
      width: fit-content;
      border-bottom: 1px solid var(--text);
      white-space: nowrap;
    }
  }

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

  .reviews-wrapper {
    position: relative;
    margin-top: 80px;

    &::before,
    &::after {
      position: absolute;
      z-index: 1;
      top: 0;
      bottom: 0;
      width: 120px;
      height: 100%;
      content: "";
      pointer-events: none;
      transition: opacity 0.3s;
    }

    &::before {
      left: 0;
      background: linear-gradient(to right, #fff, transparent);
    }

    &::after {
      right: 0;
      background: linear-gradient(to left, #fff, transparent);
    }

    .splide .splide__track {
      overflow: unset;
    }
  }

  .review {
    display: flex;
    width: 100%;
    max-width: 900px;
    height: 412px;
    flex-direction: column;
    padding: 40px;
    border-radius: 20px;
    background-color: #eaeaea;
    gap: 10px;

    .name {
      color: var(--text);
      font-family: var(--second-family);
      font-size: 30px;
      font-weight: 700;
      line-height: 140%;
    }

    .review-content {
      color: var(--text);
      font-family: var(--font-family);
      font-size: 20px;
      font-weight: 400;
      line-height: 1.4;
      overflow-y: auto;

      /* width */
      &::-webkit-scrollbar {
        width: 6px;
      }

      /* Track */
      &::-webkit-scrollbar-track {
        background: transparent;
      }

      /* Handle */
      &::-webkit-scrollbar-thumb {
        border-radius: 5px;
        background: #333;
      }

      /* Handle on hover */
      &::-webkit-scrollbar-thumb:hover {
        background: #333;
      }
    }
  }
}

.image-view-modal {
  --padding: 40px;

  position: fixed;
  inset: 0;
  z-index: var(--modal-overlay-z-index);
  display: flex;
  width: 100vw;
  height: 100vh;
  align-items: center;
  justify-content: center;
  padding: var(--padding);
  background: rgb(0 0 0 / 30%);
  user-select: none;

  &:empty {
    display: none;
  }

  img {
    max-width: calc(100vw - var(--padding) * 2);
    max-height: calc(100vh - var(--padding) * 2);
  }
}

.contacts {
  background-color: #eaeaea;

  .title-and-subtitle {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }

  .contacts-info {
    display: flex;
    width: 100%;
    justify-content: space-between;
    margin-top: 80px;
    gap: 80px;
  }

  .left-column {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }

  .contacts-info-item {
    display: grid;
    align-items: center;
    gap: 20px;
    grid-template-columns: 80px 1fr;
  }

  .contacts-info-item-icon {
    display: flex;
    width: 80px;
    height: 80px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: #c2c2be;

    svg {
      width: 40px;
      height: auto;
      color: #333;
    }
  }

  .contacts-info-item-block {
    display: flex;
    flex-direction: column;
    gap: 10px;

    a {
      width: fit-content;
      border-bottom: 1px solid var(--text);
      white-space: nowrap;
    }

    p {
      white-space: nowrap;
    }
  }

  .contact-form {
    width: 100%;
    display: grid;
    gap: 20px;

    .wpcf7-form {
      display: flex;
      width: 100%;
      flex-direction: column;
      gap: 20px;

      &.submitting {
        .wpcf7-submit {
          font-size: 0;
          pointer-events: none;
          opacity: 0.9;
        }

        p:has(.wpcf7-submit)::after {
          opacity: 1;
        }
      }

      &.sent .wpcf7-response-output {
        padding: 20px;
        border-radius: 20px;
        background-color: rgb(13 171 76 / 10%);
        color: #0dab4c;

        &:empty {
          display: none;
        }
      }
    }

    .wpcf7-not-valid {
      border-color: #e62c2d;
    }

    .wpcf7-not-valid-tip {
      color: #e62c2d;
    }

    .wpcf7-spinner {
      display: none;
    }

    .wpcf7-response-output {
      padding: 20px;
      border-radius: 20px;
      background-color: rgb(230 44 45 / 10%);
      color: #e62c2d;
      border: unset;
      margin: unset;
    }

    p:has(.wpcf7-submit) {
      position: relative;

      &::after {
        content: "";
        display: block;
        width: 50px;
        height: 50px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background-image: url("./img/spinner.svg");
        background-size: 50px;
        background-repeat: no-repeat;
        animation: spinner-rotate linear 0.8s infinite;
        opacity: 0;
        pointer-events: none;
      }
    }
  }
}

@keyframes spinner-rotate {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

.no-articles-text {
  margin-top: 40px;
}

.articles-list {
  display: grid;
  margin-top: 80px;
  gap: 40px;
  grid-template-columns: repeat(2, 1fr);

  .articles-list-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    border-radius: 20px;
    gap: 20px;

    &:hover {
      img {
        transform: scale(1.1, 1.1);
      }
    }

    .link-to-article {
      overflow: hidden;
      width: 100%;
      height: auto;
      border-radius: 16px;
    }

    img {
      width: 100%;
      height: auto;
      transition: transform 1s;
      aspect-ratio: 16 / 9;
      object-fit: cover;
    }

    .info {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .title {
      a {
        font-size: inherit;
        font-weight: inherit;
        transition: color 0.3s;

        &:hover {
          color: #c2c2be;
        }
      }
    }

    .text {
      display: -webkit-box;
      overflow: hidden;
      -webkit-box-orient: vertical;
      color: var(--text);
      font-family: var(--font-family);
      font-weight: 400;
      -webkit-line-clamp: 3;
      text-overflow: ellipsis;
    }

    .tags {
      position: relative;
      overflow: hidden;

      &.left-gradient {
        &::before {
          left: 0;
          background: linear-gradient(to right, #fff, transparent);
          opacity: 1;
        }
      }

      &.right-gradient {
        &::after {
          right: 0;
          background: linear-gradient(to left, #fff, transparent);
          opacity: 1;
        }
      }

      &::before,
      &::after {
        position: absolute;
        z-index: 1;
        top: 0;
        bottom: 0;
        width: 40px;
        height: 100%;
        content: "";
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s;
      }

      .tag {
        padding: 5px 10px;
        border-radius: 4px;
        background: #c2c2be;
        color: var(--text);
        cursor: pointer;
        font-family: var(--second-family);
        font-size: 16px;
        font-weight: 400;
        display: block;
      }
    }
  }
}

.show-all-articles {
  margin: 80px auto 0;
  text-align: center;
}

.article-page {
  .main-image {
    overflow: hidden;
    width: 100%;
    height: calc(100vh - var(--header-height));
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    backdrop-filter: brightness(0.3);
    object-fit: cover;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 40px 20px;
    min-height: fit-content;

    .main-image-effect {
      position: absolute;
      inset: 0;
      background-color: rgba(0, 0, 0, 0.4);
    }

    h1 {
      color: #fff;
      z-index: 1;
    }
  }

  .article-content {
    display: flex;
    flex-direction: column;
    gap: 30px;

    ul {
      display: flex;
      flex-direction: column;
      gap: 20px;
      list-style-type: none;

      ul,
      ol {
        margin-top: 20px;
        margin-left: 25px;
      }
    }

    ol {
      display: flex;
      flex-direction: column;
      counter-reset: ol-counter;
      gap: 20px;
      list-style-type: none;

      & > li {
        &::before {
          margin-right: 10px;
          content: counter(ol-counter) ".";
          counter-increment: ol-counter;
        }
      }

      ul,
      ol {
        margin-top: 20px;
        margin-left: 25px;
      }
    }

    figure {
      figcaption {
        margin-top: 10px;
        font-size: 20px;
      }
    }

    .wp-block-image {
      margin: 0 auto;
    }

    blockquote {
      padding: 40px 40px 40px 120px;
      background-color: #eaeaea;
      position: relative;

      &::before {
        content: '';
        display: block;
        width: 40px;
        height: 40px;
        background-image: url('./img/quote.svg');
        background-size: 40px;
        position: absolute;
        top: 40px;
        left: 40px;
      }
    }

    .wp-block-pullquote {
      margin: 0;
      padding: 0;
    }

    .wp-block-details summary {
      margin-bottom: 10px;
    }
  }

  .article-footer {
    display: flex;
    flex-direction: column;
    padding-top: 20px;
    border-top: 1px solid #c2c2be;
    margin-top: 80px;
    gap: 20px;
  }

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

  .number-of-views {
    display: flex;
    align-items: center;
    gap: 10px;
  }

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

  .tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
  }

  .tag {
    padding: 5px 10px;
    border-radius: 4px;
    background: #c2c2be;
    color: var(--text);
    cursor: pointer;
    font-family: var(--second-family);
    font-size: 16px;
    font-weight: 400;
    display: block;
  }
}

.pagination {
  margin-top: 80px;
  justify-content: center;
  
  .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
  }

  .page-numbers {
    &:not(.prev, .next) {
      padding: 5px;
      border-radius: 4px;
      background: #c2c2be;
      color: var(--text);
      cursor: pointer;
      font-family: var(--second-family);
      display: block;
      min-width: 38px;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 38px;
      border-bottom: unset;
  
      &.current {
        background: #161616;
        color: #f7f5e8;
      }

      &:hover:not(&.current) {
        text-decoration: underline;
      }
    }

    &.prev {
      margin-right: 15px;
    }

    &.next {
      margin-left: 15px;
    }

    &.prev,
    &.next {
      border-bottom: 2px solid;
    }
  }
}

.pagination-desktop {
  display: block;
}

.pagination-mobile {
  display: none;
}

.not-found-page {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  gap: 10px;

  a {
    margin: 20px auto 0;
    border-bottom: 1px solid #333;
    width: fit-content;
  }
}


.privacy-policy-page {
  display: flex;
  flex-direction: column;
  gap: 80px;

  .content {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
}

.public-offer-agreement-page {
  display: flex;
  flex-direction: column;
  gap: 80px;

  .content {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
}

.prices-page {
  display: flex;
  flex-direction: column;
  gap: 80px;

  .price-list {
    display: flex;
    flex-direction: column;
    gap: 80px;
  }

  .price-list-item {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;

    &::after {
      content: '';
      display: block;
      width: 160px;
      height: 120%;
      position: absolute;
      background-color: #EAEAEA;
      top: -10%;
      right: -80px;
    }

    &:nth-child(even) {
      flex-direction: row-reverse;

      &::after {
        right: unset;
        left: -80px;
      }
    }

    .price-list-item-content {
      width: 100%;
    }

    .prices-list-item-image {
      width: 400px;
      height: 400px;
      object-fit: cover;
      z-index: 1;
      flex-shrink: 0;
    }

    h2 {
      position: relative;
      z-index: 1;
      
      &::before {
        content: '';
        display: block;
        width: 120px;
        height: 100%;
        position: absolute;
        background-color: #EAEAEA;
        top: -20px;
        left: -20px;
        z-index: -1;
      }
    }
  }

  .price-list-item-list {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .discount {
    display: flex;
    gap: 8px;
    align-items: center;
    font-style: italic;
    text-decoration: underline;
    
    svg {
      width: 30px;
      height: auto;
    }
  }
}

@media (max-width: 1560px) {
  .reviews .reviews-wrapper::before {
    opacity: 0;
  }
}

@media (max-width: 1439px) {
  :root {
    --header-height: 103px;
  }

  body {
    font-size: 20px;
  }
  
  h1 {
    font-size: 50px;
  }

  h2 {
    font-size: 38px;
  }

  h3,
  h4,
  h5,
  h6 {
    font-size: 26px;
  }

  a {
    font-size: 20px;
  }
  
  button,
  .button,
  input[type="submit"] {
    padding: 20px 30px;
    border-radius: 15px;
    font-size: 20px;
  }

  .outline-btn {
    font-size: 20px;
  }

  input:not([type="submit"]) {
    height: 65px;
    padding: 15px;
    border-radius: 15px;
    font-size: 20px;
  }

  textarea {
    height: 220px;
    padding: 15px;
    border-radius: 15px;
    font-size: 20px;
  }

  header {
    padding: 20px 0;

    .logo {
      img {
        width: 70px;
        height: auto;
      }
    }
  }

  nav {
    gap: 25px;
  }

  section {
    padding: 80px 0;
  }

  ul {
    li::before {
      margin-top: 11px;
    }
  }

  .banner-wrapper {
    .banner {
      .banner-subtitle {
        font-size: 44px;
      }

      a {
        margin-top: 40px;
      }
    }
  }

  .about-me-wrapper {
    .container {
      gap: 60px;
      grid-template-columns: 300px 1fr;

      img {
        width: 300px;
        height: 300px;
      }
    }

    .about-me {
      gap: 30px;
    }
  }

  .main-request-items {
    margin-top: 50px;
  }

  .diplomas-and-certificates {
    .splide {
      margin-top: 50px;
    }
  }

  .reviews {
    .reviews-wrapper {
      margin-top: 50px;
    }

    .review {
      .name {
        font-size: 26px;
      }
    }
  }

  .contacts {
    .contacts-info {
      margin-top: 50px;
      gap: 60px;
    }
  }

  .articles-list {
    margin-top: 50px;
  }

  .privacy-policy-page, .public-offer-agreement-page {
    gap: 50px;
  }

  .show-all-articles {
    margin-top: 50px;
  }

  footer {
    .columns {
      .column {
        .footer-description {
            max-width: 400px;
        }
      }
    }

    .all-rights-reserved {
      margin-top: 50px;
    }
  }

  .prices-page {
    gap: 60px;

    .price-list {
      gap: 60px;
    }
  }

  .article-page {
    gap: 40px;

    .article-footer {
      margin-top: 50px;
      gap: 15px;
    }

    .number-of-views {
      gap: 6px;
    }
  }

  .pagination {
    margin-top: 50px;
  }
}

@media (max-width: 1023px) {
  :root {
    --header-height: 78px;
  }

  body,
  a {
    font-size: 18px;
  }

  header {
    padding: 10px 0;
  
    .header-nav-desktop {
      display: none;
    }
  
    .header-nav-mobile {
      display: initial; 
    }
  }

  section {
    padding: 60px 0;
  }

  ul {
    li::before {
      margin-top: 9px;
    }
  }

  .about-me-wrapper {
    .container {
      gap: 40px;
      grid-template-columns: 1fr;
      justify-items: center;
    }
    
    .about-me {
      gap: 20px;
      text-align: center;
      max-width: 700px;
    }
  }

  .main-request-items {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-top: 40px;
  }

  .diplomas-and-certificates {
    .splide {
      margin-top: 40px;

      .splide__slide {
        img {
          max-width: 622.22px;
          height: 350px;
        }
      }
    }

    .splider-buttons {
      display: none;
    }
  }

  .reviews {
    .reviews-wrapper {
      margin-top: 40px;
    }

    .review {
      max-width: 728px;
    }

    .splider-buttons {
      display: none;
    }
  }
  
  .contacts {
    .contacts-info {
      margin-top: 40px;
      gap: 40px;
      flex-direction: column;
    }

    .left-column {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
    }

    .contacts-info-item {
      display: grid;
      grid-template-columns: 1fr;
      grid-template-rows: 80px auto;
      justify-items: center;
      align-items: baseline;
      text-align: center;
      width: 100%;
    }

    .contacts-info-item-block {
      p {
        white-space: unset;
      }
    }
  }

  .articles-list {
    margin-top: 40px;
  }

  .privacy-policy-page, .public-offer-agreement-page {
    gap: 40px;

    .content {
      gap: 25px;
    }
  }

  footer {
    .columns {
      display: grid;
      grid-template-columns: 1fr auto;

      .column:first-child {
        grid-row: 1 / 3;
      }
    }

    .all-rights-reserved {
      margin-top: 40px;
    }
  }

  .prices-page {
    gap: 40px;

    .price-list {
      gap: 40px;

      .price-list-item {
          &::after {
            display: none;
          }
      
          h2::before {
            display: none;
          }

          .prices-list-item-image {
            width: 350px;
            height: 350px;
          }
        }
    }

    .price-list-item-list {
      margin-top: 30px;
    }
  }

  .pagination {
    margin-top: 40px;
  }

  .article-page {
    .article-content {
      gap: 25px;
    }
  }
}

@media (max-width: 888px) {
  .reviews .reviews-wrapper::after {
    opacity: 0;
  }
}

@media (max-width: 767px) {
  body,
  a {
    font-size: 18px;
  }
  
  h1 {
    font-size: 40px;
  }

  h2 {
    font-size: 30px;
  }

  h3,
  h4,
  h5,
  h6 {
    font-size: 24px;
  }
  
  section {
    padding: 40px 0;
  }

  .container {
    padding: 0 20px;
  }

  header {
    .logo {
      div {
        display: none;
      }
    }
  }
  
  .banner-wrapper {
    .banner {
      .banner-subtitle {
        font-size: 36px;
      }
    }
  }

  .main-request-items {
    grid-template-columns: 1fr;
    gap: 20px;

    .main-request-item {
      padding: 20px;
    }
  }

  .diplomas-and-certificates {
    & .splide {
      & .splide__slide {
        img {
          max-width: 385px;
          height: 216.56px;
        }
      }
    }
  }

  .reviews {
    .review {
      max-width: 385px;
      padding: 20px;

      .review-content {
        font-size: 18px;
      }
    }
  }

  .contacts {
    .left-column {
      grid-template-columns: 1fr;
    }
  }

  .articles-list {
    grid-template-columns: 1fr;
  }
  
  footer {
    padding: 40px 0 20px;

    .columns {
      grid-template-columns: 1fr;
      gap: 40px;

      .column {
        gap: 20px;
      }
    }

    .socials {
      gap: 10px;
    }

    .navigation {
      gap: 10px;
    }

    .contacts {
      gap: 10px;
    }

    .all-rights-reserved {
      flex-direction: column;
      gap: 10px;
    }
  }

  .prices-page {
    .price-list {
      gap: 30px;

      .price-list-item {
        flex-direction: column-reverse;
        gap: 20px;
        
        &:nth-child(even) {
          flex-direction: column-reverse;
        }

        .prices-list-item-image {
          width: 385px;
          height: 385px;
        }
      }
    }

    .price-list-item-list {
      margin-top: 20px;
    }
  }

  .pagination-desktop {
    display: none;
  }

  .pagination-mobile {
    display: block;
  }

  .article-page {
    .article-content {
      gap: 20px;

      blockquote {
        padding: 20px 20px 20px 70px;

        &::before {
          width: 30px;
          height: 30px;
          background-size: 30px;
          left: 20px;
          top: 20px;
        }
      }
    }

    .article-footer {
      gap: 10px;
      margin-top: 40px;

      .published {
        gap: 15px;
      }

      .tags-wrapper {
        gap: 15px;
      }

      .tags {
        gap: 7px;
      }
    }
  }
}

@media (max-width: 424px) {
  body,
  a {
    font-size: 16px;
  }

  h1 {
    font-size: 32px;
  }
  
  h2 {
    font-size: 24px;
  }

  h3,
  h4,
  h5,
  h6 {
    font-size: 20px;
  }

  button,
  .button,
  input[type="submit"] {
    padding: 15px 20px;
    font-size: 18px;
  }

  ul {
    li::before {
      margin-top: 7px;
    }
  }

  header {
    .container {
      gap: 20px;
    }

    .phones-and-mobile-menu-wrapper {
      gap: 10px;
    }
  }

  .about-me-wrapper {
    .container {
      img {
        width: 250px;
        height: 250px;
      }
    }
  }

  .main-request-items {
    margin-top: 30px;
    gap: 10px;

    .main-request-item {
      img {
        width: 50px;
      }

      .text {
        font-size: 14px;
      }
    }
  }

  .diplomas-and-certificates {
    margin-top: 30px;

    .splide {
      margin-top: 30px;

      .splide__slide {
        img {
          max-width: 280px;
          height: 157.5px;
        }
      }
    }
  }

  .reviews {
    .reviews-wrapper {
      margin-top: 30px;
    }

    .review {
      max-width: 280px;

      .review-content {
        font-size: inherit;
      }
    }
  }

  .contacts {
    .contacts-info {
      margin-top: 30px;
      gap: 30px;
    }

    .contacts-info-item {
      grid-template-rows: 60px auto;
    }

    .left-column {
      gap: 20px;
    }

    .contacts-info-item-block {
      gap: 5px;
    }

    .contacts-info-item-icon {
      width: 60px;
      height: 60px;

      svg {
        width: 30px;
      }
    }

    .contact-form {
      .wpcf7-form {
        gap: 10px;
      }
    }
  }

  .articles-list {
    margin-top: 30px;
    gap: 20px;

    .articles-list-item {
      gap: 10px;

      .tags {
        .tag {
          font-size: 14px;
        }
      }
    }
  }

  .privacy-policy-page, .public-offer-agreement-page {
    gap: 30px;

    .content {
      gap: 20px;
    }
  }

  .show-all-articles {
    margin-top: 30px;
  }
  
  .outline-btn {
    padding: 15px 20px;
    font-size: 18px;
    width: 100%;
  }

  footer {
    .socials {
      a {
        width: 40px;
        height: 40px;

        svg {
          width: 20px;
          height: 20px;
        }
      }
    }

    .contacts {
      .contacts-item {
        gap: 10px;
      }
    }
  }

  .prices-page {
    gap: 30px;

    .price-list {
      gap: 20px;

      .price-list-item {
        .prices-list-item-image {
          width: 280px;
          height: 280px;
        }
      }
    }
  }

  .pagination {
    margin-top: 30px; 

    .nav-links {
      gap: 5px;
    }

    .page-numbers {
      &:not(.prev, .next) {
        min-width: 33px;
        height: 33px;
      }
    }
  }

  .article-page {
    .article-content {
      blockquote {
        padding: 20px 20px 20px 60px;
        
        &::before {
          width: 20px;
          height: 20px;
          background-size: 20px;
        }
      }

      ul {
        gap: 10px;
      }

      ol {
        gap: 10px;
        
        & > li {
          &::before {
            margin-right: 5px;
          }
        }
      }
    }

    .article-footer {
      margin-top: 30px;

      .published {
        gap: 10px;
      }

      .number-of-views {
        gap: 4px;

        svg {
          width: 25px;
          height: auto;
        }
      }

      .tags-wrapper {
        gap: 10px;
      }
    }
  }
}