/* ======================================
ヘッダー
========================================= */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  /* 旧テーマは opacity:0 で隠し、JSが .header-color を付けて表示していた。
     そのJSは新サイトで使っていないため常に表示する。背景色の切り替えは
     components.css の .is-scrolled 側で行う。 */
  opacity: 1;
  z-index: 200;
  height: 90px;
  display: flex;
  align-items: center;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -ms-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}

.header-color {

  opacity: 1;
}

.header__main {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  position: relative;
}

.header__logo {
  width: 190px;
  margin-left: auto;
  margin-right: auto;
}

.header__logo a {
  width: 190px;
}

.header__nav {
  /* width: 25%;*/
}

.header__link {
  justify-content: flex-end;
  align-items: center;
  max-height: 100%;
  display: block;
  height: 90px;
}

.header__link-box {
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--c-gold);
  min-width: 250px;
  height: 100%;
  margin: 0;
}

.header__link-box:hover {
  opacity: 0.7;
}

.header__link-box p {
  padding-left: 8px;
}

.header__link-guide {
  background-color: var(--c-gold);
}

.header__link-guide .header__link-img {
  width: 14px;
}

.header__link-mail {
  background-color: #000000;
}

.header__link-mail .header__link-img {
  width: 20px;
}
.header__link-mail p {
    font-style:normal;
}
.header__link-mail i:after {
    content:'@';
}
.footer__address-box p {
    font-style:normal;
}
.footer__address-box i:after {
    content:'@';
}
/* ======================================
ドロップダウンメニュー
========================================= */
.primary_nav {
  display: flex;
  justify-content: flex-end;
  font-size: clamp(10px, 1.3vw, 16px);
}

.primary_nav>li>a {
  display: block;
  padding: 37px 15px;
  transition: all 0.2s;
  white-space: nowrap;
  position: relative;
}

.primary_nav>li>a::before {
  content: "";
  position: absolute;
  width: 65%;
  height: 3px;
  background-color: var(--c-ink);
  bottom: 20px;
  left: 17.5%;
  transform-origin: right;
  transform: scaleX(0);
  transition: transform 0.3s ease-in-out;
}

.primary_nav>li>a:hover::before {
  transform-origin: left;
  transform: scaleX(1);
}

.secondary_nav {
  position: absolute;
  left: 0;
  top: 87px;
  display: none;
  z-index: 1;
  width: 100%;
  background-color: var(--c-bg);
  height: auto !important;
}

.nav__content {
  display: flex;
  padding: 20px 0px;
  color: var(--c-ink);
  margin-left: 15%;
  align-items: center;
}

.nav__content h5 {
  font-size: 20px;
  font-weight: 600;
  border-right: solid 1px var(--c-ink);
  padding: 2.5% 0px;
  width: 15%;
  white-space: nowrap;
}

.nav__flex {
  display: flex;
  flex-wrap: wrap;
}

.secondary_nav li {
  padding: 0px 4vw;
  line-height: 2;
  position: relative;
}

.secondary_nav li::after {
  content: "/";
  position: absolute;
  transform: translate(-50%, -50%);
  top: 46%;
  right: 0px;
}

.secondary_nav li:last-child::after {
  content: "";
}

.secondary_nav li>a {
  display: inline-block;
  white-space: nowrap;
  text-align: left;
  position: relative;
  color: var(--c-ink);
}

/* ======================================
ハンバーガーメニュー
========================================= */
/*menu*/
.menu {
  display: none;
}

.menu {
  position: fixed;
  right: 0px;
  top: 0px;
  width: 16vw;
  height: 16vw;
  z-index: 120;
  background-color: #fff;
  cursor: pointer;
}

.menu__line {
  background: var(--c-ink);
  display: block;
  height: 0.5vw;
  position: absolute;
  transition: transform 0.3s;
  width: 48%;
  top: 32%;
  right: 27%;
}

.menu__line--center {
  top: 51%;
}

.menu__line--bottom {
  top: 69%;
}

.menu__line--top.active {
  top: 51%;
  transform: rotate(45deg);
}

.menu__line--center.active {
  transform: scaleX(0);
}

.menu__line--bottom.active {
  top: 51%;
  transform: rotate(135deg);
}

/* ======================================
ハンバーガーメニューの中身
========================================= */
/*gnav*/
.menu.active {
  background-color: var(--c-ink);
}

.menu__line.active {
  background: #fff;
}

.gnav {
  background-color: var(--c-ink);
  display: none;
  height: 100%;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 110;
  overflow-y: auto;
  overflow-y: scroll;
}

.gnav::-webkit-scrollbar {
  display: none;
}

.gnav__top {
  height: 16vw;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.gnav__logo {
  margin-left: 3%;
  width: 50%;
  padding-top: 38px;
}

.gnav__wrap {
  width: 70%;
  height: auto;
  margin: 0 auto;
  background-color: var(--c-ink);
  padding: 5% 15% 15%;
}

.gnav__link a {
  color: #fff;
  font-size: 5vw;
  font-weight: bold;
  display: inline-block;
}

.gnav__link {
  padding: 6% 0px;
}

.gnav__link li {
  padding: 4% 0px;
  padding-left: 3%;
}

.gnav__link li:nth-child(2) {
  padding-top: 10%;
}

.gnav__link li:last-child {
  padding-bottom: 1%;
}

.gnav__button-box {
  border: solid 0.5vw #fff;
  margin-top: 7%;
  transition: all 0.3s 0s ease;
  font-size: 5vw;
  font-weight: bold;
  display: flex;
  justify-content: center;
  padding: 2vw 0vw;
}

.gnav__button-guide {
  background-color: var(--c-gold);
  border: solid 0.5vw var(--c-gold);
  color: #fff;
}

.gnav__button-guide .gnav__button-img {
  width: 3.6vw;
  padding-right: 5%;
}

.gnav__button-guide:hover {
  background-color: var(--c-ink);
  border: solid 0.5vw #fff;
}

.gnav__button-mail {
  background-color: #fff;
  color: var(--c-ink);
}

.gnav__button-mail .gnav__button-img {
  filter: brightness(0) saturate(100%) invert(14%) sepia(58%) saturate(1173%) hue-rotate(190deg) brightness(93%) contrast(90%);
  width: 5vw;
  padding-right: 5%;
}

.gnav__button-mail:hover {
  background-color: var(--c-ink);
  border: solid 0.5vw #fff;
  color: #fff;
}

.gnav__button-mail:hover .gnav__button-img {
  filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(58deg) brightness(105%) contrast(102%);
}

/* ======================================
サイドバー
========================================= */
.sidebar__wrap {
  position: fixed;
  right: 0px;
  top: 28%;
  z-index: 100;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
}

.sidebar__box {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--c-ink);
  color: #fff;
  font-weight: 500;
  width: 50px;
  margin: 1px 0px;
}

.sidebar__box:hover {
  opacity: 0.8;
}

.sidebar__box p {
  padding-top: 10px;
}

.sidebar__guide {
  background-color: var(--c-gold);
  height: 180px;
}

.sidebar__guide .sidebar__img {
  width: 14px;
}

.sidebar__mail,
.sidebar__top {
  height: 150px;
}

.sidebar__mail .sidebar__img {
  width: 20px;
}

.sidebar__top p {
  position: relative;
}

.sidebar__top p::after {
  content: "";
  position: absolute;
  right: 20%;
  top: -7px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
  transition: all 0.3s 0s ease;
}

@media screen and (max-width: 768px) {
  .sidebar__wrap {
    display: none;
  }
}

/* ======================================
トップへ戻るボタン
========================================= */
.pagetop {
  display: none;
}

@media screen and (max-width: 768px) {
  .pagetop {
    display: block;
    position: fixed;
    right: 15px;
    bottom: 15px;
    z-index: 100;
    box-shadow: 4px 4px 5px 0px rgba(0, 0, 0, 0.4);
  }

  .pagetop-arrow {
    position: relative;
    height: 11vw;
    width: 11vw;
    background-color: var(--c-ink);
  }

  .pagetop-arrow::after {
    content: "";
    position: absolute;
    right: 33%;
    bottom: 25%;
    width: 3vw;
    height: 3vw;
    border-top: 0.5vw solid #fff;
    border-right: 0.5vw solid #fff;
    transform: rotate(-45deg);
    transition: all 0.3s 0s ease;
  }

  .pagetop:hover .pagetop-arrow::after {
    bottom: 30%;
  }
}

/* ======================================
メディアクエリ１
========================================= */

@media screen and (max-width: 1200px) {
  .nav__content {
    margin-left: 5%;
  }

  .secondary_nav li {
    padding: 0px 3vw;
  }
}

@media screen and (max-width: 930px) {
  .header__link-mail p {
    display: none;
  }

  .header__link-guide {
    width: 160px;
  }

  .header__link-mail {
    width: 70px;
  }

  .header__link-box {
    min-width: auto;
  }

  .header__link {
    width: 70px;
  }
}

@media screen and (max-width: 768px) {
  .header {
    height: 16vw;
  }

  .header__nav {
    display: none;
  }

  .header__logo {
    margin-left: 3%;
    width: 100%;
  }

  .header__logo a {
    width: 68%;
  }

  .header__logo img {
    height: 14vw;
    width: auto;
  }

  .header__link {
    margin-right: 16vw;
    display: none;
  }

  .header__link-box {
    height: 16vw;
    margin: 0px;
  }

  .header__link-guide {
    width: 31vw;
  }

  .header__link-guide p {
    text-align: center;
    font-size: 3.4vw;
    line-height: 5.5vw;
    letter-spacing: -0.1vw;
    white-space: nowrap;
  }

  .header__link-guide .header__link-img {
    width: 3.6vw;
  }

  .header__link-mail {
    width: 16vw;
  }

  .header__link-mail .header__link-img {
    width: 5vw;
  }

  .menu {
    display: block;
  }
}
/* =========================================================
   スマホのヘッダー（2026-08-15 追記）

   header.css は components.css より後に読まれるため、旧テーマ由来の
   下の2つが新デザインを上書きし、ロゴがハンバーガーの下へ潜り込んで
   画面外まではみ出していた。

   1) .header__main { justify-content: flex-end }
      スマホではナビとCTAを display:none にするため、残ったロゴだけが
      右端へ寄せられていた（実測 x=188 / 画面幅375）。
   2) .header__logo img { height: 14vw; width: auto }
      ロゴの縦横比が 2.7:1 → 5.8:1 に横長化したので、高さ基準だと
      幅316pxまで伸びる。168pxの枠から148pxはみ出していた。

   高さ基準をやめて幅基準に戻し、右端のハンバーガー(48px)の領域を
   padding で必ず空ける。
   ========================================================= */

@media screen and (max-width: 768px) {

  /* ロゴは左端。ハンバーガーのぶんだけ右を空ける */
  html body .header__main {
    justify-content: flex-start;
    padding-right: 64px;
  }

  html body .header__brand {
    min-width: 0;
    margin-right: auto;
  }

  html body .header__logo {
    margin-left: 0;
    margin-right: 0;
  }

  /* 幅基準。枠(168px)に収め、高さは比率まかせにする */
  html body .header__logo img,
  html body .header .header__logo img {
    width: 100%;
    height: auto;
  }

  /* 白ロゴは a と同じ矩形に重ねる */
  html body .header .header__logo-light {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
  }
}

/* 狭い端末ではロゴを一段小さくして、右の余白を確保する */
@media screen and (max-width: 400px) {

  html body .header__logo,
  html body .header__logo a {
    width: 148px;
  }
}

/* =========================================================
   ハンバーガー（2026-08-15 追記）

   旧テーマの .menu は白い箱＋墨黒の線。黒×ゴールドの透過ヘッダーの上に
   白い四角が浮いて見えるため、箱は透明にして線の色だけ切り替える。
   スクロール後は白ヘッダーになるので線を墨黒へ戻す。
   ========================================================= */

@media screen and (max-width: 1024px) {

  html body .menu {
    background-color: transparent;
    width: 48px;
    height: 48px;
    top: 10px;
    right: 12px;
  }

  html body .menu__line {
    width: 26px;
    height: 2px;
    right: 11px;
    background: var(--c-ink);
  }

  /* 最上部（透過ヘッダー）では白い線にする。
     .bager は #container の中にあって .header の兄弟ではないため、
     兄弟である #container を挟んで状態を拾う。 */
  html body.home .header:not(.is-scrolled) ~ #container .menu__line {
    background: #fff;
  }

  html body .menu__line.active {
    background: #fff;
  }
}

/* =========================================================
   ハンバーガーの重なり順（2026-08-15 追記）

   .menu は z-index:120、.gnav は 110。対して .header は 200 なので、
   スクロールしてヘッダーが白帯になった瞬間、ハンバーガーがヘッダーの
   下に隠れてスマホのナビゲーションが開けなくなっていた
   （最上部だけはヘッダーが透過なので透けて見えていた）。
   メニューを最前面、開いたナビをその直下に置く。
   ========================================================= */

html body .menu {
  z-index: 210;
}

html body .gnav {
  z-index: 205;
}

/* =========================================================
   トップへ戻る＝マスコット（2026-08-16 追記）

   旧テーマは黒い四角に矢印で、しかもスマホ幅でしか出ていなかった。
   背景を抜いたマスコットに置き換え、PCでも出す。
   最上部では出さず、少しスクロールしてから現れる（js/pagetop.js）。
   ========================================================= */

html body .pagetop {
  display: block;
  position: fixed;
  right: clamp(12px, 1.6vw, 28px);
  bottom: clamp(12px, 1.6vw, 28px);
  z-index: 90;
  box-shadow: none;
  text-decoration: none;
  line-height: 0;
  /*
   * 既定は「表示」。最上部にいるあいだだけ js が .is-top を付けて隠す。
   * 逆（既定で隠してJSで出す）にすると、JSが動かない環境で
   * ボタンが永久に出てこなくなるため、安全側に倒している。
   */
  opacity: 1;
  transform: translateY(0);
  transition: opacity .45s ease, transform .45s cubic-bezier(.16, .84, .44, 1);
}

html body .pagetop.is-top {
  opacity: 0;
  transform: translateY(14px);
  /* 消えているあいだは押せないようにする（visibility は使わない。
     transition 中に触れなくなる挙動が環境で揺れるため） */
  pointer-events: none;
}

/* head内の img{width:100%} を打ち消して、高さ基準で出す */
html body .pagetop__chara {
  display: block;
  width: auto;
  height: clamp(96px, 13vw, 168px);
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, .5));
  transition: transform .35s cubic-bezier(.16, .84, .44, 1);
}

html body .pagetop:hover .pagetop__chara,
html body .pagetop:focus-visible .pagetop__chara {
  transform: translateY(-6px) scale(1.04);
}

.pagetop__label {
  display: block;
  margin-top: 2px;
  font-family: var(--ff-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .22em;
  line-height: 1;
  text-align: center;
  color: var(--c-gold-deep);
  text-shadow: 0 1px 3px rgba(0, 0, 0, .6);
}

.pagetop:focus-visible {
  outline: 2px solid var(--c-gold);
  outline-offset: 6px;
  border-radius: 6px;
}

/* 旧テーマの黒い四角は使わない */
.pagetop-arrow {
  display: none;
}

@media screen and (max-width: 768px) {

  /* スマホは言語切替（左下）と並ぶので、少し小さくする */
  html body .pagetop__chara {
    height: clamp(84px, 22vw, 110px);
  }

  .pagetop__label {
    font-size: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {

  html body .pagetop,
  html body .pagetop__chara {
    transition: none;
  }
}

/* =========================================================
   スマホのメニュー（A案「箔の罫」／2026-08-29）

   ご指摘:「スマホメニューなんかださいな。かっこよくする提案ください。」
   3案をお出しして A案（箔の罫）を選んでいただいた。

   直す前の問題は色より構造だった。
     ・真っ黒な地にゴシック太字が並ぶだけで、サイトの
       「ゴールド × 墨黒／見出しは明朝」がまったく出ていない
     ・白い箱のメールボタンだけが浮き、画面でいちばん強い要素になっていた
     ・下半分が空いているのに、会期・会場も、来場登録・出展資料請求への
       導線も無い（PCのヘッダーには両方あるのに、スマホでは消えていた）
     ・「トップページ」だけ別の <ul> で、そこだけ間隔が飛んでいた

   A案の作り:
     ・金は面ではなく罫線で使う（tokens.css の方針そのまま）
     ・左端に箔の縦罫を1本通し、そこを基準に文字を揃える
     ・項目名は明朝、通し番号は欧文セリフの金、本文はゴシック
     ・会期を上に、行動を2つだけ下に置く

   文字の大きさは vw をやめて px にした。vw だと大きい端末で
   間延びし、小さい端末で潰れる（旧: 5vw ＝ 375pxで18.75px／430pxで21.5px）。
   ========================================================= */

html body .gnav {
  background-color: var(--c-ink);
  background-image: linear-gradient(var(--c-ink) 0%, #131211 100%);
}

/* 左端を通す箔の縦罫。上下は消えるように濃度を落とす */
html body .gnav::before {
  content: "";
  position: fixed;
  left: 22px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(rgba(184, 149, 69, 0) 0%,
                              rgba(184, 149, 69, .42) 18%,
                              rgba(184, 149, 69, .42) 82%,
                              rgba(184, 149, 69, 0) 100%);
  pointer-events: none;
  z-index: 1;
}

html body .gnav__top {
  height: auto;
  padding: 24px 20px 0 44px;
}

html body .gnav__logo {
  margin-left: 0;
  width: 146px;
  padding-top: 0;
}

html body .gnav__logo img {
  width: 100%;
  height: auto;
  display: block;
}

/* 旧: width:70% / padding:5% 15% 15% で中身が中央の細い柱に押し込まれていた。
   縦罫（left:22px）を基準に、左44px・右20px で揃える */
html body .gnav__wrap {
  width: auto;
  margin: 0;
  padding: 22px 20px 28px 44px;
  background-color: transparent;
  position: relative;
  z-index: 2;
}

/* ---- 会期 ---- */
html body .gnav__event {
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(184, 149, 69, .28);
}

html body .gnav__event-date {
  margin: 0;
  font-family: var(--ff-numeral, "Cormorant Garamond", serif);
  font-size: 27px;
  line-height: 1;
  letter-spacing: .04em;
  color: var(--c-gold-deep, #C4A35A);
}

html body .gnav__event-venue {
  margin: 8px 0 0;
  font-size: 11px;
  letter-spacing: .1em;
  color: #8C8578;
}

/* ---- 項目 ---- */
html body .gnav__link {
  padding: 0;
  counter-reset: gnav;
}

html body .gnav__link li {
  padding: 0;
  counter-increment: gnav;
  border-bottom: 1px solid rgba(255, 255, 255, .07);
}

html body .gnav__link li:last-child {
  border-bottom: 0;
}

/* 旧デザインの名残。「トップページ」だけ別の <ul> だった頃の間隔調整で、
   1つのリストにまとめた今は2番目（展示会概要）の上だけが大きく空いてしまう */
html body .gnav__link li:nth-child(2) {
  padding-top: 0;
}

html body .gnav__link a:hover {
  color: var(--c-gold-pale, #E8DFC8);
}

html body .gnav__link a:hover::before {
  color: var(--c-gold-deep, #C4A35A);
}

html body .gnav__link a {
  display: flex;
  align-items: baseline;
  gap: 14px;
  min-height: 46px;
  padding: 0;
  font-family: var(--ff-display, "Noto Serif JP", serif);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 46px;
  color: var(--c-text-light, #F5F5F5);
}

/* 通し番号は欧文セリフの金。01, 02 … と2桁で揃える */
html body .gnav__link a::before {
  content: counter(gnav, decimal-leading-zero);
  flex: 0 0 20px;
  font-family: var(--ff-numeral, "Cormorant Garamond", serif);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--c-gold, #B89545);
}

/* 過去の開催は現行の案内ではないので、一段落とす */
html body .gnav__link-sub a {
  font-size: 15px;
  color: #8C8578;
}

/* ---- 行動は2つだけ ---- */
html body .gnav__cta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 22px;
}

html body .gnav__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border: 1px solid rgba(184, 149, 69, .55);
  color: var(--c-gold-pale, #E8DFC8);
  font-size: 14px;
  letter-spacing: .08em;
  transition: background-color var(--transition, .25s ease), color var(--transition, .25s ease);
}

/* 主たる行動は1つだけ。淡金の面に墨で置く（金そのものは面に使わない） */
html body .gnav__cta-btn--primary {
  background-color: var(--c-gold-pale, #E8DFC8);
  border-color: var(--c-gold-pale, #E8DFC8);
  color: var(--c-ink, #0B0B0B);
  font-weight: 700;
}

html body .gnav__cta-btn:hover {
  background-color: var(--c-gold-pale, #E8DFC8);
  color: var(--c-ink, #0B0B0B);
}

/* ---- 足もと ---- */
html body .gnav__foot {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, .07);
}

html body .gnav__mail {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  color: #A9A296;
  font-size: 12px;
}

html body .gnav__mail-icon {
  flex: 0 0 auto;
  color: var(--c-gold, #B89545);
}

html body .gnav__mail:hover {
  color: var(--c-gold-pale, #E8DFC8);
}

/* 旧デザインの白い箱を打ち消す（マークアップ上はコメントアウト済みだが、
   将来ボタンを戻したときに白い箱へ戻らないように残しておく） */
html body .gnav__button-box {
  border: 1px solid rgba(184, 149, 69, .55);
  background-color: transparent;
  color: var(--c-gold-pale, #E8DFC8);
  font-size: 14px;
  font-weight: 500;
  margin-top: 10px;
  padding: 14px 0;
}

/* 言語切替（GTranslate の浮動ウィジェット）を、メニューを開いている間だけ
   メニューの色に合わせる。白い箱のままだと、黒い面の上でそこだけが浮き、
   画面でいちばん強い要素になってしまうため。

   .menu.active はハンバーガーが開いている状態（js/jquery.js が付け外しする）。
   ハンバーガー自体がスマホ幅でしか出ないので、PCの見え方は変わらない。
   ウィジェットはプラグインが body 直下に出すので、:has() で開閉を見ている。 */
body:has(.menu.active) .gt_float_switcher {
  background-color: rgba(11, 11, 11, .92);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 0;
  box-shadow: none;
}

body:has(.menu.active) .gt_float_switcher .gt-selected,
body:has(.menu.active) .gt_float_switcher .gt-current-lang {
  background-color: transparent;
  color: var(--c-gold-pale, #E8DFC8);
}

body:has(.menu.active) .gt_float_switcher .gt-lang-code,
body:has(.menu.active) .gt_float_switcher .gt_float_switcher-arrow {
  color: var(--c-gold-pale, #E8DFC8);
}
