@charset "UTF-8";
/*
 * 参考
 * https://github.com/Andy-set-studio/modern-css-reset/blob/master/src/reset.css
*/
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd,
ul {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/*****************************************
 * 数値から単位を取り除く
 * 参考
 * https://css-tricks.com/snippets/sass/
******************************************/
/*****************************************
 * px→remの計算
 * 参考
 * https://webdou.net/sass-rem/
 * Sassではmath.div関数の使用が推奨のため、スラッシュ(/)演算子から変更
******************************************/
/*****************************************
 * vwの計算
 * 参考
 * https://webdou.net/sass-vw/
 * Sassではmath.div関数の使用が推奨のため、スラッシュ(/)演算子から変更
******************************************/
@media screen and (min-width: 1024px) {
  html {
    scroll-behavior: smooth;
  }
}
@media screen and (max-width: 1023px) {
  html {
    scroll-behavior: auto;
  }
  html:focus-within {
    scroll-behavior: auto;
  }
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}
html {
  font-size: 16px;
}
@media screen and (min-width: 768px) {
  html {
    font-size: 1.3333333333vw;
  }
}
@media (min-width: 1200px) {
  html {
    font-size: 16px;
  }
}

body {
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
}

/* 単語の途中で改行させない（英語・イタリア語） */
html[lang=en] body,
html[lang=it] body {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-height: 1.55;
}

#concept,
#service,
#profiles,
#outline,
#history {
  scroll-margin-top: 4.375rem;
}
@media screen and (min-width: 1024px) {
  #concept,
  #service,
  #profiles,
  #outline,
  #history {
    scroll-margin-top: 6.875rem;
  }
}

a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

@media screen and (min-width: 768px) {
  a:hover {
    opacity: 0.8;
  }
}

/* ふわっと表示（フェードイン） */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* LIGNO ESSENCE風：下からふわっと浮かび上がる */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* translateXを維持したままふわっと表示（アクセント画像用） */
@keyframes fadeInUpWithTranslateX {
  from {
    opacity: 0;
    transform: translateX(3vw) translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateX(3vw) translateY(0);
  }
}
/* アクセント画像用：SP（30px左寄せ） */
@keyframes fadeInUpWithTranslateXSp {
  from {
    opacity: 0;
    transform: translateX(calc(3vw - 30px)) translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateX(calc(3vw - 30px)) translateY(0);
  }
}
/* アクセント画像用：PC（5px右寄せ／1360〜1400pxは変数で上書き可能） */
@keyframes fadeInUpWithTranslateXPc {
  from {
    opacity: 0;
    transform: translateX(var(--accent-translate-x-pc, calc(3vw + 5px))) translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateX(var(--accent-translate-x-pc, calc(3vw + 5px))) translateY(0);
  }
}
.l-footer {
  width: 100%;
}

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background-color: #fff;
  transition: background-color 0.6s ease;
}
@media screen and (min-width: 1024px) {
  .l-header {
    background-color: transparent;
  }
}
@media screen and (min-width: 1024px) {
  .l-header.is-scrolled {
    background-color: #fff;
    min-height: 6.875rem;
  }
}
@media screen and (min-width: 1024px) {
  body.is-privacyPage .l-header:not(.is-scrolled) {
    background-color: #fff;
    min-height: 6.875rem;
  }
}

.c-sectionTitle {
  font-family: "Jost", sans-serif;
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.0375em;
  color: #333;
  text-transform: uppercase;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-sectionTitle {
    text-align: left;
    font-size: 3rem;
    line-height: 0.858125;
    letter-spacing: 0.075em;
  }
}

.c-sectionTitle--white {
  color: #fff;
}

.p-collaboration {
  background-color: #fff;
  padding-block: 3.75rem 2.5rem;
  margin-top: 3.75rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration {
    margin-top: 0rem;
    padding-block: 6.25rem 5rem;
  }
}

.p-collaboration__inner {
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__inner {
    max-width: 68.75rem;
    padding-inline: 2.5rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-collaboration__inner {
    padding-inline: 0;
  }
}

.p-collaboration__frame {
  position: relative;
  overflow: visible;
  border: 1px solid #333;
  padding: 1.6875rem 1.4375rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-collaboration__frame {
    padding-top: 3.125rem;
    padding-bottom: 2.375rem;
    padding-left: 4.0625rem;
    padding-right: 4.0625rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-collaboration__frame {
    padding-left: 5.0625rem;
    padding-right: 5.0625rem;
  }
}

.p-collaboration__sectionTitle {
  font-family: "Jost", sans-serif;
  font-weight: 400;
  color: #333;
  text-transform: uppercase;
  font-size: 1.5rem;
  line-height: 2.1875rem;
  letter-spacing: 0.0375em;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  display: inline-block;
  background-color: #fff;
  padding-inline: 1.25rem;
  text-align: center;
  margin-bottom: 0;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-collaboration__sectionTitle {
    font-size: 1.75rem;
    line-height: 3.25rem;
    letter-spacing: 0.075em;
    padding-inline: 1.875rem;
  }
}

.p-collaboration__logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 1.25rem;
  -moz-column-gap: 2.21875rem;
       column-gap: 2.21875rem;
  margin-top: 1.875rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__logos {
    flex-wrap: nowrap;
    margin-top: 2.1875rem;
    gap: clamp(2.5rem, 6.08%, 3.5625rem);
  }
}

.p-collaboration__frame::before {
  content: "";
  position: absolute;
  top: -5rem;
  left: 0;
  width: 5.625rem;
  height: 3.3125rem;
  background: url("../images/common/grazie.svg") no-repeat center;
  background-size: contain;
  transform: translate(-1px, -1px);
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .p-collaboration__frame::before {
    top: -3.25rem;
    left: -1.5rem;
    width: 10.5625rem;
    height: 6.4375rem;
    padding: 1.75rem;
    background-color: #fff;
    box-sizing: border-box;
  }
}

.p-collaboration__logoItem {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.75rem;
}

.p-collaboration__logoItem a {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease;
}

.p-collaboration__logoItem a:hover {
  opacity: 0.7;
}

.p-collaboration__logoItem img {
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-collaboration__logoItem:nth-of-type(1) img {
  max-width: 6.84375rem;
  max-height: 5.5625rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__logoItem:nth-of-type(1) img {
    max-width: 10.0625rem;
    max-height: 7rem;
  }
}

.p-collaboration__logoItem:nth-of-type(2) img {
  max-width: 5.90625rem;
  max-height: 5.375rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__logoItem:nth-of-type(2) img {
    max-width: 9.125rem;
    max-height: 8rem;
  }
}

.p-collaboration__logoItem:nth-of-type(3) img {
  max-width: 8.90625rem;
  max-height: 3.59375rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__logoItem:nth-of-type(3) img {
    max-width: 12.0625rem;
    max-height: 4.6875rem;
  }
}

.p-collaboration__logoItem:nth-of-type(4) img {
  max-width: 11.25rem;
  max-height: 2.46875rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__logoItem:nth-of-type(4) img {
    max-width: 16.6875rem;
    max-height: 3.875rem;
  }
}

.p-collaboration__andOthers {
  display: block;
  font-family: "Jost", sans-serif;
  font-size: 0.9375rem;
  color: #333;
  margin-top: 1.25rem;
  text-align: right;
}
.p-collaboration__andOthers html[lang=en], html[lang=it] .p-collaboration__andOthers {
  font-size: 1rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__andOthers {
    font-size: 1.25rem;
  }
}

.p-collaboration__japanLogo {
  margin-top: 2.0625rem;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.75rem;
}
@media screen and (min-width: 768px) {
  .p-collaboration__japanLogo {
    margin-top: 3.75rem;
  }
}

.p-collaboration__japanLogo a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: #333;
  transition: opacity 0.3s ease;
}

.p-collaboration__japanLogo a:hover {
  opacity: 0.7;
}

.p-collaboration__japanLogo img {
  width: 9.25rem;
  height: 4.5625rem;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (min-width: 768px) {
  .p-collaboration__japanLogo img {
    width: 14.875rem;
    height: 5.375rem;
  }
}

.p-collaboration__japanLogo span {
  font-family: "Jost", sans-serif;
  font-size: 0.75rem;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .p-collaboration__japanLogo span {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 768px) {
  .p-collaboration__japanLogo span html[lang=en], html[lang=it] .p-collaboration__japanLogo span {
    font-size: 0.9375rem;
  }
}

.p-company-profile-images {
  background: linear-gradient(to bottom, #f5f5f5 0%, #f5f5f5 12%, #fff 1%, #fff 100%);
  padding-block: 3.125rem;
  padding-inline: 2.5rem;
}
@media screen and (min-width: 768px) {
  .p-company-profile-images {
    padding-block: 3.375rem 5rem;
  }
}

.p-company-profile-images__inner {
  width: 100%;
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 0;
}
@media screen and (min-width: 768px) {
  .p-company-profile-images__inner {
    max-width: 71.5625rem;
    display: flex;
    justify-content: center;
    padding-inline: 0;
  }
}
@media screen and (min-width: 1300px) {
  .p-company-profile-images__inner {
    padding-inline: 0;
  }
}

.p-company-profile-images__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 500px) {
  .p-company-profile-images__grid {
    max-width: 500px;
    margin: auto;
  }
}
@media screen and (min-width: 768px) {
  .p-company-profile-images__grid {
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    margin-inline-start: 3.4375rem;
    grid-template-columns: minmax(0, 32.8125rem) minmax(0, 35.625rem);
    grid-template-rows: auto;
    -moz-column-gap: 0;
         column-gap: 0;
    row-gap: 1.875rem;
  }
}

.p-company-profile-images__item {
  position: relative;
  overflow: hidden;
}

.p-company-profile-images__item:first-child {
  width: 16.25rem;
  height: 9.9375rem;
  justify-self: start;
}
@media screen and (min-width: 768px) {
  .p-company-profile-images__item:first-child {
    width: 100%;
    max-width: 32.625rem;
    height: auto;
    aspect-ratio: 523/324;
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    align-self: start;
    margin-inline-start: -3.4375rem;
  }
}

.p-company-profile-images__item:nth-child(2) {
  order: 3;
  width: 16.25rem;
  height: 9.9375rem;
  justify-self: start;
}
@media screen and (min-width: 768px) {
  .p-company-profile-images__item:nth-child(2) {
    order: unset;
    width: 100%;
    max-width: 32.5625rem;
    height: auto;
    aspect-ratio: 521/321;
    grid-column: 2;
    grid-row: 1;
    justify-self: start;
    align-self: start;
    margin-top: 6.875rem;
    margin-inline-start: 3.0625rem;
  }
}

.p-company-profile-images__item:nth-child(3) {
  order: 2;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  min-height: 6.6875rem;
}
@media (max-width: 499px) {
  .p-company-profile-images__item:nth-child(3) {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
  }
}
@media screen and (min-width: 768px) {
  .p-company-profile-images__item:nth-child(3) {
    margin: 0;
    width: 100%;
    max-width: 32.8125rem;
    height: auto;
    aspect-ratio: 524/216;
    order: unset;
    display: block;
    justify-content: unset;
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
    align-self: start;
    margin-top: -6.25rem;
  }
}

.p-company-profile-images__item img {
  width: 100%;
  height: 120%;
  position: absolute;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  will-change: transform;
}
@media screen and (min-width: 1200px) {
  .p-company-profile-images__item img {
    height: 112%;
  }
}

.p-company-profile-images__item:nth-child(3) img {
  width: 16.1875rem;
  height: 120%;
  right: 0;
  left: auto;
}
@media screen and (min-width: 768px) {
  .p-company-profile-images__item:nth-child(3) img {
    width: 100%;
    height: 120%;
    right: auto;
    left: 0;
  }
}
@media screen and (min-width: 768px) and (min-width: 1200px) {
  .p-company-profile-images__item:nth-child(3) img {
    height: 112%;
  }
}

.p-company-profile {
  background-color: #f5f5f5;
  padding-block: 3.75rem 0;
}
@media screen and (min-width: 768px) {
  .p-company-profile {
    padding-block: 6.25rem 1.25rem;
  }
}

.p-company-profile__inner {
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-company-profile__inner {
    max-width: 68.75rem;
    padding-inline: 2.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 5.625rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-company-profile__inner {
    padding-inline: 0;
  }
}

.p-company-profile__sectionTitle {
  margin-bottom: 2.5rem;
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  .p-company-profile__sectionTitle {
    font-size: 2.5rem;
    margin-bottom: 0;
    flex-shrink: 0;
    line-height: 1.3;
  }
}

.p-company-profile__list {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}
@media screen and (min-width: 768px) {
  .p-company-profile__list {
    flex: 1;
    min-width: 25rem;
  }
}

.p-company-profile__item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-block: 1.25rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  letter-spacing: 0.075rem;
}
@media screen and (min-width: 768px) {
  .p-company-profile__item {
    flex-direction: row;
    align-items: flex-start;
    gap: 2.5rem;
    padding-block: 1.5rem;
  }
}

.p-company-profile__label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: #333;
  flex-shrink: 0;
  min-width: 8.75rem;
}
.p-company-profile__label html[lang=en], html[lang=it] .p-company-profile__label {
  font-size: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .p-company-profile__label {
    font-size: 0.9375rem;
  }
}

.p-company-profile__value {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  line-height: 1.7;
  color: #333;
}
.p-company-profile__value html[lang=en], html[lang=it] .p-company-profile__value {
  font-size: 0.9375rem;
}
.p-company-profile__value {
  text-decoration: none;
  letter-spacing: 0.075rem;
}
@media screen and (min-width: 768px) {
  .p-company-profile__value {
    font-size: 1.125rem;
  }
  .p-company-profile__value html[lang=en], html[lang=it] .p-company-profile__value {
    font-size: 1.125rem;
  }
}

.p-company-profile__emailImg {
  display: inline-block;
  height: 1rem;
  width: auto;
  vertical-align: middle;
  transform: scaleX(0.92);
  transform-origin: left center;
}

.p-concept {
  background-color: #fff;
  padding-top: 0;
  padding-bottom: 3.75rem;
}
@media screen and (min-width: 768px) {
  .p-concept {
    padding-top: 6.875rem;
    padding-bottom: 8.75rem;
  }
}

.p-concept__inner {
  display: flex;
  flex-direction: column;
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-concept__inner {
    width: 100%;
    max-width: 75rem;
    flex-direction: row;
    align-items: flex-start;
    gap: 6.25%;
    margin-inline: auto;
    padding-inline: 2.5rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-concept__inner {
    padding-inline: 0;
  }
}

.p-concept__visual {
  width: 100%;
  max-width: 17.3125rem;
  margin-inline: auto;
  order: 0;
  padding-bottom: 2.3125rem;
}
@media screen and (min-width: 768px) {
  .p-concept__visual {
    max-width: none;
    margin-inline: 0;
    width: 33.333%;
    order: 0;
    padding-bottom: 0;
    flex-shrink: 0;
  }
}

.p-concept__images {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 19.0625rem;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-concept__images {
    width: 100%;
    height: 37.5rem;
    margin-inline: 0;
  }
}

.p-concept__imageTop,
.p-concept__imageBottom {
  position: absolute;
  overflow: hidden;
}
.p-concept__imageTop img,
.p-concept__imageBottom img {
  width: 100%;
  height: 120%;
  position: absolute;
  top: 0;
  left: 0;
  will-change: transform;
}
@media screen and (min-width: 1200px) {
  .p-concept__imageTop img,
  .p-concept__imageBottom img {
    height: 112%;
  }
}

.p-concept__imageTop {
  top: 0;
  left: 0;
  z-index: 1;
  width: 9.875rem;
  height: 12.5625rem;
  box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.1);
}
@media screen and (min-width: 768px) {
  .p-concept__imageTop {
    width: 16.3125rem;
    height: 19.6875rem;
  }
}
.p-concept__imageTop img {
  -o-object-position: center top;
     object-position: center top;
}

.p-concept__imageBottom {
  top: 8rem;
  right: 0;
  z-index: 2;
  width: 8.375rem;
  height: 10.5rem;
}
@media screen and (min-width: 768px) {
  .p-concept__imageBottom {
    top: 18.25rem;
    right: 0;
    width: 14.125rem;
    height: 16.875rem;
  }
}

.p-concept__content {
  width: 100%;
  order: 1;
  padding-top: 0;
}
@media screen and (min-width: 768px) {
  .p-concept__content {
    width: 56.667%;
    flex-shrink: 0;
    padding-top: 2.1875rem;
    padding-inline: 0;
  }
}

.p-concept__sectionTitle {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-concept__sectionTitle {
    text-align: left;
  }
}

@media screen and (min-width: 768px) {
  .u-br-sp {
    display: none;
  }
}

.p-concept__headline {
  padding-block: 1.875rem;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
}
.p-concept__headline html[lang=en], html[lang=it] .p-concept__headline {
  text-align: left;
}
.p-concept__headline {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #333;
}
@media screen and (min-width: 768px) {
  .p-concept__headline {
    text-align: left;
    padding-block: 2.625rem 2.375rem;
    font-size: 1.75rem;
    line-height: 1;
  }
  .p-concept__headline html[lang=en], html[lang=it] .p-concept__headline {
    line-height: 1.5;
    text-align: left;
  }
}

.p-concept__text {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.9375rem;
  letter-spacing: 1px;
  line-height: 2rem;
  color: #333;
}
.p-concept__text html[lang=en], html[lang=it] .p-concept__text {
  font-size: 1rem;
}
@media screen and (min-width: 768px) {
  .p-concept__text {
    font-size: 1rem;
    letter-spacing: 1px;
    line-height: 2.5555555556;
  }
  .p-concept__text html[lang=en], html[lang=it] .p-concept__text {
    line-height: 2;
  }
}
.p-concept__text html[lang=en], html[lang=it] .p-concept__description .p-concept__text + .p-concept__text {
  margin-top: 20px;
}

.p-cookieBanner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 1.25rem;
  padding-block: 1.25rem;
  padding-bottom: calc(1.25rem + env(safe-area-inset-bottom));
  background-color: rgba(57, 57, 57, 0.9);
  opacity: 0;
  transform: translateY(100%);
  visibility: hidden;
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.8s;
}
.p-cookieBanner.is-visible {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}
.p-cookieBanner.is-hidden {
  opacity: 0;
  transform: translateY(100%);
  visibility: hidden;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .p-cookieBanner {
    padding-inline: 2.5rem;
    padding-block: 1.5rem;
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
  }
}

.p-cookieBanner__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 100%;
  max-width: 50rem;
}
@media screen and (min-width: 768px) {
  .p-cookieBanner__inner {
    flex-direction: row;
    justify-content: space-between;
  }
}

.p-cookieBanner__text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-cookieBanner__text {
    font-size: 0.875rem;
    text-align: left;
  }
}
@media screen and (min-width: 768px) {
  .p-cookieBanner__text html[lang=en], html[lang=it] .p-cookieBanner__text {
    font-size: 0.9375rem;
  }
}

.p-cookieBanner__link {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.125rem;
  transition: opacity 0.3s ease;
}
.p-cookieBanner__link:hover {
  opacity: 0.8;
}

.p-cookieBanner__btns {
  display: flex;
  flex-shrink: 0;
  gap: 0.75rem;
  align-items: center;
}

.p-cookieBanner__btn {
  flex-shrink: 0;
  min-width: 7.5rem;
  padding-block: 0.75rem;
  padding-inline: 1.5rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
}
.p-cookieBanner__btn html[lang=en], html[lang=it] .p-cookieBanner__btn {
  font-size: 0.9375rem;
}
.p-cookieBanner__btn {
  line-height: 1;
  letter-spacing: 0.05em;
  color: #333;
  background-color: #fff;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.p-cookieBanner__btn:hover {
  opacity: 0.9;
}
.p-cookieBanner__btn:focus-visible {
  outline: 0.125rem solid #fff;
  outline-offset: 0.125rem;
}
.p-cookieBanner__btn--decline {
  color: #fff;
  background-color: transparent;
  border: 0.125rem solid #fff;
}
.p-cookieBanner__btn--decline:hover {
  opacity: 0.9;
}
.p-cookieBanner__btn--decline:focus-visible {
  outline: 0.125rem solid #fff;
  outline-offset: 0.125rem;
}

.p-footer {
  background-color: #393939;
}

.p-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.71875rem;
  padding-block: 2.09375rem 1.9375rem;
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
.p-footer__inner .p-footer__lang {
  order: 1;
}
.p-footer__inner .p-footer__left {
  order: 2;
}
@media screen and (min-width: 768px) {
  .p-footer__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 0;
    max-width: 71.875rem;
    margin-inline: auto;
    padding-block: 2.6875rem 2.125rem;
    padding-inline: 1.5625rem;
  }
  .p-footer__inner .p-footer__lang,
  .p-footer__inner .p-footer__left {
    order: 0;
  }
}

.p-footer__left {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 1.5rem;
}
@media screen and (min-width: 768px) {
  .p-footer__left {
    flex-direction: row;
    gap: 1.875rem;
  }
}

.p-footer__copyright {
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.075em;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .p-footer__copyright {
    font-size: 1.125rem;
    line-height: 1;
  }
}

.p-footer__separator {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-footer__separator {
    display: block;
    width: 0.0625rem;
    height: 0.875rem;
    background-color: #999999;
  }
}

.p-footer__privacyLink {
  position: relative;
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.075em;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 768px) {
  .p-footer__privacyLink {
    font-size: 1.125rem;
    line-height: 1;
  }
}
.p-footer__privacyLink:hover {
  opacity: 1;
}
.p-footer__privacyLink::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.1875rem;
  width: 100%;
  height: 0.0625rem;
  background-color: #fff;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}
.p-footer__privacyLink:hover::after {
  transform-origin: left;
  transform: scaleX(1);
}

.p-footer__lang {
  /* 日本語ページのみ言語切り替えを非表示（他言語公開時に削除） */
}
html[lang=ja] .p-footer__lang {
  display: none !important;
}
.p-footer__lang {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.p-footer__langLink {
  position: relative;
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
}
.p-footer__langLink html[lang=en], html[lang=it] .p-footer__langLink {
  font-size: 0.9375rem;
}
.p-footer__langLink {
  line-height: 1;
  letter-spacing: 0.075em;
  color: #fff;
  text-decoration: none;
}
@media screen and (min-width: 768px) {
  .p-footer__langLink {
    font-size: 1.125rem;
    line-height: 1;
  }
  .p-footer__langLink html[lang=en], html[lang=it] .p-footer__langLink {
    font-size: 1.125rem;
  }
}
.p-footer__langLink {
  transition: opacity 0.3s ease;
}
.p-footer__langLink:hover {
  opacity: 1;
}
.p-footer__langLink::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.1875rem;
  width: 100%;
  height: 0.0625rem;
  background-color: #fff;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}
.p-footer__langLink:hover::after {
  transform-origin: left;
  transform: scaleX(1);
}

.p-footer__langLink--disabled {
  pointer-events: none;
  cursor: default;
}

.p-footer__langSeparator {
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
}
.p-footer__langSeparator html[lang=en], html[lang=it] .p-footer__langSeparator {
  font-size: 0.9375rem;
}
.p-footer__langSeparator {
  line-height: 1;
  letter-spacing: 0.075em;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .p-footer__langSeparator {
    font-size: 1.125rem;
    line-height: 1;
  }
  .p-footer__langSeparator html[lang=en], html[lang=it] .p-footer__langSeparator {
    font-size: 1.125rem;
  }
}

body.is_menuOpen {
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  body.is_menuOpen .p-header__lang:not(.p-header__lang--overlay) {
    display: none;
  }
}
body.is_menuOpen .p-header__logo,
body.is_menuOpen .p-header__hamburger {
  position: relative;
  z-index: 10001;
}
@media screen and (max-width: 1023px) {
  body.is_menuOpen .p-header__logo {
    display: none;
  }
}

.p-header {
  position: relative;
  height: 100%;
}

.p-header__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 4.5rem;
  padding-top: 0.78125rem;
  padding-right: 0.75rem;
  padding-bottom: 0.78125rem;
  padding-left: 1rem;
}
@media screen and (min-width: 1024px) {
  .p-header__top {
    align-items: start;
    min-height: 6.25rem;
    margin-top: 3.0625rem;
    padding-top: 0rem;
    padding-right: 3.875rem;
    padding-bottom: 0rem;
    padding-left: 2.8125rem;
  }
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__top {
    align-items: center;
    margin-top: 0;
    padding-top: 0rem;
    padding-bottom: 0rem;
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .p-header__top {
    min-height: 6.25rem;
    height: 6.25rem;
    margin-top: 3.125rem;
    padding-top: 0rem;
    padding-bottom: 0rem;
    align-items: flex-start;
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .l-header.is-scrolled .p-header__top {
    align-items: center;
    margin-top: 0;
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .p-header__logo::before,
  body.is-privacyPage .p-header__logo::after {
    height: 5.5rem;
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .p-header__logoImg {
    width: 10.375rem;
    height: 5.5rem;
  }
}

.p-header__logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-header__logo::before,
.p-header__logo::after {
  content: "";
  display: block;
  width: 0.0625rem;
  height: 2.8125rem;
  background-color: #646464;
}
@media screen and (min-width: 1024px) {
  .p-header__logo::before,
  .p-header__logo::after {
    height: 5.5rem;
  }
}

.p-header__logoLink {
  display: block;
  padding-inline: 0;
  text-decoration: none;
}

.p-header__logoImg {
  display: block;
  width: auto;
  height: 2.8125rem;
}
@media screen and (min-width: 1024px) {
  .p-header__logoImg {
    width: 10.375rem;
    height: 5.5rem;
  }
}

.p-header__logoText {
  display: none;
}

.p-header__logoTextOverlay {
  display: none;
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__logoImg {
    display: none;
  }
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__logoText {
    display: block;
    font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
    font-size: 1.875rem;
    font-weight: 400;
    letter-spacing: 0.3em;
    color: #333;
  }
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__logo::before,
  .l-header.is-scrolled .p-header__logo::after {
    display: none;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__menuOverlay {
    display: contents;
  }
}

@media screen and (max-width: 1023px) {
  .p-header__menuOverlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    min-height: 100vh;
    padding-top: 4.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-bottom: 2.5rem;
    background-color: #F6F6F6;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 2.5rem;
    clip-path: inset(0 0 100% 0);
    transition: clip-path 0.3s ease-out;
    overflow-y: auto;
  }
  .p-header__menuOverlay.is-open {
    clip-path: inset(0 0 0 0);
  }
  .p-header__menuOverlay.is-closingInstantly {
    transition: none;
  }
  .p-header__menuOverlay.is-closingInstantly[aria-hidden=true] {
    transition: none;
  }
  .p-header__menuOverlay[aria-hidden=true] {
    visibility: hidden;
    pointer-events: none;
    transition: clip-path 0.3s ease-out, visibility 0s linear 0.3s;
  }
  .p-header__menuOverlay[aria-hidden=false] {
    visibility: visible;
    pointer-events: auto;
    transition: clip-path 0.3s ease-out, visibility 0s linear 0s;
  }
}
.p-header__nav {
  display: none;
}
@media screen and (min-width: 1024px) {
  .p-header__nav {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-header__menuOverlay .p-header__nav {
    display: block;
    width: 70%;
  }
  .p-header__menuOverlay .p-header__navList {
    flex-direction: column;
    gap: 0;
    animation: none;
    width: 100%;
  }
  .p-header__menuOverlay .p-header__navItem {
    width: 100%;
    box-sizing: border-box;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    text-align: center;
  }
  .p-header__menuOverlay .p-header__navItem .p-header__navLink:not(.p-header__navLink--insta) {
    display: block;
    width: 100%;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    box-sizing: border-box;
  }
  .p-header__menuOverlay .p-header__navItem:last-child {
    display: flex;
    justify-content: center;
    border-bottom: none;
  }
  .p-header__menuOverlay .p-header__navLink {
    color: #333;
  }
  .p-header__menuOverlay .p-header__navLink--insta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    padding: 1rem 1.5rem;
    margin-top: 1.5rem;
    background: #fff;
    border: none;
    border-radius: 0;
    box-sizing: border-box;
  }
  .p-header__menuOverlay .p-header__navLink--insta:hover {
    background: #fff;
    opacity: 0.9;
  }
  .p-header__menuOverlay .p-header__navLink--insta .p-header__instaIconWrap {
    position: relative;
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    background: #333;
    border-radius: 50%;
  }
  .p-header__menuOverlay .p-header__navLink--insta .p-header__instaIcon {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.625rem;
    height: 0.625rem;
    margin: 0;
    padding: 0;
    aspect-ratio: 1/1;
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: center center;
       object-position: center center;
    filter: brightness(0) invert(1);
    transform: translate(-50%, -50%);
  }
  .p-header__menuOverlay .p-header__navLink--insta .p-header__instaText {
    display: inline;
    font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
  }
  .p-header__menuOverlay .p-header__navLink--insta .p-header__instaText html[lang=en], html[lang=it] .p-header__menuOverlay .p-header__navLink--insta .p-header__instaText {
    font-size: 0.9375rem;
  }
  .p-header__menuOverlay .p-header__navLink--insta .p-header__instaText {
    line-height: 1.5;
    letter-spacing: 0.1em;
    color: #333;
    vertical-align: 0.075rem;
  }
}
.p-header__navList {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media screen and (min-width: 1024px) {
  .p-header__navList {
    opacity: 0;
    animation: fadeIn 2.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  }
}
@media screen and (min-width: 1024px) {
  body.is-privacyPage .p-header__navList {
    opacity: 1;
    animation: none;
  }
}

.p-header__navLink {
  position: relative;
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 1.1875rem;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.05em;
  transition: color 0.3s ease;
}
@media screen and (min-width: 1024px) {
  .p-header__navLink:not(.p-header__navLink--insta) {
    display: inline-flex;
    align-items: center;
    min-height: 2.625rem;
    transform: translateY(0.125rem);
  }
}
.p-header__navLink:hover {
  color: #fff;
  opacity: 1;
}
.p-header__navLink::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.1875rem;
  width: 100%;
  height: 0.0625rem;
  background-color: #fff;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}
.p-header__navLink:hover::after {
  transform-origin: left;
  transform: scaleX(1);
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__navLink {
    color: #333;
  }
  .l-header.is-scrolled .p-header__navLink:hover {
    color: #333;
    opacity: 1;
  }
  .l-header.is-scrolled .p-header__navLink::after {
    background-color: #333;
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .l-header:not(.is-scrolled) .p-header__navLink:not(.p-header__navLink--insta) {
    color: #333;
  }
  body.is-privacyPage .l-header:not(.is-scrolled) .p-header__navLink:not(.p-header__navLink--insta):hover {
    color: #333;
    opacity: 1;
  }
  body.is-privacyPage .l-header:not(.is-scrolled) .p-header__navLink:not(.p-header__navLink--insta)::after {
    background-color: #333;
  }
}

.p-header__navLink--insta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.625rem;
  height: 2.625rem;
  background: #fff;
  border-radius: 50%;
  transition: background-color 0.3s ease, opacity 0.6s ease;
}
@media screen and (min-width: 1024px) {
  .p-header__navLink--insta {
    margin-top: 0;
  }
}
@media screen and (max-width: 1023px) {
  .p-header__navLink--insta {
    margin-top: 1rem;
  }
}
.p-header__navLink--insta:hover {
  background: #fff;
  opacity: 0.8;
}
.p-header__navLink--insta::after {
  display: none;
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__navLink--insta {
    background: #393939;
    border: none;
  }
  .l-header.is-scrolled .p-header__navLink--insta:hover {
    background: rgba(57, 57, 57, 0.8);
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .l-header:not(.is-scrolled) .p-header__navLink--insta {
    background: #393939;
    border: none;
  }
  body.is-privacyPage .l-header:not(.is-scrolled) .p-header__navLink--insta:hover {
    background: rgba(57, 57, 57, 0.8);
  }
}

@media screen and (min-width: 1024px) {
  body.is-privacyPage .l-header:not(.is-scrolled) .p-header__instaIcon {
    filter: brightness(0) invert(1);
  }
}

.p-header__instaIcon {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
  filter: brightness(0);
  transition: filter 0.3s ease;
}

.p-header__instaText {
  display: none;
}

@media screen and (min-width: 1024px) {
  .p-header__navLink--insta .p-header__instaIconWrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: transparent;
    border-radius: 50%;
  }
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__instaIcon {
    filter: brightness(0) invert(1);
  }
}

.p-header__hamburger {
  position: relative;
  flex-shrink: 0;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3125rem;
  width: 2.03125rem;
  height: 2.03125rem;
  padding: 0;
  background: #393939;
  border: none;
  border-radius: 50%;
  cursor: pointer;
}
@media screen and (min-width: 1024px) {
  .p-header__hamburger {
    display: none;
  }
}

.p-header__hamburgerLine {
  display: block;
  width: 0.75rem;
  height: 0.0625rem;
  background: #fff;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}

.p-header__hamburgerLine + .p-header__hamburgerLine {
  margin-top: 0;
}

.p-header__hamburger.is-open {
  background: #333;
}

.p-header__hamburger.is-open .p-header__hamburgerLine {
  background: #fff;
}

.p-header__hamburger.is-open .p-header__hamburgerLine:first-child {
  transform: translateY(0.1875rem) rotate(45deg);
}

.p-header__hamburger.is-open .p-header__hamburgerLine:last-child {
  transform: translateY(-0.1875rem) rotate(-45deg);
}

.p-header__lang {
  /* 日本語ページのみ言語切り替えを非表示（他言語公開時に削除） */
}
html[lang=ja] .p-header__lang {
  display: none !important;
}
.p-header__lang {
  flex: 1;
  min-width: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-left: 1.46875rem;
}
@media screen and (min-width: 1024px) {
  .p-header__lang {
    flex: none;
    margin-left: 0;
    position: absolute;
    top: 13.4375rem;
    right: 0;
    width: 3.5rem;
    height: 10.6875rem;
    padding: 0;
    background-color: #fff;
    overflow: hidden;
  }
}

@media screen and (min-width: 1024px) {
  .l-header.is-scrolled .p-header__lang {
    display: none;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__lang--overlay {
    display: none;
  }
}

.p-header__langList {
  display: flex;
  align-items: center;
  gap: 0;
}
@media screen and (min-width: 1024px) {
  .p-header__langList {
    display: block;
    gap: 0;
    width: 100%;
    padding: 0;
    overflow: hidden;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__langItem {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    background-color: #333;
    transition: background-color 0.6s ease;
    overflow: hidden;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__langItem.is-hovered {
    background-color: rgba(51, 51, 51, 0.8);
  }
}

.p-header__langItem:not(:last-child)::after {
  content: "/";
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 0.84375rem;
  color: #333;
}
@media screen and (min-width: 1024px) {
  .p-header__langItem:not(:last-child)::after {
    content: "";
    display: block;
    width: 1.4375rem;
    max-width: 100%;
    height: 1px;
    margin-inline: auto;
    margin-top: 0rem;
    background: #666666;
    opacity: 1;
    transition: opacity 0.3s ease;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__langItem.is-hovered:not(:last-child)::after {
    opacity: 0;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__langItem.is-hovered-to-next:not(:last-child)::after {
    opacity: 0;
  }
}

@media screen and (min-width: 1024px) {
  .p-header__langItem:not(:first-child) {
    margin-top: 0rem;
  }
}

.p-header__langLink {
  font-family: "Jost", sans-serif, "Noto Sans JP", sans-serif;
  font-size: 0.84375rem;
  font-weight: 500;
  color: #333;
  letter-spacing: 0.05em;
  transition: background-color 0.6s ease;
  box-sizing: border-box;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.p-header__langItem:first-child .p-header__langLink {
  padding-left: 0;
}
.p-header__langItem:last-child .p-header__langLink {
  padding-right: 0;
}
@media screen and (min-width: 1024px) {
  .p-header__langLink {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 3.5625rem;
    padding: 0;
    margin: 0;
    font-size: 1.1875rem;
    color: rgba(255, 255, 255, 0.8);
    background-color: transparent;
    text-decoration: none;
  }
}

.p-header__langLink--disabled {
  pointer-events: none;
  cursor: default;
}

.p-history {
  background-color: #fff;
  padding-block: 0rem;
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .p-history {
    padding-block: 6.25rem 0rem;
  }
}

.p-history__inner {
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-history__inner {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: clamp(2.5rem, 11.82%, 8.125rem);
    max-width: 68.75rem;
    padding-inline: 2.5rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-history__inner {
    padding-inline: 0;
  }
}

.p-history__sectionTitle {
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 768px) {
  .p-history__sectionTitle {
    flex-shrink: 0;
    margin-bottom: 0;
    font-size: 2.5rem;
  }
}

.p-history__list {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}
@media screen and (min-width: 768px) {
  .p-history__list {
    flex: 1;
    border-top: none;
  }
}

.p-history__item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-block: 1.25rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
@media screen and (min-width: 768px) {
  .p-history__item {
    border-bottom: none;
    flex-direction: row;
    align-items: flex-start;
    gap: 2.5rem;
    padding-top: 0;
    padding-bottom: 1.5rem;
  }
}

.p-history__year {
  font-family: "Jost", sans-serif;
  font-size: 1.25rem;
  font-weight: 400;
  color: #999999;
  flex-shrink: 0;
  letter-spacing: 0.01rem;
}
@media screen and (min-width: 768px) {
  .p-history__year {
    font-size: 1.875rem;
  }
}

.p-history__text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  line-height: 2;
  color: #333;
  letter-spacing: 0.025rem;
}
.p-history__text html[lang=en], html[lang=it] .p-history__text {
  font-size: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .p-history__text {
    font-size: 1.125rem;
  }
  .p-history__text html[lang=en], html[lang=it] .p-history__text {
    font-size: 1.125rem;
  }
}

.p-mv {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.p-mv__inner {
  display: flex;
  flex-direction: column-reverse;
}
@media screen and (min-width: 768px) {
  .p-mv__inner {
    flex-direction: row;
    align-items: flex-start;
  }
}

.p-mv__content {
  display: flex;
  align-items: center;
  overflow: visible;
  width: 100%;
  padding-block: 18.8% 2.1875rem;
  padding-inline: 1.875rem;
  background-color: #fff;
}
.p-mv__content html[lang=en], html[lang=it] .p-mv__content {
  padding-block: 20.8% 2.1875rem;
}
@media screen and (min-width: 768px) {
  .p-mv__content html[lang=en], html[lang=it] .p-mv__content {
    padding-block: 16.8% 2.1875rem;
  }
}
@media screen and (min-width: 768px) {
  .p-mv__content {
    width: 40.71%;
    min-height: 100%;
    position: relative;
    z-index: 2;
    align-items: flex-start;
    padding-left: 8.6805555556vw;
    padding-right: 2.7777777778vw;
    padding-block: 21.2vw 2.1875rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1440px) and (max-width: 1679px) {
  .p-mv__content {
    padding-block: 24.5vw 2.1875rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1680px) {
  .p-mv__content {
    padding-block: 13.5vw 2.1875rem;
  }
}
@media screen and (min-width: 768px) and (max-height: 1000px) {
  .p-mv__content {
    padding-block: min(24.5vw, 25.5vh) 2.1875rem;
  }
  .p-mv__content [lang=en], [lang=it] .p-mv__content {
    padding-block: min(21.5vw, 25.5vh) 2.1875rem;
  }
}
@media screen and (min-width: 768px) and (max-height: 1000px) and (min-width: 1367px) and (max-width: 1440px) {
  .p-mv__content {
    padding-block: min(30vw, 31vh) 2.1875rem;
  }
}

.p-mv__textContent {
  width: 100%;
  max-width: 30rem;
  overflow: visible;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-mv__textContent {
    margin-inline: 0;
  }
  .p-mv__textContent html[lang=en], html[lang=it] .p-mv__textContent {
    max-width: 35rem;
  }
}

.p-mv__headline {
  font-family: "Noto Sans JP", sans-serif;
}
.p-mv__headline html[lang=en], html[lang=it] .p-mv__headline {
  font-family: "Jost", sans-serif;
  line-height: 1.4;
}
.p-mv__headline {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.05em;
  color: #333;
  text-align: left;
  font-size: clamp(1.625rem, 6.4vw, 1.75rem);
  letter-spacing: -0.025em;
  line-height: 2.5rem;
  opacity: 0;
  animation: fadeInUp 2.2s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
}
@media screen and (max-width: 374px) {
  .p-mv__headline {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 600px) and (max-width: 767px) {
  .p-mv__headline {
    font-size: 2.5rem;
    line-height: 3.625rem;
  }
}
@media screen and (min-width: 768px) {
  .p-mv__headline {
    font-size: clamp(2rem, 3.33vw, 3.5rem);
    letter-spacing: 0.05em;
    line-height: 1.45;
  }
}
@media screen and (min-width: 768px) and (min-width: 1024px) and (max-width: 1399px) {
  .p-mv__headline {
    font-size: 2.5625rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1360px) and (max-width: 1439px) {
  .p-mv__headline {
    font-size: 2.375rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1920px) {
  .p-mv__headline {
    font-size: 3.5rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1920px) and (min-width: 2560px) {
  .p-mv__headline {
    font-size: 4.5rem;
  }
}
html[lang=it] .p-mv__headline {
  font-size: clamp(1.5rem, 5.8vw, 1.625rem);
}
@media screen and (min-width: 600px) and (max-width: 767px) {
  html[lang=it] .p-mv__headline {
    font-size: 2.25rem;
  }
}
@media screen and (min-width: 768px) {
  html[lang=it] .p-mv__headline {
    font-size: clamp(1.75rem, 2.5vw, 2.5rem);
  }
}
@media screen and (min-width: 768px) and (min-width: 1024px) and (max-width: 1399px) {
  html[lang=it] .p-mv__headline {
    font-size: 2.25rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1360px) and (max-width: 1439px) {
  html[lang=it] .p-mv__headline {
    font-size: 2.125rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1920px) {
  html[lang=it] .p-mv__headline {
    font-size: 2.5rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1920px) and (min-width: 2560px) {
  html[lang=it] .p-mv__headline {
    font-size: 2.75rem;
  }
}

.p-mv__description {
  padding-top: 1.25rem;
  margin-top: 0;
  font-family: "Noto Sans JP", sans-serif;
}
.p-mv__description html[lang=en], html[lang=it] .p-mv__description {
  font-family: "Jost", sans-serif;
  line-height: 1.55;
  font-size: 1.0625rem;
}
.p-mv__description {
  font-weight: 500;
  font-size: 0.9375rem;
  line-height: 1.875rem;
  letter-spacing: 0.05em;
  opacity: 0;
  animation: fadeInUp 2.2s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
}
@media screen and (min-width: 600px) and (max-width: 767px) {
  .p-mv__description {
    font-size: 1.125rem;
    line-height: 2.25rem;
  }
}
@media screen and (min-width: 768px) {
  .p-mv__description {
    padding-top: 0;
    margin-top: 1.25rem;
    font-size: 1rem;
    line-height: 2;
    font-weight: 500;
  }
}
@media screen and (min-width: 768px) and (min-width: 1920px) {
  .p-mv__description {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 768px) and (min-width: 1920px) and (min-width: 2560px) {
  .p-mv__description {
    font-size: 1.6875rem;
  }
}

.p-mv__accentImg {
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 2;
}

.p-mv__accentImg--sp {
  width: 64.8vw;
  height: 37.6vw;
  max-width: none;
  position: absolute;
  bottom: -27vw;
  right: -0.87%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
  animation: fadeInUpWithTranslateXSp 2.2s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
}
@media screen and (min-width: 768px) {
  .p-mv__accentImg--sp {
    display: none;
  }
}

.p-mv__accentImg--pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-mv__accentImg--pc {
    display: block;
    margin-left: auto;
    width: 33.357143vw;
    height: 19.071429vw;
    max-width: none;
    -o-object-fit: cover;
       object-fit: cover;
    position: relative;
    margin-top: -2.714286vw;
    opacity: 0;
    animation: fadeInUpWithTranslateXPc 2.2s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
  }
}
@media screen and (min-width: 768px) and (min-width: 1360px) and (max-width: 1439px) {
  .p-mv__accentImg--pc {
    width: 31.68928585vw;
    height: 18.11785755vw;
  }
}
@media screen and (min-width: 768px) and (min-width: 1360px) and (max-width: 1400px) {
  .p-mv__accentImg--pc {
    --accent-translate-x-pc: calc(4.5vw + 5px);
  }
}

.p-mv__visual {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  margin-inline: auto;
  margin-top: 4.375rem;
}
@media screen and (min-width: 768px) {
  .p-mv__visual {
    margin-top: 0;
    width: 59.29%;
    aspect-ratio: 830/1000;
    flex-shrink: 0;
    margin-inline: 0;
    position: relative;
    z-index: 1;
  }
}
@media screen and (min-width: 768px) and (max-width: 1280px) {
  .p-mv__visual {
    max-height: 95vh;
  }
}
@media screen and (min-width: 1281px) and (max-width: 1440px) {
  .p-mv__visual {
    max-height: 115vh;
  }
}
@media screen and (min-width: 1441px) and (max-width: 1679px) {
  .p-mv__visual {
    max-height: 100vh;
  }
}
@media screen and (min-width: 1680px) {
  .p-mv__visual {
    max-height: 100vh;
  }
}

.p-mv__visualImage {
  display: block;
  width: 100%;
  height: 100%;
}

.p-mv__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  opacity: 0;
  animation: fadeIn 2.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.u-br-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-br-pc {
    display: block;
  }
}

.u-nowrap {
  white-space: nowrap;
}

@media screen and (min-width: 768px) {
  .u-nowrap-pc {
    white-space: nowrap;
  }
}

.p-privacy {
  background-color: #fff;
  padding-block: 8.125rem 5rem;
}
@media screen and (min-width: 768px) {
  .p-privacy {
    padding-block: 17.1875rem 7.5rem;
  }
}

.p-privacy__inner {
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__inner {
    max-width: 50rem;
    padding-inline: 2.5rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-privacy__inner {
    padding-inline: 0;
  }
}

.p-privacy__mainTitle {
  font-family: "Jost", sans-serif;
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.075em;
  color: #333;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 0.5rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__mainTitle {
    font-size: 3rem;
    line-height: 0.858125;
    margin-bottom: 2.4375rem;
  }
}
.p-privacy__mainTitle--cookie {
  margin-top: 3.75rem;
  text-transform: none;
}
@media screen and (min-width: 768px) {
  .p-privacy__mainTitle--cookie {
    margin-top: 7rem;
  }
}
.p-privacy__mainTitle--cookie {
  /* 英語版：サブタイトル削除時も余白を維持 */
}
.p-privacy__mainTitle--cookie html[lang=en], html[lang=it] .p-privacy__mainTitle--cookie {
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__mainTitle--cookie html[lang=en], html[lang=it] .p-privacy__mainTitle--cookie {
    margin-bottom: 3.75rem;
  }
}

.p-privacy__subTitle {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
}
.p-privacy__subTitle html[lang=en], html[lang=it] .p-privacy__subTitle {
  font-size: 0.9375rem;
}
.p-privacy__subTitle {
  line-height: 1.6;
  color: #333;
  text-align: center;
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__subTitle {
    font-size: 1rem;
    margin-bottom: 3.75rem;
  }
}

.p-privacy__section {
  margin-top: 2rem;
}
.p-privacy__section:first-of-type {
  margin-top: 0;
}
@media screen and (min-width: 768px) {
  .p-privacy__section {
    margin-top: 2.5rem;
  }
}

.p-privacy__sectionTitle {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  color: #333;
  margin-bottom: 0.75rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__sectionTitle {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
}

.p-privacy__text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #333;
}
.p-privacy__text html[lang=en], html[lang=it] .p-privacy__text {
  font-size: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__text {
    font-size: 0.9375rem;
  }
}

.p-privacy__section--contact {
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .p-privacy__section--contact {
    margin-top: 3.75rem;
  }
}

.p-privacy__contact {
  margin-top: 0.5rem;
}

.p-privacy__emailImg {
  display: inline-block;
  height: 1.125rem;
  width: auto;
  vertical-align: middle;
}
@media screen and (min-width: 768px) {
  .p-privacy__emailImg {
    height: 1.25rem;
  }
}

.p-profiles {
  background-color: #fff;
  padding-top: 3.625rem;
  padding-bottom: 3.1875rem;
}
@media screen and (min-width: 768px) {
  .p-profiles {
    padding-block: 8.625rem 8.75rem;
  }
}

.p-profiles__inner {
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media screen and (min-width: 768px) {
  .p-profiles__inner {
    max-width: 61.25rem;
    padding-inline: 2.5rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-profiles__inner {
    padding-inline: 0;
  }
}

.p-profiles__sectionTitle {
  text-align: center;
  margin-bottom: 2.1875rem;
}
@media screen and (min-width: 768px) {
  .p-profiles__sectionTitle {
    margin-bottom: 3.75rem;
  }
}

.p-profiles__list {
  display: flex;
  flex-direction: column;
  gap: 1.6875rem;
}
@media screen and (min-width: 768px) {
  .p-profiles__list {
    gap: 2.5rem;
  }
}

.p-profiles__item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 1.5rem;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-profiles__item {
    gap: 1.6875rem 1.5rem;
    align-items: center;
  }
}

.p-profiles__imageWrapper {
  grid-row: 1;
  grid-column: 1;
  width: 9.5rem;
  height: 7.125rem;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .p-profiles__imageWrapper {
    width: 15.125rem;
    height: 11.3125rem;
  }
}
.p-profiles__imageWrapper img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  filter: grayscale(100%);
}

.p-profiles__content {
  grid-row: 1;
  grid-column: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1875rem;
}
@media screen and (min-width: 768px) {
  .p-profiles__content {
    gap: 0;
  }
}

.p-profiles__role {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.8125rem;
  line-height: 1.5;
  letter-spacing: 0.046875rem;
  font-weight: 400;
  color: #333;
}
@media screen and (min-width: 768px) {
  .p-profiles__role {
    font-size: 1.1875rem;
    line-height: 1.5;
    letter-spacing: 0.046875rem;
  }
}

.p-profiles__nameBlock {
  display: flex;
  flex-direction: column;
  gap: 0;
}
@media screen and (min-width: 768px) {
  .p-profiles__nameBlock {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 0.875rem;
    margin-top: 0.625rem;
  }
}

.p-profiles__name {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.0625rem;
  font-weight: 500;
  color: #333;
}
.p-profiles__name html[lang=en], html[lang=it] .p-profiles__name {
  font-family: "Jost", sans-serif;
}
@media screen and (min-width: 768px) {
  .p-profiles__name {
    font-size: 1.625rem;
    line-height: 2.25rem;
    letter-spacing: 0.046875rem;
  }
}

.p-profiles__nameEn {
  font-family: "Jost", sans-serif;
  font-size: 0.75rem;
  line-height: 1.5;
  letter-spacing: 0.025em;
  font-style: normal;
  font-weight: 400;
  color: #999999;
  padding-top: 0.125rem;
}
@media screen and (min-width: 768px) {
  .p-profiles__nameEn {
    font-size: 1.25rem;
    padding-top: 0rem;
  }
}

.p-profiles__text {
  grid-row: 2;
  grid-column: 1/-1;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  line-height: 2;
}
.p-profiles__text html[lang=en], html[lang=it] .p-profiles__text {
  font-size: 0.9375rem;
}
.p-profiles__text {
  letter-spacing: 0.03rem;
  color: #333;
}
@media screen and (min-width: 768px) {
  .p-profiles__text {
    font-size: 1.0625rem;
    line-height: 2.375rem;
    letter-spacing: 0.046875rem;
  }
  .p-profiles__text html[lang=en], html[lang=it] .p-profiles__text {
    line-height: 2;
  }
}
.p-profiles__text p {
  margin: 0;
}

.p-service {
  background-color: #333;
  padding-top: 3.4375rem;
  padding-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .p-service {
    padding-top: 7.1875rem;
    padding-bottom: 8.75rem;
  }
}

.p-service__inner {
  max-width: 37.5rem;
  margin-inline: auto;
  padding-inline: 1.3125rem;
}
@media screen and (min-width: 768px) {
  .p-service__inner {
    max-width: 68.75rem;
    padding-inline: 2.5rem;
  }
}
@media screen and (min-width: 1300px) {
  .p-service__inner {
    padding-inline: 0;
  }
}

.p-service__sectionTitle {
  text-align: center;
  margin-bottom: 2.375rem;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .p-service__sectionTitle {
    margin-bottom: 3.75rem;
  }
}

.p-service__list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
@media screen and (min-width: 768px) {
  .p-service__list {
    gap: 0.625rem;
  }
}

.p-service__row {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
@media screen and (min-width: 768px) {
  .p-service__row {
    flex-direction: row;
    gap: 0.625rem;
  }
}

.p-service__item {
  flex: 1;
  background-color: #393939;
  padding: 2.21875rem 1.6875rem 2.375rem;
}
@media screen and (min-width: 768px) {
  .p-service__item {
    flex: 1;
    min-width: 0;
    min-height: 37.75rem;
    padding: 7.625rem 2.5rem 2.5rem;
    box-sizing: border-box;
  }
}

@media screen and (min-width: 768px) {
  .p-service__row .p-service__item:nth-of-type(1),
  .p-service__row .p-service__item:nth-of-type(2) {
    padding: 3rem 4.375rem 1.6875rem;
  }
}

@media screen and (min-width: 768px) {
  .p-service__item--full {
    flex: none;
    width: 100%;
    min-height: auto;
    padding: 3rem 4.375rem 3rem;
  }
}

.p-service__imageWrapper {
  overflow: hidden;
  margin-bottom: 1.3125rem;
  width: 13.1875rem;
  height: 8.8125rem;
  margin-inline: auto;
}
.p-service__imageWrapper img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-service__imageWrapper {
    width: 25.3125rem;
    height: 16.75rem;
    margin-inline: 0;
    margin-bottom: 1.5rem;
  }
}

.p-service__title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.28125rem;
  letter-spacing: 0.03125rem;
  color: #fff;
  margin-bottom: 0;
}
.p-service__row .p-service__item:nth-of-type(1) .p-service__title {
  text-align: center;
}
.p-service__row .p-service__item:nth-of-type(2) .p-service__title {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-service__title {
    font-size: 1.625rem;
    line-height: 2.5625rem;
    letter-spacing: 0.0625rem;
    margin-bottom: 1.125rem;
  }
}

.p-service__item--full .p-service__title {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-service__item--full .p-service__title {
    text-align: left;
  }
}

.p-service__text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  line-height: 1.8125rem;
}
.p-service__text html[lang=en], html[lang=it] .p-service__text {
  font-size: 0.9375rem;
}
.p-service__text {
  letter-spacing: 0.05rem;
  padding-top: 1.3125rem;
  color: rgba(255, 255, 255, 0.9);
}
@media screen and (min-width: 768px) {
  .p-service__text {
    font-size: 1.0625rem;
    line-height: 2.1;
    font-weight: 400;
    padding-top: 0;
  }
  .p-service__text html[lang=en], html[lang=it] .p-service__text {
    line-height: 2;
  }
}
/*# sourceMappingURL=style.css.map */
