@charset "UTF-8";

/**************************
anchor
**************************/
.u-underline {
  color: #005baa;
  text-decoration: underline;

  &:hover {
    text-decoration: none;
  }
}

/**************************
list
**************************/
ul.u-disc {
  padding-left: 1.5em;

  & > li {
    list-style-type: disc;
  }
}

ol.u-decimal {
  padding-left: 1.5em;

  & > li {
    list-style-type: decimal;
  }
}

ol.u-parentheses {
  --parentheses-spacing: 1.5em;

  padding-left: var(--parentheses-spacing);
  counter-reset: parentheses;

  /* li : 10 over */
  &:has(> li:nth-child(10)) {
    --parentheses-spacing: 2em;
  }

  & > li {
    display: flex;
    gap: 0.25em;
    list-style-type: none;

    &::before {
      flex-shrink: 0;
      text-align: end;
      text-indent: calc(var(--parentheses-spacing) * -1);
      content: '(' counter(parentheses) ')';
      counter-increment: parentheses;
    }
  }
}

/**************************
yellow-btn
**************************/
.yellow-btn {
  container-type: inline-size;
  position: relative;
  display: block;
  width: 100%;
  padding-block: 1.5em;
  margin-inline: auto;
  font-size: var(--yellow-btn-fs, 1em);
  text-align: center;
  text-decoration: none;
  background-color: #ffe900;
  border-radius: 100vmax;

  &::after {
    position: absolute;
    top: 50%;
    right: min(20px, 20 / 400 * 100cqw);
    width: calc(36 / 16 * 1em);
    aspect-ratio: 1;
    content: "";
    background: url("../img/btn-arrow.png") no-repeat 50% 50% / cover;
    background-color: #fff;
    border-radius: 50%;
    translate: 0 -50%;
  }
}

@media screen and (width >= 767px) {
  .yellow-btn {
    max-width: 400px;
  }
}


/**************************
register
**************************/
.btn-register {
  position: relative;
  display: grid;
  gap: 18px;
  width: 100%;
  margin-inline: auto;
  margin-top: var(--register-margin-top, min(60px, 60 / 750 * 100vw));
  clip-path: inset(-100vh 0 0 0);

  & :where(img) {
    width: 100%;
    height: auto;
  }
}

.btn-register__anchor {
  position: relative;
  z-index: 3;
  order: 2;
}

.btn-register__obj {
  display: grid;
  grid-template-columns: 60% 1fr;
  gap: min(16px, 16 / 400 * 100%);
  order: 1;
  width: 72.5%;
  margin-inline: auto;
}

.btn-register__label {
  /* width: min(265px, 265 / 656 * 100%);
  padding-left: min(80px, 80 / 656 * 100%); */
}

.btn-register__buta {
  position: absolute;
  top: 16%;
  right: 8%;
  z-index: 2;
  width: min(180px, 120 / 400 * 100%);
  rotate: 24deg;
  scale: 0.9;
  transition: 0.2s linear;
}

.btn-register__anchor:hover + .btn-register__obj > .btn-register__buta {
  top: -4%;
  rotate: 6deg;
  scale: 1;
  transition-timing-function: cubic-bezier(0.32, 2, 0.48, 1);
  transition-duration: 1s;
}

@media screen and (width >= 767px) {
  .btn-register {
    max-width: 400px;
  }

  .btn-register__buta {
    width: min(120px, 120 / 400 * 100%);
  }
}


/**************************
table
**************************/
.free-table {
  width: 100%;
  line-height: 1.7;
  table-layout: fixed;
  border-collapse: collapse;
}

.free-table thead {
  background: #f5f5f5;
}

.free-table th,
.free-table td {
  padding: calc(12 / 16 * 1em);
  vertical-align: top;
  text-align: left;
  overflow-wrap: anywhere;
  border: 1px solid #666;
}

.free-table th {
  font-weight: bold;
}

/* scroll */
.free-table-wrap {
  overflow-x: auto;
}

.free-table--scroll {
  min-width: 640px;
  margin: 0;
  table-layout: auto;
}

/**************************
accordion
**************************/
.accordion_item {
    margin: 0 0 20px;
    background: #EBF6FC;
    border-radius: 26px;
    overflow: hidden;
}
.accordion_item--title {
    display: flex;
    align-items: center;
    gap: 1em;
    cursor: pointer;
    font-size: 20px;
    color: #005baa;
    position: relative;
    padding: 30px 60px 30px 30px;
}
.accordion_item--title::before,
.accordion_item--title::after {
    content: "";
    width: 1em;
    height: 2px;
    background: #005baa;
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
}
.accordion_item--title::after {
    transform: translateY(-50%) rotate(90deg);
    transition: 0.3s;
}
.accordion_item--title.active::after {
    transform: translateY(-50%) rotate(0deg);
}
.accordion_item--content {
    display: none;
    background: #fff;
    border-radius: 26px;
    margin: 0 30px 30px;
    padding: 30px 20px;
    font-size: 16px;
    line-height: 1.8;
}
/* Q icon */
.icon_q {
    font-size: 17px;
    font-family: "HiraginoUDKakuGoStdNW6", sans-serif;
    text-align: center;
    color: #fff;
    line-height: 34px;
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    background: #005baa;
    border-radius: 99px;
    position: relative;
    z-index: 2;
}
.icon_q::after {
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 0.5em solid transparent;
    border-left: 0.5em solid transparent;
    border-top: 1em solid #005baa;
    border-bottom: 0;
    position: absolute;
    bottom: 0em;
    right: -0.1em;
    transform: rotate(-45deg);
    z-index: -1;
}
@media screen and (max-width: 767px) {
  .accordion_item {
    border-radius: 3.467cqw;
    margin: 0 0 2.667cqw;
  }
  .accordion_item--title {
    font-size: 4cqw;
    padding: 4cqw 10cqw 4cqw 4cqw;
  }
  .accordion_item--title::before, .accordion_item--title::after {
    right: 4cqw;
  }
  .accordion_item--content {
    border-radius: 3.467cqw;
    margin: 0 4cqw 4cqw;
    padding: 6cqw 4cqw;
    font-size: 4cqw;
  }
  .icon_q {
    font-size: 3.2cqw;
    line-height: 2.4em;
    width: 2.4em;
    height: 2.4em;
    min-width: 2.4em;
    min-height: 2.4em;
  }
}


/**************************
sidebar-layout
**************************/
.sidebar-layout {
    align-items: start;
    justify-content: space-between;
    gap: 40px;
}
.sidebar-layout--aside {
    position: sticky;
    top: 130px;
    width: 240px;
    min-width: 180px;
}
.sidebar-layout--aside li {
    margin: 0 0 8px;
}
.sidebar-layout--aside a {
    background: #F6F6F4;
    display: block;
    padding: 1em 3em 1em 1em;
    font-size: 13px;
    font-family: "HiraginoUDKakuGoStdNW6", sans-serif;
    border-radius: 4px;
    transition: 0.3s;
    position: relative;
    text-decoration: none;
}
.sidebar-layout--aside .icon a {
    display: flex;
    align-items: center;
    gap: 0.8em;
}
.sidebar-layout--aside .icon a img {
    width: 35px;
}
.sidebar-layout--aside .arw_btm a::after {
    content: "";
    background-image: url(/ga/common/img/icon_gnav_arrow.png);
    background-repeat: no-repeat;
    background-size: auto;
    background-position: center;
    display: block;
    height: 1em;
    width: 1em;
    position: absolute;
    top: 50%;
    right: 1.5em;
    transform: translateY(-50%);
    line-height: 1;
}
.sidebar-layout--aside .arw_right a::after {
    content: "";
    background-image: url(/ga/common/img/ico_right.png);
    background-repeat: no-repeat;
    background-size: 70% auto;
    background-position: center;
    display: block;
    height: 1em;
    width: 1em;
    position: absolute;
    top: 50%;
    right: 1.3em;
    transform: translateY(-50%);
    line-height: 1;
}
.sidebar-layout--main {
    max-width: 700px;
}
@media screen and (min-width: 768px) {
  .sidebar-layout--aside .is-active a {
    background: #EBF6FC;
  }
}
@media screen and (max-width: 767px) {
    .sidebar-layout {
        display: block;
    }
    .sidebar-layout--aside {
        position: static;
        width: 100%;
        margin-bottom: 10cqw;
    }
    .sidebar-layout--aside a {
        font-size: 3.2cqw;
    }
    .sidebar-layout--aside .sp-arw_btm a::after {
      height: 1.2em;
      width: 1.2em;
      max-width: 20px;
      max-height: 20px;
      background-image: url(/ga/common/img/icon_gnav_arrow.png);
    }
}
@media screen and (min-width: 769px) and (max-width: 1023px) {
    html, body {
        overflow-x: clip!important;
    }
    .sidebar-layout--aside {
        top: 180px;
    }
}


/**************************
width
**************************/
.width980 {
    max-width: 1050px;
    margin: auto;
    padding: 0 35px;
}
@media screen and (max-width: 767px) {
    .width980 {
        padding-left: 7.333cqw;
        padding-right: 7.333cqw;
    }
}


/* *******************
 * hidden text
******************** */
.u-visually-hidden {
  position: fixed !important;
  inset: 0 !important;
  visibility: initial !important;
  inline-size: 4px !important;
  block-size: 4px !important;
  padding: unset !important;
  margin: unset !important;
  contain: strict !important;
  pointer-events: none !important;
  border: none !important;
  opacity: 0 !important;
}
