@charset "UTF-8";
/*ＬＡＹＯＵＴ*/
/* -----------------------------------------------------------------
LAYOUT CSS　
LAST UPDATE: 　
--------------------------------------------------------------------*/
/*--------------------------------
html/body
---------------------------------*/
html {
  color: #333;
  font-family: "Noto Sans JP", "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "Osaka", Verdana, Arial, sans-serif;
  font-size: 62.5%;
  /*10px*/
  line-height: 1.4;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%; }

body {
  font-size: 1.0rem; }

input, textarea, select {
  font-family: "Noto Sans JP", "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "Osaka", Verdana, Arial, sans-serif; }

.skipContents {
  position: absolute;
  top: -99999px;
  left: 0; }

::placeholder {
  color: #9B9B9B; }

select:invalid {
  color: #9B9B9B; }

/*--------------------------------
LINk
---------------------------------*/
a {
  color: #333;
  text-decoration: none; }

a:hover {
  text-decoration: none;
  transition: 0.6s;
  opacity: 0.6; }

a:focus {
  outline: none; }

a .img img, .slick-slide a img {
  width: 100%;
  border-radius: 8px; }

.slick-slide img {
  width: 100%;
  border-radius: 5px; }

@media screen and (max-width: 768px) {
  a:hover {
    opacity: 1; }

  a .img img, .slick-slide a img {
    border-radius: 5px; }

  .slick-slide img {
    border-radius: 3px; } }
/*--------------------------------
header
---------------------------------*/
header {
  padding: 0;
  background: #fff; }
  header .headerInner {
    min-width: 1315px; }
    header .headerInner .pcOnly .hInner {
      padding: 15px;
      display: flex;
      justify-content: space-between;
      align-items: center; }
      header .headerInner .pcOnly .hInner h1.logo, header .headerInner .pcOnly .hInner p.logo {
        width: 220px;
        height: 38px;
        display: inline-block;
        vertical-align: middle;
        margin-right: 20px; }
      header .headerInner .pcOnly .hInner .user {
        margin: 0 10px 0 0;
        vertical-align: middle;
        display: inline-block; }
        header .headerInner .pcOnly .hInner .user.premium::before {
          content: "";
          display: inline-block;
          background: url("/common/img/icon_premium.svg") no-repeat 0 0;
          width: 36px;
          height: 36px;
          background-size: 100% auto;
          vertical-align: middle; }
        header .headerInner .pcOnly .hInner .user.premium a {
          padding-left: 10px; }
          header .headerInner .pcOnly .hInner .user.premium a small {
            font-size: 1rem;
            color: #DFA752;
            display: block;
            font-weight: bold;
            margin-bottom: 1px; }
          header .headerInner .pcOnly .hInner .user.premium a span {
            margin-top: 0; }
        header .headerInner .pcOnly .hInner .user a {
          display: inline-block;
          vertical-align: middle; }
          header .headerInner .pcOnly .hInner .user a small {
            display: none; }
          header .headerInner .pcOnly .hInner .user a span {
            font-size: 1.6rem;
            text-decoration: underline;
            vertical-align: middle;
            display: block;
            max-width: 305px;
            position: relative;
            padding-right: 15px;
            margin-top: 14px; }
            header .headerInner .pcOnly .hInner .user a span::after {
              content: "";
              background: url("/common/img/icon_bullet.svg") no-repeat 0 0;
              width: 6px;
              height: 11px;
              background-size: 100% auto;
              display: block;
              position: absolute;
              top: 55%;
              transform: translateY(-50%);
              right: 0; }
          header .headerInner .pcOnly .hInner .user a:hover {
            opacity: 1 !important; }
            header .headerInner .pcOnly .hInner .user a:hover span {
              text-decoration: none; }
      header .headerInner .pcOnly .hInner .question {
        display: inline-block;
        margin: 13px 10px 0 0;
        vertical-align: middle; }
        header .headerInner .pcOnly .hInner .question::before {
          content: "";
          display: inline-block;
          background: url("/common/img/icon_question_cur.svg") no-repeat 0 0;
          width: 22px;
          height: 24px;
          background-size: 100% auto;
          vertical-align: middle; }
        header .headerInner .pcOnly .hInner .question a {
          display: inline-block;
          padding-left: 5px;
          vertical-align: middle; }
          header .headerInner .pcOnly .hInner .question a span {
            font-size: 1.6rem;
            vertical-align: middle;
            display: block;
            text-decoration: underline; }
            header .headerInner .pcOnly .hInner .question a span::after {
              content: "(未)";
              display: inline-block;
              color: #C02E2E;
              vertical-align: baseline;
              background: url("/common/img/icon_bullet.svg") no-repeat right center;
              background-size: 6px 11px;
              padding-right: 15px;
              text-decoration: underline; }
          header .headerInner .pcOnly .hInner .question a:hover {
            opacity: 1 !important; }
            header .headerInner .pcOnly .hInner .question a:hover span {
              text-decoration: none; }
              header .headerInner .pcOnly .hInner .question a:hover span::after {
                text-decoration: none; }
        header .headerInner .pcOnly .hInner .question.check span::after {
          content: "(済)";
          display: inline-block;
          color: #333; }
      header .headerInner .pcOnly .hInner .privilege {
        display: none;
        margin: 13px 0 0 0;
        vertical-align: middle; }
        header .headerInner .pcOnly .hInner .privilege::before {
          content: "";
          display: inline-block;
          background: url("/common/img/icon_privilege.svg") no-repeat 0 0;
          width: 22px;
          height: 24px;
          background-size: 100% auto;
          vertical-align: middle; }
        header .headerInner .pcOnly .hInner .privilege a {
          display: inline-block;
          padding-left: 5px;
          vertical-align: middle; }
          header .headerInner .pcOnly .hInner .privilege a span {
            font-size: 1.6rem;
            vertical-align: middle;
            display: block;
            text-decoration: underline; }
            header .headerInner .pcOnly .hInner .privilege a span::after {
              content: "(未)";
              display: inline-block;
              color: #C02E2E;
              vertical-align: baseline;
              background: url("/common/img/icon_bullet.svg") no-repeat right center;
              background-size: 6px 11px;
              padding-right: 15px;
              text-decoration: underline; }
          header .headerInner .pcOnly .hInner .privilege a:hover {
            opacity: 1 !important; }
            header .headerInner .pcOnly .hInner .privilege a:hover span {
              text-decoration: none; }
              header .headerInner .pcOnly .hInner .privilege a:hover span::after {
                text-decoration: none; }
        header .headerInner .pcOnly .hInner .privilege.premium {
          display: inline-block; }
        header .headerInner .pcOnly .hInner .privilege.check span::after {
          content: "(済)";
          display: inline-block;
          color: #333; }
      header .headerInner .pcOnly .hInner .pcMenu .searchBox {
        display: inline-block;
        vertical-align: top;
        margin-right: 10px; }
        header .headerInner .pcOnly .hInner .pcMenu .searchBox .header_search {
          display: flex;
          position: relative; }
          header .headerInner .pcOnly .hInner .pcMenu .searchBox .header_search::before {
            position: absolute;
            top: 50%;
            left: 7px;
            transform: translateY(-50%);
            width: 14px;
            height: 14px;
            background: url(/common/img/icon_search.svg) center center no-repeat;
            background-size: 100% auto;
            content: '';
            z-index: 2; }
          header .headerInner .pcOnly .hInner .pcMenu .searchBox .header_search .header_search--keyword {
            padding: 12.5px 15px 12.5px 25px;
            width: 240px;
            margin: 0;
            border-right: none;
            background: #fff;
            font-size: 1.4rem;
            -webkit-appearance: none;
            border-radius: 0; }
          header .headerInner .pcOnly .hInner .pcMenu .searchBox .header_search .header_search--button {
            margin: 0;
            padding: 8px 10px;
            background: #00288C;
            border-radius: 0 3px 3px 0;
            color: #fff;
            font-size: 1.4rem;
            border: none; }
      header .headerInner .pcOnly .hInner .pcMenu .login {
        display: inline-block;
        vertical-align: middle;
        height: 41px;
        margin-right: 10px; }
        header .headerInner .pcOnly .hInner .pcMenu .login a {
          font-size: 1.4rem;
          font-weight: bold;
          color: #00288C;
          border: 2px solid #00288C;
          border-radius: 3px;
          display: block;
          text-align: center;
          padding: 11px 15px;
          transition: 0.4s; }
          header .headerInner .pcOnly .hInner .pcMenu .login a::before {
            content: "";
            background: url("/common/img/icon_login.svg") no-repeat 0 0;
            width: 20px;
            height: 20px;
            background-size: 100% auto;
            display: inline-block;
            vertical-align: middle;
            margin-right: 10px; }
          header .headerInner .pcOnly .hInner .pcMenu .login a:hover {
            color: #fff;
            background: #00288C;
            opacity: 1 !important; }
            header .headerInner .pcOnly .hInner .pcMenu .login a:hover::before {
              content: "";
              background: url("/common/img/icon_login_w.svg") no-repeat 0 0;
              width: 20px;
              height: 20px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-right: 10px; }
      header .headerInner .pcOnly .hInner .pcMenu .mypage {
        display: inline-block;
        vertical-align: top;
        margin-right: 15px; }
        header .headerInner .pcOnly .hInner .pcMenu .mypage a {
          display: block;
          font-size: 12px; }
          header .headerInner .pcOnly .hInner .pcMenu .mypage a::before {
            content: "";
            display: block;
            background: url("/common/img/icon_mypage.svg") no-repeat 0 0;
            width: 23px;
            height: 23px;
            background-size: 100% auto;
            text-align: center;
            margin: 0 auto 5px; }
          header .headerInner .pcOnly .hInner .pcMenu .mypage a span {
            display: block;
            font-size: 12px;
            text-align: center; }
      header .headerInner .pcOnly .hInner .pcMenu .logout {
        display: inline-block;
        vertical-align: top;
        height: 41px;
        margin-right: 10px; }
        header .headerInner .pcOnly .hInner .pcMenu .logout a {
          display: block;
          font-size: 12px; }
          header .headerInner .pcOnly .hInner .pcMenu .logout a::before {
            content: "";
            display: block;
            background: url("/common/img/icon_login.svg") no-repeat 0 0;
            width: 23px;
            height: 23px;
            background-size: 100% auto;
            text-align: center;
            margin: 0 auto 5px; }
          header .headerInner .pcOnly .hInner .pcMenu .logout a span {
            display: block;
            font-size: 12px;
            text-align: center; }
    header .headerInner .pcOnly .jsNavWrap {
      background: #00288C; }
      header .headerInner .pcOnly .jsNavWrap .jspcNav {
        text-align: center;
        padding: 7.5px 0;
        max-height: 42px;
        width: 1157px;
        margin: 0 auto; }
        header .headerInner .pcOnly .jsNavWrap .jspcNav li {
          border-right: 1px dotted #CECECE;
          display: inline-block;
          text-align: center; }
          header .headerInner .pcOnly .jsNavWrap .jspcNav li:first-child {
            border-left: 1px dotted #CECECE; }
          header .headerInner .pcOnly .jsNavWrap .jspcNav li a {
            color: #fff;
            font-size: 1.4rem;
            padding: 4px 35px;
            display: block; }
            header .headerInner .pcOnly .jsNavWrap .jspcNav li a[target="_blank"]::after {
              content: "";
              background: url("/common/img/icon_blank_w.svg") no-repeat 0 0;
              width: 16px;
              height: 16px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-left: 5px; }
  header.simple {
    box-shadow: 0 0 3px 3px rgba(0, 0, 0, 0.07); }
    header.simple .headerInner {
      display: flex;
      justify-content: center;
      padding: 20px 0; }
      header.simple .headerInner h1 {
        width: 220px; }

@media screen and (max-width: 1530px) {
  header .headerInner .pcOnly .hInner .pcMenu .searchBox .header_search .header_search--keyword {
    width: 120px; }
  header .headerInner .pcOnly .hInner .user a span, header .headerInner .pcOnly .hInner .question a span, header .headerInner .pcOnly .hInner .privilege a span {
    font-size: 1.4rem; }
  header .headerInner .pcOnly .hInner .pcMenu .logout {
    margin-right: 0; }
  header .headerInner .pcOnly .hInner .pcMenu .mypage {
    margin-right: 10px; }
  header .headerInner .pcOnly .hInner .question {
    margin-right: 5px; }
  header .headerInner .pcOnly .hInner .user a span {
    max-width: 268px; } }
@media screen and (max-width: 768px) {
  header {
    padding: 0;
    background: none;
    width: 100%;
    position: sticky;
    top: 0;
    left: 0;
    z-index: 10; }
    header.simple {
      position: static;
      border-top: 2px solid #00288C; }
      header.simple .headerInner {
        padding: 10px 0; }
        header.simple .headerInner h1 {
          width: 90px; }
    header nav {
      display: none; }
      header nav.active {
        display: block; }
    header .headerInner {
      width: 100%;
      overflow: hidden;
      padding: 0;
      min-width: 0; }
      header .headerInner .spOnly .hInner {
        overflow: hidden;
        background: #fff; }
        header .headerInner .spOnly .hInner .spNavLeft {
          padding: 7px 0 7px 0;
          float: left;
          display: flex; }
          header .headerInner .spOnly .hInner .spNavLeft .menu {
            width: 42px;
            padding: 0 10px; }
            header .headerInner .spOnly .hInner .spNavLeft .menu a {
              display: block;
              background: url(/common/img/icon_menu.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 21px auto;
              width: 100%;
              height: 100%;
              padding: 0 8px;
              transition: none !important; }
              header .headerInner .spOnly .hInner .spNavLeft .menu a:hover {
                opacity: 1 !important; }
              header .headerInner .spOnly .hInner .spNavLeft .menu a.cur {
                background: url(/common/img/icon_close.svg) no-repeat center;
                background-size: 26px auto;
                position: relative; }
                header .headerInner .spOnly .hInner .spNavLeft .menu a.cur::after {
                  content: "";
                  background: #333;
                  width: 100%;
                  height: 3px;
                  display: block;
                  bottom: -7px;
                  left: 0;
                  position: absolute; }
          header .headerInner .spOnly .hInner .spNavLeft .logo {
            width: 90px;
            margin-left: 3px; }
            header .headerInner .spOnly .hInner .spNavLeft .logo a img {
              width: 100%;
              height: auto; }
        header .headerInner .spOnly .hInner .spNav {
          display: flex;
          align-items: center;
          float: right; }
          header .headerInner .spOnly .hInner .spNav li {
            width: 35px;
            margin: 7px 4px; }
            header .headerInner .spOnly .hInner .spNav li a {
              padding: 13px 3px;
              width: 100%;
              height: 100%;
              display: block;
              transition: none; }
              header .headerInner .spOnly .hInner .spNav li a:hover {
                opacity: 0.6; }
            header .headerInner .spOnly .hInner .spNav li.schedule a {
              background: url(/common/img/icon_schedule_sp.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 32px auto; }
            header .headerInner .spOnly .hInner .spNav li.new a {
              background: url(/common/img/icon_new_sp.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 32px auto; }
            header .headerInner .spOnly .hInner .spNav li.ranking a {
              background: url(/common/img/icon_ranking_sp.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 32px auto; }
            header .headerInner .spOnly .hInner .spNav li.search a {
              background: url(/common/img/icon_search_sp.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 32px auto; }
              header .headerInner .spOnly .hInner .spNav li.search a.cur {
                background: url(/common/img/icon_close.svg) no-repeat center;
                background-size: 26px auto;
                position: relative; }
                header .headerInner .spOnly .hInner .spNav li.search a.cur::after {
                  content: "";
                  background: #333;
                  width: 100%;
                  height: 3px;
                  display: block;
                  bottom: -7px;
                  left: 0;
                  position: absolute; }
            header .headerInner .spOnly .hInner .spNav li.login a {
              background: url(/common/img/icon_login_sp.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 32px auto; }
            header .headerInner .spOnly .hInner .spNav li.mypage a {
              background: url(/common/img/icon_account_sp.svg) no-repeat center;
              text-indent: -9999px;
              background-size: 25px auto; }
      header .headerInner .spOnly #spGSearchWrap .header_search {
        display: flex;
        position: relative; }
        header .headerInner .spOnly #spGSearchWrap .header_search::before {
          position: absolute;
          top: 50%;
          left: 7px;
          transform: translateY(-50%);
          width: 14px;
          height: 14px;
          background: url(/common/img/icon_search.svg) center center no-repeat;
          background-size: 100% auto;
          content: '';
          z-index: 2; }
        header .headerInner .spOnly #spGSearchWrap .header_search .header_search--keyword {
          padding: 8px 15px 8px 25px;
          width: 100%;
          margin: 0;
          border-right: none;
          background: #fff;
          font-size: 1.6rem;
          border-radius: 3px 0 0 3px; }
        header .headerInner .spOnly #spGSearchWrap .header_search .header_search--button {
          margin: 0;
          padding: 8px 10px;
          background: #00288C;
          border-radius: 0 3px 3px 0;
          color: #fff;
          font-size: 1.4rem;
          border: none; }
      header .headerInner .spOnly #spGNavWrap {
        padding: 15px;
        height: 100vh;
        background: rgba(245, 245, 245, 0.85); }
        header .headerInner .spOnly #spGNavWrap ul li {
          background: #fff;
          border-left: 2px solid #00288C;
          margin-bottom: 2px; }
          header .headerInner .spOnly #spGNavWrap ul li a {
            font-size: 1.4rem;
            padding: 15px;
            display: block; }
            header .headerInner .spOnly #spGNavWrap ul li a::before {
              content: "";
              background: url("/common/img/icon_bullet.svg") no-repeat 0 0;
              width: 5px;
              height: 9px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-right: 10px; }
            header .headerInner .spOnly #spGNavWrap ul li a[target="_blank"]::after {
              content: "";
              background: url("/common/img/icon_blank.svg") no-repeat 0 0;
              width: 14px;
              height: 14px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle; }
            header .headerInner .spOnly #spGNavWrap ul li a a::after {
              color: #C02E2E;
              display: none; }
        header .headerInner .spOnly #spGNavWrap .btn {
          width: 200px;
          margin: 20px auto 0; }
          header .headerInner .spOnly #spGNavWrap .btn a {
            font-size: 1.6rem;
            font-weight: bold;
            color: #00288C;
            border: 1px solid #00288C;
            border-radius: 30px;
            background: #fff;
            display: block;
            text-align: center;
            padding: 12px 0; }
            header .headerInner .spOnly #spGNavWrap .btn a::before {
              content: "";
              background: url("/common/img/icon_login.svg") no-repeat 0 0;
              width: 20px;
              height: 20px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-right: 10px; }

  #spGSearch {
    background: rgba(245, 245, 245, 0.85);
    padding: 15px;
    color: #fff; }

  #layer {
    display: none;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    background: #000;
    opacity: 0.4;
    z-index: 2;
    overflow: hidden; }

  .login li.question a {
    color: #333; }
    .login li.question a::after {
      display: none; }
  .login li.question.premium {
    background: #EAF0FF !important; }
    .login li.question.premium a {
      color: #00288C; }
      .login li.question.premium a::after {
        content: "（今月未回答）";
        color: #00288C;
        display: inline-block; }
  .login li.question.premium.check {
    background: #EAF0FF !important; }
    .login li.question.premium.check a {
      color: #333; }
      .login li.question.premium.check a::after {
        content: "（今月回答済）";
        color: #333;
        display: inline-block; }
  .login li.privilege a {
    color: #333; }
    .login li.privilege a::after {
      display: none; }
  .login li.privilege.premium {
    background: #EAF0FF !important; }
    .login li.privilege.premium a {
      color: #00288C; }
      .login li.privilege.premium a::after {
        content: "（今月未取得）";
        color: #00288C;
        display: inline-block; }
  .login li.privilege.premium.check {
    background: #EAF0FF !important; }
    .login li.privilege.premium.check a {
      color: #333; }
      .login li.privilege.premium.check a::after {
        content: "（今月取得済）";
        color: #333;
        display: inline-block; } }
/*--------------------------------
topicPath
---------------------------------*/
.topicPathWrap {
  width: 1155px;
  margin: 15px auto; }
  .topicPathWrap ul.topicPath {
    display: flex; }
    .topicPathWrap ul.topicPath li {
      font-size: 1.3rem; }
      .topicPathWrap ul.topicPath li::after {
        content: "";
        display: inline-block;
        margin: 0 12px;
        width: 6px;
        height: 10px;
        background: url("/common/img/icon_arrow_l.svg") no-repeat 0 0;
        background-size: 100% auto; }
      .topicPathWrap ul.topicPath li:last-child::after {
        display: none; }
      .topicPathWrap ul.topicPath li a {
        text-decoration: underline;
        font-size: 1.3rem; }

@media screen and (max-width: 768px) {
  .topicPathWrap {
    width: auto;
    margin: 15px;
    overflow-x: scroll; }
    .topicPathWrap ul.topicPath {
      display: flex;
      width: 786px;
      overflow-x: scroll; }
      .topicPathWrap ul.topicPath li {
        font-size: 1.1rem; }
        .topicPathWrap ul.topicPath li::after {
          margin: 0 19px;
          width: 6px;
          height: 10px; }
        .topicPathWrap ul.topicPath li a {
          font-size: 1.1rem; } }
/*--------------------------------
contents
---------------------------------*/
#contentsWrap {
  min-width: 1315px; }

#contents {
  font-size: 1.4rem; }

@media screen and (max-width: 768px) {
  #contentsWrap {
    min-width: 100%;
    padding-top: 0; }

  #contents {
    width: 100%; }

  #contents iframe {
    width: 100%;
    height: 225px; }

  #main {
    float: none;
    width: 100%; } }
/*--------------------------------
section
---------------------------------*/
section {
  width: 100%;
  margin: 25px auto 0;
  font-size: 1.4rem; }
  section img {
    max-width: 100%;
    height: auto; }
  section strong,
  section strong a {
    font-weight: bold; }

section.wideSec {
  width: 100%;
  margin: 30px auto 0; }

/*--------------------------------
space
---------------------------------*/
section iframe {
  width: 100%;
  height: 640px; }
section iframe,
section p,
section ol,
section ul,
section table,
section dl {
  margin: 20px 0 0 0; }
section:first-child,
section iframe:first-child,
section p:first-child,
section h2:first-child,
section h3:first-child,
section ol:first-child,
section ul:first-child,
section ol li:first-child,
section ul li:first-child,
section dl:first-child,
section div.colWrap:first-child,
section table:first-child {
  margin-top: 0; }

.mtHelfSet section iframe,
.mtHelfSet section p,
.mtHelfSet section ol,
.mtHelfSet section ul,
.mtHelfSet section table,
.mtHelfSet section dl {
  margin: 10px 0 0 0; }

@media screen and (max-width: 768px) {
  section iframe,
  section p,
  section ol,
  section ul,
  section table,
  section dl {
    margin: 10px 0 0 0; }

  .mtHelfSet section iframe,
  .mtHelfSet section p,
  .mtHelfSet section ol,
  .mtHelfSet section ul,
  .mtHelfSet section table,
  .mtHelfSet section dl {
    margin: 5px 0 0 0; } }
/*--------------------------------
footer
---------------------------------*/
footer {
  background: #F2F2F2;
  min-width: 1315px; }
  footer #footerContents #fIconBox {
    padding-top: 75px;
    margin-bottom: 35px;
    display: flex;
    justify-content: center;
    align-items: center; }
    footer #footerContents #fIconBox ul {
      text-align: center;
      display: block; }
      footer #footerContents #fIconBox ul li {
        display: inline-block;
        width: 36px;
        margin-right: 26px; }
        footer #footerContents #fIconBox ul li:last-child {
          margin-right: 0; }
        footer #footerContents #fIconBox ul li a {
          display: block; }
      footer #footerContents #fIconBox ul.logo {
        width: 300px;
        margin-right: 50px; }
        footer #footerContents #fIconBox ul.logo li {
          width: 100%; }
      footer #footerContents #fIconBox ul.sns {
        width: 220px;
        display: flex; }
        footer #footerContents #fIconBox ul.sns li {
          width: 36px;
          margin-right: 25px; }
          footer #footerContents #fIconBox ul.sns li:last-child {
            margin-left: 0; }
  footer #footerContents .footerMenu {
    overflow: hidden;
    text-align: center;
    width: 100%;
    margin: 0 auto 50px; }
    footer #footerContents .footerMenu .left {
      display: inline-block;
      vertical-align: top;
      border-right: 1px solid #CECECE; }
      footer #footerContents .footerMenu .left .menuList {
        display: inline-block;
        vertical-align: top;
        margin-right: 55px;
        margin-top: 20px; }
        footer #footerContents .footerMenu .left .menuList li {
          display: block;
          margin-bottom: 10px;
          text-align: left; }
          footer #footerContents .footerMenu .left .menuList li.parents {
            font-size: 1.6rem;
            font-weight: bold; }
          footer #footerContents .footerMenu .left .menuList li a {
            display: block;
            font-size: 1.4rem; }
            footer #footerContents .footerMenu .left .menuList li a::before {
              content: "";
              background: url("/common/img/icon_bullet.svg") no-repeat 0 0;
              width: 5px;
              height: 9px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-right: 10px; }
            footer #footerContents .footerMenu .left .menuList li a[target="_blank"]::after {
              content: "";
              background: url("/common/img/icon_blank.svg") no-repeat 0 0;
              width: 14px;
              height: 14px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-left: 5px; }
            footer #footerContents .footerMenu .left .menuList li a:hover {
              opacity: 1 !important;
              text-decoration: underline !important; }
    footer #footerContents .footerMenu .right {
      display: inline-block;
      vertical-align: top;
      padding-left: 50px; }
      footer #footerContents .footerMenu .right .menuList {
        display: block;
        margin-top: 20px; }
        footer #footerContents .footerMenu .right .menuList li {
          display: block;
          text-align: left;
          margin-bottom: 10px; }
          footer #footerContents .footerMenu .right .menuList li a {
            display: block;
            font-size: 1.4rem; }
            footer #footerContents .footerMenu .right .menuList li a::before {
              content: "";
              background: url("/common/img/icon_bullet.svg") no-repeat 0 0;
              width: 5px;
              height: 9px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-right: 10px; }
            footer #footerContents .footerMenu .right .menuList li a[target="_blank"]::after {
              content: "";
              background: url("/common/img/icon_blank.svg") no-repeat 0 0;
              width: 14px;
              height: 14px;
              background-size: 100% auto;
              display: inline-block;
              vertical-align: middle;
              margin-left: 5px; }
            footer #footerContents .footerMenu .right .menuList li a:hover {
              opacity: 1 !important;
              text-decoration: underline !important; }
      footer #footerContents .footerMenu .right .pmark {
        margin-top: 20px; }
        footer #footerContents .footerMenu .right .pmark .fPmark {
          display: inline-block;
          vertical-align: middle; }
          footer #footerContents .footerMenu .right .pmark .fPmark a {
            display: block;
            width: 60px; }
            footer #footerContents .footerMenu .right .pmark .fPmark a img {
              width: 100%;
              height: auto; }
        footer #footerContents .footerMenu .right .pmark .fIconDescription {
          display: inline-block;
          vertical-align: middle;
          font-size: 1.4rem;
          line-height: 1.8;
          text-align: left;
          margin-left: 15px; }
  footer .pageTopWrap {
    position: relative;
    height: 50px; }
    footer .pageTopWrap .pageTop {
      margin: 0 20px;
      text-align: right;
      opacity: 0; }
      footer .pageTopWrap .pageTop a {
        display: block;
        transition: 0.4s;
        width: 50px;
        height: 50px;
        font-size: 0rem;
        background: url(/common/img/img_pagetop.svg) no-repeat;
        background-size: 100% auto; }
      footer .pageTopWrap .pageTop:hover {
        opacity: 0.7; }
      footer .pageTopWrap .pageTop.show {
        opacity: 1;
        z-index: 4;
        position: absolute;
        right: 0;
        bottom: 20px; }
        footer .pageTopWrap .pageTop.show.fixed {
          position: fixed;
          bottom: 20px;
          right: 20px;
          margin: 0;
          transition: opacity 0.4s ease; }
  footer .footerInner {
    margin: 0 auto;
    overflow: hidden;
    background: #333;
    padding: 20px; }
    footer .footerInner .copy {
      clear: both; }
      footer .footerInner .copy small {
        font-size: 1.4rem;
        color: #fff;
        text-align: center;
        display: block; }

@media screen and (max-width: 768px) {
  footer {
    text-align: center;
    min-width: 0; }
    footer #footerContents #fIconBox {
      padding-top: 45px;
      margin-bottom: 5px;
      display: block; }
      footer #footerContents #fIconBox ul {
        text-align: center;
        display: block; }
        footer #footerContents #fIconBox ul.logo {
          width: 200px;
          margin: 0 auto 30px auto;
          display: block; }
          footer #footerContents #fIconBox ul.logo li {
            width: 100%; }
        footer #footerContents #fIconBox ul.sns {
          width: 165px;
          display: flex;
          margin: 0 auto;
          flex-wrap: wrap; }
          footer #footerContents #fIconBox ul.sns li {
            width: 30px;
            margin-right: 15px; }
            footer #footerContents #fIconBox ul.sns li a {
              width: 100%; }
              footer #footerContents #fIconBox ul.sns li a img {
                width: 100%; }
            footer #footerContents #fIconBox ul.sns li:last-child {
              margin-right: 0; }
    footer #footerContents .footerMenu {
      width: auto;
      margin: 0 15px 50px; }
      footer #footerContents .footerMenu .left {
        display: block;
        vertical-align: top;
        border-right: none; }
        footer #footerContents .footerMenu .left .menuList {
          display: block;
          vertical-align: top;
          margin-right: 15px;
          margin-top: 20px;
          text-align: left; }
          footer #footerContents .footerMenu .left .menuList li {
            display: inline-block;
            margin-bottom: 10px;
            text-align: left;
            width: calc(50% - 10px);
            vertical-align: top; }
            footer #footerContents .footerMenu .left .menuList li.parents {
              font-size: 1.4rem;
              width: 100%;
              display: block; }
            footer #footerContents .footerMenu .left .menuList li a {
              display: block;
              font-size: 1.2rem; }
              footer #footerContents .footerMenu .left .menuList li a::before {
                width: 5px;
                height: 9px;
                margin-right: 10px; }
              footer #footerContents .footerMenu .left .menuList li a[target="_blank"]::after {
                content: "";
                background: url("/common/img/icon_blank.svg") no-repeat 0 0;
                width: 14px;
                height: 14px;
                background-size: 100% auto;
                display: inline-block;
                vertical-align: middle;
                margin-left: 5px; }
          footer #footerContents .footerMenu .left .menuList.spCol1 li {
            display: block;
            width: 100%; }
      footer #footerContents .footerMenu .right {
        display: block;
        vertical-align: top;
        padding-left: 0;
        padding-top: 15px;
        width: auto;
        margin: 30px 15px 0 0;
        border-top: 1px solid #CECECE; }
        footer #footerContents .footerMenu .right .menuList {
          display: block;
          margin-top: 10px;
          vertical-align: top;
          border-right: none; }
          footer #footerContents .footerMenu .right .menuList li {
            display: inline-block;
            margin-bottom: 10px;
            text-align: left;
            width: calc(50% - 10px);
            vertical-align: top; }
            footer #footerContents .footerMenu .right .menuList li a {
              display: block;
              font-size: 1.2rem; }
              footer #footerContents .footerMenu .right .menuList li a::before {
                width: 5px;
                height: 9px;
                margin-right: 10px; }
              footer #footerContents .footerMenu .right .menuList li a[target="_blank"]::after {
                content: "";
                background: url("/common/img/icon_blank.svg") no-repeat 0 0;
                width: 14px;
                height: 14px;
                background-size: 100% auto;
                display: inline-block;
                vertical-align: middle;
                margin-left: 5px; }
        footer #footerContents .footerMenu .right .pmark {
          margin-top: 20px;
          text-align: left; }
          footer #footerContents .footerMenu .right .pmark .fPmark {
            display: inline-block;
            vertical-align: middle; }
            footer #footerContents .footerMenu .right .pmark .fPmark a {
              display: block;
              width: 50px; }
          footer #footerContents .footerMenu .right .pmark .fIconDescription {
            font-size: 1.2rem;
            margin-left: 10px; }

  .pageTopWrap {
    height: 45px; }
    .pageTopWrap .pageTop {
      margin: 0 15px;
      text-align: right; }
      .pageTopWrap .pageTop a {
        width: 50px;
        height: 50px;
        background: url(/common/img/img_pagetop.svg) no-repeat;
        background-size: 100% auto; }
      .pageTopWrap .pageTop.show {
        opacity: 1;
        z-index: 4;
        position: absolute;
        right: 0; }
        .pageTopWrap .pageTop.show.fixed {
          right: 15px; } }
