@charset "UTF-8";
/* ============================================
  # ヘッダー
  =============================================== */
  .header {
    height: 72px;
}

.header.is-fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
}

body.is-fixed {
    padding-top: 72px;
}

.header__inner {
    height: inherit;
    display: flex;
    justify-content: normal;
    align-items: center;
    padding-left: 20px;
    padding-right: 0;
}

.header__main {
    height: 72px;
}
.header__main::before,
.header__main::after {
    display: none;
}
.header__search {
    margin-left: auto;
    display: flex;
}
.header__search-img {
    display: flex;
    height: 72px;
    align-items: center;
    position: relative;
    cursor: pointer;
}
.header__search-img img {
    width: 50px;
    aspect-ratio: 51/44;
    -o-object-fit: cover;
    object-fit: cover;
    height: auto;
}
.header__search-wrapper {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    background-color: #fff;
    padding: 10px 15px;
    z-index: 100;
    height: 72px;
    border-left: 1px solid #707070;
    border-right: 1px solid #707070;
    border-bottom: 1px solid #707070;
    display: none;
}
.header__search-form {
    width: 100%;
    height: 100%;
}
.header__search-box {
    display: flex;
    height: 100%;
}
.header__search-box-input {
    border: 1px solid #4c444d;
    padding-left: 13px;
    padding-bottom: 5px;
    width: 100%;
}
.header__search-box-input::-moz-placeholder {
    color: #4d4d4d;
    font-size: 1.2rem;
    font-weight: 300;
}
.header__search-box-input::placeholder {
    color: #4d4d4d;
    font-size: 1.2rem;
    font-weight: 300;
}
.header__search-box-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 100px;
    height: inherit;
    transition: opacity 0.3s;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.header__search-box-button img {
    aspect-ratio: 34/29;
    object-fit: contain;
    height: auto;
    width: 34px;
}
.header__hamburger {
    margin-left: 20px;
}
/* ============================================
  # コンテンツ
  =============================================== */
.contents-wrapper {
    display: flex;
}
.contents-wrapper__inner {
    display: contents;
}

@media screen and (max-width: 1214px) {

.contents-wrapper {
    display: flex;
}
.contents-wrapper__inner {
    display: contents;
}
}
/* ============================================
  # message
  =============================================== */
.message {
    margin-left: 0;
}
.message__inner {
    max-width: 840px;
    width: 100%;
    padding: 0 20px;
    margin: 0 auto;
}
.message__contents {
    display: flex;
    flex-direction: column;
}
.message__text {
    margin-top: 0;
}
.message__text p {
    font-size: 1.8rem;
}
.message__img-wrapper {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    margin-left: 0;
    margin-top: 30px;
    gap: initial;
}
/* ============================================
  # service
  =============================================== */
.service__inner.service__inner--marriage {
    max-width: initial;
}

.service.w-right {
    margin-right: initial;
    padding-left: initial;
    padding-right: initial;
}

.featured.w-right {
    margin-right: initial;
    padding-left: initial;
    padding-right: initial;
}

.service.w-right .service__inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 840px;
}

.featured.w-right .featured__inner {
    padding: 0 20px;
    margin-left: auto;
    margin-right: auto;
    max-width: 840px;
}

.service__inner {
    padding: 0 20px;
}

.featured__inner {
    padding: 0 20px;
}

.service__between-img {
    margin-left: 20px;
}
.service__between-button {
    text-align: center;
    margin-left: 16px;
    margin-right: 0;
}

.service-step__body {
    position: static;
    display: flex;
    flex-direction: column;
}
.service-step__body-wrap {
    display: contents;
}


.service-step__lists-items {
    padding-left: 15px;
    padding-bottom: 20px;
    margin-left: 20px;
}
.service-step__button {
    position: static;
    padding-top: 30px;
    padding-left: 30px;
    padding-bottom: 15px;
    width: 100%;
    order: 1;
    background-color: #e5e5e5;
}
.service-step__button-price {
    margin-top: 5px;
    margin-left: 20px;
}


.service__between-text--green {
    padding-inline-end: 80px;

}

.service-step__title {
    width: 62px;
}
.service-step__title::after {
    border-right: 31px solid transparent;
    border-left: 31px solid transparent;
}

/* ============================================
  # アナウンスセクション
  =============================================== */
.top-announce {
    margin-left: 0px;
}

.announce__inner {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1400px;
    padding-left: 25px;
    padding-right: 25px;
}
/* ============================================
  # cards(announceセクションで使用)
  =============================================== */
.cards {
    display: grid;
    gap: 2%;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.card {
    padding-left: 2%;
    padding-right: 2%;
}
.contact-button {
    align-items: center;
}

.contact-button__name {
    font-size: clamp(0.813rem, 0.276rem + 1.119vw, 1.125rem);
}
.contact-button__text.contact-button__text--indent {
    text-indent: initial;
}

.card__contents-link.contact-button {
    justify-content: center;
}

/* ============================================
# フッター
=============================================== */
.footer {
    padding-top: 0;
    padding-bottom: 0;
}

/* ============================================"
# 結婚による永住権申請について
=============================================== */
.breadcrumb__inner {
    margin-left: 25px;
}

.section-layout,
.section-layout2 {
    margin-left: 0;
}

.section-layout__inner {
    width: 100%;
    padding: 0 25px;
    margin: 0 auto;
}

.section--gray .section__inner,
.section--white .section__inner {
    padding-left: 25px;
    padding-right: 25px;
}

.section__inner2 {
    padding-left: 25px;
    padding-right: 25px;
    max-width: 1400px;
}

.section--gray.w-right {
    margin-right: 0;
}

.tab {
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: initial;
    padding-right: initial;
}


.visa-faq__heading.heading {
    font-size: 2rem;
}

.top-section {
    margin-left: 0;
}

/* ============================================
# button
=============================================== */

.service-step__button-link.button {
    max-width: 300px;
}

.button--small {
    font-size: 1.5rem;
}

/* ============================================"
# 追加
=============================================== */

.survey-section td {
    border-left: 1px solid #ddd;
}

.flow-right.flow-right--arrow {
    top: 110px;
}

.text-indent {
    text-indent: -1.4rem;
    padding-left: 0;
}

/* ============================================
# メール情報配信フォーム
=============================================== */
.mailnews {
    max-width: 700px;
}

.mailnews__input--email {
    width: 280px;
}

.mailnews__textarea--address {
    width: 450px;
}
