.app-select-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-block: 3rem;
}

@media screen and (max-width: 767px) {
  .app-select-group {
    gap: 3rem;
    margin-block: 4rem;
  }
}

.app-select-item {
  width: calc(33.33333333% - 1rem);
}

@media screen and (max-width: 767px) {
  .app-select-item {
    width: 100%;
  }
}

.app-select-item:not(.is-active) .app-select {
  opacity: .5;
  cursor: not-allowed !important;
}

.app-select-item:not(.is-active) select {
  pointer-events: none !important;
}

.app-select-step {
  display: none;
  font-size: 18px;
  font-weight: bold;
  background-color: #999;
  color: #fff;
  margin-bottom: 1.5em;
  width: fit-content;
  padding: .25em 1em;
  line-height: 1;
  margin-inline: auto;
  position: relative;
}

.app-select-step::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 10px solid transparent;
  border-top-color: #999;
}

@media screen and (max-width: 767px) {
  .app-select-step {
    display: block;
    font-size: 16px;
  }

  .app-select-step::after {
    border-width: 8px;
  }
}

.app-select-item.is-active .app-select-step {
  background-color: #465b96;
}

.app-select-item.is-active .app-select-step::after {
  border-top-color: #465b96;
}

.app-select {
  position: relative;
  font-size: 16px;
}

.app-select select {
  display: block;
  width: 100%;
  font-size: 1em;
  padding: 1.5em 1em;
  border: 1px solid #999;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  cursor: pointer;
}

.app-select::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 1em;
  width: .6em;
  height: .6em;
  margin-top: -.4em;
  border-top: 1px solid #000;
  border-left: 1px solid #000;
  transform: rotate(-135deg);
  pointer-events: none;
}

.app-result {
  display: none;
  margin-bottom: 6rem;
}

.app-result.is-show { 
  display: block;
}

@media screen and (max-width: 767px) {
  .app-result {
    margin-bottom: 3rem;
  }
}

.app-result-heading {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 1em;
}

.app-result-heading br {  
  display: none;
}

@media screen and (max-width: 767px) {
  .app-result-heading {
    font-size: 18px;
  }

  .app-result-heading br {  
    display: inline;
  }
}

.app-result-list {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 1.5rem;
}

.app-result-item {
  width: calc(50% - .75rem);
}

@media screen and (max-width: 767px) {
  .app-result-list {
    gap: 2rem;
  }

  .app-result-item {
    width: 100%;
  }
}

.app-result-row {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid #999;
}

.app-result-row + .app-result-row {
  border-top-width: 0;
}

.app-result-head {
  background-color: #e0e8f7;
  border-right: 1px solid #999;
}

.app-result-head,
.app-result-body {
  width: 50%;
  padding: .5em .75em;
  box-sizing: border-box;
  line-height: 1.5 !important;
}

.app-result-body a {
  color: #256af4 !important;
}

.app-result-body a:hover {
  text-decoration: underline !important;
}

@media screen and (max-width: 767px) {
  .app-result-head {
    border-right-width: 0;
    border-bottom: 1px solid #999;
  }

  .app-result-head,
  .app-result-body {
    width: 100%;
  }
}


/* 2026/07/22 */
.app-heading {
  display: block grid;
  grid-template-columns: auto 1fr;
  gap: .5em;
  align-items: center;
  font-size: 21px;
  font-weight: bold;
  padding-block: .5em;
  border-bottom: 1px solid #b9b9b9;
  margin-block: 1.5em;

  @media screen and (max-width: 767px) {
    font-size: 18px;
  }

  .app-heading-number {
    display: block grid;
    place-items: center;
    font-size: 1em;
    color: #fff;
    background-color: #274277;
    border-radius: 100%;
    width: 2.25em;
    height: 2.25em;
  }

  .app-heading-text {
    display: block;
    font-size: 1em;
    color: #274277;
  }
}

.app-heading-sub {
  font-size: 18px;
  font-weight: bold;
  margin-block: 1.25em 1em;

  @media screen and (max-width: 767px) {
    font-size: 16px;
  }
}

.app-section {
  margin-block: 6rem;

  @media screen and (max-width: 767px) {
    margin-block: 2rem;
  }
}

.app-frame {
  padding: 2.5em 3em;
  background-color: #e9f3fe;
  border-radius: 10px;
  margin-block: 1em;
  @media screen and (max-width: 767px) {
    padding: 1.5em;
  }
}

.app-flow {
  display: block grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5em;
  margin-block: 2em;
  .app-frame {
    margin-block: 0;
  }
  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
  }
}

.app-flow-item {
  display: block grid;
  align-items: center;
  justify-content: center;
  list-style: none;
  text-align: center;
  gap: .5em;
}

.app-flow-item-step {
  display: block flex;
  gap: .5em;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: bold;

  .app-flow-item-step-number {
    display: block grid;
    place-items: center;
    font-size: 1em;
    color: #fff;
    background-color: #274277;
    border-radius: 100%;
    width: 2.25em;
    height: 2.25em;
  }

  .app-flow-item-step-text {
    display: block;
    font-size: 1em;
    color: #274277;
  }
}

.app-circle-decoration {
  position: relative;
  padding-inline-start: 1.5em;
  font-size: 1em;
  &::before {
    content: '●';
    position: absolute;
    left: 0;
    font-size: 1em;
    color: #274277;
  }
}

.app-brand-list {
  display: block grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5em;
  margin-block: 2em;
  @media screen and (max-width: 767px) {
    grid-template-columns: repeat(2, 1fr);
    gap: 1em;
  }
}

.app-brand-item {
  list-style: none;
  display: contents;
}

.app-brand-label {
  display: block grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: .5em;
  border: 3px solid #ccc;
  border-radius: 10px;
  padding: 1.5em;
  cursor: pointer;
  min-width: 0;
  white-space: break-spaces;
  input {
    display: none;
  }
  @media screen and (max-width: 767px) {
    padding: 1em;
  }
  &:hover,
  &:has(input:checked) {
    border-color: #274277;
  }
  &:has(input:checked) {
    .app-brand-label-heading {
      color: #274277;
    }
    .app-brand-label-arrow {
      &::before {
        border-bottom-color: #274277;
        border-right-color: #274277;
      }
    }
  }
}

.app-brand-label-heading {
  font-size: 21px;
  font-weight: bold;
  @media screen and (max-width: 767px) {
    font-size: 18px;
  }
}

.app-brand-label-description {
  font-size: 14px;
  span {
    font-size: 1em;
  }
  @media screen and (max-width: 767px) {
    font-size: 12px;
  }
}

.app-brand-label-arrow {
  display: block grid;
  place-items: center;
  font-size: 15px;
  padding-block-start: 1em;
  @media screen and (max-width: 767px) {
    font-size: 14px;
    padding-block-start: .5em;
  }
  &::before {
    content: '';
    width: 1em;
    height: 1em;
    border-bottom: 5px solid #ccc;
    border-right: 5px solid #ccc;
    transform: rotate(45deg);
  }
}

.app-frame-heading {
  font-size: 18px;
  font-weight: bold;
  border-bottom: 1px solid #b9b9b9;
  padding-bottom: 1em;
  margin-bottom: 1em;
  @media screen and (max-width: 767px) {
    font-size: 16px;
    padding-bottom: .5em;
    margin-bottom: 1em;
  }
}

.app-frame-container {
  display: block grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3em;
  @media screen and (max-width: 767px) {
    grid-template-columns: 1fr;
    gap: 1.5em;
  }
}

.app-frame-2-list {
  display: block grid;
  gap: .5em;
}

.app-frame-2-item {
  display: block grid;
  grid-template-columns: 7.5em 1fr;
  gap: 2.5em;
  font-size: 15px;
  a {
    font-size: 1em;
    text-decoration: none !important;
    color: #274277 !important;
    &:hover {
      text-decoration: underline !important;
    }
  }
  @media screen and (max-width: 767px) {
    font-size: 14px;
    gap: 1.5em;
  }
}

.app-frame-2-item-head {
  font-size: 1em;
  text-align-last: justify;
}

.app-frame-2-item-content {
  font-size: 1em;
  font-weight: bold;
}

.app-frame-big-text {
  @media screen and (min-width: 768px) {
    font-size: 21px !important;
    font-weight: bold;
    line-height: 1.4 !important;
  }
}

.app-copy-button-outer {
  text-align: center;
  margin-block-start: 1.5em;
}

.app-copy-button {
  display: inline-block;
  position: relative;
  background-color: #274277;
  color: #fff;
  border: none;
  border-radius: 3em;
  padding: .75em 1em;
  max-width: 100%;
  width: 20em;
  font-size: 18px;
  font-weight: bold;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  &::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 1.5em;
    width: .5em;
    height: .5em;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
    margin-top: -.25em;
  }
  &:hover {
    background-color: #1e345d;
  }
  @media screen and (max-width: 767px) {
    font-size: 16px;
  }
}

.app-frame-3-list {
  display: block grid;
  gap: .5em;
}

.app-frame-3-item {
  font-size: 18px;
  font-weight: bold;
  a {
    font-size: 1em;
    text-decoration: none !important;
    color: #274277 !important;
    &:hover {
      text-decoration: underline !important;
    }
  }
  @media screen and (max-width: 767px) {
    font-size: 14px;
  }
}

.app-frame-4-list {
  display: block grid;
  gap: .5em;
}

.app-frame-4-item {
  display: block grid;
  grid-template-columns: 13em 1fr;
  gap: 1.5em;
  font-size: 15px;

  a {
    font-size: 1em;
    text-decoration: none !important;
    color: #274277 !important;
    &:hover {
      text-decoration: underline !important;
    }
  }
  @media screen and (max-width: 767px) {
    font-size: 14px;
    grid-template-columns: 1fr;
    gap: .5em;
  }
}

.app-frame-4-item-head {
  font-size: 1em;
}

.app-frame-4-item-content {
  font-size: 1em;
  font-weight: bold;
}

[v-cloak]{ display:none; }

.v-enter-active,
.v-leave-active {
  transition: opacity .3s ease-in-out;
}

.v-enter-from {
  opacity: 0;
}

.v-enter-to {
  opacity: 1;
}

.v-leave-from {
  opacity: 1;
}

.v-leave-to {
  opacity: 0;
}