@charset "UTF-8";
/* CSS Document */
/* CSS Document */
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box; }

body {
  font-size: 1.6rem;
  line-height: 1.8em;
  font-family: 'Noto Sans JP' , sans-serif;
  color: #222; }

main {
  position: relative;
  top: -5px; }
  main h1 {
    font-size: 3.5rem; }

a {
  display: inline-block;
  text-decoration: none;
  color: #333;
  position: relative;
  transition: .2s ease; }

a:hover {
  color: #FF9100; }

ul {
  list-style: none; }

img {
  max-width: 100%;
  height: auto;
  object-fit: cover; }

svg {
  vertical-align: middle;
  tansition: .5s ease; }

h1, h2 {
  font-family: 'MPLUSRounded1c' , sans-serif;
  transform: rotateZ(0.03deg);
  line-height: 1.15; }

.container {
  width: 1000px;
  padding: 50px 0;
  margin: 0 auto;
  text-align: left; }

.btnBox {
  text-align: center;
  padding: 30px 0 0; }
  .btnBox .btn {
    display: inline-block;
    border: 3px solid #FF9100;
    padding: 10px 50px;
    background-color: #FF9100;
    color: #ffffff;
    transition: all .5s ease;
    font-weight: bold;
    vertical-align: middle;
    position: relative; }
    .btnBox .btn svg {
      position: absolute;
      top: 50%;
      bottom: 50%;
      right: -8px;
      transform: translate(-50%, -50%);
      transition: all .2s ease; }
  .btnBox .btn:hover {
    background-color: #ffffff;
    color: #FF9100; }
    .btnBox .btn:hover svg {
      stroke: #FF9100; }

.telnum {
  text-decoration: underline; }

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .container {
    width: 90%;
    padding: 50px 0; } }
@media screen and (max-width: 767px) {
  main {
    padding-top: 70px; }
    main h1 {
      font-size: 2.5rem; }

  .container {
    width: 90%;
    padding: 50px 0; } }
@media screen and (min-width: 768px) {
  .telnum {
    pointer-events: none; } }
/* CSS Document */
/*ヘッダーメニューの背景色当てるクラス*/
.bgPink {
  background-color: #FF7F96; }

.bgBlue {
  background-color: #5AB5E4; }

.bgYellow {
  background-color: #F5A446; }

.bgGray {
  background-color: #A3A196; }

.bgOrange {
  background-color: #FF9100; }

.bgLemon {
  background-color: #F8DD29; }

/*黄色い下線をつけるクラス*/
.undLine {
  display: inline;
  background-image: linear-gradient(transparent 60%, #FFFEC4 0%); }

/* CSS Document */
header {
  background-color: #ffffff;
  text-align: left; }
  header .container {
    width: 100%;
    padding: 20px 70px 0; }
  header .topMenu {
    display: flex;
    justify-content: space-between;
    align-items: center; }
  header .headerLogo {
    width: 400px; }
  header .textBox {
    text-align: right; }
    header .textBox p {
      font-family: 'MPLUSRounded1c';
      font-size: 2.6rem;
      font-weight: bold;
      color: #A16B00;
      margin-bottom: 20px; }
    header .textBox img {
      width: 60%; }
  header ul {
    display: table;
    width: 100%;
    margin: 30px auto 0;
    border-spacing: 3px 0; }
    header ul li {
      display: table-cell;
      width: 20%;
      vertical-align: middle;
      text-align: center;
      border-radius: 10px 10px 0 0;
      transform: translateY(15px);
      transition: .2s ease; }
    header ul a {
      display: block;
      width: 100%;
      padding: 15px 15px 25px 15px;
      color: #ffffff;
      font-family: 'MPLUSRounded1c' , sans-serif;
      font-weight: bold;
      font-size: 1.4rem;
      line-height: 1.5em; }
    header ul a:hover {
      color: #ffffff; }
    header ul li:hover {
      transform: translateY(8px);
      transition: .2s ease; }

/*SP幅の場合のみ表示されるヘッダーの中身*/
.onlySP {
  display: none;
  width: 100%;
  height: 70px;
  padding: 10px;
  background-color: #ffffff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  position: fixed;
  z-index: 10; }
  .onlySP .headerLogo {
    width: 180px; }
  .onlySP .spMenu {
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center; }

/*アイコン2つ*/
#open, #close {
  cursor: pointer;
  user-select: none; }

/*ハンバーガーアイコン押したら表示されるメニュー*/
#overlay {
  display: none;
  width: 100%;
  height: 100%;
  padding: 25px 10px;
  position: fixed;
  top: 0;
  left: 0;
  user-select: none;
  background: rgba(255, 255, 255, 0.95);
  z-index: 50;
  /*ホバー時の文字色をタブの背景色と合わせる*/ }
  #overlay #close {
    /* バツのアイコンを右上に配置 */
    display: block;
    margin-right: 0;
    margin-left: auto; }
  #overlay ul {
    margin-top: 20px; }
  #overlay a {
    display: inline-block;
    padding: 10px 15px;
    font-weight: bold;
    animation: fadein 1s; }
  #overlay li:nth-child(1) a:hover {
    color: #FF7F96; }
  #overlay li:nth-child(2) a:hover {
    color: #5AB5E4; }
  #overlay li:nth-child(3) a:hover {
    color: #F5A446; }
  #overlay li:nth-child(4) a:hover {
    color: #A3A196; }
  #overlay li:nth-child(5) a:hover {
    color: #FF9100; }
@keyframes fadein {
  from {
    transform: translateY(20px);
    opacity: 0; }
  to {
    transform: translateY(0);
    opacity: 1; } }
  #overlay .textBox {
    width: 90%;
    margin: 60px auto 0; }
    #overlay .textBox p {
      margin-bottom: 20px;
      font-family: 'MPLUSRounded1c';
      font-size: 1.8rem;
      font-weight: bold;
      color: #A16B00;
      animation: fadein 1s; }
    #overlay .textBox a {
      display: block;
      padding: 0;
      text-align: center;
      animation: fadein 1s; }

/* overlayが表示されるクラス */
#overlay.active {
  display: block; }

/* ------------------------------------------
右に固定で出てくるリンク先タブ
------------------------------------------ */
#side {
  position: fixed;
  right: 0;
  top: 300px;
  z-index: 2;
  opacity: 0;
  transform: translateX(250px); }
  #side a {
    display: block;
    border: 6px solid #FFB34E;
    border-radius: 10px;
    padding: 30px 15px;
    writing-mode: vertical-lr;
    color: #FFFFFF;
    background-color: #FF9100;
    font-weight: bold; }
  #side a:hover {
    background: #ff7100;
    transition: all .2s; }
  #side img {
    width: 40%;
    position: relative;
    top: -30px;
    right: 20px;
    transition: .2s ease; }
  #side a:hover + img {
    transform: rotate(-15deg);
    transition: .2s ease; }

/*　左の動き　*/
#side.LeftMove {
  animation: LeftAnime 0.5s forwards; }

@keyframes LeftAnime {
  from {
    opacity: 0;
    transform: translateX(250px); }
  to {
    opacity: 1;
    transform: translateX(135px); } }
/*　右の動き　*/
#side.RightMove {
  animation: RightAnime 0.5s forwards; }

@keyframes RightAnime {
  from {
    opacity: 1;
    transform: translateX(135px); }
  to {
    opacity: 1;
    transform: translateX(250px); } }
@media screen and (min-width: 768px) and (max-width: 1024px) {
  header .container {
    width: 100%;
    padding: 20px 30px 0; }
  header .headerLogo {
    width: 300px; }
  header .textBox {
    text-align: right; }
    header .textBox p {
      font-family: 'MPLUSRounded1c';
      font-size: 2rem;
      margin-bottom: 10px; }
    header .textBox img {
      width: 250px; } }
@media screen and (max-width: 767px) {
  header .container {
    display: none; }
  header .onlySP {
    display: block; }

  #side {
    /*
            top: 390px;
    */ }
    #side a {
      padding: 20px 15px; } }
/* CSS Document */
/* TOPに戻るのアイコン */
#scrollTop {
  position: fixed;
  right: 20px;
  bottom: 40px;
  font-size: 50px; }

footer .container {
  padding: 30px 0; }
footer .topArea {
  background-image: url("../img/footer_bg.svg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat; }
  footer .topArea .footerLogo {
    width: 30%; }
  footer .topArea .flexBox {
    width: 90%;
    margin-top: 20px;
    display: flex;
    justify-content: flex-end;
    gap: 30px; }
  footer .topArea .info {
    width: 50%; }
    footer .topArea .info h1 {
      font-size: 1.8rem;
      margin-bottom: 10px; }
    footer .topArea .info dl {
      display: table;
      width: 100%; }
    footer .topArea .info dl:nth-of-type(1),
    footer .topArea .info dl:nth-of-type(2) {
      margin-bottom: 10px; }
    footer .topArea .info dt {
      display: table-cell;
      width: 30%;
      vertical-align: top; }
    footer .topArea .info dd {
      display: table-cell;
      width: 70%;
      vertical-align: top; }
  footer .topArea .footerMenu {
    font-weight: bold; }
footer .buttomArea {
  background-color: #7DBD5E; }
  footer .buttomArea .container {
    padding: 15px 0px;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    font-size: 1.4rem; }
  footer .buttomArea ul {
    display: flex; }
    footer .buttomArea ul li {
      margin-right: 30px; }
    footer .buttomArea ul a {
      color: #ffffff; }
    footer .buttomArea ul a:hover {
      color: #A16B00; }
  footer .buttomArea p {
    font-weight: bold; }
footer #telnum {
  text-decoration: underline; }

@media screen and (min-width: 768px) and (max-width: 1024px) {
  footer .topArea .container {
    padding-bottom: 20px; }
  footer .topArea .footerLogo {
    width: 40%; }
  footer .topArea .flexBox {
    width: 100%;
    margin: 0 auto; }
  footer .topArea .info dl {
    display: flex;
    flex-direction: column; }
  footer .topArea .info dt, footer .topArea .info dd {
    width: 100%; } }
@media screen and (max-width: 767px) {
  #scrollTop {
    display: none; }

  footer .topArea .container {
    padding-bottom: 20px; }
  footer .topArea .footerLogo {
    width: 200px; }
  footer .topArea .flexBox {
    width: 100%;
    margin-top: 25px;
    flex-direction: column;
    gap: 0; }
  footer .topArea .info {
    width: 100%;
    margin-bottom: 20px; }
    footer .topArea .info dl {
      display: flex;
      flex-direction: column; }
    footer .topArea .info dt, footer .topArea .info dd {
      width: 100%; }
  footer .topArea .footerMenu {
    width: 100%; }
  footer .buttomArea .container {
    flex-direction: column; }
  footer .buttomArea ul {
    display: flex;
    margin-bottom: 10px; }
    footer .buttomArea ul li {
      margin-right: 30px; } }
section {
  background-color: #FFFEE1; }

h1 {
  margin-bottom: 40px; }

#privacy p {
  margin-bottom: 30px; }
#privacy dt {
  font-size: 20px;
  margin-bottom: 5px; }
#privacy dd {
  margin-bottom: 30px; }

#sitemap ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }
#sitemap li {
  width: 48%;
  margin-bottom: 30px; }
#sitemap a {
  display: block;
  padding: 20px 20px 10px;
  border-bottom: 1px solid #E3E19B; }
#sitemap svg {
  position: absolute;
  top: 25px;
  right: 20px; }
#sitemap a:hover {
  opacity: .8;
  transition: .3s ease; }
  #sitemap a:hover svg {
    right: 15px;
    transition: .3s ease; }

#notFound h1, #error h1 {
  font-size: 6rem;
  text-align: center; }
  #notFound h1 span, #error h1 span {
    display: block;
    font-size: 4rem; }
#notFound h2, #error h2 {
  font-size: 1.8rem;
  text-align: center; }

@media screen and (max-width: 767px) {
  #sitemap ul {
    flex-direction: column; }
  #sitemap li {
    width: 100%; }

  #notFound h1, #error h1 {
    font-size: 5rem; }
    #notFound h1 span, #error h1 span {
      font-size: 3rem; } }
@media screen and (min-width: 768px) {
  .SP {
    display: none; } }
@media screen and (min-width: 767px) {
  display: none; }
