@charset "UTF-8";
/********************************
* 数値のみを取り出す
* 参照：https://css-tricks.com/snippets/sass/strip-unit-function/
********************************/
/********************************
* pxをremに変換する関数
* ※ リキッドレイアウトでは、remがhtmlのfont-sizeに連動してスケーリングされる
*
* ▼使い方
* .element {
*     font-size: rem(16);  // 16pxをremに変換
*     padding: rem(20);
* }
********************************/
/********************************
* 数値にpxをつける関数
********************************/
/********************************
* 画面幅を基準にしたvwを返す関数
*
* ▼使い方
* .element {
*     width: vw(375, 100);  // 375pxカンプで100pxの場合
* }
********************************/
/********************************
* pxをemに変換する関数（要素のfont-size基準）
* デザイン余白（px）÷ font-size（px）＝ em
*
* ▼使い方
* .element {
*     font-size: rem(16);
*     padding: em(10, 16);  // 10px ÷ 16px → 0.625em
*     padding: em(10);      // 第2引数省略時は16px基準
* }
********************************/
/********************************
* 裁ち落とし幅（inner-sum）を算出
*
* ▼ 基本: inner + 左右padding×2
* inner-sum(1200, 80)  → 1360
*
* ▼ 裁ち落としだけ別指定（第3引数・省略時 false）
* inner-sum(1200, 80, 1440)  → 1440
********************************/
/********************************
* フォント情報
********************************/
/********************************
* color
********************************/
/********************************
* カラー変数について
* 
* SCSS変数（$color-*）とCSS変数（:root --color-*）の比較
* 
* 【SCSS変数のメリット】
* - コンパイル時に処理される（パフォーマンス良好）
* - IDE補完が効く
* - ミックスイン・関数内で使用可能
* 
* 【CSS変数のメリット】
* - JavaScriptからアクセス・変更可能（テーマ切り替えなど）
* - ランタイムで変更可能
* - 開発者ツールで確認・デバッグしやすい
* - 将来的な拡張性が高い
* 
* このプロジェクトではCSS変数（:root）を採用

▼使い方
.header {
    background-color: var(--color-blue);
}
********************************/
:root {
  --color-white: #fff;
  --color-black: #231815;
}

/********************************
* color
********************************/
:root {
  --base-size: calc(100vw / 375);
}

@media (min-width: 375px) {
  :root {
    --base-size: 1px;
  }
}
@media (min-width: 768px) {
  :root {
    --base-size: calc(100vw / 1120);
  }
}
@media (min-width: 1120px) {
  :root {
    --base-size: 1px;
  }
}
html {
  font-size: calc(16 / 375 * 100vw);
}
@media (min-width: 375px) {
  html {
    font-size: 16px;
  }
}
@media (min-width: 768px) {
  html {
    font-size: calc(16 / 1120 * 100vw);
  }
}
@media (min-width: 1120px) {
  html {
    font-size: 16px;
  }
}

* {
  box-sizing: border-box;
}

html,
body {
  overflow-x: hidden;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  color: #313131;
}

textarea {
  resize: none;
}

a {
  text-decoration: none;
  transition: 0.3s;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}

picture,
img,
a,
span {
  display: inline-block;
}

video,
img,
svg {
  width: 100%;
  height: 100%;
}

button {
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

input,
textarea,
select {
  font: inherit;
}

@media (min-width: px(768)) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
/*----------------------------------
  Cloudflare Turnstile デフォルトスタイル調整
-----------------------------------*/
.cf-turnstile {
  display: block;
  text-align: center;
}

/********************************
* header
********************************/
.l-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  padding-inline: 40px;
  background: #001a75;
}

.l-header__inner {
  display: grid;
  grid-template-columns: 150px 1fr;
  align-items: center;
  padding-block: 17px;
}

.l-header__nav {
  display: none;
}
@media (min-width: 1200px) {
  .l-header__nav {
    display: flex;
    align-items: center;
    justify-content: end;
    -moz-column-gap: 60px;
         column-gap: 60px;
  }
}

.l-header__list {
  display: flex;
  align-items: center;
  -moz-column-gap: 32px;
       column-gap: 32px;
}
.l-header__list li a {
  color: #fff;
  font-size: 20px;
}

.l-header__btn {
  padding: 8px 26px;
  background: #fff;
  border: 1px solid #fff;
  color: #001a75;
  font-size: 20px;
  border-radius: 100vmax;
  transition: all 0.3s ease;
}
@media (any-hover: hover) {
  .l-header__btn:hover {
    background: transparent;
    color: #fff;
  }
}

/********************************
* drawer icon
********************************/
.l-drawer__icon {
  position: fixed;
  z-index: 102;
  top: 12px;
  right: 20px;
  width: 24px;
  height: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 1200px) {
  .l-drawer__icon {
    display: none;
  }
}

.l-drawer__icon--bar {
  width: 100%;
  height: 1px;
  background: #fff;
  transition: all 0.3s ease;
}

.l-drawer__icon.js-show .l-drawer__icon--bar:nth-of-type(1) {
  rotate: 45deg;
  translate: 0 7.5px;
}
.l-drawer__icon.js-show .l-drawer__icon--bar:nth-of-type(2) {
  display: none;
}
.l-drawer__icon.js-show .l-drawer__icon--bar:nth-of-type(3) {
  rotate: -45deg;
  translate: 0 -7.5px;
}

.l-drawer {
  position: fixed;
  z-index: 101;
  top: 0;
  right: 0;
  width: 278px;
  height: 100vh;
  height: 100svh;
  background: #001a75;
  overflow-y: scroll;
  translate: 101%;
  transition: translate 0.5s ease;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.35) #001a75;
}
.l-drawer::-webkit-scrollbar {
  width: 6px;
}
.l-drawer::-webkit-scrollbar-track {
  background: #001a75;
}
.l-drawer::-webkit-scrollbar-thumb {
  background: rgba(253, 236, 236, 0.35);
  border-radius: 3px;
}
.l-drawer.js-show {
  translate: 0;
}

.l-drawer__body {
  width: 100%;
  height: -moz-fit-content;
  height: fit-content;
  padding-block: 88px 40px;
  padding-left: 34px;
}

.l-drawer__list {
  display: flex;
  flex-direction: column;
  row-gap: 32px;
  margin-bottom: 40px;
}
.l-drawer__list li a {
  color: #fff;
  font-size: 20px;
  font-weight: 400;
  line-height: normal;
}

.l-drawer__btn {
  display: inline-block;
  padding: 6px 30px;
  background: #fff;
  border-radius: 100vmax;
  color: #001a75;
  font-size: 20px;
  font-weight: 400;
  line-height: normal;
}

.l-inner {
  position: relative;
  width: 100%;
  max-width: 640px;
  height: inherit;
  padding-inline: 1.25rem;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .l-inner {
    max-width: 1120px;
    padding-inline: 2.5rem;
  }
}

.l-inner__narrow {
  max-width: 600px;
  padding-inline: 1.25rem;
}
@media (min-width: 768px) {
  .l-inner__narrow {
    max-width: 50rem;
  }
}

body {
  min-height: 100svh;
  background: linear-gradient(90deg, #f1f1f1 0%, #f1f1f1 78%, #fdfeb4 100%);
}

/********************************
* coming soon（トップページ）
********************************/
.p-coming-soon {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100svh;
  padding: 3.875rem 1.25rem 2rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .p-coming-soon {
    padding: 1.9375rem 2.5rem 2.5rem;
  }
}

.p-coming-soon__brand {
  font-family: "Montserrat", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  text-transform: uppercase;
  color: #1a1a1a;
  align-items: center;
  padding-block-end: clamp(6.25rem, 64.2666666667vw, 17.0625rem);
}
@media (min-width: 768px) {
  .p-coming-soon__brand {
    padding-block-end: 0;
  }
}

.p-coming-soon__time {
  display: none;
}
@media (min-width: 768px) {
  .p-coming-soon__time {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1.6875rem;
    display: flex;
    align-items: center;
  }
}

.p-coming-soon__time span {
  display: block;
  width: 6.375rem;
  transform: rotate(90deg);
  font-family: "Montserrat", sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
  text-align: center;
  color: #1a1a1a;
  white-space: nowrap;
}

.p-coming-soon__body {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .p-coming-soon__body {
    gap: 4.8125rem;
    flex-direction: row;
  }
}

.p-coming-soon__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.8125rem;
  margin-inline: -1rem 0;
}
@media (min-width: 768px) {
  .p-coming-soon__content {
    gap: 1.5rem;
    margin-inline: 0rem 3.1875rem;
    margin-block-start: -1rem;
  }
}

.p-coming-soon__heading {
  font-family: "Montserrat", sans-serif;
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 1;
  color: #1a1a1a;
}
@media (min-width: 768px) {
  .p-coming-soon__heading {
    font-size: 3rem;
  }
}

.p-coming-soon__text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #1a1a1a;
}
@media (min-width: 768px) {
  .p-coming-soon__text {
    font-size: 0.8125rem;
    line-height: 1.7;
    padding-block-end: 0.5rem;
  }
}

.p-coming-soon__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  padding: 0.4em 0.9em;
  line-height: 1;
  border: 1px solid #1a1a1a;
  border-radius: 999px;
}

.p-coming-soon__link img {
  width: 0.6875rem;
  height: 0.4375rem;
  transform: rotate(180deg);
}

.p-coming-soon__illust {
  position: absolute;
  top: 9.375rem;
  right: -0.9375rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (min-width: 768px) {
  .p-coming-soon__illust {
    position: relative;
    top: auto;
    right: 2.25rem;
    flex-shrink: 0;
    margin-block-start: 2rem;
  }
}

.p-coming-soon__badge {
  position: absolute;
  display: inline-flex;
  align-items: center;
  padding: 0.55em 1em 0.65em 1.4em;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
  background-color: #797a86;
  border-radius: 999px;
  margin-bottom: 0.75rem;
  top: min(-0.2666666667vw, 0.625rem);
  right: min(21.0666666667vw, 6.5625rem);
}
@media (min-width: 768px) {
  .p-coming-soon__badge {
    font-size: 0.8125rem;
    top: -2.375rem;
    right: -2.125rem;
  }
}

.p-coming-soon__badge::after {
  content: "";
  position: absolute;
  right: 0.625rem;
  bottom: -0.5rem;
  width: 0.5rem;
  height: 0.8125rem;
  background-color: #797a86;
  border-radius: 20px;
  transform: rotate(-30deg);
}
@media (min-width: 768px) {
  .p-coming-soon__badge::after {
    transform: rotate(0);
    right: 4.375rem;
  }
}

.p-coming-soon__illust-line {
  width: 5.5rem;
  height: 0.125rem;
}

.p-coming-soon__cat-frame {
  width: 4.0625rem;
}
@media (min-width: 768px) {
  .p-coming-soon__cat-frame {
    width: 4.9375rem;
  }
}

.p-coming-soon__cat {
  width: 100%;
  height: auto;
  aspect-ratio: 65/70;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (min-width: 768px) {
  .p-coming-soon__cat {
    aspect-ratio: 79/145;
  }
}

.p-coming-soon__social {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.5rem;
}
@media (min-width: 768px) {
  .p-coming-soon__social {
    position: absolute;
    top: 0;
    right: -1.3125rem;
    bottom: 0;
    justify-content: center;
    margin-top: 0;
  }
}

.p-coming-soon__social-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
@media (min-width: 768px) {
  .p-coming-soon__social-link {
    flex-direction: row;
    transform: rotate(90deg);
  }
}

.p-coming-soon__social-text {
  font-family: "Montserrat", sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
}

.p-coming-soon__social-icon {
  width: 0.875rem;
  height: auto;
}

.u-sp {
  display: block !important;
}
@media (min-width: 768px) {
  .u-sp {
    display: none !important;
  }
}

.u-pc {
  display: none !important;
}
@media (min-width: 768px) {
  .u-pc {
    display: block !important;
  }
}

.u-font {
  font-family: "Noto Sans JP", sans-serif;
}
.u-font__jp {
  font-family: "Noto Sans JP", sans-serif;
}
.u-font__en {
  font-family: "Montserrat", sans-serif;
}

.u-pointer__none {
  pointer-events: none !important;
}

@media (min-width: 768px) {
  .u-pointer__none--pc {
    pointer-events: none !important;
  }
}
.u-text__center {
  text-align: center !important;
}

.u-text__left {
  text-align: left !important;
}

.u-text__right {
  text-align: right !important;
}

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

@media (min-width: 768px) {
  .u-text__center--pc {
    text-align: center !important;
  }
  .u-text__left--pc {
    text-align: left !important;
  }
  .u-text__right--pc {
    text-align: right !important;
  }
  .u-text__nowrap--pc {
    white-space: nowrap;
  }
}
/*# sourceMappingURL=style.css.map */
