/* ---------- スマホでの横方向の暴れだけを抑える(縦のバウンスは許可) ---------- */
html, body{
  overflow-x: hidden;
}

/* ---------- 0. フッターナビ専用フォント(Mazzard H、自前ホスティング) ---------- */
@font-face{
  font-family: "Mazzard H";
  src: url("../font/MazzardH-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Mazzard H";
  src: url("../font/MazzardH-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* ---------- 1. デザイントークン（色・アニメーション速度など） ---------- */
:root{
  --ahf-bg:            #030303;   /* 背景色（黒） */
  --ahf-color:         #fffcff;   /* 基本文字色（白） */
  --ahf-cb2:           #030303;
  --ahf-cb3:           #161616;
  --ahf-cb4:           #212121;   /* ヘッダー背景・カード背景 */
  --ahf-cb5:           #202020;
  --ahf-cb6:           #333333;   /* ボーダー・ホバー背景 */
  --ahf-cw2:           #fffcff;
  --ahf-cd1:           #cccccc;
  --ahf-cd2:           #d1d2d1;
  --ahf-ch1:           #7c7b7c;   /* 非アクティブ文字色 */
  --ahf-cy1:           #fce221;   /* アクセントカラー（黄色） */

  --ahf-tr-time: .3s;
  --ahf-tr-ease: ease-in-out;
  --ahf-tr: var(--ahf-tr-time) var(--ahf-tr-ease); /* 全体共通のトランジション */

  --ahf-ff-main: "Google Sans Flex", "Noto Sans JP", sans-serif;
  --ahf-ff-heading: "Google Sans Flex", "Noto Sans JP", sans-serif;

  --ahf-fluid: clamp(11.37778px, calc(100vw / 90), 16px);
}

.ahf-mobmenu{ height: calc(var(--vh, 1vh) * 100); }

/* ---------- 2. ヘッダー全体 ---------- */
.header{
  position: fixed;
  inset-inline: 0;
  inset-block-start: 0;
  z-index: 1100;
  color: var(--ahf-cw2);
  font-family: var(--ahf-ff-main);
  font-optical-sizing: auto;
  font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0, "ROND" 0;
  transition: transform var(--ahf-tr), background-color var(--ahf-tr);
}
.header a,
.mobmenu a{
  color: inherit;
  text-decoration: none;
}
.header.is-top{ transform: translateY(-100%); }

.header__main{
  padding-block: calc(var(--ahf-fluid) * .75);
  position: relative;
  z-index: 110;
  min-height: calc(var(--ahf-fluid) * 5);
}
.header__container{ max-width: 1400px; margin-inline: auto; padding-inline: calc(var(--ahf-fluid) * 1.5); }

.header__body{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--ahf-fluid) * 1);
  padding: calc(var(--ahf-fluid) * .25);
  padding-block: calc(var(--ahf-fluid) * .3);
  padding-inline-start: calc(var(--ahf-fluid) * 1.6);
  padding-inline-end: calc(var(--ahf-fluid) * .3);
  border-radius: calc(var(--ahf-fluid) * 8);
  background-color: var(--ahf-cb4);
}
.header__body .custom-logo-link{
  position: relative;
  top: calc(var(--ahf-fluid) * -.1000);
  flex-shrink: 0;
  display: block;
  width: calc(var(--ahf-fluid) * 6.9);
}

/* ---------- 3. PC用メガメニュー(navmenu) ---------- */
.header__body .navmenu{ flex: 0 1 auto; }
.header__body .navmenu__list{ display: flex; flex-wrap: wrap; }
.header__body .navmenu__list > .menu-item{ min-width: 0; position: relative; }

.header__body .navmenu__list > .menu-item > a{
  display: flex;
  align-items: center;
  min-height: calc(var(--ahf-fluid) * 2.5);
  padding: calc(var(--ahf-fluid) * .25) calc(var(--ahf-fluid) * 1);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .875);
  line-height: 1.715;
  border-radius: calc(var(--ahf-fluid) * 8);
  transition: color var(--ahf-tr), background-color var(--ahf-tr);
  cursor: default;
}
.header__body .navmenu__list > .menu-item > a:hover,
.header__body .navmenu__list > .menu-item.menu-item-has-children:hover > a{
  color: var(--ahf-cy1);
  background-color: var(--ahf-cb6);
}

.header__body .navmenu__list > .menu-item .sub-menu-layout{
  pointer-events: none;
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ahf-fluid) * .75);
  width: max-content;
  padding: calc(var(--ahf-fluid) * .6875);
  border-radius: calc(var(--ahf-fluid) * .75);
  border: 1px solid var(--ahf-cb6);
  background-color: var(--ahf-cb4);
  box-shadow: 0 8px 24px rgba(3,3,3,.25);
  transform: translate(-50%, calc(var(--ahf-fluid) * 1.25));
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--ahf-tr), visibility var(--ahf-tr), transform var(--ahf-tr);
}
.header__body .navmenu__list > .menu-item .sub-menu-layout::before{
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 100%;
  height: calc(var(--ahf-fluid) * 1.25);
}
.header__body .navmenu__list > .menu-item.menu-item-has-children:hover .sub-menu-layout{
  pointer-events: all;
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.header__body .navmenu__list .sub-menu-layout > .sub-menu{
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ahf-fluid) * .75);
  max-width: calc(var(--ahf-fluid) * 33.75);
}
.header__body .navmenu__list .sub-menu-layout .sub-menu-column{
  position: relative;
  min-width: calc(var(--ahf-fluid) * 12.125);
  padding: calc(var(--ahf-fluid) * .9375);
  padding-block-end: calc(var(--ahf-fluid) * .1875);
  border-radius: calc(var(--ahf-fluid) * .75);
  border: 1px solid var(--ahf-cb6);
  background-color: var(--ahf-cb4);
}
.header__body .navmenu__list .sub-menu-column > a{
  display: block;
  margin-block-end: calc(var(--ahf-fluid) * .75);
  font-weight: 300;
  font-size: calc(var(--ahf-fluid) * .75);
  color: var(--ahf-cd1);
  cursor: default;
}
.header__body .navmenu__list .sub-menu-column .sub-menu{
  display: grid;
  grid-template-rows: repeat(var(--count-rows, 4), auto);
  grid-auto-flow: column;
  gap: 0 calc(var(--ahf-fluid) * .5);
}
.header__body .navmenu__list .sub-menu-column .sub-menu .menu-item{ margin-block-end: calc(var(--ahf-fluid) * .75); }
.header__body .navmenu__list .sub-menu-column .sub-menu .menu-item a{
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ahf-fluid) * .5);
  width: calc(var(--ahf-fluid) * 10.125);
  font-size: calc(var(--ahf-fluid) * .875);
  transition: color var(--ahf-tr);
  font-weight: 400;
}
.header__body .navmenu__list .sub-menu-column .sub-menu .menu-item a span{
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--ahf-fluid) * 1.5);
  aspect-ratio: 1;
  border-radius: calc(var(--ahf-fluid) * .25);
  background-color: var(--ahf-cb6);
  transition: background-color var(--ahf-tr);
}
.menu-icon{
  position: relative;
  overflow: hidden;
}
.menu-icon img{
  display: block;
  width: 65%;
  height: 65%;
  margin: auto;
  object-fit: contain;
  transition: filter var(--ahf-tr);
}
.header__body .navmenu__list .sub-menu-column .sub-menu .menu-item a:hover .menu-icon img{
  filter: brightness(0) saturate(100%);
}
.header__body .navmenu__list .sub-menu-column .sub-menu .menu-item a:hover{ color: var(--ahf-cy1); }
.header__body .navmenu__list .sub-menu-column .sub-menu .menu-item a:hover span{ background-color: var(--ahf-cy1); }

.header__body .navmenu__list .sub-menu > .menu-item > .sub-menu-img{
  position: absolute;
  top: 0; right: 0;
  z-index: 1;
  width: calc(var(--ahf-fluid) * 12.125);
  height: calc(var(--ahf-fluid) * 14.25);
  border-radius: calc(var(--ahf-fluid) * .75);
  overflow: hidden;
}

.header__body .menu-window{
  position: relative;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: calc(var(--ahf-fluid) * 12.125);
  min-height: calc(var(--ahf-fluid) * 14.25);
  padding: calc(var(--ahf-fluid) * .75);
  color: var(--ahf-cb5);
  border-radius: calc(var(--ahf-fluid) * .75);
  background-color: var(--ahf-cy1);
  overflow: hidden;
}
.header__body .menu-window__img{
  position: absolute;
  right: -20px;
  bottom: 0;
  z-index: 1;
  width: 100%;
  height: calc(var(--ahf-fluid) * 9.8);
  pointer-events: none;
}
.header__body .menu-window__img img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom right;
}
.header__body .menu-window__box{ position: relative; z-index: 2; }
.header__body .menu-window > .btn{ position: relative; z-index: 2; align-self: flex-start; }
.header__body .menu-window__box > span{ display: block; margin-block-end: calc(var(--ahf-fluid) * .25); font-size: calc(var(--ahf-fluid) * .75); color: var(--ahf-cb6); font-weight: 300;}
.header__body .menu-window__box > p{ font-weight: 500; font-size: calc(var(--ahf-fluid) * 1.125); line-height: 1.2; }

/* ---------- 4. ボタン共通(.btn) ---------- */
.btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--ahf-fluid) * .75);
  width: fit-content;
  min-height: calc(var(--ahf-fluid) * 3);
  padding: calc(var(--ahf-fluid) * .375) calc(var(--ahf-fluid) * 1.4375);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .875);
  border-radius: calc(var(--ahf-fluid) * 8);
  border: 1px solid transparent;
  overflow: hidden;
  transition: color var(--ahf-tr), border-color var(--ahf-tr), background-color var(--ahf-tr);
}
.btn .text{ position: relative; overflow: hidden; }
.btn .text span{ display: block; transition: transform var(--ahf-tr); }
.btn .text span:nth-child(2){ position: absolute; top: 100%; left: 0; }
.btn:hover .text span{ transform: translateY(-100%); }

.btn-def.stl-clb{
  color: var(--ahf-cw2);
  border-color: var(--ahf-cb2);
  background-color: var(--ahf-cb2);
}
.btn-def.stl-clb:hover{
  color: var(--ahf-cb2);
  border-color: var(--ahf-cy1);
  background-color: var(--ahf-cy1);
}

.header__body .menu-window .btn-def.stl-clb{
  padding: .6875rem 1.1875rem;
  line-height: 1.1112;
  color: var(--ahf-cw2);
  border-color: var(--ahf-cb4);
  background-color: var(--ahf-cb4);
}
.header__body .menu-window .btn-def.stl-clb:hover{
  color: var(--ahf-cw2);
  border-color: var(--ahf-cb4);
  background-color: var(--ahf-cb4);
}

/* ---------- 5. 右側アクション(言語切替/ログイン・登録) ---------- */
.header__body .actions{ display: flex; align-items: center; gap: calc(var(--ahf-fluid) * 1); max-width: 40%; }
.header__body .actions__auth{
  display: flex;
  align-items: center;
  border-radius: calc(var(--ahf-fluid) * 8);
  background-color: var(--ahf-cb6);
}
.header__body .actions__auth .auth-btn{
  display: flex;
  align-items: center;
  min-height: calc(var(--ahf-fluid) * 3.5);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .875);
  border-radius: calc(var(--ahf-fluid) * 8);
  transition: color var(--ahf-tr), background-color var(--ahf-tr);
}
.header__body .actions__auth .auth-btn.sign-in{ padding: calc(var(--ahf-fluid) * .375) calc(var(--ahf-fluid) * 1.25) calc(var(--ahf-fluid) * .375) calc(var(--ahf-fluid) * 1.5); }
.header__body .actions__auth .auth-btn.sign-in:hover{ color: var(--ahf-cy1); }
.header__body .actions__auth .auth-btn.sign-up{
  padding: calc(var(--ahf-fluid) * .375) calc(var(--ahf-fluid) * 1.5);
  color: var(--ahf-cb2);
  background-color: var(--ahf-cy1);
}
.header__body .actions__auth .auth-btn.sign-up:hover{ background-color: var(--ahf-cw2); }

/* ---------- 6. ハンバーガーボタン ---------- */
.burger{
  display: none;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: calc(var(--ahf-fluid) * 3.5);
  height: calc(var(--ahf-fluid) * 2.5);
  border-radius: calc(var(--ahf-fluid) * 8);
  background-color: var(--ahf-cy1);
  transition: background-color var(--ahf-tr);
  border: none;
  cursor: pointer;
}
.burger > span{ position: relative; display: block; width: calc(var(--ahf-fluid) * 1.125); height: calc(var(--ahf-fluid) * .6875); }
.burger > span span{
  position: absolute;
  inset-inline: 0;
  top: 50%;
  height: 2px;
  background-color: var(--ahf-cb2);
  transform: translateY(-50%);
  transition: top var(--ahf-tr), transform var(--ahf-tr), background-color var(--ahf-tr), opacity var(--ahf-tr);
}
.burger > span span:first-child{ top: 0; transform: translateY(0); }
.burger > span span:last-child{ top: 100%; transform: translateY(-100%); }

html[data-open-mobmenu] .burger{ background-color: var(--ahf-cb6); }
html[data-open-mobmenu] .burger > span span{
  top: 50%;
  background-color: var(--ahf-cd1);
  transform: translateY(-50%) rotate(45deg);
  opacity: 0;
}
html[data-open-mobmenu] .burger > span span:first-child{ transform: translateY(-50%) rotate(45deg); opacity: 1; }
html[data-open-mobmenu] .burger > span span:last-child{ transform: translateY(-50%) rotate(-45deg); opacity: 1; }

/* ---------- 7. モバイルメニュー(mobmenu)本体 ---------- */
.mobmenu{
  display: none;
  position: fixed;
  inset-inline: 0;
  top: 0;
  z-index: 100;
  flex-direction: column;
  width: 100%;
  height: calc(var(--vh, 1vh) * 100);
  padding-block-start: var(--hh, calc(var(--ahf-fluid) * 5));
  background-color: var(--ahf-cb2);
  transform: translateX(100%);
  overflow: hidden;
  transition: top var(--ahf-tr), transform var(--ahf-tr);
}
html[data-open-mobmenu] .mobmenu{ transform: translateX(0); }

.mobmenu__body{
  position: relative;
  z-index: 20;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mobmenu__container{ flex: 1 1 auto; display: flex; flex-direction: column; width: 100%; }
.mobmenu__content{ flex: 1 1 auto; display: flex; flex-direction: column; padding-block: calc(var(--ahf-fluid) * 1.5) calc(var(--ahf-fluid) * 2.5); padding-inline: calc(var(--ahf-fluid) * 1); }
.mobmenu__content > *:nth-last-child(2){ margin-block-end: auto; }

/* ---------- 8. モバイル用アコーディオンメニュー(★ご要望の核心部分) ---------- */
.mobmenu .navmenu__list > .menu-item{ border-bottom: 1px solid var(--ahf-cb6); }
.mobmenu .navmenu__list > .menu-item > a{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--ahf-fluid) * .75);
  padding: calc(var(--ahf-fluid) * 1) calc(var(--ahf-fluid) * .5);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * 1.555);
  transition: color var(--ahf-tr);
  line-height: 1.8;
}
.mobmenu .navmenu__list > .menu-item.menu-item-has-children > a::after{
  content: "";
  flex-shrink: 0;
  width: calc(var(--ahf-fluid) * 1.25);
  aspect-ratio: 1;
  margin-block: calc(var(--ahf-fluid) * .125);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7l5 5 5-5' fill='none' stroke='%23fffcff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 20px 20px;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity var(--ahf-tr), transform var(--ahf-tr);
}

.mobmenu .navmenu__list > .menu-item.menu-item-has-children.is-open > a{ color: var(--ahf-ch1); }
.mobmenu .navmenu__list > .menu-item.menu-item-has-children.is-open > a::after{
  transform: rotateX(-180deg);
  opacity: .5;
}

.mobmenu .navmenu__list > .menu-item.menu-item-has-children .sub-menu-layout{
  display: none;
  flex-direction: column;
  padding-block-end: calc(var(--ahf-fluid) * 1.5);
  padding-inline: calc(var(--ahf-fluid) * .5);
  overflow: hidden;
}
.mobmenu .navmenu__list .sub-menu-layout > .sub-menu{ display: flex; flex-direction: column; gap: calc(var(--ahf-fluid) * 2); }
.mobmenu .navmenu__list .sub-menu-layout .sub-menu-img{ display: none; }
.mobmenu .navmenu__list .sub-menu-layout .sub-menu-column > a{
  margin-block-end: calc(var(--ahf-fluid) * 1);
  font-weight: 300;
  font-size: calc(var(--ahf-fluid) * .75);
  color: var(--ahf-cd1);
}
.mobmenu .navmenu__list .sub-menu-layout .sub-menu-column .sub-menu .menu-item:not(:first-child){
  border-top: 1px solid var(--ahf-cb6);
}
.mobmenu .navmenu__list .sub-menu-layout .sub-menu-column .sub-menu .menu-item a{
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ahf-fluid) * .75);
  padding-block: calc(var(--ahf-fluid) * .75);
  transition: color var(--ahf-tr);
}
.mobmenu .navmenu__list .sub-menu-layout .sub-menu-column .sub-menu .menu-item a span{
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--ahf-fluid) * 1.5);
  aspect-ratio: 1;
  border-radius: calc(var(--ahf-fluid) * .25);
  background-color: var(--ahf-cb6);
}
.mobmenu .menu-window{ display: none; }

.mobmenu .actions__auth{
  display: flex;
  align-items: center;
  gap: calc(var(--ahf-fluid) * .5);
  width: 100%;
  max-width: calc(var(--ahf-fluid) * 32);
  margin-block-start: calc(var(--ahf-fluid) * 3.75);
  margin-inline: auto;
  padding: calc(var(--ahf-fluid) * .25);
  border-radius: calc(var(--ahf-fluid) * 8);
  background-color: var(--ahf-cb4);
}
.mobmenu .actions__auth .auth-btn{
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(var(--ahf-fluid) * 3);
  padding: calc(var(--ahf-fluid) * .25) calc(var(--ahf-fluid) * 1.5);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .875);
  border-radius: calc(var(--ahf-fluid) * 8);
}
.mobmenu .actions__auth .auth-btn.sign-up{ color: var(--ahf-cb2); background-color: var(--ahf-cy1); }

/* ---------- 9. ブレークポイント切り替え（PC⇔SP） ---------- */
@media (max-width: 991px){
  .header__body .navmenu{ display: none; }
  .header__body .actions{ display: none; }
  .burger{ display: flex; }
  .mobmenu{ display: flex; }
	 .header__body{
    padding-block: calc(var(--ahf-fluid) * .5);
    padding-inline-end: calc(var(--ahf-fluid) * .5);
  }
  .burger{
    width: calc(var(--ahf-fluid) * 4);
    height: calc(var(--ahf-fluid) * 3.25);
  }
}

/* ==========================================================================
   フッター
   ========================================================================== */

.footer{
  position: relative;
  z-index: 50;
  color: var(--ahf-cw2);
  background-color: var(--ahf-cb2);
  font-family: var(--ahf-ff-main);
  font-optical-sizing: auto;
  font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0, "ROND" 0;
  overflow: hidden;
}
.footer a{
  color: inherit;
  text-decoration: none;
}
.footer__container{ max-width: 1400px; margin-inline: auto; padding-inline: calc(var(--ahf-fluid) * 1.5); }
.footer__body{ padding-block: calc(var(--ahf-fluid) * 3) 0; }

.footer__navmenu{ font-family: "Mazzard H", var(--ahf-ff-main); }
.footer__navmenu > ul{
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ahf-fluid) * 2.8125);
}
.footer__navmenu > ul > .menu-item{ min-width: calc(var(--ahf-fluid) * 5.125); max-width: calc(var(--ahf-fluid) * 10.875); }
.footer__navmenu > ul .sub-menu{ display: flex; flex-direction: column; gap: calc(var(--ahf-fluid) * .75); }
.footer__navmenu > ul .menu-item.menu-item-has-children > a{
  display: block;
  margin-block-end: calc(var(--ahf-fluid) * 1);
  font-weight: 300;
  font-size: calc(var(--ahf-fluid) * .75);
  color: var(--ahf-ch1);
  cursor: default;
}
.footer__navmenu > ul li:not(:has(> .sub-menu)) a,
.footer__navmenu > ul .sub-menu a{
  position: relative;
  display: block;
  width: fit-content;
  font-weight: 400;
  font-size: calc(var(--ahf-fluid) * .875);
  letter-spacing: -.02em;
  color: var(--ahf-cd1);
  transition: color var(--ahf-tr), transform var(--ahf-tr);
}
.footer__navmenu > ul .sub-menu a::before{
  content: "";
  position: absolute;
  top: 50%;
  left: calc(var(--ahf-fluid) * -.75);
  width: calc(var(--ahf-fluid) * .25);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--ahf-cy1);
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity var(--ahf-tr);
}
@media (hover: hover){
  .footer__navmenu > ul .sub-menu a:hover{ transform: translateX(calc(var(--ahf-fluid) * .75)); color: var(--ahf-cy1); }
  .footer__navmenu > ul .sub-menu a:hover::before{ opacity: 1; }
}

@media (max-width: 991px){
  .footer__navmenu > ul{
    display: block;
    column-count: 4;
  }
  .footer__navmenu > ul > .menu-item{
    width: 100%;
    min-width: auto;
    max-width: none;
    break-inside: avoid-column;
  }
}
@media (max-width: 800px){
  .footer__navmenu > ul{ column-count: 3; }
}
@media (max-width: 600px){
  .footer__navmenu > ul{ column-count: 2; }
}

.footer__main{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto 1fr;
  align-items: end;
  gap: calc(var(--ahf-fluid) * 1) calc(var(--ahf-fluid) * 3);
  padding-bottom: 1.5rem;
}
.footer__main > *{ min-width: 0; max-width: 100%; }

.footer__top{ grid-column: 1 / -1; display: flex; align-items: flex-start; justify-content: space-between; gap: calc(var(--ahf-fluid) * 3.5); flex-wrap: wrap; }

.footer__head{ margin-block-start: calc(var(--ahf-fluid) * 3.5); padding-block-end: calc(var(--ahf-fluid) * 1); }
.footer__head .custom-logo-link{ flex-shrink: 0; display: block; width: calc(var(--ahf-fluid) * 23.625); max-width: 100%; }
.footer__head .custom-logo-link img{ display: block; width: 100%; height: auto; }
@media (max-width: 991px){
  .footer__head .custom-logo-link{ width: calc(var(--ahf-fluid) * 11); }
}

.footer__soc{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: calc(var(--ahf-fluid) * 1.5);
}
.footer__soc a{ display: block; width: calc(var(--ahf-fluid) * 1.5); }
.footer__soc a:hover img{ filter: brightness(0) saturate(100%) invert(85%) sepia(65%) saturate(600%) hue-rotate(0deg); }

.footer__legal{
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: calc(var(--ahf-fluid) * 2);
  padding: calc(var(--ahf-fluid) * 1) calc(var(--ahf-fluid) * .5);
}
.footer__legal::before{
  content: "";
  pointer-events: none;
  position: absolute;
  top: 0; left: 50%;
  z-index: 1;
  width: 100vw;
  height: 1px;
  background-color: var(--ahf-cb6);
  transform: translateX(-50%);
}
.footer__legal ul{ display: flex; flex-wrap: wrap; gap: calc(var(--ahf-fluid) * .6); }
.footer__legal ul a{
  display: block;
  font-size: calc(var(--ahf-fluid) * .75);
  color: var(--ahf-cd2);
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  transition: text-decoration-color var(--ahf-tr);
}
.footer__legal ul a:hover{ text-decoration-color: currentColor; }

.footer__info{
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(var(--ahf-fluid) * 1.5);
  padding-block: calc(var(--ahf-fluid) * 1.5) calc(var(--ahf-fluid) * 3.5);
  font-weight: 300;
  font-size: calc(var(--ahf-fluid) * .75);
  line-height: 1.3334;
  letter-spacing: .04em;
  color: var(--ahf-cd1);
}
.footer__info::before{
  content: "";
  position: absolute;
  top: 0; left: 50%;
  width: 100vw;
  height: 1px;
  background-color: var(--ahf-cb6);
  transform: translateX(-50%);
}
.footer__info h2{
  margin-block: calc(var(--ahf-fluid) * 2) calc(var(--ahf-fluid) * 1);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * 1);
  letter-spacing: -.02em;
  color: var(--ahf-cw2);
}
.footer__info .info-col > *:first-child{ margin-block-start: 0 !important; }
.footer__info .info-col > *{ margin-block-start: calc(var(--ahf-fluid) * .75); }
.footer__info strong{ font-weight: 500; color: var(--ahf-cw2); }
.footer__info .info-icon{ display: flex; align-items: flex-start; gap: calc(var(--ahf-fluid) * .75); margin-block-start: calc(var(--ahf-fluid) * 1.5); }
.footer__info .info-icon img{ flex-shrink: 0; width: calc(var(--ahf-fluid) * 2); }

.footer__bottom{
  position: relative;
  min-height: calc(var(--ahf-fluid) * 4);
}
.footer__bottom .footer__img{
  position: relative;
  margin-inline: calc(var(--ahf-fluid) * -1.5);
  padding-block-start: 40.179%;
  overflow: hidden;
}
.footer__bottom .footer__img img{
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.footer__bottom .footer__img::before{
  content: "";
  position: absolute;
  inset-inline: 0;
  top: -1px;
  z-index: 2;
  height: 60%;
  background: linear-gradient(180deg, var(--ahf-cb2), transparent);
  pointer-events: none;
}
@media (max-width: 991px){
  .footer__bottom .footer__img::after{
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: -1px;
    z-index: 2;
    height: 25%;
    background: linear-gradient(0deg, var(--ahf-cb2), transparent);
    pointer-events: none;
  }
}
.footer__bottom .copyright{
  position: absolute;
  inset-inline: 0;
  inset-block-end: calc(var(--ahf-fluid) * 1.5);
  z-index: 5;
  color: var(--ahf-cd2);
  font-size: calc(var(--ahf-fluid) * .75);
}

.window-footer{ flex-shrink: 0; display: flex; flex-direction: column; gap: calc(var(--ahf-fluid) * 1); width: calc(var(--ahf-fluid) * 25.25); max-width: 100%; }
.window-footer__card{
  position: relative;
  z-index: 5;
  min-height: calc(var(--ahf-fluid) * 8.375);
  padding: calc(var(--ahf-fluid) * 1.25);
  border-radius: calc(var(--ahf-fluid) * 1.5);
  border: 1px solid var(--ahf-cb6);
  background-color: var(--ahf-cb3);
  overflow: hidden;
}
.window-footer__content .subtl{ font-weight: 300; font-size: calc(var(--ahf-fluid) * .625); line-height: 1.4; color: var(--ahf-cy1); }
.window-footer__content .title{ font-weight: 500; letter-spacing: -.02em; font-size: calc(var(--ahf-fluid) * .9); }
.window-footer__content .text{ margin-block-start: calc(var(--ahf-fluid) * .25); font-weight: 300; font-size: calc(var(--ahf-fluid) * .75); line-height: 1.3334; letter-spacing: .01em; color: var(--ahf-cd1); }
.window-footer__rows{ display: flex; gap: calc(var(--ahf-fluid) * 1.25); margin-block-start: calc(var(--ahf-fluid) * 1.25); }
.window-footer__app{
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ahf-fluid) * .5);
  margin-block-start: calc(var(--ahf-fluid) * .25);
  padding: calc(var(--ahf-fluid) * .5) calc(var(--ahf-fluid) * 1);
  border-radius: calc(var(--ahf-fluid) * 1);
  border: 1px solid var(--ahf-cb6);
  background-color: var(--ahf-cb3);
}
.window-footer__link{
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ahf-fluid) * .5);
  width: fit-content;
  max-width: 100%;
  margin-block-start: calc(var(--ahf-fluid) * 1);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .875);
  line-height: 1.429;
  letter-spacing: -.01em;
}
.window-footer__card .window-footer__link,
.window-footer__card .window-footer__link:visited{
  color: var(--ahf-cy1);
}
.window-footer__link .icon{
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--ahf-fluid) * 1.25);
  aspect-ratio: 1;
}
.window-footer__link .icon span{
  position: relative;
  display: flex;
  overflow: hidden;
}
.window-footer__link .icon span::before,
.window-footer__link .icon span::after{
  content: "";
  flex-shrink: 0;
  width: calc(var(--ahf-fluid) * 1.25);
  aspect-ratio: 1;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_1878_47539)'%3E%3Cpath d='M5.38573 15.167L4.05469 13.8359L11.9401 5.95052H4.93781V4.05469H15.167V14.2839H13.2711V7.28156L5.38573 15.167Z' fill='%23FCE221'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_1878_47539'%3E%3Crect width='20' height='20' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  background-size: calc(var(--ahf-fluid) * 1.25) calc(var(--ahf-fluid) * 1.25);
  background-position: center;
  background-repeat: no-repeat;
  transition: transform var(--ahf-tr);
}
.window-footer__link .icon span::after{
  content: "";
  position: absolute;
  top: 100%;
  right: 100%;
}
.window-footer__link .text{ position: relative; overflow: hidden; }
.window-footer__link .text span{ display: block; transition: transform var(--ahf-tr); }
.window-footer__link .text span:nth-child(2){
  position: absolute;
  top: 100%;
  left: 0;
  text-decoration-line: underline;
}
.window-footer__link:hover .icon span::before,
.window-footer__link:hover .icon span::after{
  transform: translate(100%, -100%);
}
.window-footer__link:hover .text span{ transform: translateY(-100%); }

@media (max-width: 991px){
  .footer{
    --ahf-fluid: clamp(15px, 4.0712468193vw, 16px);
  }

  .footer__container{ padding-inline: 24px !important; }

  .footer__main{ display: block; padding-bottom: 0; }
  .footer__top{ flex-direction: column; align-items: stretch; }
  .footer__info{ grid-template-columns: 1fr; }
  .window-footer{ width: 100%; }

  .footer__navmenu > ul .menu-item.menu-item-has-children > a{
    font-size: clamp(11.25px, 3.0534351145vw, 12px) !important;
  }
  .footer__navmenu > ul .sub-menu a{
    font-size: clamp(15px, 4.0712468193vw, 16px) !important;
  }
  .footer__navmenu > ul{ column-gap: 12px; }
  .footer__navmenu > ul > .menu-item:not(:first-child){ margin-block-start: 32px; }

  .footer__soc{
    position: relative;
    align-items: center;
    justify-content: flex-start;
    padding-block: 16px;
  }
  .footer__soc::before{
    content: "";
    pointer-events: none;
    position: absolute;
    top: 0; left: 50%;
    width: 100vw;
    height: 1px;
    background-color: var(--ahf-cb6);
    transform: translateX(-50%);
  }

  .footer__legal{ justify-content: center; gap: 12px; }
  .footer__legal ul{
    flex-direction: column;
    width: 100%;
    max-width: calc((100% - 12px) / 2);
  }
}
@media (max-width: 768px){
  .footer__container{ padding-inline: 16px !important; }
}

/* SPでフッターの下に余分にスクロールした際、白背景ではなく黒が見えるようにする
   見えないバッファ領域をbodyの一番下に追加する */
@media (max-width: 991px){
  body::after{
    content: "";
    display: block;
    height: 200px;
    background-color: var(--ahf-cb2);
  }
}

/* ============================================================
   Markets > Instruments のプレビュー画像パネル
   ============================================================ */
.header__body .navmenu__list .instruments-item{
  display: flex;
  align-items: flex-start;
  gap: calc(var(--ahf-fluid) * .75);
}
.header__body .navmenu__list .instruments-item .sub-menu-column{
  flex-shrink: 0;
}
.header__body .navmenu__list .instruments-item .menu-preview{
  position: relative;
  flex-shrink: 0;
  width: calc(var(--ahf-fluid) * 12.125);
  height: calc(var(--ahf-fluid) * 14.25);
  border-radius: calc(var(--ahf-fluid) * .75);
  overflow: hidden;
  pointer-events: none;
}
.header__body .navmenu__list .instruments-item .menu-preview img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity var(--ahf-tr);
}
.header__body .navmenu__list .sub-menu-layout:has(.instruments-item) > .sub-menu{
  max-width: none;
}
.header__body .navmenu__list .instruments-item .menu-preview img.is-default{
  opacity: 1;
}
.header__body .navmenu__list .instruments-item:has(a[href="https://www.axonmarkets.com/forex.html"]:hover) .menu-preview img[data-for="forex"]{ opacity: 1; }
.header__body .navmenu__list .instruments-item:has(a[href="https://www.axonmarkets.com/indices.html"]:hover) .menu-preview img[data-for="indices"]{ opacity: 1; }
.header__body .navmenu__list .instruments-item:has(a[href="https://www.axonmarkets.com/metals.html"]:hover) .menu-preview img[data-for="metals"]{ opacity: 1; }
.header__body .navmenu__list .instruments-item:has(a[href="https://www.axonmarkets.com/shares.html"]:hover) .menu-preview img[data-for="shares"]{ opacity: 1; }
.header__body .navmenu__list .instruments-item:has(a[href="https://www.axonmarkets.com/energies.html"]:hover) .menu-preview img[data-for="energies"]{ opacity: 1; }
.header__body .navmenu__list .instruments-item:has(a[href="https://www.axonmarkets.com/crypto.html"]:hover) .menu-preview img[data-for="crypto"]{ opacity: 1; }

.mobmenu .navmenu__list .instruments-item .menu-preview{ display: none; }

/* ============================================================
   フッター拡張分(footer.php の新しいマークアップに対応)
   ============================================================ */

.footer__wrap{ position: relative; }
.footer__blur{
  display: none;
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  background-color: var(--ahf-cy1);
  filter: blur(90px);
  opacity: .18;
  pointer-events: none;
}
.footer__blur.blur1{ top: -8%; left: 8%; width: 28vw; height: 28vw; }
.footer__blur.blur2{ bottom: 15%; right: 4%; width: 22vw; height: 22vw; }
.footer__body{ position: relative; z-index: 1; }

.window-footer__img{ position: absolute; pointer-events: none; }

.window-footer__blur{
  position: absolute;
  top: 0;
  right: 0;
  z-index: -2;
  width: calc(var(--ahf-fluid) * 20);
  pointer-events: none;
}
.window-footer__blur img{ display: block; width: 100%; height: auto; }
.card-var-1 .window-footer__img{
  top: calc(var(--ahf-fluid) * .75);
  right: calc(var(--ahf-fluid) * 1);
  z-index: -1;
  width: calc(var(--ahf-fluid) * 12.125);
}
.card-var-1 .window-footer__img img{ display: block; width: 100%; height: auto; }
.card-var-1 .window-footer__content{ padding-inline-end: calc(var(--ahf-fluid) * 12.125); }

.window-footer__card.card-var-2{
  padding-inline: calc(var(--ahf-fluid) * 8.125) calc(var(--ahf-fluid) * 1.25);
}
.card-var-2 .window-footer__img{
  top: calc(var(--ahf-fluid) * 1.25);
  left: calc(var(--ahf-fluid) * 1.25);
  width: calc(var(--ahf-fluid) * 5.875);
}
.card-var-2 .window-footer__img img{ display: block; width: 100%; height: auto; }

.window-footer__column{ flex: 1 1 0; min-width: 0; }
.window-footer__column > p{
  margin-block-end: calc(var(--ahf-fluid) * .625);
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .9);
  color: var(--ahf-cw2);
}
.window-footer__column .window-footer__app:not(:last-child){ margin-block-end: calc(var(--ahf-fluid) * .5); }

.window-footer__app .icon{ flex-shrink: 0; width: calc(var(--ahf-fluid) * 1.5); }
.window-footer__app .icon img{ display: block; width: 100%; height: auto; }
.window-footer__app .text{ display: flex; flex-direction: column; min-width: 0; }
.window-footer__app .text > span{
  font-size: calc(var(--ahf-fluid) * .5625);
  line-height: 1.2;
  color: var(--ahf-cd1);
}
.app-link{
  display: block;
  font-weight: 500;
  font-size: calc(var(--ahf-fluid) * .8125);
  line-height: 1.2;
  color: var(--ahf-cw2);
  text-decoration: none;
}

/* パンくずリストをヘッダーに近づける(SWELL標準の上余白を打ち消す) */
#breadcrumb{
  margin-block-start: 0 !important;
  padding-block-start: 0 !important;
}