body {
  background-color: #F3F0E7 !important;
  display: flex;
  flex-direction: column;
  min-height: 100vh;

}

main {
  flex: 1;
  padding-top: 50px;
}

.border-bw {
  border-color: #d9d5c5 !important;
}

.h3, h3 {
  font-size: 1.6rem !important;
  color: #63502d !important;
  padding: 0.3em;
  border-bottom: solid 3px #69f;
}

.mp-create {
  border-top: solid 1px #c2d9f6;
  border-left: solid 1px #c2d9f6;
  border-right: solid 1px #c2d9f6;
  border-bottom: solid 1px #c2d9f6;
  background: #e7f0fb;
}

.mp-create h3 {
  font-size: 1.2rem !important;
  padding: 0.15em 0.15em 0.15em 0.5em;
  color: #63502d !important;
  border-bottom: none;
}

.btn-bw-primary {
  border: 2px solid #6699ff!important;
  color: #6699ff!important;
  background: transparent!important;
}

.btn-bw-primary:hover {
  background: #6699ff!important;
  color: #fff!important;
}

.mp-list {
  border-top: solid 1px #c2d9f6;
  border-left: solid 1px #c2d9f6;
  border-right: solid 1px #c2d9f6;
  border-bottom: solid 1px #c2d9f6;
  background: #fff;
}

.mp-list h3 {
  font-size: 1.2rem !important;
  padding: 0.15em 0.15em 0.15em 0.5em;
  color: #63502d !important;
  border-bottom: solid 3px #69f;
}

.pc {
  display: none;
}

.sp {
  display: block;
}


@media (min-width: 992px) {
  .pc {
    display: block;
  }

  .sp {
    display: none;
  }
}

/* ====== Header ====== */
header {
  background: #fff;
}

#header {
  padding: 15px 12px 10px 12px;
  background: #fff;
  height: auto;
  min-height: 94px;
  border-top: 1px #ccc solid;
  border-left: 1px #ccc solid;
  border-right: 1px #ccc solid;
  border-bottom: none;
  background-image: url(../images/head_top.png);
  background-repeat: repeat-x;
  background-position: top right;
  position: relative;
}

#header h1 {
  color: #666;
  padding: 2px 0 5px 15px;
  font-weight: normal;
  font-size: 0.9rem;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
}

#header>.wp-block-group.alignwide {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px 12px;
  width: 100%;
  margin-top: 10px;
}

#header a#logo {
  display: inline-block;
}

#header a#logo img {
  display: block;
  border: 0;
  margin-top: 0;
  max-width: 240px;
  width: 100%;
  height: auto;
}

#header #mNavi {
  position: static !important;
  margin-left: auto;
  padding-top: 0;
  margin-block-start: 0;
  align-self: flex-start;
}

#header #mNavi ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style-type: none;
}

#header #mNavi li {
  margin: 0;
  padding: 0;
}

#mNavi ul li a {
  height: 20px;
  display: block;
  text-indent: -9999px;
  overflow: hidden;
}

#mNavi ul li a:hover,
#mNavi ul li a:focus-visible {
  background-position: left bottom !important;
}

#mNavi ul li a:active {
  background-position: left bottom !important;
}

#mNavi ul li#mmenu1 {
  width: 75px;
}

#mNavi ul li#mmenu2 {
  width: 120px;
}

#mNavi ul li#mmenu3 {
  width: 100px;
}

#mNavi ul li#mmenu4 {
  width: 100px;
}

#mNavi ul li#mmenu1 a {
  background: url(../images/mmenu1.png) no-repeat;
  width: 75px;
}

#mNavi ul li#mmenu2 a {
  background: url(../images/mmenu2.png) no-repeat;
  width: 120px;
}

#mNavi ul li#mmenu3 a {
  background: url(../images/mmenu3.png) no-repeat;
  width: 100px;
}

#mNavi ul li#mmenu4 a {
  background: url(../images/mmenu4.png) no-repeat;
  width: 100px;
}

/* ====== gNavi ====== */
#gNavi {
  background: #fff;
  height: auto;
  background-image: none;
  border-top: 1px solid #d9d5c5;
  border-left: 1px solid #d9d5c5;
  border-right: 1px solid #d9d5c5;
  border-bottom: 3px solid #800040;
  position: relative;
}

@media (min-width: 992px) {
  #gNavi {
    background: #fff;
    height: auto;
    background-image: url(../images/gnavi_back.png);
    border-top: 1px solid #d9d5c5;
    border-left: 1px solid #d9d5c5;
    border-right: 1px solid #d9d5c5;
    border-bottom: 3px solid #800040;
    position: relative;
  }
}

#gNavi ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

#gNavi ul li {
  float: none;
}

#gNavi ul li a {
  height: 40px;
  display: block;
  text-indent: -9999px;
  overflow: hidden;
}

#gNavi ul li a:hover,
#gNavi ul li a:focus-visible {
  background-position: left bottom !important;
}

#gNavi ul li a:active {
  background-position: left bottom !important;
}

#gNavi ul li#menu1 {
  width: 135px;
}

#gNavi ul li#menu2 {
  width: 138px;
}

#gNavi ul li#menu3 {
  width: 135px;
}

#gNavi ul li#menu4 {
  width: 135px;
}

#gNavi ul li#menu5 {
  width: 135px;
}

#gNavi ul li#menu6 {
  width: 135px;
}

#gNavi ul li#menu7 {
  width: 135px;
}

#gNavi ul li#menu1 a {
  background: url(../images/menu1.png) no-repeat;
  width: 135px;
}

#gNavi ul li#menu2 a {
  background: url(../images/menu2.png) no-repeat;
  width: 138px;
}

#gNavi ul li#menu3 a {
  background: url(../images/menu3.png) no-repeat;
  width: 135px;
}

#gNavi ul li#menu4 a {
  background: url(../images/menu4.png) no-repeat;
  width: 135px;
}

#gNavi ul li#menu5 a {
  background: url(../images/menu5.png) no-repeat;
  width: 135px;
}

#gNavi ul li#menu6 a {
  background: url(../images/menu6.png) no-repeat;
  width: 135px;
}

#gNavi ul li#menu7 a {
  background: url(../images/menu7.png) no-repeat;
  width: 135px;
}



/* ====== Hamburger Button (exists in HTML) ====== */
.gnavi-toggle {
  display: none;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #d9d5c5;
  background: #fff;
  padding: 10px 12px;
  border-radius: 6px;
  cursor: pointer;
  margin: 8px auto;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.gnavi-toggle__icon {
  display: inline-block;
  width: 24px;
  height: 18px;
  position: relative;
  background-image: linear-gradient(#333, #333);
  background-repeat: no-repeat;
  background-position: left 50%;
  background-size: 24px 2px;
}

.gnavi-toggle__icon::before,
.gnavi-toggle__icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 24px;
  height: 2px;
  background: #333;
  transition: transform .2s ease, top .2s ease;
}

.gnavi-toggle__icon::before {
  top: 3px;
}

.gnavi-toggle__icon::after {
  top: 13px;
}

#gNavi.is-open .gnavi-toggle__icon {
  background-size: 0 0;
}

#gNavi.is-open .gnavi-toggle__icon::before {
  top: 8px;
  transform: rotate(45deg);
}

#gNavi.is-open .gnavi-toggle__icon::after {
  top: 8px;
  transform: rotate(-45deg);
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ====== Auto Hamburger Mode ====== */
#gNavi.is-collapsed .gnavi-toggle {
  position: absolute;
  top: -48px;
  right: 12px;
  margin: 0;
  display: flex;
  z-index: 10;
}

#gNavi.is-collapsed:not(.is-open) .gnavi-menu {
  display: none;
}

#gNavi.is-collapsed.is-open .gnavi-menu {
  display: block;
  margin: 0;
  padding: 56px 12px 12px;
  background: transparent;
  border-top: 1px solid rgba(217, 213, 197, .9);
}

#gNavi.is-collapsed ul li#menu1,
#gNavi.is-collapsed ul li#menu2,
#gNavi.is-collapsed ul li#menu3,
#gNavi.is-collapsed ul li#menu4,
#gNavi.is-collapsed ul li#menu5,
#gNavi.is-collapsed ul li#menu6,
#gNavi.is-collapsed ul li#menu7 {
  width: auto !important;
  float: none !important;
}

#gNavi.is-collapsed ul li a {
  text-indent: 0 !important;
  /* -9999px を解除 */
  overflow: visible !important;
  /* 念のため */
  background-image: none !important;
  background: none !important;
  /* 個別 background 指定を強制解除 */
  width: 100% !important;
  /* 1列いっぱい */
  height: auto !important;
  /* 文字に合わせる */
  min-height: 44px;
  /* タップしやすさ */
  display: flex;
  /* 縦中央に */
  align-items: center;
  justify-content: flex-start;
  padding: 12px 14px;
  /* 余白 */
  border: 1px solid #d9d5c5;
  border-radius: 8px;
  background-color: #fff !important;
  color: #333;
  /* 文字色 */
  font-size: 16px;
  /* 読みやすく */
  line-height: 1.2;
}


/* 各項目（aタグ）：中央揃え＋下に1本線 */
#gNavi.is-collapsed.is-open .gnavi-menu>li>a {
  text-indent: 0 !important;
  /* 文字を表示する */
  overflow: visible !important;

  /* 通常メニューの画像背景は消す */
  background: transparent !important;
  background-image: none !important;

  /* センタリング */
  display: flex;
  align-items: center;
  justify-content: center;
  /* ←中央寄せ */
  text-align: center;

  /* サイズ */
  width: 100% !important;
  min-height: 48px;
  padding: 12px 10px;

  /* 下線のみ */
  border-bottom: 1px solid rgba(217, 213, 197, .9);

  /* 余分なラインを消す */
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;

  /* 文字スタイル */
  color: #333;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: .03em;
}

/* hover/focus 時：背景を少し明るくしてアクセント */
#gNavi.is-collapsed.is-open .gnavi-menu>li>a:hover,
#gNavi.is-collapsed.is-open .gnavi-menu>li>a:focus-visible {
  background-color: #80004033 !important;
}

/* スマホのタップ時 */
#gNavi.is-collapsed.is-open .gnavi-menu>li>a:active {
  background-color: #80004033 !important;
}



/* hover / focus の見た目（色変更など） */
#gNavi.is-collapsed ul li a:hover,
#gNavi.is-collapsed ul li a:focus-visible {
  background-color: #f3f3f3 !important;
  border-color: #bfb9a3;
}

/* 既存の hover（background-position: bottom）を無効化（念のため） */
#gNavi.is-collapsed ul li a:hover {
  background-position: initial !important;
}

@media (max-width: 360px) {
  #header a#logo img {
    max-width: 200px;
  }

  #gNavi.is-collapsed ul li a {
    height: 52px;
    background-size: 85% auto;
  }
}

/* ====== Footer ====== */
#footer {
  position: relative;
  clear: both;
  height: auto;
  background: #fff;
  line-height: 1.5;
  min-height: 70px;
  margin-top: 100px;
  padding: 24px 16px;
}

#footer nav ul {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  flex-wrap: wrap;
}

#footer nav a {
  text-decoration: none;
  color: #800040;
  font-weight: 400;
  font-size: 14.4px;
  display: inline-block;
  padding: 4px 0;
}

#footer>div {
  text-align: center;
  margin-top: 12px;
}

#footer>div p {
  margin: 0;
  color: #800040;
  font-weight: 400;
  font-size: 14.4px;
}


/* ====== Responsive: columns stack on small screens ====== */
@media (max-width: 960px) {

  #wrap2,
  #leftSide,
  #mainContents,
  #rightSide {
    float: none;
    width: 100%;
  }

  #footer p {
    margin-left: 12px;
    margin-right: 12px;
  }

  #footer address {
    position: static;
    text-align: right;
    margin-top: 10px;
  }
}