

@layer views {

  .v-hero-top {

    --kv-fit: max(400px, 100svh);

    background: var(--bg-white);
  }

  .v-hero-top__title {
    display: block;
    height: 100%;
    margin: 0;
  }

  .v-kv-carousel__link {
    display: block;
    height: 100%;
  }

  .v-kv-carousel__link:focus-visible {
    outline-color: var(--text-white);
    outline-offset: -4px;
  }

  .v-hero-top__kv {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1440 / 768;
    min-height: min(768px, var(--kv-fit));
    max-height: var(--kv-fit);
    overflow: hidden;
  }

  .v-kv-carousel {
    position: absolute;
    inset: 0;
  }

  .v-kv-carousel__track {
    display: flex;
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .v-kv-carousel__track::-webkit-scrollbar { display: none; }

  .v-kv-carousel__slide {
    flex: 0 0 100%;
    height: 100%;
    scroll-snap-align: start;
  }

  .v-kv-carousel__img {
    display: block;
    width: 100%;
    height: 100%;
  }

  .v-kv-carousel__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .v-kv-carousel__nav {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    color: var(--text-white);
  }

  .v-kv-carousel__btn {

    --kv-arrow-w: 11.937px;
    --kv-arrow-h: 6.506px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    background: var(--bg-black);
    color: inherit;
    cursor: pointer;
  }

  .v-kv-carousel__btn > img {
    grid-area: 1 / 1;
    width: var(--kv-arrow-w);
    height: var(--kv-arrow-h);
  }

  .v-kv-carousel__btn--prev > img { rotate: -90deg; }
  .v-kv-carousel__btn--next > img { rotate: 90deg; }

  .v-kv-carousel__count {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 69px;
    height: 38px;
    padding-inline: 12px;
    background: var(--bg-black);
    font-family: "Jost", sans-serif;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 1;
  }

  .v-kv-carousel__slash {
    width: 14px;
    margin-inline: calc((8.03px - 14px) / 2);
    height: 0;
    border-top: 0.8px solid currentColor;
    rotate: -55deg;
  }

  .v-kv-carousel__btn:disabled {
    cursor: default;
  }

  @media (hover: hover) and (pointer: fine) {
    .v-kv-carousel__btn > img {
      transition: filter var(--dur-hover) var(--ease-hover);
    }

    .v-kv-carousel__btn:hover > img {
      filter: brightness(0.490196);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .v-kv-carousel__btn > img {
      transition: none;
    }
  }

  @media (max-width: 767px) {

    .v-hero-top__kv {
      aspect-ratio: 375 / 607;
      min-height: 0;
      max-height: none;
    }

  }

  .v-newsblog {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
    padding-bottom: 100px;
    background: var(--bg-beige-light);
  }

  .v-newsblog > .v-heading-en,
  .v-faq-cat > .v-heading-en {
    align-self: stretch;
  }

  .v-newsblog__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
    width: 100%;
  }

  .v-newsblog__list,
  .v-newsblog__more {
    width: min(900px, 100% - 80px);
  }

  .v-newsblog__more {
    display: flex;
  }

  .v-blog-link {
    display: flex;
    width: min(900px, 100% - 80px);
    height: 175px;
    overflow: hidden;
    background: var(--bg-black);
    color: var(--text-white);
  }

  .v-blog-link__body {
    display: grid;
    flex: 336 1 0;
    min-width: 0;
    justify-content: center;
    align-content: center;
    justify-items: start;
    gap: 28px;
  }

  .v-blog-link__en {
    --cap: 40px;

    font-size: 6rem;
  }

  .v-blog-link__en img {
    display: block;
    width: auto;
    height: calc(var(--cap) * 1.2);
    margin-block: calc(var(--cap) * -0.1);
  }

  @media (hover: hover) and (pointer: fine) {
    .v-blog-link:hover .v-link-text {
      border-bottom-color: transparent;
    }

    .v-blog-link:hover .v-blog-link__img img {
      scale: 1.055;
    }
  }

  .v-blog-link__img {
    flex: 564 1 0;
    min-width: 0;
    overflow: hidden;
  }

  .v-blog-link__img picture {
    display: block;
    width: 100%;
    height: 100%;
  }

  .v-blog-link__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: scale var(--dur-thumb) var(--ease-hover);
  }

  @media (prefers-reduced-motion: reduce) {
    .v-blog-link__img img { transition: none; }
    .v-blog-link:hover .v-blog-link__img img { scale: 1; }
  }

  @media (max-width: 767px) {
    .v-newsblog {
      gap: 60px;
      padding-bottom: 120px;
    }

    .v-newsblog__body {
      gap: 40px;
      padding-inline: 20px;
    }

    .v-newsblog__list,
    .v-newsblog__more,
    .v-blog-link {
      width: 100%;
    }

    .v-blog-link {
      height: 130px;
    }

    .v-blog-link__body {
      flex-grow: 159;
      gap: 16px;
    }

    .v-blog-link__en {
      --cap: 27px;
      font-size: 4rem;
    }

    .v-blog-link__img {
      flex-grow: 176;
    }
  }

  .v-faq-cat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
    padding-top: 4px;
    padding-bottom: 100px;
    background: var(--bg-beige-dark);
  }

  .v-faq-cat__list {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: min(900px, 100% - 80px);
  }

  .v-faq-cat__item {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 41px;
    border-bottom: 1px solid var(--line);
  }

  .v-faq-cat__title {
    font-weight: 300;
    font-size: 3.2rem;
    line-height: 1.5;
    letter-spacing: 0.03em;
    font-feature-settings: "palt" 1;
    text-box: trim-both cap alphabetic;
  }

  @media (max-width: 767px) {
    .v-faq-cat {
      gap: 60px;
      padding-top: 0;
      padding-bottom: 120px;
    }

    .v-faq-cat__list {
      gap: 24px;
      width: 100%;
      padding-inline: 20px;
    }

    .v-faq-cat__item {
      flex-direction: column;
      align-items: flex-start;
      gap: 24px;
      padding-bottom: 25px;
    }

    .v-faq-cat__title {
      font-size: 2.2rem;
    }
  }

  .v-cta--top {
    padding-bottom: 160px;
  }

  .v-cta--top .v-cta__body {
    padding-top: 0;
  }

  .v-cta--top .v-cta__lead > p:not(:last-child) {
    margin-bottom: 24px;
  }

  .v-cta--top .v-cta__img img {
    object-position: 50% 100%;
  }

  @media (max-width: 767px) {
    .v-cta--top {
      padding-bottom: 120px;
    }

    .v-cta--top .v-cta__lead > p:not(:last-child) {
      margin-bottom: 18px;
    }

    .v-cta--top .v-cta__img img {
      object-position: 61% 50%;
    }
  }

  .v-instagram {
    display: flex;
    flex-direction: column;
    padding-bottom: 93px;
    background: var(--bg-black);
    color: var(--text-white);
  }

  .v-instagram > .v-heading-en img {
    height: calc(var(--cap) * 86 / 80.04);
    margin-block: calc(var(--cap) * -2.76 / 80.04) calc(var(--cap) * -3.2 / 80.04);
  }

  .v-instagram > .v-heading-en {
    overflow: clip;
    padding-bottom: calc(var(--cap) * 3.2 / 80.04);
    margin-bottom: calc(var(--cap) * -3.2 / 80.04);
  }

  .v-instagram__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-inline: 130px;
    padding-top: 72px;
  }

  .v-instagram__account {
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1;
    text-box: trim-both cap alphabetic;
  }

  .v-instagram__carousel {
    margin-top: 36px;
    --carousel-gutter: 130px;
    --carousel-btn-x: 110px;
  }

  .v-instagram__carousel .v-carousel__track {
    justify-content: safe center;
  }

  .v-instagram__carousel .v-carousel__track > li {
    width: 240px;
    height: 300px;
    background: var(--bg-beige-dark);
    overflow: hidden;
  }

  .v-instagram__carousel .v-carousel__track img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .v-instagram__carousel .v-carousel__track picture {
    display: contents;
  }

  @media (max-width: 1080px) {
    .v-instagram__carousel {
      --carousel-gutter: 40px;
      --carousel-btn-x: 16px;
    }
  }

  @media (max-width: 767px) {

    .v-instagram {
      padding-bottom: 64px;
    }

    .v-instagram__meta {
      display: contents;
    }

    .v-instagram__account {
      order: 1;
      padding: 40px 20px 24px;
      font-size: 1.3rem;
    }

    .v-instagram__carousel {
      order: 2;
      margin-top: 0;
      --carousel-gutter: 20px;
      --carousel-btn-x: 10px;
    }

    .v-instagram__carousel .v-carousel__track {
      gap: 10px;
    }

    .v-instagram__carousel .v-carousel__track > li {
      width: 152px;
      height: 190px;
    }

    .v-instagram__link {
      order: 3;
      align-self: flex-start;
      margin: 40px 0 0 20px;
      font-size: 1.1rem;
    }

  }

}
