.pagetop {
  position: fixed;
  right: 45px;
  bottom: 20px;
  width: 54px;
  z-index: 100;
  display: none; }

.pagetop a {
  display: block;
  -webkit-filter: drop-shadow(0px 0px 3px rgba(0, 0, 0, 0.13));
          filter: drop-shadow(0px 0px 3px rgba(0, 0, 0, 0.13)); }

@media screen and (max-width: 767px) {
  .pagetop {
    right: 16px;
    bottom: 60px; } }

.floating {
  position: fixed;
  right: 0;
  top: 50%;
  transfrom: translateY(-50%);
  z-index: 1000; }
  .floating .floating-hurry a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 14px;
    background: #cd0000;
    color: #fff;
    border-radius: 18px 0 0 18px;
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 30px 24px; }
  .floating .floating-hurry a:after {
    content: "";
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: url(../img/base/arrow_red.png) no-repeat center/contain, currentColor; }

@media screen and (max-width: 767px) {
  .floating {
    top: auto;
    bottom: 0;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    width: 100%;
    padding: 0 5px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 5px; }
    .floating > * {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
    .floating .floating-hurry a {
      height: 100%;
      -webkit-column-gap: 8px;
         -moz-column-gap: 8px;
              column-gap: 8px;
      -webkit-writing-mode: horizontal-tb;
          -ms-writing-mode: lr-tb;
              writing-mode: horizontal-tb;
      font-size: 15px;
      line-height: 1.29;
      text-align: center;
      border-radius: 9px 9px 0 0;
      padding: 15px 0; }
    .floating .floating-tel a {
      height: 100%;
      background: #3bb2c1;
      color: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      text-align: center;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.05em;
      line-height: 1.29;
      border-radius: 9px 9px 0 0; }
    .floating .floating-tel a img {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 25px;
              flex: 0 1 25px; }
    .floating .floating-tel a .text {
      padding: 0 8px;
      -ms-flex-negative: 0;
          flex-shrink: 0; }
    .floating .floating-tel a .sub {
      font-size: 10px;
      letter-spacing: 0.1em; }
    .floating .floating-tel a .sub span {
      display: block;
      background: #fff;
      color: #3bb2c1;
      border: 1px solid #3bb2c1;
      padding: 0 4px; } }

@media (hover: hover) {
  .floating .floating-hurry a:hover {
    -webkit-filter: brightness(125%);
            filter: brightness(125%); } }

.footer .footer-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 50px 0; }

.footer .footer-flex-lft {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.footer .footer-logo {
  width: 165px;
  margin: 0 0 60px; }

.footer .footer-address {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.64;
  letter-spacing: 0.06em; }

.footer .footer-pccta {
  margin-top: auto; }

.footer .footer-pccta-tel {
  margin-bottom: 30px; }

.footer .footer-pccta-tel .text {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.0;
  margin-bottom: 10px; }

.footer .footer-pccta-tel .num {
  width: 278px;
  margin-bottom: 12px; }

.footer .footer-pccta-tel .sub {
  width: 273px;
  text-align: center;
  font-size: 19px;
  font-weight: 700;
  color: #3bb2c1;
  border: 1px solid #3bb2c1;
  margin: 0 auto; }

.footer .footer-pccta-mail a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-column-gap: 18px;
     -moz-column-gap: 18px;
          column-gap: 18px;
  width: 286px;
  height: 65px;
  background: #3bb2c1;
  color: #fff;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.36;
  letter-spacing: 0.05em; }

.footer .footer-pccta-mail a img {
  width: 22px; }

.footer .footer-flex-rig {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 613px;
          flex: 0 1 613px; }

.footer .footer-pcnav {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.2;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 0 auto;
  grid-template-columns: auto auto;
  gap: 0; }

.footer .footer-pcnav-block {
  padding: 40px 0; }

.footer .footer-pcnav-block:nth-child(-n+2) {
  padding-top: 0; }

.footer .footer-pcnav-block:nth-last-child(-n+2) {
  padding-bottom: 0; }

.footer .footer-pcnav-block:nth-child(odd) {
  padding-right: 78px; }

.footer .footer-pcnav-block:nth-child(n+3) {
  border-top: 1px solid #ccc; }

.footer .footer-pcnav-block > li + li {
  margin-top: 20px; }

.footer .footer-pcnav ul {
  font-size: 12px;
  font-weight: 500;
  margin-top: 20px; }

.footer .footer-pcnav ul > li:before {
  content: "-"; }

.footer .footer-pcnav ul > li + li {
  margin-top: 1em; }

.footer .footer-gray {
  background: #f6f6f6;
  border-top: 0.5px solid #cccccc;
  padding: 18px 0; }

.footer .footer-gray-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.footer .footer-copyright {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.07em;
  line-height: 1.0;
  color: #282828; }

.footer .footer-subnav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-column-gap: 1.5em;
     -moz-column-gap: 1.5em;
          column-gap: 1.5em;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.07em;
  line-height: 1.0; }

.footer .footer-subnav a {
  color: #282828; }

@media screen and (max-width: 1199px) {
  .footer .footer-flex-rig {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 56%;
            flex: 0 1 56%; } }

@media screen and (max-width: 767px) {
  .footer {
    margin-bottom: 50px; }
    .footer .footer-flex {
      display: block;
      padding: 56px 0 20px; }
    .footer .footer-logo {
      width: 143px;
      margin: 0 auto 20px; }
    .footer .footer-catchcopy {
      text-align: center;
      font-size: 16px;
      font-weight: 700;
      letter-spacing: 0.06em;
      margin-bottom: 20px;
      color: #282828; }
    .footer .footer-spcta {
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: 1fr 12px 1fr;
      grid-template-columns: 1fr 1fr;
      gap: 28px 12px;
      margin-bottom: 25px; }
    .footer .footer-spcta-mail a {
      height: 100%;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background: #3bb2c1;
      color: #fff;
      border-radius: 8px;
      text-align: center;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.05em;
      line-height: 1.15;
      padding: 14px 0;
      -webkit-box-shadow: 0px 5px 0px 0px #0090ae;
              box-shadow: 0px 5px 0px 0px #0090ae; }
    .footer .footer-spcta-mail img {
      width: 40px;
      margin: 0 auto 9px; }
    .footer .footer-spcta-tel a {
      height: 100%;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background: #3bb2c1;
      color: #fff;
      border-radius: 8px;
      text-align: center;
      padding: 14px 0;
      -webkit-box-shadow: 0px 5px 0px 0px #0090ae;
              box-shadow: 0px 5px 0px 0px #0090ae; }
    .footer .footer-spcta-tel a .icon {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-column-gap: 8px;
         -moz-column-gap: 8px;
              column-gap: 8px;
      margin-bottom: 10px; }
    .footer .footer-spcta-tel a .icon img {
      width: 30px; }
    .footer .footer-spcta-tel a .icon span {
      font-size: 11.5px;
      font-weight: 500;
      letter-spacing: 0.04em;
      line-height: 1.1;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: #fff;
      color: #3bb2c1;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      position: relative; }
    .footer .footer-spcta-tel a .icon span:before {
      content: "";
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 3px 6px 3px 0;
      border-color: transparent #fff transparent transparent;
      position: absolute;
      left: -3px;
      bottom: 8px;
      -webkit-transform: rotate(-20deg);
          -ms-transform: rotate(-20deg);
              transform: rotate(-20deg); }
    .footer .footer-spcta-tel a .text {
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 0.04em;
      background: #fff;
      color: #3bb2c1;
      padding: 0 10px;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content; }
    .footer .footer-spcta-bnr {
      -ms-grid-column-span: 2;
      grid-column: span 2; }
    .footer .footer-spnav > li {
      border-bottom: 1px solid #b3b3b3; }
    .footer .footer-spnav > li:first-child {
      border-top: 1px solid #b3b3b3; }
    .footer .footer-spnav a {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      -webkit-column-gap: 12px;
         -moz-column-gap: 12px;
              column-gap: 12px;
      color: #282828;
      font-size: 16px;
      font-weight: 700;
      letter-spacing: 0.118em;
      line-height: 1.2;
      padding: 20px 4px;
      position: relative; }
    .footer .footer-spnav a:after {
      content: "";
      width: 18px;
      height: 18px;
      background: url(../img/base/arrow.png) no-repeat center/contain, #3bb2c1;
      border-radius: 50%;
      position: absolute;
      right: 10px;
      top: 0;
      bottom: 0;
      margin: auto; }
    .footer .footer-spnav a.beginner:before {
      content: "";
      width: 14px;
      height: 18px;
      background: url(../img/base/ico_beginner.png) no-repeat center/contain;
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; }
    .footer .footer-gray {
      padding: 20px 0 12px;
      background: none;
      border: 0; }
    .footer .footer-gray-flex {
      display: block;
      text-align: center; }
    .footer .footer-address {
      font-size: 15px;
      font-weight: 500;
      letter-spacing: 0.06em;
      line-height: 1.6; }
    .footer .footer-copyright {
      margin-top: 20px; } }

@media (hover: hover) {
  .footer .footer-pcnav a.trans:hover {
    color: #3bb2c1; } }
