p.indent {
  text-indent: 1em;
}

.textIcon {
  display: flex !important;
  align-items: center;
}

.textIcon::before {
  content: "";
  position: relative;
  top: -0.1em;
  display: inline-block;
  min-width: 1.2em;
  min-height: 1.2em;
  margin-right: 0.5em;
  background: linear-gradient(45deg, rgb(54, 131, 191), rgb(33, 97, 156));
  border: 0.1em solid white;
  box-shadow: 0.05em 0.05em 3px 0 #666666;
  box-sizing: border-box;
}

.textIcon.iconGreen::before {
  background: linear-gradient(45deg, #00ff4b, #05bf3c);
}

.textIcon.iconRed::before {
  background: linear-gradient(45deg, #ff0000, #d60000);
}

.textIcon.iconRound::before {
  border-radius: 50%;
}

.pdfIcon::before,
.pdfIconRight::after {
  content: "";
  display: inline-block;
  width: 1.1em;
  height: 1.1em;
  background: url(../img/pdficon_small.gif) no-repeat center;
  background-size: contain;
  vertical-align: text-top;
}

.pdfIcon::before {
  margin-right: 0.2em;
}

.pdfIconRight::after {
  margin-left: 0.2em;
}

ul.sidemenu {
  list-style: none;
  margin: 0 0.5em;
  font-size: 1.1em;
  text-shadow: 0 1px 1px #ccc;
}

ul.sidemenu ul {
  list-style: none;
}

ul.sidemenu > li {
  margin: 6px 0;
}

ul.sidemenu span {
  display: block;
  line-height: 40px;
  background: url(../img/sidemenu_under.png) no-repeat bottom left;
}

ul.sidemenu a {
  display: flex;
  width: 100%;
  min-height: 30px;
  align-items: center;
  color: #000;
}

ul.sidemenu a:hover {
  color: #358ccb;
}

ul.sidesubmenu span {
  line-height: 25px;
  padding: 4px 0;
}

ul.sidesubmenu a {
  color: #0088cc;
}

ul.generalList {
  list-style: none;
  margin: 0 0 0 2em;
}

ul.generalList > li {
  margin: 1.5em 0;
}

table.commonVerticalTable {
  width: 100%;
  border-collapse: collapse;
}

table.commonVerticalTable th,
table.commonVerticalTable td {
  padding: 1em;
  border: 1px solid #878787;
}

table.commonVerticalTable th {
  text-align: center;
  background-color: #dcebff;
  white-space: nowrap;
}

ul.programList {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul.programList > li {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 1em;
}

ul.programList > li:last-of-type {
  margin-bottom: 0;
}

ul.programList > li > .programList_rightItem {
  flex: 1 0 80%;
  padding-left: 2em;
}


/* スマホ用  画面幅が 520px以下 のときに適用される */
@media screen and (max-width: 520px) {
  table.commonVerticalTable th,
  table.commonVerticalTable td {
    display: block;
    padding: 0.5em;
  }

  table.commonVerticalTable tr:first-of-type th {
    border-bottom: none;
  }

  table.commonVerticalTable tr:not(:first-of-type) th {
    border-top: none;
    border-bottom: none;
  }
}