@charset "utf-8";

#menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  gap: 0.2em;
  margin-bottom: 1.0em;
}

#menu > li {
  position: relative; 
  margin: 5px 0;
  transition: opacity 0.2s ease;
}

#menu > li:hover {
  opacity: 0.9;
}

/*リンクカラー*/
.menu a {
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.menu a:hover {
  opacity: 0.75; 
}

.menu a:visited {
  color: #42413C!important;
}

/* メインメニュー（親項目） */
.accordion,.fixed {
    background-color: #012DB2;
}
.accordion-toggle {
  position: relative; 
  display: block;
  text-align: center; 
  cursor: pointer;
  padding: 12px 0 10px;
  color: #fff;
  font-weight: bold;
  user-select: none;
}

/* ＋／− アイコン */
.accordion-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  pointer-events: none;
}

/* ＋の構成（横棒＋縦棒） */
.accordion-icon::before,
.accordion-icon::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transform-origin: center center;
  transition: transform 0.4s cubic-bezier(0.55, 0, 0.1, 1);
}

/* 横線（常に表示） */
.accordion-icon::before {
  transform: translateY(-50%) scaleX(1);
}

/* 縦線（開閉アニメーション） */
.accordion-icon::after {
  transform: translateY(-50%) rotate(90deg) scaleY(1);
}

/* 開いたとき：縦線が中心から消える */
.accordion.open .accordion-icon::after {
  transform: translateY(-50%) rotate(90deg) scaleY(0);
}

/* 閉じたとき：縦線が中心から出てくる */
.accordion:not(.open) .accordion-icon::after {
  transform: translateY(-50%) rotate(90deg) scaleY(1);
}

/* サブメニュー */
.submenu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 10;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.1em;

  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(-5px);

  /* 開閉に使うトランジション */
  transition: 
    max-height 0.5s cubic-bezier(0.4,0,0.2,1),
    opacity 0.5s ease 0.1s,      /* 少し遅延 */
    transform 0.5s ease 0.1s;    /* 少し遅延 */
}

.accordion.open .submenu {
  max-height: 500px;
  opacity: 1;
  transform: translateY(0);
}


/* 各項目 */
.submenu li {
  background: rgba(1, 45, 178, 0.8)!important; 
  border-bottom: 1px solid #eee;
  transition: background 0.3s ease;
}
.submenu {
  background: transparent!important; 
}

.submenu li a{padding: 8px 0 6px!important;}

.submenu li:last-child {
  border-bottom: none;
}

.submenu li:hover {
  background: rgba(1, 45, 178, 0.9)!important; 
}

.submenu a {
  display: block;
  padding: 6px 8px;
  text-decoration: none;
  opacity: 1 !important;
  color: #fff !important;
}


/* メニューリスト */
.menu-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 15px 0px 15px 10px;
    grid-gap: 0.8em;
}

.menu-list-panel a {
  display: flex;
  align-items: center;
  position: relative; /* 三角形の基準 */
  padding: 12px 8px;
  text-decoration: none;
  color: #333;
  overflow: hidden;
  border: 1px solid #B2B2B2;
}

.menu-list-panel {
  transition: opacity 0.5s ease;
}

.menu-list-panel:hover {
   opacity: 0.7;
}

.menu-list-panel a img {
  width: 80px; 
  height: 80px;
  object-fit: cover;
  margin-right: 10px;
}

/* 文字 */
.menu-text {
  font-size: 16px;
    line-height: 1.2;
    font-weight: 600;
    color: #555;
}

/* 右下三角形 */
.menu-list-panel a::after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  right: 5px;
  bottom: 5px;
  border-left: 12px solid transparent;
  border-top: 12px solid #012DB2; 
  transform: rotate(90deg);
}

.span-br {
  display: inline-block;
}

@media screen and (max-width:768px) {
.header_pc {
    display: none;
}
.menu-list {
    grid-template-columns: repeat(2, 1fr);
    margin: 0 0.5em 1.0em;
}
.menu-text {
  font-size: 14px;
}
#menu {
	grid-template-columns: 1fr;
	gap: 0.1em;
	margin-bottom: 0;
}
#menu > li {
    margin: 0; 
}
.accordion-toggle,#menu li a {
    padding: 12px 0 10px; 
}
.submenu {
  position: initial;
  display: grid; 
  grid-template-columns: repeat(4, 1fr); 
  background: #fff!important; 
}
.submenu li {
  flex: 1;
  border-bottom: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.submenu li a{padding: 6px 0 !important;}
.container .content section .hero-image {
  margin: 0 0 2.0em!important; 
}
}

@media screen and (max-width:480px) {
.menu-text {
  font-size: 12px;
}
.menu-list-panel a img {
  width: 45px; 
  height: 45px;  
}
#menu {
	display: block;
}
#menu li a {
    font-size: 14px;
}
#menu > li {
    margin: 0; 
	margin-bottom: 0.2em;
}
  #menu .accordion-toggle {
    font-size: 14px !important;
  }
}

/*　セットメニューなどのタグ */
.set-price-tag {
    margin-left: 0.5em; 
	background-color: #ff0000;
	padding: 0 0.5em;
	font-weight: 400;
	font-size: 0.85em;
	color: #fff;
    position: relative;
    top: -0.12em;
}

/* フッターの電話番号をPC版では押せないように */
@media screen and (min-width:768px) {
	.foot_tel {
	pointer-events: none;
}
}

