/***************************************************
 ポータルサイト共通CSS

 共通定義には以下を含める
 ・大枠のレイアウト構造（header/main/footer）
   -　header部
   -　main（この配下のページ特有構造は個別のCSSで定義）
   -　footer部
 ・共通基本レイヤ
   -　プログレス　レイヤ‐
   -　ダイアログ　レイヤー
 ・共通基本パーツ
   -　エラー表示領域
   -　基本ボタン
   -　基本入力項目
   -　Fixedボタン


 ***************************************************/

body{
  font-family: "Meiryo UI", "Lucida Grande", Arial, "MS PGothic", Helvetica, sans-serif;
  margin: 0;
}

/***************************************************
　【共通】
 ヘッダー
 ***************************************************/
header{
  max-height: 100px; /* 高さ */
  min-height: 54px; /* 高さ */
  /* width: 100%;  長さ */
  background-color: white;
  padding: 0px 28px 0px 28px;
  position: fixed; /* ヘッダーを固定(これが重要) */
  top: 0; /* 固定する位置 */
  left: 0; /* 固定する位置 */
  right: 0;  /* 固定する位置 */
  z-index:10;
  font: 18px "Meiryo UI", "Lucida Grande", Helvetica, Arial, sans-serif;

  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  /* overflow: hidden; */　/* POPUPメニュー出すため */
  justify-content: space-between;/* flex-start center space-around space-between*/
  align-content: center;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
}
header .header-area-logo{
  flex: 0 0 auto;
}
header .header-area-menu{
  flex: 1 1 auto;
  /* min-width: 350px; /* 要調整 */

  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap;
  /* overflow: hidden; */　/* POPUPメニュー出すため */
  /* justify-content: flex-end;/* flex-start center space-around space-between*/
  align-content: center;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
}

.header-area-logo .logo{
  display: flex;
  margin: 0px 48px 0px 8px;
  object-fit: contain;
  width: auto;
  height: 42px;
  background-color: rgba(255,255,255,0.0);
}
.header-area-menu .menu-unit{
  flex: 0 0 auto;

  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  /* overflow: hidden; */　/* POPUPメニュー出すため */
  justify-content: center;/* flex-start center space-around*/
  align-content: center;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/

  padding: 0px 8px 0px 8px;
}

header .header-area-account{
  flex: 1 1 auto;
  /* min-width: 220px; /* 要調整 */

  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
  justify-content: flex-end;/* flex-start center space-around space-between*/
  align-content: center;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
}
.header-area-account a{
  text-decoration: none;
  color: #393F43;
}
.header-area-account .user-ico{
  display: flex;
  width: 40px;
  height: 40px;
  /* padding: 4px 4px 4px 4px; */
  /* border: 0px solid #E0E0E0; */
  border-radius: 50px;
  background-color: #E0E0E0;
}
.header-area-account .user-name{
  font-size: 18px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #393F43;
  padding: 0px 16px 0px 8px;
}
.user-name:hover {
  color: #2196F3;
}

header .menu{
  /* width: 320px; */
  font-size: 18px;
  /* overflow: hidden; */　/* POPUPメニュー出すため */
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #393F43;
  background-color: white;
  border: 0px solid #E0E0E0;
  cursor: pointer;
  border-radius: 20px;
  text-align: center;
  padding: 4px 8px 4px 8px;

  position: relative;
}
.menu.pc-only{

}
.menu a{
  text-decoration: none;
  color: #393F43;
}
.menu.selected a{
  text-decoration: none;
  color: #2196F3;
}
.menu.selected {
  border: 1px solid #2196F3;
}
.menu:hover {
  background-color: #F0F0F0;
}
.menu a:hover {
  color: #2196F3;
}

.menu .popup-menu{
  z-index:11;
  display: none;
  position:absolute;
  top: 30px;
  left:8px;

  box-shadow: 0 4px 15px rgba(0,0,0,.5);
  border: 0px solid #000000;
  border-radius: 4px;
  background-color: white;
  padding: 8px 0px 8px 0px;
}
.menu:hover .popup-menu{
  display: block;
}
.popup-menu .popup-menu-item{
  font-size: 18px;
  color: #393F43;

  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;/* flex-start center space-around*/

  padding: 8px 16px 8px 16px;
}
.popup-menu-item a{
  text-decoration: none;
  color: #393F43;
}
.popup-menu-item:hover {
  color: #2196F3;
  background-color: #F0F0F0;
}.popup-menu-item a:hover {
  color: #2196F3;
}
/***************************************************
【共通】
 プログレスバー　レイヤ
 ***************************************************/
div.progress-layer{
  display: -webkit-flex;
  display: flex;
  position: fixed; /* 固定(これが重要) */
  top: 0px; /* 固定する位置 */
  left: 0px; /* 固定する位置 */
  right: 0px;  /* 固定する位置 */
  bottom: 0px; /* 固定する位置 */
  z-index:12;
  background-color: rgba(48,48,48,0.75);
  align-items: center;
  justify-content: center;
  animation: fadeIn 1s ease 0s 1 normal;
}
.progress-layer > .progress{

}

/*************************************************** //20230616ozeki
【共通】
 ダイアログ　レイヤ
 ***************************************************/
div.dialog-layer{
  display: -webkit-flex;
  display: flex;
  position: fixed; /* 固定(これが重要) */
  /* top: 0;
  left: 280px;
  right:0;
  bottom: 0;
  margin: 108px 0px 54px 0px; */
  top: 0;
  left: 0px;
  right:0;
  bottom: 0;
  padding: 54px 0px 0px 280px;/* フッターエリア無くす　20231225ozeki　*/

  z-index:12;
  background-color: rgba(48,48,48,0.5);
  align-items: center;
  justify-content: center;
  animation: fadeIn 1s ease 0s 1 normal;
}

/***************************************************
【共通】
 メイン（大外枠）　レイヤー
 ***************************************************/
main{
  background-color: #E0E0E0;
  /* position: fixed; */  /* 固定(これが重要) */
  /* top: 0; */ /* 固定する位置 */
  /* left: 0; */ /* 固定する位置 */
  /* right: 0; */  /* 固定する位置 */
  /* bottom: 0; */  /* 固定する位置 */
  z-index:1;
  margin: 54px 0px 0px 0px; /* 背景画像と各Areaとの配置関係のためmarginではなくpadding */ /* フッターエリア無くす　20231225ozeki　*/
  width: 100%;
  height: -moz-available;          /* WebKit-based browsers will ignore this. */
  height: -webkit-fill-available;  /* Mozilla-based browsers will ignore this. */
  overflow-x: hidden;
}
div.main-overlap{/* オーバラップ メイン(一時的なページ切替などに使う、メインを覆い隠すメイン) */
  z-index:9;

  position: fixed;
  top: 0;
  left: 0;
  right:0;
  bottom: 0;
  padding: 0px 0px 0px 0px;
  margin: 54px 0px 0px 0px;/* フッターエリア無くす　20231225ozeki　*/

  background-color: #E0E0E0;
}

/***************************************************
【共通】
 システムエラーページ
 ***************************************************/
main div.error-area{
  background-color: #E0E0E0;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 54px 0px 0px 0px;/* フッターエリア無くす　20231225ozeki　*/
}

/***************************************************
【共通】
 基本ボタン
 ***************************************************/
.basic-button{
  /* width: 100px; */
  text-align: center;
  font-size: 18px;
  color: white;
  background-color: #E0E0E0;
  padding: 4px 8px 4px 8px;
  margin: 2px 8px 2px 8px;
  border: 1px solid #E0E0E0;
  border-radius: 12px;
  cursor: pointer;
}
.basic-button.blue{
  background-color: #2196F3;
  border: 1px solid #2196F3;
  color: white;
}
.basic-button.blue a{
  text-decoration: none;
  color: white;
  font-size: 18px;
}
.basic-button.white{
  background-color: white;
  border: 1px solid #2196F3;
  color: #2196F3;
}
.basic-button.white a{
  text-decoration: none;
  color: #2196F3;
  font-size: 18px;
}

/***************************************************
【共通】
 基本入力アイテム
 ***************************************************/
.item{
  flex: 1 1 auto;/* 要調整 */
  /* max-width: 680px; /* 要調整 */
  /* min-width: 560px; /* 要調整 */
  width: 100%;
  height: auto;

  /* background-color: yellow; */
  /* width: -webkit-fill-available; */
  padding: 0px 0px 0px 0px;
  margin: 6px 0px 12px 0px;
}
.item .item-head{
  width: 100%;
  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  justify-content: flex-start;/* flex-start center space-around*/
  align-content: flex-start;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
  padding: 4px 0px 4px 0px;

  border-bottom: 1px solid lightgray;
}
.item-head .item-head-ico{
  width: 24px;
}
.item-head .item-head-text{
  font-size: 18px;
  color: #393F43;
  margin: 0px 12px 0px 0px;
}
.item-head .item-head-button{
  width: 24px;
  height: 24px;
  background-color: #2196F3;
  border: 0px solid #2196F3;
  border-radius: 2px;
  padding: 2px 2px 2px 2px;
  margin: 0px 4px 0px 4px;
  font-size: 18px;
  text-align: center;
  color: white;
  cursor: pointer;
}
.item-head-button.left{
  border-top-left-radius: 50%;
  border-top-right-radius: 0;
  border-bottom-left-radius: 50%;
  border-bottom-right-radius: 0;
}
.item-head-button.right{
  border-top-left-radius: 0;
  border-top-right-radius: 50%;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 50%;
}
.item-head-button.white{
  background-color: white;
  border: 1px solid #2196F3;
  color: #2196F3;
}

/* 20210318ozeki カバー画像対応*/
.item-head-button.nomal{
  width: auto;
  height: 24px;
  /* display: inline-block; */
  background-color: #2196F3;
  border: 0px solid #2196F3;
  border-radius: 12px;
  padding: 6px 16px 2px 16px;
  margin: 0px 4px 0px 4px;
  font-size: 16px;
  color: white;
  cursor: pointer;
}
.item-head-button input {
  display: none;
}
/* 20210318ozeki  カバー画像対応　*/
.event-img{
  width: 100%;
  object-fit: cover;
}

.item-head-button.disable{
  background-color: lightgray;
  cursor: default;
}
.item-head-button:hover{
  background-color: blue;
}
.item-head-button.disable:hover{
  background-color: lightgray;
}
.item .item-body{
  width: 100%;
  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  justify-content: center;/* flex-start center space-around*/
  align-content: flex-start;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
  padding: 4px 0px 4px 0px;

}
.item-body.left{
  justify-content: flex-start;
}
.item-body.right{
  justify-content: flex-end;
}
.item-body.vertical{
  flex-wrap: wrap;
}

.item-body .item-body-ico{
  width: 24px;
}

.item-body .item-val-textbox{
  width: 100%;
  height: 24px;
  font-size: 18px;
  color: #000000;
  border: 1px solid gray;
  border-radius: 4px;
  padding: 4px 8px 4px 8px;
}
.item-val-textbox.readonly{
  color: #393F43;
  background-color: #EEEEEE;
}
.item-val-textbox.half{
  width: 50%;
}
.item-val-textbox.length32{
  width: 480px;
}
.item-val-textbox.length64{
  width: 960px;
}
.item-val-textbox.length3{
  width: 54px;
}
.item .item-val-radio{
  font-size: 18px;
  color: #000000;
  padding: 4px 12px 4px 12px;
}
.item-val-radio > input[type="radio"]{
   -webkit-transform: scale(2.0);
   transform: scale(2.0);
   margin-right: 0.5em;
}
.item .item-val-datetime{
  width: 100%;
  height: 24px;
  font-size: 18px;
  color: #000000;
  border: 1px solid gray;
  border-radius: 4px;
  padding: 4px 8px 4px 8px;
}
.item-val-datetime.short{
  width: 160px;
}
.item-body .item-val-numbox{
  width: 50%;
  height: 24px;
  text-align: right;
  font-size: 18px;
  color: #000000;
  border: 1px solid gray;
  border-radius: 4px;
  padding: 4px 8px 4px 8px;
}
.item-val-numbox.length3{
  width: 54px;
}

.item-body .item-val-label{
  font-size: 18px;
  color: #393F43;
  margin: auto 0px auto 0px;
  padding: 0px 8px 0px 8px;
}
.item-val-label.small{
  font-size: 14px;
  color: #393F43;
}
.item-body .member-list{
  width: 100%;
}
.item-body .member-list-item{
  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  justify-content: center;/* flex-start center space-around*/

  width: 100%;
}
.item-body .item-val-ico{
  width: 28px;
  height: 28px;
  padding: 4px 4px 4px 4px;
}
.item-val-ico.small{
  width: 16px;
  height: 16px;
  padding: 4px 4px 4px 4px;
}
.item-body .item-val-memberbox{
  width: 100%;
  height: 24px;
  font-size: 16px;
  color: #000000;
  border: 1px solid gray;
  border-radius: 4px;
  padding: 4px 16px 4px 16px;
}
.item-val-memberbox.hide{
  display: none;
}
.item-val-memberbox.disable{
  border: 1px solid lightgray;
}
.item-val-memberbox.error{
  border: 1px solid red;
}
.item .item-val-textbox-multi{
  width: 100%;
  font-size: 16px;
  color: #000000;
  border: 1px solid gray;
  border-radius: 4px;
  resize: vertical;
  vertical-align: middle;
  padding: 8px 8px 8px 8px;
}
.item-body .item-val-select{
  width: 100%;
  height: 36px;
  font-size: 18px;
  color: #000000;
  border: 1px solid gray;
  border-radius: 4px;
  padding: 4px 8px 4px 8px;
}
.item-val-select.readonly{
  background-color: #EEEEEE;
}
.item-val-select.nomal{
  width: 480px;
}
.item-val-select.short{
  width: 160px;
}

.item-body .genre-list{
  width: 100%;
  display: -webkit-flex;
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
  justify-content: flex-start;/* flex-start center space-around*/
  align-content: flex-start;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
  padding: 4px 4px 4px 4px;
}
.genre-list .genre-list-item{
  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  justify-content: center;/* flex-start center space-around*/
  align-content: flex-start;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
  margin: 4px 4px 4px 4px;
}
.genre-list-item > input[type="checkbox"]{
}

.item-body .item-button{
  width: 24px;
  height: 24px;
  background-color: #2196F3;
  border: 0px solid #2196F3;
  border-radius: 2px;
  padding: 2px 2px 2px 2px;
  margin: 0px 4px 0px 4px;
  font-size: 18px;
  text-align: center;
  color: white;
  cursor: pointer;
}
.item-button.nomal{
  width: auto;
  height: 24px;
  /* display: inline-block; */
  background-color: #2196F3;
  border: 0px solid #2196F3;
  border-radius: 12px;
  padding: 6px 16px 2px 16px;
  margin: 0px 4px 0px 4px;
  font-size: 16px;
  color: white;
  cursor: pointer;
}
.item-button.white{
  background-color: white;
  border: 1px solid #2196F3;
  color: #2196F3;
}

/* table共通 */
.item-body table {
  border-collapse: collapse;
  width: 100%;

  text-align: center;
  table-layout: auto; /* auto fixed */
  font-size: 18px;
  line-height: 22.3px;/* 20.7pxがデフォルトと同等 */
  word-wrap: break-word;
  /* margin: 8px 0px 8px 0px; */
}
.item-body th {
  padding: 4px 4px;
  border: 2px solid #FFFFFF;
  background-color: #006CBD;
  color: #FFFFFF;
}
.item-body td {
  padding: 4px 4px;
  border: 2px solid #FFFFFF;
  background-color: #EEEEEE;
  color: #000000;
}
.item-body table.head-green th {
  background-color: #008A80;
}
.item-body table.head-blue th {
  background-color: #006CBD;
}
.item-body table.head-kon th {
  background-color: #004F8A;
}
.item-body th.no-border {
  border-style: none;
}
.item-body th.bg-white {
  background-color: white!important;
}
.item-body th.bg-blue {
  background-color: #006CBD!important;
}
.item-body th.bg-green {
  background-color: #008A80!important;
}
.item-body th.bg-kon {
  background-color: #004F8A!important;
}
.item-body th.bg-grey {
  background-color: lightgrey!important;
}
.item-body td.no-border {
  border-style: none;
}
.item-body td.no-top-border {
  border-top-style: none;
}
.item-body td.no-left-border {
  border-left-style: none;
}
.item-body td.no-right-border {
  border-right-style: none;
}
.item-body td.no-bottom-border {
  border-bottom-style: none;
}
.item-body td.invalid {
  color: red;
}
.item-body table .cel-button{
  width: 24px;
  height: 24px;
  background-color: white;
  border: 1px solid #2196F3;
  color: #2196F3;
  border-radius: 2px;
  padding: 2px 2px 2px 2px;
  margin: 0px 4px 0px 4px;
  font-size: 18px;
  text-align: center;
  cursor: pointer;
}


/***************************************************
【共通】
 Fixedボタン
 ***************************************************/
.footer-fixed-btn {
  position: fixed;
  z-index:10;
  bottom: 36px;/* フッターエリア無くす　20231225ozeki　*/
  right: 48px;
  width: 200px;
  height: 200px;
  font: 22px "Meiryo UI", "Lucida Grande", Helvetica, Arial, sans-serif;

  box-shadow: 0 4px 15px rgba(0,0,0,.3);
  border-radius: 50%;
}
.footer-fixed-btn:hover {
  transform: translateY(-8px);
  /* box-shadow: 0 7px 14px rgba(50,50,93,.1), 0 3px 6px rgba(0,0,0,.08);*/
  transition: all .5s;
}
.footer-fixed-btn .fixed-btn-contents{
  position: relative;
}
.fixed-btn-contents img.background{
  width: 200px;
  height: 200px;
}
.fixed-btn-contents .content-item{
  position: absolute;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;

  display: flex;
  align-items: center;
  justify-content: center;
}
.content-item .content-item-text{
  width: 100%;
  text-align: center;
  font-size: 38px;
  font-weight: bolder;
  color: white;
  padding: 4px 4px 4px 4px;
}
/***************************************************
　【共通】
 フッター
 ***************************************************/
footer{
  height: 54px;
  width: 100%;
  background-color: white;
  position: fixed; /* ヘッダーを固定(これが重要) */
  bottom: 0; /* 固定する位置 */
  left: 0; /* 固定する位置 */
  right: 0;  /* 固定する位置 */
  z-index:10;

  font: 14px "Meiryo UI", "Lucida Grande", Helvetica, Arial, sans-serif;
}
footer.tall{
  height: 80px;
}
footer.none{
  height: 0px;
}
footer .ope-area{
  width: 100%;
  height: 100%;

  display: -webkit-flex;
  display: flex;
  flex-wrap: nowrap;
  /* overflow: hidden; */　/* POPUPメニュー出すため */
  justify-content: center;/* flex-start center space-around space-between*/
  align-content: center;/* flex-start flex-end center */
  align-items: center;/* flex-start  flex-end center  safe center  unsafe center*/
}
footer .ope-area .button-box{
  padding: 4px 4px;
  margin: 0px 16px;
  text-align: center;
  cursor: pointer;
}
footer .ope-area .label{
  text-align: center;
}
footer .ope-area .dammy{
  height: 100%;
  margin: 0px auto;
}
.button-box .button-ico{
  height: 48px;
  width: 48px;
}
.button-box .button-label{
  font-size: 14px;
  color: #808080;
  text-align: center;
  padding: 0px 2px;
}
footer .ope-area button-box:hover .button-label {
  color: #2196F3;
}

/***************************************************
　【共通】
 　その他
 ***************************************************/
 /* フェードイン */
 @keyframes fadeIn {
     0% {opacity: 0}
     100% {opacity: 1}
 }

/* 点滅 */
.blinking{
 -webkit-animation:blink 1.0s ease-in-out infinite alternate;
    -moz-animation:blink 1.0s ease-in-out infinite alternate;
    animation:blink 1.0s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}

/* 流れるテキスト */
.auto-scroll{
  animation: flowing 15s linear infinite;
}
@keyframes flowing {
  0% { transform:translateX(100%); }
  100% { transform:translateX(-100%); }
}

/***************************************************
  レスポンシブ対応  //20231225ozeki
 ***************************************************/
 @media screen and (max-width: 1023px) {
 	/* 1024px未満（タブレット用） */

  header .header-area-menu{
    display: none;
  }

  div.dialog-layer{
    padding: 54px 0px 0px 0px;
  }

  .item-val-select.nomal{
    width: auto;
  }

  .footer-fixed-btn {
    width: 160px;
    height: 160px;
  }
  .fixed-btn-contents img.background{
    width: 160px;
    height: 160px;
  }
  .content-item .content-item-text{
    font-size: 28px;
  }


 }
 @media screen and (max-width: 743px) {
 	/* 744px未満（スマホ用） */

  .menu.pc-only{
    display: none;
  }

  .header-area-account .user-name{
    display: none;
  }

  .item-val-textbox.length32{
    width: 100%;
  }
  .item-val-textbox.length64{
    width: 100%;
  }

  .footer-fixed-btn {
    bottom: 24px;
    right: 24px;

    width: 100px;
    height: 100px;
  }
  .fixed-btn-contents img.background{
    width: 100px;
    height: 100px;
  }
  .content-item .content-item-text{
    font-size: 24px;
  }


 }
