@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600;700&display=swap");

@font-face {
  font-family: "Corporate Logo Ver2";
  src: url("fonts/Corporate-Logo-Bold-ver2.woff") format("woff");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --red: #e60022;
  --red_h: rgb(230 0 34 / 60%);
  --ink: #696969;
}
* {
  box-sizing: border-box;
}


.sp-only {
  display: none;
}
html {
  /*
   * フォントとremベースの余白をウィンドウ幅に追従させる。
   * コンテナ最大幅の1340pxで16px、SPに切り替わる650pxで13pxになる傾斜。
   * 1340px以上は16pxで頭打ち（＝カンプ実寸）。
   * rem を混ぜているので、ブラウザの文字サイズ設定にも追従する。
   */
  font-size: clamp(0.8125rem, 0.636rem + 0.4348vw, 1rem);
  background: #f0eced;
  scroll-behavior: smooth;

}
body {
  margin: 0;
  color: var(--ink);
  font-family: "IBM Plex Sans JP", sans-serif;
}



/* header */

/* 各セクションが z-index:100 まで使うので、ヘッダーは必ずその上に置く */
.global-header{
    z-index: 1000;
    position: relative;
}

.global-header-bg-color{
    background-color: var(--red_h);
}

/* 開閉ボタン：右上に固定した赤の正方形。開閉でアイコンだけ入れ替える */
.global-header__toggle {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 70px;
  height: 70px;
  padding: 0;
  border: 0;
  background: var(--red);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.global-header__toggle-icon {
  /* 2枚を重ねておき、切り替えでガタつかせない */
  grid-area: 1 / 1;
  display: block;
  height: auto;
}
.global-header__toggle-icon--open {
  width: 40px;
}
.global-header__toggle-icon--close {
  width: 31px;
}
.global-header__toggle[aria-expanded="false"] .global-header__toggle-icon--close,
.global-header__toggle[aria-expanded="true"] .global-header__toggle-icon--open {
  visibility: hidden;
}
.global-header__toggle-label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

/*
 * メニュー本体：右上に開く 380×320 の半透明パネル。
 * 「PC・SPとも同じ大きさ」の指定なので、ここだけは html の可変remから外して
 * px 固定にしてある（rem にするとウィンドウ幅で寸法が変わってしまう）。
 */
.global-nav {
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  width: 380px;
  height: 320px;
  /* 375px幅の端末で横に溢れさせない */
  max-width: 100vw;
  display: flex;
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
.global-nav.is-open {
  opacity: 1;
  visibility: visible;
}
.global-nav__inner {
  /* 短いときは中央、はみ出すときは上下に逃がして見切れさせない */
  margin: auto;
  width: 100%;
  padding: 0 20px;
  text-align: center;
}
.global-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.global-nav__list a {
  display: block;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
  transition: opacity 0.2s ease;
}
.global-nav__list a:hover,
.global-nav__list a:focus-visible {
  opacity: 0.6;
}

/* Xアイコン：白丸の中に赤いロゴをマスクで抜く */
.global-nav__sns {
  display: inline-grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin-top: 21px;
  border-radius: 50%;
  background: #fff;
  transition: opacity 0.2s ease;
}
.global-nav__sns::before {
  content: "";
  display: block;
  width: 20px;
  height: 20.44px;
  background: var(--red);
  -webkit-mask: url("../img/x-icon.svg") no-repeat center / contain;
  mask: url("../img/x-icon.svg") no-repeat center / contain;
}
.global-nav__sns:hover,
.global-nav__sns:focus-visible {
  opacity: 0.7;
}

@media (prefers-reduced-motion: reduce) {
  .global-nav,
  .global-nav__list a,
  .global-nav__sns {
    transition: none;
  }
}





/* footer */
.footer {
  z-index: 1;
  overflow: hidden;
  position: relative;
  background: #f0eced;
}
.footer {
  min-height: 16rem;
  display: grid;
  place-items: center;
  padding: 2rem;
  text-align: center;
}
.footer-content {
  position: relative;
  z-index: 1;
}
.footer p {
  color: var(--red);
  font-size: 1.25rem;
  font-weight: 700;
}
.x-link {
  display: inline-grid;
  width: 2.375rem;
  height: 2.375rem;
  place-items: center;
  border-radius: 50%;
  background: var(--red);
}
.x-link img {
  width: 1.125rem;
  filter: brightness(0) invert(1);
}
.footer-banner{
  margin-top: 3.625rem;
  display: flex;
  gap: 20px;
}
.copyright {
  margin-top: 3.625rem;
  color: #888;
  /* 最小級の文字は縮ませすぎない（11px下限） */
  font-size: max(0.6875rem, 11px);
  font-weight: 500;
  line-height: 1.8;
}


@media (max-width: 40.625rem) {
  .footer-banner{
    flex-direction: column;
  }
}