@charset "utf-8";
@media screen and (max-width: 768px) {
  /* ==================================================
     content header sp
  ================================================== */
  .c_header_inner {
    height: 22vw;
  }
  #c_header h1 {
    top: 5vw;
    left: 5vw;
    width: 58vw;
  }
  .c_header_nav {
    top: 6vw;
    right: 5vw;
    gap: 5vw;
  }
  .c_h_mail img {
    width: 9.5vw;
  }
  .c_h_mail a:hover {
    transform: none;
    opacity: 1;
  }
  #c_header .c_hm {
    width: 10.5vw;
    height: 8vw;
  }
  #c_header .c_hm:hover {
    opacity: 1;
  }
  #c_header .c_hm::before, #c_header .c_hm::after, #c_header .c_hm span {
    width: 10.5vw;
    height: 0.5vw;
  }
  #c_header .c_hm::before {
    top: 1vw;
  }
  #c_header .c_hm::after {
    bottom: 1vw;
  }
  #c_header .c_hm.active span {
    transform: translateX(4vw);
  }
  .c_global_menu_inner {
    gap: 7vw;
    padding: 0 6vw;
    box-sizing: border-box;
  }
  .c_global_menu_inner a {
    font-size: 7vw;
    letter-spacing: .12em;
    transform: translateY(5vw);
  }
  .c_global_menu_inner a:hover {
    letter-spacing: .12em;
    opacity: 1;
  }
  .c_menu_close {
    top: 6vw;
    right: 5vw;
    width: 13vw;
    height: 13vw;
  }
  .c_menu_close:hover {
    transform: none;
  }
  .c_menu_close span {
    width: 6.8vw;
    height: 0.5vw;
  }
  .c_header_mv {
    height: 58vw;
    background-position: center center;
  }
  .c_header_mv h2 {
    top: 34vw;
    width: 58vw;
    height: 18vw;
    padding-left: 7vw;
    font-size: 11vw;
  }
  #contents {
    width: 100%;
  }
  /* ==================================================
   service content
================================================== */
  #service_content {
    padding: 14vw 0 17vw;
  }
  .service_content_inner {
    width: 88vw;
  }
  .service_logo {
    margin-bottom: 7vw;
  }
  .service_logo img {
    width: 42vw;
  }
  .service_intro h2 {
    font-size: 6.0vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
  }
  .service_line {
    width: 38vw;
    height: 0.8vw;
    margin: 6vw auto 9vw;
  }
  .service_lead p {
    margin: 0 0 2.0vh;
    font-size: 4.4vw;
    line-height: 1.8em;
    letter-spacing: 0.025em;
    text-align: left;
  }
  /* service buttons */
  .service_btn_list {
    width: 100%;
    gap: 3.5vw;
    margin: 10vw auto 0;
  }
  .service_btn_list li {
    width: 100%;
    height: 16vw;
    font-size: 5.0vw;
    letter-spacing: 0.04em;
  }
  /* written system */
  .written_system {
    margin-top: 15vw;
    padding: 5vw 4vw 8vw;
  }
  .written_system h3 {
    padding: 4vw 3vw;
    margin-bottom: 6vw;
    border-radius: 1.8vw;
    font-size: 4.8vw;
    line-height: 1.6em;
    letter-spacing: 0.025em;
  }
  .written_text {
    width: 100%;
  }
  .written_text p {
    margin: 0 0 4vw;
    font-size: 4.0vw;
    line-height: 2;
    letter-spacing: 0.04em;
  }
  .written_merit_list {
    flex-direction: column;
    gap: 3.5vw;
    margin: 7vw auto 0;
  }
  .written_merit_list li {
    width: 100%;
    height: 15vw;
    font-size: 4.6vw;
    letter-spacing: 0.04em;
  }
  /* ==================================================
   price
================================================== */
  #price {
    padding: 16vw 0 18vw;
  }
  .price_inner {
    width: 88vw;
  }
  .price_head h2 {
    font-size: 12vw;
  }
  .price_head p {
    margin-top: 3vw;
    font-size: 4vw;
  }
  .price_lead {
    margin-top: 9vw;
    font-size: 4.6vw;
    line-height: 1.8;
    text-align: center;
  }
  /* price boxes */
  .price_box_wrap {
    flex-direction: column;
    gap: 4vw;
    margin-top: 8vw;
  }
  .price_box {
    width: 100%;
    height: 18vw;
    border-radius: 1.8vw;
  }
  .price_box span {
    font-size: 4.2vw;
  }
  .price_box strong {
    margin: 0 1vw;
    font-size: 8vw;
  }
  .price_box em {
    font-size: 4vw;
  }
  /* step */
  .price_step {
    grid-template-columns: 1fr;
    gap: 11vw;
    margin-top: 13vw;
  }
  .price_step_item:not(:last-child)::after {
    top: auto;
    right: auto;
    left: 50%;
    bottom: -5.5vw;
    width: 4vw;
    height: 4vw;
    border-top: none;
    border-left: none;
    border-right: 1px solid #999;
    border-bottom: 1px solid #999;
    transform: translateX(-50%) rotate(45deg);
  }
  .price_step_item .num {
    width: 22vw;
    height: 22vw;
    margin-bottom: 5vw;
    font-size: 10vw;
  }
  .price_step_item h3 {
    min-height: auto;
    font-size: 5.6vw;
    line-height: 1.5;
  }
  .price_step_item span {
    width: 12vw;
    height: 0.5vw;
    margin: 4vw auto 5vw;
  }
  .price_step_item p {
    font-size: 16px;
    line-height: 1.9;
  }
  /* support */
  .price_support {
    display: block;
    width: 100%;
    margin: 14vw auto 0;
  }
  .price_support_list li {
    padding-left: 6vw;
    margin-bottom: 1.5vh;
    font-size: 4.4vw;
    line-height: 1.6;
  }
  .price_support_list li::before {
    top: 1.4vw;
    width: 4vw;
    height: 4vw;
  }
  .price_photo {
    width: 100%;
    height: auto;
    margin-top: 9vw;
  }
  .price_photo img {
    height: auto;
  }
  /* attention */
  .price_attention {
    width: 100%;
    margin-top: 12vw;
    padding: 4.5vw 4vw;
    border-radius: 1.8vw;
    font-size: 4.8vw;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
  /* note */
  .price_note {
    width: 100%;
    margin-top: 6vw;
  }
  .price_note p {
    font-size: 4.0vw;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }
  /* ==================================================
   profile
================================================== */
  #profile {
    padding: 16vw 0 18vw;
    border-bottom: 0.5vw solid #f8b500;
  }
  .profile_inner {
    width: 88vw;
  }
  .profile_head h2 {
    font-size: 12vw;
  }
  .profile_head p {
    margin-top: 3vw;
    font-size: 4vw;
  }
  /* content */
  .profile_content {
    display: flex;
    flex-direction: column-reverse;
    gap: 9vw;
    margin-top: 12vw;
  }
  .profile_img {
    width: 70vw;
    height: auto;
    margin: 0 auto;
  }
  .profile_img img {
    width: 100%;
    height: auto;
  }
  .profile_position {
    margin: 0 0 4vw;
    font-size: 4vw;
  }
  .profile_text h3 {
    font-size: 7vw;
    letter-spacing: 0.18em;
  }
  .profile_name_en {
    margin-top: 3vw;
    font-size: 4vw;
  }
  .profile_history {
    margin-top: 9vw;
  }
  .profile_history p {
    margin: 0 0 4vw;
    font-size: 16px;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }
  .profile_number {
    margin-top: 9vw;
    font-size: 16px;
    line-height: 1.8;
  }
  /* contact button */
  .profile_contact {
    margin-top: 12vw;
  }
  .profile_contact a {
    gap: 3vw;
    width: 74vw;
    height: 15vw;
    font-size: 4.2vw;
  }
  .profile_mail_icon {
    flex: 0 0 7.5vw;
    width: 7.5vw;
    height: 5.3vw;
  }
  /* スマホではhover残り防止 */
  .profile_contact a:hover {
    color: #f39800;
  }
  .profile_contact a:hover::before {
    transform: translateX(-100%);
  }
  .profile_contact a:hover .profile_mail_icon {
    background-image: url("../images/con_mail.svg");
  }
  /* ==================================================
   faq content sp
================================================== */
  #faq_content {
    padding: 16vw 0 18vw;
  }
  .faq_content_inner {
    width: 88vw;
  }
  .faq_page_head h2 {
    font-size: 12vw;
  }
  .faq_page_head p {
    margin-top: 3vw;
    font-size: 4vw;
  }
  .faq_list {
    margin-top: 12vw;
  }
  .faq_item {
    border-radius: 4vw;
    margin-bottom: 5vw;
    box-shadow: 0 3vw 5vw rgba(0, 0, 0, 0.06);
  }
  .faq_item:hover {
    transform: none;
  }
  .faq_item[open] {
    box-shadow: 0 4vw 6vw rgba(0, 0, 0, 0.08);
  }
  .faq_item summary {
    grid-template-columns: 12vw 1fr 7vw;
    gap: 3vw;
    padding: 5.5vw 4vw;
  }
  .faq_q {
    width: 12vw;
    height: 12vw;
    font-size: 7vw;
  }
  .faq_item summary h3 {
    font-size: 4.0vw;
    line-height: 1.6;
    letter-spacing: 0.04em;
  }
  .faq_item summary::before, .faq_item summary::after {
    right: 4.5vw;
    width: 5vw;
    height: 0.5vw;
  }
  .faq_answer {
    grid-template-columns: 12vw 1fr;
    gap: 3vw;
    padding: 0 4vw 6vw;
  }
  .faq_a {
    width: 12vw;
    height: 12vw;
    font-size: 7vw;
  }
  .faq_answer_text {
    padding-top: 1vh;
    padding-bottom: 1vh;
  }
  .faq_answer_text p {
    margin: 0 0 1.0vh;
    font-size: 4.0vw;
    line-height: 1.6em;
    letter-spacing: 0.04em;
  }
  /* ==================================================
   not found sp
================================================== */
  #notfound_content {
    padding: 16vw 0 18vw;
  }
  .notfound_inner {
    width: 88vw;
  }
  .notfound_box {
    padding: 12vw 5vw 13vw;
    border-radius: 6vw;
    box-shadow: 0 4vw 7vw rgba(0, 0, 0, 0.08);
  }
  .notfound_box::before {
    top: -12vw;
    right: -12vw;
    width: 34vw;
    height: 34vw;
  }
  .notfound_box::after {
    bottom: -10vw;
    left: -10vw;
    width: 30vw;
    height: 30vw;
  }
  .notfound_num {
    font-size: 10vw;
  }
  .notfound_box h2 {
    margin-top: 5vw;
    font-size: 5.8vw;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
  .notfound_lead {
    margin-top: 7vw;
    font-size: 16px;
    line-height: 2;
    text-align: left;
  }
  .notfound_line {
    width: 38vw;
    height: 0.8vw;
    margin: 8vw auto 7vw;
  }
  .notfound_text {
    font-size: 16px;
    line-height: 1.9;
    text-align: left;
  }
  .notfound_btn_wrap {
    flex-direction: column;
    gap: 4vw;
    margin-top: 9vw;
  }
  .notfound_btn {
    width: 100%;
    height: 14vw;
    font-size: 4.2vw;
  }
  .notfound_btn::after {
    width: 2.8vw;
    height: 2.8vw;
    margin-left: 3vw;
  }
  .notfound_btn:hover {
    color: #FFF;
  }
  .notfound_btn:hover::before {
    transform: translateX(-100%);
  }
  .notfound_btn:hover::after {
    transform: rotate(45deg);
  }
  .notfound_btn.sub:hover {
    color: #FFF;
  }
  
  /* ==================================================
   thanks sp
================================================== */
#thanks_content {
  padding: 16vw 0 18vw;
}

.thanks_inner {
  width: 88vw;
}

.thanks_box {
  padding: 12vw 5vw 13vw;
  border-radius: 6vw;
  box-shadow: 0 4vw 7vw rgba(0, 0, 0, 0.08);
}

.thanks_box::before {
  top: -12vw;
  right: -12vw;
  width: 34vw;
  height: 34vw;
}

.thanks_box::after {
  bottom: -10vw;
  left: -10vw;
  width: 30vw;
  height: 30vw;
}

.thanks_icon {
  width: 20vw;
  height: 20vw;
  margin-bottom: 7vw;
}

.thanks_icon span {
  width: 7vw;
  height: 3.8vw;
  border-left: 0.9vw solid #f8b500;
  border-bottom: 0.9vw solid #f8b500;
}

.thanks_head h2 {
  font-size: 12vw;
}

.thanks_head p {
  margin-top: 3vw;
  font-size: 4vw;
}

.thanks_box h3 {
  margin-top: 8vw;
  font-size: 5.5vw;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.thanks_lead {
  margin-top: 7vw;
  font-size: 16px;
  line-height: 2;
  text-align: left;
}

.thanks_line {
  width: 38vw;
  height: 0.8vw;
  margin: 8vw auto 7vw;
}

.thanks_text {
  width: 100%;
}

.thanks_text p {
  font-size: 16px;
  line-height: 1.9;
  text-align: left;
}

.thanks_btn_wrap {
  margin-top: 9vw;
}

.thanks_btn {
  width: 100%;
  height: 14vw;
  font-size: 4.2vw;
}

.thanks_btn::after {
  width: 2.8vw;
  height: 2.8vw;
  margin-left: 3vw;
}
  
  /* ==================================================
   column archive sp
================================================== */
#column_archive {
  padding: 16vw 0 18vw;
}

.column_archive_inner {
  width: 88vw;
}

.column_archive_head h2 {
  font-size: 12vw;
}

.column_archive_head p {
  margin-top: 3vw;
  font-size: 4vw;
}

.column_archive_lead {
  margin-top: 8vw;
  text-align: left;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

/* list */
.archive_column_list {
  grid-template-columns: 1fr;
  gap: 10vw;
  width: 100%;
  margin-top: 12vw;
}

.archive_column_list .column_img {
  height: 58vw;
}

.archive_column_list .column_item a:hover .column_img img {
  transform: scale(1) translateZ(0);
}

.archive_column_list .column_meta {
  margin-top: 4vw;
}

.archive_column_list .column_meta time {
  font-size: 4vw;
}

.archive_column_list .column_meta .cat {
  width: 22vw;
  height: 7.5vw;
  border-radius: 1.3vw;
  font-size: 3.5vw;
}

.archive_column_list .column_item h3 {
  margin-top: 4vw;
  font-size: 4.3vw;
  line-height: 1.7;
  letter-spacing: 0.05em;
}

.archive_column_list .column_item a:hover h3 {
  color: #444;
}

/* pagination */
.pagination {
  flex-wrap: wrap;
  gap: 2.5vw;
  margin-top: 14vw;
}

.page-numbers {
  min-width: 11vw;
  height: 11vw;
  padding: 0 3vw;
  font-size: 4vw;
}

.page-numbers.next,
.page-numbers.prev {
  min-width: 22vw;
}

a.page-numbers:hover {
  color: #f39800;
  background: #fff;
}

.page-numbers.current {
  color: #fff;
  background: #f8b500;
}
  
  /* ==================================================
   column single sp
================================================== */
#column_single {
  padding: 16vw 0 18vw;
}

.column_single_inner {
  width: 88vw;
}

.column_single_meta {
  gap: 4vw;
  margin-bottom: 6vw;
}

.column_single_meta time {
  font-size: 4vw;
}

.column_single_meta .cat {
  width: 22vw;
  height: 7.5vw;
  border-radius: 1.3vw;
  font-size: 3.5vw;
}

.column_single_head h1 {
  width: 100%;
  font-size: 6vw;
  line-height: 1.65;
  letter-spacing: 0.05em;
  text-align: left;
}

.column_single_mv {
  margin-top: 10vw;
}

.column_body {
  width: 100%;
  margin-top: 12vw;
}

.column_body p {
  margin: 0 0 7vw;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.column_body h2 {
  margin: 11vw 0 6vw;
  padding: 4vw 4.5vw;
  border-left: 1.5vw solid #f8b500;
  font-size: 5.2vw;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.column_body h3 {
  margin: 10vw 0 5vw;
  padding-bottom: 3vw;
  font-size: 4.8vw;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.column_body h4 {
  margin: 9vw 0 4vw;
  font-size: 4.4vw;
  line-height: 1.6;
}

.column_body figure {
  margin: 9vw 0;
}

.column_body ul,
.column_body ol {
  margin: 8vw 0;
  padding: 6vw 5vw 6vw 9vw;
  border-radius: 3vw;
}

.column_body li {
  margin-bottom: 3vw;
  font-size: 16px;
  line-height: 1.9;
}

.column_body blockquote {
  margin: 8vw 0;
  padding: 6vw 5vw;
  border-left: 1.5vw solid #f8b500;
}

.column_body table {
  margin: 8vw 0;
}

.column_body th,
.column_body td {
  display: block;
  width: 100%;
  padding: 4vw;
  font-size: 16px;
  line-height: 1.8;
  box-sizing: border-box;
}

.column_body th {
  border-bottom: none;
}

/* back button */
.column_single_btn_wrap {
  margin-top: 13vw;
}

.column_single_btn {
  width: 100%;
  height: 14vw;
  font-size: 4.2vw;
}

.column_single_btn::after {
  width: 2.8vw;
  height: 2.8vw;
  margin-left: 3vw;
}
  
  
  
  
  
  
  
}