@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');
/* CSS Document */
/* html all ----------------------------------------------------------- */
*,*:before,*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

html { 
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 62.5%; /*rem算出をしやすくするために*/
  scroll-behavior: smooth;
  overflow: auto;
}

/* html end ----------------------------------------------------------- */

/* body ----------------------------------------------------------- */
body {
  margin: 0;
  padding: 0;
  font-size: clamp(1rem,1.6vw,16px);
  font-family: "Arial","Helvetica Neue","Noto Sans JP","Hiragino Sans","Meiryo","Hiragino Kaku Gothic ProN",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 1px;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-spacing-trim: space-all;
  word-break: break-word;
  background: #1f2c5c;
  color: #333;
}

/* image all */
img { vertical-align: middle;}

/* display */
.pc { display: initial;}
.sp { display: none;}

/* background */
.bg {
  background-image:url(../img/bg-t.png),url(../img/bg-b.png),url(../img/bg.png);
  background-repeat: no-repeat;
  background-position: center top, center bottom,center top;
  background-size: contain,contain,cover;
  background-attachment: scroll,scroll,fixed;
  z-index: -5;
}

/* body end ----------------------------------------------------------- */

/* header ----------------------------------------------------------- */
header {
  position: -webkit-sticky; /* 固定する場合 */
  position: sticky;
  /* position: relative; */ /* 固定しない場合 */
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  top: 0;
  z-index: 2;
  border-bottom: none;
  background: url(../img/bg-t.png) no-repeat center top / cover;
}

/* header-box（ヘッダー横並び用） */
.header-box{
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

/* logo */
.logo {
  position: relative;
  height: auto;
  margin: 0;/* 適宜修正 */
  padding: 0 20px;
}
.logo img { max-width: 1200px; width: 100%;}

/* header-menu */
.h-menu {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: flex-end;
  align-items: right;
  position: relative;
  max-width: 700px;
  width: 100%;
  text-align: right;
}
.h-menu ul{ padding-right: 30px;}
.h-menu li {
  display: inline-block;
  margin: 5px auto;
  padding: 5px 10px;
  /* border-right: 4px dotted rgba(255,255,255,0.5); */
}
.h-menu li a{
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
  text-decoration: none;
  color: #fff;
  text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}
.h-menu li a:hover{ color: #F6DBA5;}
.h-menu li:last-of-type{ border-right: none;}

/*header end ----------------------------------------------------------- */

/* base ----------------------------------------------------------- */
#wrap { margin: 0;}
.content {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-around;
  align-content: center;
  gap: 0 20px;
  max-width: 1800px;
  width: 100%;
  min-height: auto;
  margin: 20px auto;
  padding: 0;
  z-index: 0;
}

/* base end ----------------------------------------------------------- */

/* flexbox ----------------------------------------------------------- */
.flexbox,.flexbox ul{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0 20px;
  justify-content: space-around;
  align-items: flex-start;
}
.flexbox ul{ 
  flex-wrap: wrap;
  justify-content: flex-start;
}

/* flexbox end ----------------------------------------------------------- */

/* sidebar ----------------------------------------------------------- */
.side {
  -webkit-flex: 1;
  flex: 0 0 1;
  max-width: 300px;
  width: 100%;
  margin: 0 auto;
  padding: 0 10px;
}

/* etc */
.etc {
  max-width: 300px;
  margin: 0 auto 10px;
  text-align: center;
  align-items: center
}
.etc h4,footer h4{ 
  display: inline-block;
  margin: 0 auto 10px;
  padding: 10px 15px;
}
.etc h4{
  border: 1px solid #fff;
  background: #fff;
  color: #1f2c5c;
}

.etc img {
  max-width: 250px;
  width: 100%;
  border: 1px solid #fff;
}

/* sidebar end ----------------------------------------------------------- */

/* menu ----------------------------------------------------------- */
.menu {
  max-width: 300px;
  position: relative;
  margin: 0;
  padding: 0;
}
.menu ul{ margin: 10px auto 30px;}
.menu li {
  list-style: none;
  margin: 0 0 5px 0;
  padding: 0;
  border-bottom: 1px solid #fff;
  background: none;
}

.menu li a{
  display: inline-block;
  position: relative;
  width: 100%;
  padding: 10px; /* 適宜 10px 10px 10px 20px */
  box-sizing: border-box;
  line-height: 25px;
  text-align: left;
  font-weight: 700;
  letter-spacing: 1px;
  text-decoration: none;
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
  border-radius: 0;
  border: none;
  background: none;
  color: #fff;
  filter: drop-shadow(0 0 5px #fff);
  text-shadow: 2px 2px 2px #1f2c5c;
}

/* 開いてるページの色のみ変更 */
.menu li a.active{ 
  background: linear-gradient(90deg,#fff,#F6DBA5,#E8A389,rgba(255,255,255,0));
  color: #ec704e;
  text-shadow: none;
}

/* menu-hover */
.menu li a:hover{ 
  padding-left: 20px;
  border: none;
  background: #fff;
  color: #ec704e;
  text-shadow: none;
}

/* menu end ----------------------------------------------------------- */

/* menu-accordion ----------------------------------------------------------- */
/* リストの黒点を消す */
.accordion-menu, .submenu {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* メニューの見た目 */
.accordion-menu li { border-bottom: 1px solid #fff;}

.menu-title, .accordion-menu a {
  display: block;
  padding: 10px;
  text-decoration: none;
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
  cursor: pointer;
  background: none;
  border-bottom: 1px solid #fff;
  color: #fff;
  filter: drop-shadow(0 0 5px #fff);
  text-shadow: 2px 2px 2px #1f2c5c;
}
.menu-title:hover, .accordion-menu a:hover {
  padding-left: 20px;
  background-color: #fff;
  color: #ec704e;
  text-shadow: none;
}

/* サブメニューはデフォルトで非表示 */
.submenu { display: none; overflow: hidden;}

/* 子階層のインデント */
.submenu .menu-title, .submenu li a{ background: #1f2c5c; color: #fff;}
.submenu .submenu .menu-title, .submenu .submenu li a{ background: #1f2c5c; color: #fff;}

/* 親メニューの矢印設定 */
.accordion-menu > .menu-title {
  cursor: pointer;
  position: relative;
  display: block;
}

/* 矢印の基本デザイン */
.accordion-menu > .menu-title::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 45%;
  transform: translateY(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transition: transform 0.3s ease; /* 開閉時のアニメーション */
}
.accordion-menu > .menu-title:hover::after{
  border-right: 2px solid #1f2c5c;
  border-bottom: 2px solid #1f2c5c; 
}

/* メニュー展開時の矢印の向き（上向き） */
.accordion-menu.is-open > .menu-title::after { transform: translateY(-50%) rotate(-135deg);}

/* menu-accordion end ----------------------------------------------------------- */

/* sub-menu ----------------------------------------------------------- */
.sub-menu{
  width: 100%;
  margin: 0 auto 20px;
  padding: 10px 20px;
  background: #1f2c5c url(../img/bg-t.png) no-repeat left top / cover;
  border: 1px solid #5484B6;
}
.sub-menu ul{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0 10px;
}
.sub-menu li a{
  position: relative;
  text-decoration: none;
  color: #fff;
}
.sub-menu li a:hover{ color: #F6DBA5;}

/* sub-menu end ----------------------------------------------------------- */

/* main ----------------------------------------------------------- */
.main {
  -webkit-flex: 1;
  flex: 0 0 1;
  max-width: 1300px;
  width: 100%;
  margin: 0 auto;
  padding: 0 50px;
}

/* section */
section {
  margin: 0 auto;
  padding: 20px 50px 50px;
  background: rgba(255,255,255,1);
}
section a img { border: 1px solid #dadada;}

/* home-image */
.home-image {
  position: relative;
  max-width: 1200px;
  width: 100%;
  height: auto;
  margin: 0 auto;
  text-align: center;
}
.home-image img{ max-width: 1200px; width: 100%;}

/* 画像のフチをぼかす */
.img-box { position: relative;}
.img-box::after{
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  box-shadow: inset 0 0 10px 10px #0D7330;
  mix-blend-mode: hard-light; /* 適宜変更 */
}


/* main end ----------------------------------------------------------- */

/* font ----------------------------------------------------------- */
/* 明朝体 */
header,footer,h1,.en h1,caption,.table th,.info-box dt,.co-sp dt,.p-title,
.menu,.gp-box,.btn-box,.p-menu,.period,
.tab li a,.ap-period th {
  font-family: "Noto Serif", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}
/* ゴシック体 */
h2,h3, h4, h5, h6,.table th,.info-box dt,.co-sp dt,.p-title,
#header-menu,.g-box,.p-menu,.period,.tab-list,
.fee,.tab li a,.ap-period th {
  font-family: "Noto Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

/* font end ----------------------------------------------------------- */

/* text ----------------------------------------------------------- */
/* font-size
その他= ***（px指定数）÷1000（mainの数値）×100＝vwの数字（小数点切り上げ）で計算 */
h1,.comingsoon-box{ font-size: clamp(3rem,4.8vw,48px);}
h1 > .number,.btn03 > .day{ font-size: clamp(2.5rem,4.0vw,40px);}
h2,.larger,.gr-box>h4,.btn03 > .month{ font-size: clamp(1.75rem,2.8vw,28px);}
h3,h4 > .large{ font-size: clamp(1.375rem,2.2vw,22px);}
h4,.large,caption,#arrow a,.number-flow,.btn-flow { font-size: clamp(1.25rem,2.0vw,20px);}
h5,.menu,.sub-menu,.tab,.btn,.etc h4,.p-section h4 span,footer h4,h3 > .small,.btn03 > .year{ font-size: clamp(1.125rem,1.8vw,18px);}
h6,#header-menu,.large > .small,h4 > .small,.info-box dl,.number-flow .small{ font-size: clamp(1rem,1.6vw,16px);}
.h-menu,footer small{ font-size: clamp(0.9375rem,1.5vw,15px);}
.small{ font-size: clamp(0.875rem,1.4vw,14px);}

/* caption */
h1,h2,h3,h4,h5,h6,p { letter-spacing: 1px;}
.en h1,h1>.en{ line-height: 1;}

/* <h1>～</h1> */
h1{
  color: #fff;
  -webkit-text-stroke: 5px rgba(25,54,65,0.9);
  paint-order: stroke;
  filter: drop-shadow(0 0 10px rgba(25,54,65,0.9));
}

/* <h2>～</h2> */
h2{
  position: relative;
  margin: 0 auto 20px;
  padding: 0;
  text-align: center;
  border-bottom: none;
  background: none;
  color: #193641;
}

/* <h3>～</h3> */
h3{
  margin: 20px 0 10px;
  padding: 10px 20px 10px 20px;
  border-radius: 0;
  border: none;
  background: #18347e url(../img/bg-b.png) no-repeat left 65% / cover ;
  color: #fff;
  text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}

/* <h4>～</h4> */
h4{
  margin: 10px 0;
  padding: 10px 15px 3px 20px;
  border-radius: 0;
  border-bottom: 6px solid rgba(142,159,205,0.5);
  color: #666;
}

/* <h5>～</h5> */
h5{
  position: relative;
  margin: 5px 0 5px 20px;
  padding: 0 20px;
  border-radius: 0;
  border: none;
  background: none;
  color: #4376A1;
}
h5::before{
  position: absolute;
  content: "\025c6";
  vertical-align: middle;
  top: 0;
  left: -5px;
  color: #84B7D9;
}

/* <h6>～</h6> */
h6{ padding: 0 20px; color: #0e4795;}

/* h-counter */
.counter{ counter-reset: header;}
.counter h3::before,.counter h4::before{ content: counter(header)". "; counter-increment: header;}

/* <p>～</p> */
p { margin-bottom: 10px; padding: 0 20px;}
p.top { margin-top: 10px;}
p.mtop { margin-top: -10px;}
p.bottom { margin-bottom: 20px;}

/* text end ----------------------------------------------------------- */

/* icon ----------------------------------------------------------- */
.material-symbols-outlined {
  font-variation-settings:
  'FILL' 1,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24;
  vertical-align: middle;
}

/* アイコン装飾用css */
.icon{ /* marginとpaddingはHP毎に調整 */
  margin: 0 5px 0;
  padding: 0;
}
.icon.i-colw{ color: #ec704e;}
.icon.i-colb{ color: #F6DBA5;}
.icon.i-cir{
  padding: 5px;
  border-radius: 50%;
  border: none;
  background: #ec704e;
  color: #fff;
}
.icon.i-cir:hover{ background: #F6DBA5; color: #fff;}

/* menu in icon */
.menu .material-symbols-outlined{ margin-top: -2px;}

/* 特定の拡張子の場合自動で表示(白) */
[href$=".docx"].btn01::before,[href$=".doc"].btn01::before {
  display: inline-block;
  content: url("../img/icon/word_icon.png");
  margin-left: -10px;
  padding-right: 10px;
  vertical-align: middle;
}
[href$=".pdf"].btn01::before {
  display: inline-block;
  content: url("../img/icon/pdf_icon.png");
  margin-left: -10px;
  padding-right: 10px;
  vertical-align: middle;
}
[href$=".xlsx"].btn01::before {
  display: inline-block;
  content: url("../img/icon/excel_icon.png");
  margin-left: -10px;
  padding-right: 10px;
  vertical-align: middle;
}
[href$=".pptx"].btn01::before,[href$=".ppt"].btn01::before {
  display: inline-block;
  content: url("../img/icon/pptx_icon.png");
  margin-left: -10px;
  padding-right: 10px;
  vertical-align: middle;
}

/* ボタンの背景色が白い場合(g=gray b=black c=color ) */
/* gray */
[href$=".docx"].gray::before,[href$=".doc"].gray::before{ content: url("../img/icon/word_icon_g.png");}
[href$=".pdf"].gray::before { content: url("../img/icon/pdf_icon_g.png");}
[href$=".xlsx"].gray::before { content: url("../img/icon/excel_icon_g.png");}
[href$=".pptx"].gray::before,[href$=".ppt"].gray::before { content: url("../img/icon/pptx_icon_g.png");}
/* black */
[href$=".docx"].btn02::before,[href$=".doc"].btn02::before{ content: url("../img/icon/word_icon_b.png");}
[href$=".pdf"].btn02::before { content: url("../img/icon/pdf_icon_b.png");}
[href$=".xlsx"].btn02::before { content: url("../img/icon/excel_icon_b.png");}
[href$=".pptx"].btn02::before,[href$=".ppt"].btn02::before { content: url("../img/icon/pptx_icon_b.png");}
/* color */
.btn-box.col > [href$=".docx"]::before,[href$=".doc"]::before{ content: url("../img/icon/word_icon_c.png");}
.btn-box.col > [href$=".pdf"]::before { content: url("../img/icon/pdf_icon_c.png");}
.btn-box.col > [href$=".xlsx"]::before { content: url("../img/icon/excel_icon_c.png");}
.btn-box.col > [href$=".pptx"]::before,[href$=".ppt"]::before { content: url("../img/icon/pptx_icon_c.png");}

/* image no-icon */
.no-icon > .btn::before{ content: ""; margin-left: 0; padding-right: 0;}

/* icon end ----------------------------------------------------------- */

/* box ----------------------------------------------------------- */
/* box all:n-box */
.n-box{
  width: 100%;
  margin: 20px auto;
  padding: 10px;
  border-radius: 0;
  border: 5px solid #8EC86C;
  background: #fff;
}
.n-box > h4{
  margin: 10px auto;
  padding: 0 10px;
  border-bottom: 2px solid #8EC86C;
  background: none;
}
.n-box > h5{ color: #727272;}
.n-box > h5::before{ color: #378B06;}

/* box-border:color */
.n-box.att{ outline: 2px solid #E8A389; border: 4px double #E8A389; border-image: none; background: radial-gradient(#fff,#fff,#F6DBA5);}
.n-box.att > h4{ border-color: #E8A389; border-image: none;}
.n-box.att > h5::before{ color: #D87A8E;}
.n-box.smm{ border: 1px solid #84B7D9; border-image: none; background: radial-gradient(#fff,#D2EAF4);}
.n-box.smm > h4{ border-bottom: 1px solid #84B7D9; border-image: none;}
.n-box.smm > h5::before{ color: #5484B6;}

/* important-box */
.n-box.imp{
  max-width: 670px;
  width: 100%;
  margin: 10px auto;
  padding: 15px 20px;
  border-radius: 10px;
  border: none;
  border-image: none;
  background: #eaeaea;
}
.n-box.imp h4{ 
  margin: 0 0 10px;
  padding: 0 20px;
  text-align: center;
  border-bottom: 1px solid #adadad;
  border-image: none;
}
/* important-box: <dl>～</dl> */
.n-box.imp dl{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  margin: 0;
}
.n-box.imp dt{
  display: inline-block;
  width: 100px;
  height: auto;
  padding: 0;
  font-weight: 600;
  vertical-align: middle;
}
.n-box.imp dd{ 
  width: 550px; /* max-widthに合わせて調整 */
  padding: 0;
  font-weight: 600;
  vertical-align: middle;
}

/* coming soon */
.comingsoon-box{
  max-width: 700px;
  width: 100%;
  margin: 50px auto;
  padding: 100px;
  border-radius: 20px;
  background: rgba(232,232,232,0.5);
  color: #a9a9a9;
}

/* 準備中アイコン */
.comingsoon-box .material-symbols-outlined.icon{ font-size: clamp(3rem,2.5vw,48px);}

/* 一部 coming soon */
.comingsoon-box.temp{ margin: 10px auto; padding: 10px; font-size: clamp(1.5rem,2.4vw,24px);}
.comingsoon-box.temp .material-symbols-outlined.icon{ font-size: clamp(1.5rem,2.4vw,24px);}

/* メンテナンス中 */
.comingsoon-box.maintenance{ background: rgba(239,141,160,0.5); color: #dc143c;}

/* top-event */
#top-event.n-box{ margin-top: 0;}

/* box-width */
.w90{ max-width: 900px;}
.w70{ max-width: 700px;}
.w50{ max-width: 500px;}
/* box end ----------------------------------------------------------- */

/* list ----------------------------------------------------------- */
/* list all */
ul,ol {
  margin: 0;
  padding: 0;
}
.list li .note{
  margin-left: 0;
  text-indent: 0;
}
.list .bottom li { margin-bottom: 10px;}
.list ul,.list ol {
  list-style-position: inside;
  margin: 10px 0 20px;
  counter-reset: pn1 pn2 ast;
}
.list li{ margin-left: 46px; text-indent: -22px;}
.list li li{ margin-left: 28px;}
.list li p{ margin-left: 0;}
.list li .period dl{ margin: 0;}
.list li .icon{ text-indent: 0;}

/* ol all */
.num ol li{ list-style-type: decimal; text-indent: -20px;}
.pn1 ol li, .pn2 ol li,.ast ol li{
  position: relative;
  list-style-type: none;
}
.pn1 ol li::marker,.pn2 ol li::marker,.ast ol li::marker{
  position: absolute;
  top: 0;
  left: 0;
}
.col ol li::marker{ font-weight: 700; color: #0e4795;}

/* 1) */
.pn1 ol li{ counter-increment: pn1; margin-left: 24px; text-indent: -20px;}
.pn1 ol li::marker{ content: "" counter(pn1) ") ";}

/* (1) */
.pn2 ol li{ counter-increment: pn2; margin-left: 25px; text-indent: -27px;}
.pn2 ol li::marker { content: "(" counter(pn2) ") ";}

/* ＊1 */
.ast ol li{ counter-increment: ast; margin-left: 32px; text-indent: -32px;}
.ast ol li::marker{ content: "＊" counter(ast) " ";}

/* ul ●＆○ */
.disc li{ list-style-type: disc;}
.cir li{ list-style-type: circle;}
.disc li::marker,.cir li::marker{ color: #7EB8C5;}
.smm li::marker{ color: #5484B6;}
.att li::marker{ color: #D87A8E;}
.red li::marker{ color: #DC0509;}

/* ul mark ＊ & * & ▶ & ◆ */
.ast li{ margin-left: 36px; text-indent: -17px;}
.en > .ast li{ margin-left: 28px; text-indent: -7px;}
.tri li,.dia li{ margin-left: 40px; text-indent: -17px;}

/* ＊ */
.ast li::marker{ content: "＊";}
.en > .ast li::marker{ content: "*";}

/* ◆ */
.dia li::marker{ content: "\025c6"; color: #7EB8C5;}

/* ▶ */
.tri li::marker { content: "\025b6"; color: #7EB8C5;}

/* support */
.support li{ list-style-type: none;}

/* list-text-align */
.center li{ margin: 0;}

/* in:box */
.n-box ul, .n-box ol{ margin-bottom: 10px;}

/* list end ----------------------------------------------------------- */

/* link ----------------------------------------------------------- */
a {
  font-weight: 600;
  text-decoration: underline;
  color: #1f2c5c;
}
a:hover,a:active { color: #ec704e;}
a img { border: 1px solid #fff;}
a img:hover { filter: brightness(120%);}

/* link list */
.flexbox > .link ul{
  flex-direction: column;
  flex-wrap: wrap;
}
.link{ 
  max-width: 700px;
  width: 100%;
  margin: 30px auto 0;
  padding: 0;
}
.link a{ text-decoration: none; color: #fff;}
.link a:hover,.link a:active{ color: #F6DBA5;}
.link ul{ margin: 10px 0;}
.link li{
  position: relative;
  list-style-type: none;
  margin: 0 auto;
  padding: 5px 20px;
  text-indent: 0;
  border-bottom: 1px dashed #fff;
}

/* link end ----------------------------------------------------------- */

/* button ----------------------------------------------------------- */
/* button-box | flyer-box */
.btn-box,.f-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  gap: 10px 20px;
  margin: 30px auto;
}

/* button-box | flyer-box image */
.btn-box a img,.f-box a img { border: 1px solid #fff;}
.f-box img{ max-width: 700px; width: 100%;}

/* flyer-box fine */
.side .btn-box, .side .f-box{ margin: 10px auto;}
.flexbox .f-box{ flex-direction: column; flex-wrap: wrap;}

/* button all */
.btn,.btn01,.btn02,.btn03 {
  display: inline-block;
  position: relative;
  max-width: 400px;
  width: 100%;
  padding: 2rem 1rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  line-height: 1.5;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1rem;
  border-radius: 100vh;
}

/* button arrow */
.btn::after{
  content: "";
  position: absolute;
  top: 50%;
  bottom: 0;
  right: 3rem;
  font-size: 90%;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: right 0.3s;
  width: 10px;
  height: 10px;
  border-top: solid 2px currentColor;
  border-right: solid 2px currentColor;
  transform: translateY(-50%) rotate(45deg);
}
.btn:hover::after{ right: 2.4rem;}

/* button01:dark-color */
.btn01{
  border: 1px solid #adadad;
  color: #fff;
}

/* button02:light color */
.btn02 {
  border: 1px solid #adadad;
  color: #484848;
}

/* button:03(deadline) */
#deadline.btn-box{
  justify-content: space-evenly;
  margin: 20px auto;
}
.btn03 { 
  width: 150px;
  height: 150px;
  padding: 1rem;
  cursor: default;
  border-radius: 20px;
  border: 1px solid #1f2c5c;
  background: radial-gradient(#fff,#D2EAF4,#84B7D9,#5484B6);
  color: #1f2c5c;
}
.btn03 > .day{ color: #ec704e;}
a.btn03 { cursor: pointer;}

/* button color */
.btn-1{ background: #4962A5;}
.btn-2{ background: #ec704e;}
.btn-3{ background: #4376A1;}
.btn-4{ background: #ECA84E;}

/* icon button */
.btn-mw{ background: #7EB8C5;}
.btn-me{ background: #A2C566;}
.btn-pp{ background: #E8A389;}
.btn-pdf{ background: #D87A8E;}

/* button:width */
.btnw90{ max-width: 900px; width: 100%;}
.btnw70{ max-width: 700px; width: 100%;}
.btnw60{ max-width: 600px; width: 100%;}
.btnw50{ max-width: 500px; width: 100%;}
.btnpad{ padding: 1rem 4rem;}
.side .btnw{ max-width: 300px; padding: 1rem;}
.side .btn03{ width: 130px; height: 130px;}

/* button:hover */
.btn01:hover,.btn02:hover{
  filter: hue-rotate(-15deg);
  color: #fff;
}
.btn02:hover{ color: #666;}

/* color change */
.btn.gray,button.gray{ 
  cursor: default;
  filter: grayscale(100%);
  border: 1px solid #dadada;
  color: #dadada;
}
.btn.gray:hover,button.gray:hover{ margin-top: 0; filter: grayscale(100%);}
.btn.gray:after{ right: 3rem;}

/* button end ----------------------------------------------------------- */

/* flow ----------------------------------------------------------- */
/* flow all */
.flow { 
  max-width: 730px;
  width: 100%;
  margin: 30px auto 50px;
  padding: 20px;
  border-radius: 10px;
  background: rgba(255,255,255,0.5);
}
/* flow in arrow */
.flow-box {
  display: block;
  max-width: 730px;
  width: 100%;
  text-align: center;
  margin: 10px auto 20px;
}
.flow-arrow{
  display: inline-block;
  margin: 10px auto 20px;
  vertical-align: middle;
  line-height: 1;
  width: 2em;
  height: 2em;
  border: 0.3em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  transform: translateY(-25%) rotate(135deg);
  color: #5eaa32;
}
/* flow in button */
.btn-flow {
  max-width: 600px;
  width: 100%;
  height: 80px;
  font-size: 2.0rem;
  font-weight: 700;
  line-height: 25px;
  cursor: default;
  border-radius: 10px;
  border: none;
  background: #5eaa32;
  color: #fff;
}
.btn-flow:hover{ filter: none;}

/* flow end ----------------------------------------------------------- */

/* tab-menu ----------------------------------------------------------- */
/*tabの形状*/
.tab{ width: 100%; margin: 30px auto 0;}
.tab-menu{
  display: flex;
  align-items: flex-end;
  height: 80px;
}
.tab-menu li{ 
  display: flex;
  flex-grow: 1;
  height: 40px;
  justify-content: center;
  padding-right: 10px;
  position: relative;
  cursor: pointer;
  transition: all .3s ease-out;
  z-index: 1;
  align-items: center;
}
.tab-menu a{
  width: 100%;
  text-decoration: none;
  text-align: center;
  color: #fff;
}
.tab-menu li:nth-child(1){ background-color: #5484B6;}
.tab-menu li:nth-child(2){ background-color: #D87A8E;}
.tab-menu li:nth-child(3){ background-color: #5eaa32;}
.tab-menu li:not(:first-of-type) { border-left: 1px solid #fff;}

/* tab-menu arrow */
.tab-menu li::after {
  bottom: 0;
  content: "";
  height: 8px;
  margin: auto;
  position: absolute;
  right: 15px;
  top: 0;
  transform: rotate(45deg);
  transition: all .3s ease-out;
  width: 8px;
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
}
.tab-menu li.active::after {
  top: -6px;
  transform: rotate(135deg);
  transition: all .3s ease-in-out;
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
}
.tab-menu li:hover {
  opacity: .7;
  transition: opacity .3s ease-in-out;
}

/*liにactiveクラスがついた時の形状*/
.tab-menu li.active{
  height: 50px;
  transition: all .3s ease-in-out;
}
.tab-menu li.active a{ color: #fff;}

/*エリアの表示非表示と形状*/
.tab-area {
  display: none;
  width: 100%;
  background-color: none;
}

/*tab-areaにis-activeというクラスがついた時の形状*/
.tab-area.is-active {
    display: block;/*表示*/
    animation-name: displayAnime;/*ふわっと表示させるためのアニメーション*/
    animation-duration: 2s;
    animation-fill-mode: forwards;
}

@keyframes displayAnime{
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* tab-menu end ----------------------------------------------------------- */

/* table ----------------------------------------------------------- */
/* table all */
table{
  width: 100%;
  table-layout: fixed;
  -webkit-text-size-adjust: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  margin: auto;
}
caption{
  margin: 0 0 10px;
  padding: 10px 0;
  text-align: center;
  border: none;
  background: #fff8a8;
}
th,td{ 
  vertical-align: middle;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
}
td p,td li,td>.period dl{ margin: 0; padding: 0;}
td .note{margin: 0;}
.table { display: table; margin: 10px auto 20px;}
.table .flexbox{ justify-content: flex-start;}

/* ap-period */
.ap-period{ 
  max-width: 680px;/* 1000pxで中央にくるサイズ */
  position: relative;
  margin-bottom: 20px;
  align-items: center;
  background: none;
  border: none;
}
.ap-period table { width: 100%;}
.ap-period th {
  width: 150px;
  padding: 5px;
  text-align: center;
  border-radius: 10px;
  border: none;
  outline: none;
  background: none;
}
.ap-period td {
  width: 530px;
  padding: 5px 0 5px 20px;
  border-bottom: none;
  background: none;
}

/* event */
.event table { table-layout: fixed; width: 100%;}
.event tr { border-bottom: 1px solid #dadada;}
.event th{
  width: 25%;
  padding: 10px;
  text-align: center;
  color: #484848;
}
.event td{
  width: 75%;
  padding: 10px 20px;
  text-align: left;
}

/* fee */
.fee table{ width: 100%;}
.fee th {
  width: 30%;
  padding: 10px 20px;
  text-align: center;
  border: 1px solid #adadad;
  background: rgba(236,112,78,0.3);
}
.fee td {
  width: 30%;
  padding: 10px 20px;
  text-align: center;
  border: 1px solid #adadad;
  background: rgba(255,255,255,0.5);
}
.fee tr:nth-child(even) { background: rgba(218,218,218,0.5);}
.fee.tdbg td:nth-of-type(1){ background: rgba(217,143,192,0.3);}
th.thnone{ border: none; background: none;}

/* fee-width */
.fee.feew th:nth-of-type(1){ width: 400px;}
.fee.feew th{ width: 200px;}
.fee.feew td:nth-of-type(1){ text-align: center;}

/* ナンバー付きflow */
.number-flow table{
  table-layout: fixed;
  max-width: 700px;
  width: 100%;
  margin: 0;  
  font-weight: 600;
  text-indent: 0;
}
.number-flow th{
  width: 8%;
  padding: 15px 10px;
  text-align: center;
  background: #5eaa32;
  color: #fff;
  /* 角を丸くしたい時 */
  border-radius: 5px 0 0 5px;
  outline: 3px solid #5eaa32;
}
.number-flow td{
  width: 92%;
  padding: 15px 20px;
  text-align: left;
  background-color: #D1E6C4;
  color: #666;
  /* 角を丸くしたい時 */
  border-radius: 0 5px 5px 0;
  outline: 3px solid #5eaa32;
}
.number-flow .flow-arrow{ margin: 10px auto 0; color: #5eaa32;}

/* table-abstract */
.abst_table { margin: 10px auto 20px;}
.abst_table table {
  max-width: 800px;
  width: 100%;
  border-collapse: collapse;
}
.abst_table caption{
  margin-bottom: 10px;
  padding: 5px;
  background: rgba(255,255,255,0.5);
  color: #484848;
}
.abst_table tr:nth-child(odd) { background: rgba(218,218,218,0.3);}
.abst_table tr:nth-child(even) { background: #fff;}
.abst_table th{
  width: 7%;
  padding: 5px 10px; /* 余白指定 */
  border: 1px solid #c1c1c1;
  text-align: center;
  background: rgba(94,170,50,0.3);
}
.abst_table td {
  width: 93%;
  padding: 10px; /* 余白指定 */
  font-weight: bold;
  border: 1px solid #c1c1c1;
}

/* table-width-small */
.tws table{ max-width: 600px;}
.tws th{ width: 50%;}
.tws td{ width: 50%;}
.tws td:nth-of-type(1){ background: none;}

/* table-width */
.tw150 th{ width: 15%;}
.tw250 th{ width: 25%;}
.tw350 th{ width: 35%;}

/* table-color-change */
.table td.gray{ background: rgba(169,169,169,0.5)}

/* table end ----------------------------------------------------------- */

/* Information ----------------------------------------------------------- */
.info{
  display: block;
  width: 100%;
  margin: 10px auto 20px;
  padding: 0;
  border-radius: 0;
  border: none;
  background: none;
}
.info h2{ margin-bottom: 0; padding: 10px 0; background: rgba(255,255,255,1);}
.info-box {
  width: 100%;
  height: 350px;
  margin: 0;
  padding: 0;
  overflow-y: scroll;
  border-radius: 0;
  background: rgba(255,255,255,1);
}
.info-box dl{
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  position: relative;
  margin: 10px auto;
  padding: 0 30px;
  vertical-align: middle;
}
.info-box dt {
  display: inline-block;
  width: 10%;
  padding: 5px 0;
  color: #5eaa32;
}
.info-box dd{ width: 90%; padding: 5px 20px;}

/* Information end ----------------------------------------------------------- */

/* greeting ----------------------------------------------------------- */
/* greeting-logo or header */
.g-logo{
  margin: 0 auto;
  text-align: center;
}
.g-logo h3{ 
  position: relative;
  margin: 10px 0 0;
  padding: 0;
  border: none;
  background: none;
  color: #ec704e;
  text-shadow: none;
}
.g-logo img{
  max-width: 700px;
  width: 100%;
}

/* greeting-flexbox */
.g-box {
  display: flex;
  flex-wrap: nowrap; /* 写真あり：nowrap 写真なし：wrap*/
  justify-content: space-around; /* 写真あり：space-around 写真なし：flex-start */
  align-items: center;
  gap: 0 10px;
  max-width: 800px;
  width: 100%;
  margin: 10px auto;
}

/* greeting-box image */
.g-image { max-width: 160px; width: 100%; margin: 0 auto;}
.g-image img {
  width: 100%;
  border-radius: 10px;
}

/* greeting-box text */
.g-text {
  max-width: 600px; /* 写真あり：600px 写真なし： 1000px */
  width: 100%;
  margin: 10px 0 0;
  padding: 0 20px;
  text-align: right;
}
.g-text h4{
  padding: 0 20px 5px;
  border-bottom: 1px solid #c1c1c1;
  background: none;
  color: #231815;
}

/* greeting main-text */
.main-text {
  margin: 20px auto;
  padding: 0;
}
.main-text p {
  text-align: justify;
  line-height: 1.7;
  margin-bottom: 10px;
}

/* greeting end ----------------------------------------------------------- */

/* program ----------------------------------------------------------- */
/* program-header */
.program h3{ padding: 10px 0; text-align: center;}

/* p-section */
.p-section { margin: 20px auto 20px;}

/* p-section-header */
.p-section h3{
  padding: 5px 10px;
  text-align: left;
  border-radius: 0;
  border-left: 10px solid #193641;
  border-bottom: 1px solid #193641;
  background: linear-gradient(90deg,#1f2c5c,#0e4795, rgba(255,255,255,0));
  color: #fff;
}
.p-section h4{ 
  padding-bottom: 5px;
  border-bottom: 1px solid #dadada;
  background: none;
  color: #0e4795;
}
.p-section h4 span{ color: #727272;}
.p-section h5{
  display: inline-block;
  max-width: 80px;
  width: 100%;
  max-height: 35px;
  height: 100%;
  margin: 5px 20px;
  padding: 5px 0;
  letter-spacing: .1rem;
  text-align: center;
  font-weight: 500;
  vertical-align: middle;
  border-radius: 0;
  border: 1px solid #5eaa32;
  outline: none;
  color: #666;
}
.p-section h5::before{ content: ""; margin: 0; padding: 0;}

/* 座長・演者 */
.p-section dl{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0 20px;
  width: 100%;
  margin: 0 40px;
  line-height: 2;
}
.p-section dl:last-of-type{ margin-bottom: 20px;}
.p-section dt{
  display: inline-block;
  margin: 5px 0;
  padding: 0;
  letter-spacing: .1rem;
  text-align: left;
  font-weight: 500;
  vertical-align: middle;
  border-radius: 0;
  border: none;
  outline: none;
}
.p-section dd{ 
  margin: 5px 20px;
  padding: 0;
  font-weight: 500;
  text-align: left;
  vertical-align: middle;
}

/* 横並び：座長/演者＋名前（所属） */
.p-name,.speaker { 
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  gap: 0 20px;
  margin: 0;
}
.p-name dl{ margin: 0;}

/* 横並び：演題名＋演者名 */
.speaker{ flex-direction: column; width: 100%;}
.speaker dd{ margin: 5px 20px;}

/* 共催 */
.co-sp h5{ border-color: #E8A389; background: #fff; color: #D87A8E;}
.co-sp dl{ margin: 0;}
.co-sp dd{ margin: 5px 0;}

/* 演題名 */
.p-title dl{ margin: 0;}
.p-title dt { 
  max-width: 80px;
  width: 100%;
  max-height: 32px;
  letter-spacing: .1rem;
  text-align: center;
  border-radius: 0;
  background: #D2EAF4;
  color: #5484B6;
}
.p-title dd { 
  max-width: 760px;
  width: 100%;
  margin: 5px 0;
  font-weight: 700;
  text-align: left;
  color: #5484B6;
}
.p-title dl:last-of-type{ margin: 0;}

/* 概要etc */
.p-box {
  margin: 0 auto;
  padding: 10px;
  border-radius: 0;
  background: #F7FAF0;
}
.p-box h4{ 
  margin: 0 0 15px;
  padding: 5px 20px;
}

/* 顔写真付き all ------------------- */
/* 顔写真付き：横並び（右image/左text） */
.photo-box {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-evenly;
  align-items: center;
  gap: 0 20px;
  margin: 0 auto;
}
/* 顔写真付き：text */
.photo-text{ max-width: 700px; width: 100%;}
.photo-text h5{ margin: 5px 20px;}
.photo-text dl{ margin: 0;}
.photo-text >.p-title dd,.speaker >.p-title dd{ text-align: left;}

/* 顔写真付き：photo */
.photo-image { max-width: 200px; width: 100%; text-align: center;}
.photo-image img{ max-width: 120px; width: 100%; margin-bottom: 5px; border-radius: 10%; /* 適宜調整 */}

/* 顔写真付き：逆並び（左text/右image） */
.p-photo.re:nth-child(odd){ flex-direction: row-reverse;}

/* 顔写真付き：縦並び（image+text） */
.var{ 
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  max-width: 200px;
  width: 100%;
}
.var > .photo-text dl{ flex-direction: column; flex-wrap: wrap; margin-bottom: 0;}
.var > .photo-text dt,.photo-text dd{ text-align: center; margin: 0 auto;}

/* 企業展示 ------------------- */
.photo-box.ex { margin-bottom: 40px;}
.photo-box.ex > .photo-text { max-width: 500px;}
.photo-box.ex > .photo-image { max-width: 400px;}
.photo-box.ex > .photo-image img { max-width: 400px; border-radius: 10px;}

/* 講演者紹介 ------------------- */
.photo-box.spk{ margin-bottom: 20px;}
.spk h4{ padding: 0;}
.spk h6{ margin-bottom: 10px; padding: 0; color: #333;}
.spk p{ padding: 0;}
.spk .photo-image img{ max-width: 160px; width: 100%;}

/* program end ----------------------------------------------------------- */

/* period ----------------------------------------------------------- */
.period{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  line-height: 2;
  margin-bottom: 10px;
}
.period dl{
  margin: 0 40px;
  padding: 0;
}
.period dt{
  display: inline-block;
  width: auto;
  padding: 0 10px;
  vertical-align: middle;
}
.period dd{
  display: inline-block;
  width: auto;
  margin-left: 0;
  padding: 0 20px;
  vertical-align: middle;
}

/* period Individual-settings ----------------------- */
/* period-align */
.period.center dl{ margin: 0 auto;}

/* period-border */
.period.border dl{ border-bottom: 1px solid #ccc;}

/* period-color */
.period.dtcol dt{ color: #84787B;}

/* period margin&padding-change */
.n-box .period dl{ padding: 0;}
.period .note{ margin-left: 0;}

/* period-width */
.dtw60 dt{ width: 60px;}
.dtw160 dt{ width: 160px;}
.dtw200 dt{ width: 200px;}
.dtw250 dt{ width: 250px;}
.dtw350 dt{ width: 350px;}

/* period end ----------------------------------------------------------- */

/* movie ----------------------------------------------------------- */
/* iframe 単体用 ＊埋め込み動画掲載時は必ず使用 */
.iframe-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin: 5px auto 20px;
  overflow:auto; 
  -webkit-overflow-scrolling:touch;
}
.iframe-wrap iframe {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  border:none;
  display:block;
}

/* 動画横並び用flex */
.movie-flex{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin: 15px auto;
}

/* 動画を小さく表示 & 横並び用box */
.movie-box{ margin: 0 5px; width: 45%;}

/* iframe 横並び用 ＊埋め込み動画掲載時は必ず使用 */
.iframe-wrap-flex {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin: 5px auto 20px;
  overflow:auto; 
  -webkit-overflow-scrolling:touch;
}
.iframe-wrap-flex iframe {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    border:none;
    display:block;
}

/* 動画に沿えるテキスト・画像 */
.movie p { text-align: center;}
.movie img{ width: 100%;}

/* movie end ----------------------------------------------------------- */

/* map ----------------------------------------------------------- */
.map {
  display: block;
  margin: 10px auto;
  text-align: center;
}
.map iframe { width: 90%; height: 450px;}
.map img{ max-width: 600px; width: 100%; border: 1px solid #adadad;}

/* map end ----------------------------------------------------------- */

/* banner ----------------------------------------------------------- */
.flexbox.bn{ 
  flex-direction: column;
  flex-wrap: wrap;
  max-width: 1400px; /* 適宜修正 */
  width: 100%;
  margin: 0 auto;
}
.banner-box { margin: 20px auto;}
.banner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  text-align: center;
  align-items: flex-start;
  gap: 10px 20px;
}
.bn-box { max-width: 280px; width: 100%; margin: 0 auto;}
.bn-box img {
  max-width: 280px;
  width: 100%;
  border: 1px solid #fff;
}
.bn-box p { font-weight: 600;}
.platinum > .bn-box,.platinum > .bn-box img{ max-width: 500px;}
.gold > .bn-box,.gold > .bn-box img{ max-width: 320px;}

/* society logo */
.so-logo{ 
  max-width: 400px; /* ロゴサイズによって変更 */
  width: 100%;
  margin: 50px auto;
}
.so-logo img{
  width: 100%;
  align-items: center;
  border: none;
  background: #fff;
}
.so-logo a img{ border: 1px solid #fff;}


/* banner end ----------------------------------------------------------- */

/* arrow ----------------------------------------------------------- */
/*リンクを右下に固定*/
#arrow {
  position: fixed;
  bottom: 5%;
  right: 1%;
  z-index: 3;
   /*はじめは非表示*/
  opacity: 0;
  transform: translateY(100px);
}
#arrow a {
  /*天地中央にテキストを配置*/
  display: flex;
  align-items: center;
  justify-content: center;
  /*円の形状*/
  width: 60px;
  height: 60px;
  box-sizing: border-box;
  padding: 0 20px;
  line-height: 80px;
  text-align: center;
  text-decoration: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 50%;
  outline: none;
  border: 1px solid #1f2c5c;
  background: radial-gradient(#fff,#D2EAF4,#84B7D9,#5484B6);
  color: #1f2c5c;
}
#arrow a:hover { 
  border: 1px solid #ec704e;
  background: radial-gradient(#fff,#F6DBA5,#E8A389,#D87A8E);
  color: #ec704e;
}

/*　上に上がる動き　*/
#arrow.upmove{ animation: UpAnime 0.5s forwards;}
@keyframes UpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/*　下に下がる動き　*/
#arrow.downmove{ animation: DownAnime 0.5s forwards;}
@keyframes DownAnime{
  from {
    opacity: 1;
  transform: translateY(0);
  }
  to {
    opacity: 1;
  transform: translateY(100px);
  }
}

/* arrow up */
a.arrow-up {
  display: block;
  position: relative;
  text-align: center;
  background: currentColor;
}
a.arrow-up::after {
  content: '';
  position: absolute;
  width: 0.7em;
  height: 0.7em;
  box-sizing: border-box;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  border-bottom: 0;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  transform: translateY(3px) rotate(-45deg);
  transform-origin: top right;
  top: 35%;
  bottom: 0;
  right: 50%;
}
a.arrow-up:hover::after{ transform: translateY(-5px) rotate(-45deg);}

/* menu-arrow */
.n-arrow li a {
  position: relative;
  display: inline-block;
  padding-left: 25px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.n-arrow li a:before {
  content: '';
  width: 18px;
  height: 18px;
  background: none;
  outline: none;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
}
.n-arrow li a:hover:before{ outline: none;}
.n-arrow li a:after {
  content: '';
  width:0;
  height:0;
  border-style: solid;
  border-width: 8px 0 8px 12px;
  border-color: transparent transparent transparent #5484B6;
  position: absolute;
  top: 0;
  left: 5px;
  bottom: 0;
  margin: auto;
  -webkit-transition: .3s;
  transition: .3s;
}
.n-arrow li a:hover:after{ 
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  border-color: transparent transparent transparent #D87A8E;}

/* arrow end ----------------------------------------------------------- */

/* contact ----------------------------------------------------------- */
.contact-box{
  display: block;
  max-width: 1200px;
  width: 100%;
  margin: 30px auto 0;
}
.contact{
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
}
.contact table {
  margin: 0 auto;
  line-height: 2.0rem;
  border-spacing: 0;
  border-collapse: collapse;
}
.contact th {
  width: 20%;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  padding: 20px 10px;
}
.contact td {
  width: 80%;
  text-align: left;
  line-height: 1.5;
  vertical-align: middle;
  padding: 20px 10px;
}

/* contact end ----------------------------------------------------------- */

/* deco ----------------------------------------------------------- */
/* text-deco */
.bold { font-weight: 700;}
.under{ text-decoration: underline;}
.line-th{ text-decoration: line-through;}
.color{ color: #ec704e;}
.gray{ filter: grayscale(100%);}
.red { color: #DC0509;}
.marker{ background: linear-gradient(transparent 50%,rgba(243,170,193,0.5) 50%);}

/* arrange */
.center{ text-align: center;}
.left{ text-align: left;}
.right{ text-align: right;}
.letter{ letter-spacing: 0.5rem;}

/* border */
.hr_b01{ margin: 10px 20px; border-top: 1px dashed #D2EAF4;}
.hr_b02{ margin: 10px 20px; border-top: 1px dashed #F6DBA5;}
.hr_b03{ margin: 10px 20px; border-top: 1px dashed #DEE1EC;}

/* margin-left 0 */
.m_left{ margin-left: 0; margin-right: 0;}

/* deco end ----------------------------------------------------------- */

/* footer ----------------------------------------------------------- */
footer {
  width: 100%;
  margin: 0;
  padding: 20px 0 0;
  font-weight: 600;
  text-align: center;
  background: none;
  color: #fff;
  text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}
footer h4,footer .etc h4{ 
  display: inline-block;
  margin: 0 auto 10px;
  padding: 10px 15px;
  border: 1px solid #fff;
  background: #fff;
  color: #1f2c5c;
  text-shadow: none;
}

/* copyright */
.copyright{ padding: 20px 0; text-align: center;}

/* footer内 etc */
#footer .etc { max-width: 1200px; width: 100%; margin: 0 auto;}

/* footer end ----------------------------------------------------------- */

/* inview ----------------------------------------------------------- */
/*ふわっと表示 */
.fadeIn {
  opacity: 0;
  transition: 1.5s;
}
.fadeIn.is-show { opacity: 1;}

/* inview end ----------------------------------------------------------- */
/* blur ----------------------------------------------------------- */
/* じわっと表示 */
.fadein-blur{
  opacity: 0;
  -webkit-filter: blur(10px);
  filter: blur(10px);
  transition: opacity 2s, filter 2s; /* アニメーション時間 */
}
.fadein-blur.is-show{
  opacity: 1;
  -webkit-filter: blur(0);
  filter: blur(0);
}

/* blur end ----------------------------------------------------------- */
/* stars ----------------------------------------------------------- */
/* 星空の背景のスタイル */
.stars {
  position: relative;
  width: 100%; /* 星空の横幅 */
  height: auto; /* 星空の縦幅 */
  background-image: none; /* 星空の背景色 */
  overflow: hidden; /* 星が枠外にはみ出すのを防ぐ */
}

/* 星のスタイル */
.star {
  position: absolute;
  display: block;
  background-color: #fff; /* 星の色 */
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(#fff, 0.2); /* 星の影 */
  opacity: 0;
  animation: twinkle 5s infinite;
}

/* 星がキラキラ光るアニメーション */
@keyframes twinkle {
  0% {
    opacity: 0;
  }

  50% {
    transform: scale(1.1);
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}
/* stars end ----------------------------------------------------------- */

/* 1280px ----------------------------------------------------------- */

@media screen and (max-width: 1280px) {
  /* side -------------------------------------- */
  .side { max-width: 250px; width: 100%;}

  /* menu -------------------------------------- */
  .menu ul{ margin-left: 0;}

  /* main -------------------------------------- */
  .main { max-width: 990px; width: 100%; padding: 0;}

  /* flexbox -------------------------------------- */
  .flexbox,.flexbox ul{ justify-content: space-around;}

  /* information -------------------------------------- */
  .info-box dt{ width: 15%;}
  .info-box dd{ width: 85%;}

  /* table -------------------------------------- */
  /* table横スクロール用 */
  .sc{ display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;}
  .sc th,.sc td{ white-space: normal;}
  .sc::-webkit-scrollbar{ width: 10px; height: 10px;}

  /* banner -------------------------------------- */
  .banner { justify-content: space-evenly;}
}

/* 1280px end ----------------------------------------------------------- */

/* 1024px ----------------------------------------------------------- */
@media screen and (max-width: 1024px) {
  /* body -------------------------------------- */
  .pc { display: none;}
  .sp { display: initial;}
  /* .bg { background-position: center top, center 60%;} */

  /* base -------------------------------------- */
  .content {
    flex-direction: column;
    height: 100%;
    padding-bottom: 0;
  }

  /* side -------------------------------------- */
 .side {
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 20px;
  }
  .etc{
    max-width: 1024px;
    margin: 20px auto;
    padding: 0;
  }

  /* hamburger-menu -------------------------------------- */
  /* ハンバーガー はじまり */
  /* ハンバーガーアイコンの設置スペース */
  .menu-btn {
    height: 100px;
    width: 100px;
    position: fixed;
    z-index: 9999;
    cursor: pointer;
    top: 2px;
    right: 0;
    background: none;
  }

  /* ×に変化 */
  .menu-btn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 24px;
    width: 50%;
    height: 3px;
    border-radius: 2px;
    background-color: #F6DBA5;
  }
  .menu-btn span:nth-of-type(1){ top: 35px;}
  .menu-btn span:nth-of-type(2){ top: 45px;}
  .menu-btn span:nth-of-type(3){ top: 55px;}
  .menu-btn.active span:nth-of-type(1){
    top: 38px;
    left: 24px;
    transform: translateY(6px) rotate(-45deg);
    width: 50%;
  }
  .menu-btn.active span:nth-of-type(2){ opacity: 0;}
  .menu-btn.active span:nth-of-type(3){
    top: 50px;
    left: 24px;
    transform: translateY(-6px) rotate(45deg);
    width: 50%;
  }

  /* ナビゲーション（メニュー） */
  .menu{
    /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
    position: fixed;
    z-index: -2;
    opacity: 0; /*はじめは透過0*/
    /*ナビの位置と形状*/
    top: 0;
    right: 0; /* 右寄せで開く */
    width: 100%; /* デフォルト：100% */
    height: 100vh;
    pointer-events: none;/* または、クリック操作自体を無効にしてメイン画面を触れるようにする */
    background: #1f2c5c url(../img/bg-t.png) no-repeat center top / cover;
    /*動き*/
    transition: all 0.3s;
  }

  /*アクティブクラスがついたら透過なしにして最前面へ*/
  .menu.panelactive{
    opacity: 1;
    z-index: 999;
    pointer-events: auto;
  }

    /*ナビゲーションの縦スクロール*/
  .menu.panelactive .menu-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999;
    width: 100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  /*ナビゲーション*/
  .menu ul{
    display: none;
    /*ナビゲーション天地中央揃え*/
    position: absolute;
    z-index: 999;
    top: 50%; /* デフォルト：50% */
    left: 2%; /* デフォルト：50% */
    transform: translate(0,-50%);/* デフォルト：-50%,-50% */
  }
  .menu.panelactive ul{ display: block;}

  /*リストのレイアウト設定*/
  .menu li{
    list-style: none;
    border-bottom: 1px solid #fff;
  }
  .menu li a{
    min-width: 250px;
    width: 100%;
    padding: 5px 10px;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }
  .menu li a::before{ top: 8px; left: 5px;}
  .menu li a:hover::before{
    top: 0;
    left: 5px;
    padding: 5px 0;
  }
  .menu li a:after{ left: 5px;}

  /* ナビゲーション（メニュー）おわり */

  /* main -------------------------------------- */
  .main { max-width: 1024px; padding: 0 20px;}
  section{ padding: 20px 20px 50px;}

  /* flexbox -------------------------------------- */
  .flexbox{ flex-direction: column; flex-wrap: wrap; align-items: center;}

  /* list -------------------------------------- */
  /* 1. */
  .num ol li{ margin-left: 43px; text-indent: -20px;}
  /* 1) */
  .pn1 ol li{ margin-left: 42px; text-indent: -22px;}
  /* (1) */
  .pn2 ol li{ margin-left: 46px; text-indent: -28px;}
  /* ＊1 */
  .ast ol li{ margin-left: 52px; text-indent: -32px;}
}

/* 1024px end ----------------------------------------------------------- */

/* 768px ----------------------------------------------------------- */
@media screen and (max-width: 768px) {
  /* body -------------------------------------- */

  /* header -------------------------------------- */
  .logo{ padding: 5px 40px 5px 10px; text-align: left;}

  /* side -------------------------------------- */
  .side { padding: 0 10px;}

  /* menu -------------------------------------- */
  .menu-btn span{ left: 34px;}
  .menu-btn span:nth-of-type(1){ top: 15px;}
  .menu-btn span:nth-of-type(2){ top: 25px;}
  .menu-btn span:nth-of-type(3){ top: 35px;}
  .menu-btn.active span:nth-of-type(1){ top: 18px; left: 34px;}
  .menu-btn.active span:nth-of-type(3){ top: 30px; left: 34px;}
  /* base -------------------------------------- */
  .content{ margin: 0 auto;}

  /* main -------------------------------------- */
  .main { max-width: 768px; padding: 0 10px;}

  /* text -------------------------------------- */
  h3{ padding: 10px;}
  h4{ padding: 0 10px;}
  h5{ margin-left: 10px; padding: 0 10px;}

  p{ padding: 0 10px;}

  /* box -------------------------------------- */
  .n-box.imp dl{ flex-wrap: wrap; margin-bottom: 5px;}
  .comingsoon-box{ padding: 20px;}

  /* list -------------------------------------- */
  .list li{ margin-left: 30px; text-indent: -17px;}
  .list li li{ margin-left: 22px;}
  /* 1. */
  .num ol li{ margin-left: 28px; text-indent: -16px;}
  /* 1) */
  .pn1 ol li{ margin-left: 28px; text-indent: -17px;}
  /* (1) */
  .pn2 ol li{ margin-left: 32px; text-indent: -22px;}
  /* ＊1 */
  .ast ol li{ margin-left: 35px; text-indent: -25px;} 
  /* ul mark ＊ & * & ▶ & ◆ */
  .ast li{ margin-left: 24px; text-indent: -14px;}
  .en > .ast li{ margin-left: 15px; text-indent: -5px;}
  .tri li,.dia li{ margin-left: 23px; text-indent: -13px;}

  /* information -------------------------------------- */
  .info-box dl{ flex-direction: column;}
  .info-box dt{ width: 100%;}
  .info-box dd{ width: 100%;}

  /* table -------------------------------------- */
  /* event */
  .event th,.event td{ display: block; width: 100%;}

  /* ナンバー付きflow */
  .number-flow th{ width: 15%; padding: 10px;}

  /* button -------------------------------------- */
  .f-box{ margin: 0 auto 10px;}
  .btn03 { width: 100px; height: 100px;}

  /* Information ------------------------------- */
  .info-box dl{ padding: 10px 20px;}

  /* greeting -------------------------------------- */
  .g-box { flex-wrap: wrap; text-align: left;}
  .g-text{ max-width: 768px; padding: 0 20px;}

  /* program -------------------------------------- */ 
  .p-section h5{ margin: 5px 0;}
  .p-section dl{ margin: 0;}
  .p-name{ flex-wrap: wrap;}

  /* flow -------------------------------------- */
  .flow{ padding: 0;}

  /* period -------------------------------------- */
  .period dl{ margin: 0;}

 /* link -------------------------------------- */
 .link{ padding: 0;}

 /* arrow -------------------------------------- */
  #arrow a{ width: 50px; height: 50px;}

  /* Contact -------------------------------------- */
  .contact th,.contact td{
    display: block;
    width: 100%;
    padding: 0 30px;
  }
  .contact th{ margin: 10px 0;}

  /* footer -------------------------------------- */
  footer{ padding: 20px 10px 0;}
}

/* 768px end ----------------------------------------------------------- */

/* 430px ----------------------------------------------------------- */
@media screen and (max-width: 430px) {
  /* body -------------------------------------- */
  /* .bg { background-position: center top, center 57%;} */

  /* list -------------------------------------- */
  .list li{ text-indent: -14px;}
  .list li li{ margin-left: 18px;}
  /* 1. */
  .num ol li{ margin-left: 26px; text-indent: -14px;}
  /* 1) */
  .pn1 ol li{ margin-left: 25px; text-indent: -15px;}
  /* (1) */
  .pn2 ol li{ margin-left: 29px; text-indent: -19px;}
  /* ＊1 */
  .ast ol li{ margin-left: 31px; text-indent: -21px;} 
  /* ul mark ＊ & * & ▶ & ◆ */
  .ast li{ margin-left: 21px; text-indent: -11px;}
  .tri li,.dia li{ margin-left: 21px; text-indent: -11px;}

  /* arrow -------------------------------------- */
  .n-arrow li a{ padding-left: 10px;}
  .n-arrow li a:before { width: 8px; height: 8px;}
  .n-arrow li a:after {
    border-width: 6px 0 6px 7px;
    top: 0;
    left: 0;
  }
}

/* 430px end ----------------------------------------------------------- */
