@charset "UTF-8";
html {
    font-size: 62.5%; /* 1rem = 10px */
}
@media (min-width: 768px) {
    html {
        font-size: 62.5%;
    }
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.7rem;
    font-weight: 400;
    color: #3c3c3c;
    line-height: 1.7;
    letter-spacing: 0.01em;
    @media screen and (max-width: 768px) {
        font-size: clamp(0.875rem, 0.204rem + 3.356vw, 1.813rem);
    }
}

@media screen and (max-width: 767px) {
    a[href^="tel:"] {
        pointer-events: auto;
    }
}

a {
    transition: opacity 0.3s;
}
a:hover {
    opacity: 0.7;
}

.u-desktop {
    display: block;
}
@media screen and (max-width: 767px) {
    .u-desktop {
        display: none;
    }
}

.u-mobile {
    display: none;
}
@media screen and (max-width: 767px) {
    .u-mobile {
        display: block;
    }
}

.u-no-tablet {
    display: none;
}
@media screen and (min-width: 1215px) {
    .u-no-tablet {
        display: block;
    }
}

.u-tablet {
    display: none;
}
@media screen and (max-width: 1214px) {
    .u-tablet {
        display: block;
    }
}

.u-only-tablet {
    display: none;
}
@media screen and (min-width: 768px) and (max-width: 1214px) {
    .u-only-tablet {
        display: block;
    }
}

.u-only-no-tablet {
    display: block;
}
@media screen and (min-width: 768px) and (max-width: 1214px) {
    .u-only-no-tablet {
        display: none;
    }
}

.u-540 {
    display: none;
}
@media screen and (max-width: 500px) {
    .u-540 {
        display: block;
    }
}
.u-500 {
    display: none;
}
@media screen and (max-width: 500px) {
    .u-500 {
        display: block;
    }
}
.u-375 {
    display: none;
}
@media screen and (max-width: 375px) {
    .u-375 {
        display: block;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Remove default padding */
ul,
ol {
    padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
    margin: 0;
}

/* Set core root defaults */
/* Set core body defaults */
body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul,
ol {
    list-style: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
    -webkit-text-decoration-skip: ink;
    text-decoration-skip-ink: auto;
}

a {
    text-decoration: none;
}

/* Make images easier to work with */
img {
    max-width: 100%;
    display: block;
    width: 100%;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
    margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
    font: inherit;
}

/* Blur images when they have no alt attribute */
img:not([alt]) {
    filter: blur(10px);
}

/* フォームリセット */
input,
button,
select,
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 0;
    font: inherit;
    outline: none;
}

textarea {
    resize: vertical;
}

input[type="checkbox"],
input[type="radio"] {
    display: none;
}

input[type="submit"],
input[type="button"],
label,
button,
select {
    cursor: pointer;
}

select::-ms-expand {
    display: none;
}

/* ===============================================
# ヘッダー
=============================================== */
.header {
    height: 133px;
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: #fff;
}

.header--2 {
    height: 87px;
}

.header__inner {
    height: inherit;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1400px;
    padding-left: 25px;
    padding-right: 25px;
}

.header__main {
    height: 87px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    /* gap: 10%; */
}

.header__main::before,
.header__main::after {
    content: "";
    position: absolute;
    left: 50%;
    height: 1px;
    background: #707070;
    transform: translateX(-50%);
    width: calc(100vw - 17px);
}

.header__main::before {
    top: 0;
}

.header__main::after {
    bottom: 0;
}

.header__main-title {
    height: inherit;
}

.header__main-title-name {
    height: inherit;
    line-height: 1.5;
    color: #4d4d4d;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: color 0.3s;
    text-align: center;
    font-weight: 700;
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    white-space: nowrap;
}

.header__main-title-name:hover {
    color: #004ca0;
}

.header__drawer {
    position: absolute;
    top: 72px;
    right: 0;
    left: 0;
    flex-direction: column;
    display: none;
    width: 100%;
    height: calc(100vh - 72px);
    overflow-y: auto;
    z-index: 1000;
}

/* ============================================
# ヘッダーメイン
=============================================== */
.header-nav {
    height: inherit;
}

.header-nav::before {
    top: 0;
}

.header-nav::after {
    bottom: 0;
}

.header-nav__items {
    height: inherit;
    display: flex;
    align-items: center;
}

.header-nav__item {
    height: inherit;
}

.header-nav__item-link {
    height: inherit;
    font-size: 1.7rem;
    line-height: 1.5;
    letter-spacing: 0.1em;
    color: #4d4d4d;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: color 0.3s;
    padding: 0 15px;
    cursor: pointer;
}

.header-nav__item:first-child .header-nav__item-link {
    padding-left: 0;
}

.header-nav__item:last-child .header-nav__item-link {
    padding-right: 0;
}

.header-nav__item:not(:first-child) {
    margin-left: clamp(10px, 5vw, 77px);
}

.header-nav__item-link:hover {
    color: #004ca0;
}

.header-nav__item-link--name {
    text-align: center;
    font-weight: 300;
    font-size: 1.6rem;
}

.header-nav__item-link::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 6px;
    background-color: #223670;
    content: "";
    opacity: 0;
    transition: bottom 0.3s, opacity 0.3s;
}

.header-nav__item-link:hover::after {
    opacity: 1;
}

/* ============================================
# メガメニュー
=============================================== */
.header-nav__item-child {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw - 15px);
    background-color: #e5e5e5;
    padding: 22px 27px;
    display: none;
    z-index: 100;
}

.header-nav__item-child-inner {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1150px;
    padding-left: 25px;
    padding-right: 25px;
}

.header-nav__item-child-title {
    color: #4d4d4d;
    font-size: 1.7rem;
    font-weight: 700;
    padding-bottom: 17px;
    border-bottom: 1px solid #223670;
}

.header-nav__item-child-category {
    margin-top: 20px;
}

.header-nav__item-child-category p {
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.2142857143;
    color: #4d4d4d;
}

.header-nav__item-child-items {
    display: flex;
    height: 50px;
}

.header-nav__item-child-item:not(:first-child) {
    margin-left: 20px;
}

.header-nav__item-child-item {
    height: inherit;
}

.header-nav__item-child-item a {
    font-size: 1.7rem;
    font-weight: bold;
    line-height: 1.2142857143;
    padding-right: 30px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: inherit;
    color: #4d4d4d;
    transition: color 0.3s;
}

.header-nav__item-child-item a:hover {
    color: #004ca0;
}

.header-nav__item-child-item a::after {
    position: absolute;
    content: "";
    right: 10px;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 9px;
    height: 9px;
    border: 0.2em solid #fc8606;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* ===============================================
# ヘッダー上段
=============================================== */
.header-sub {
    /* padding-top: 4px;
    padding-bottom: 4px; */
    height: 46px;
}

.header-sub__inner {
    width: 100%;
    height: inherit;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-sub__items {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 158px;
}

.header-sub__item {
    height: inherit;
    margin-left: 30px;
    white-space: nowrap;
}

.header-sub__item-link {
    height: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    line-height: 1.21428571;
    color: #4d4d4d;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.header-sub__item--phone,
.header-sub__item--mail {
    position: relative;
    font-weight: 700;
    transition: color 0.3s;
}

.header-sub__item--phone:hover,
.header-sub__item--mail:hover {
    color: #004ca0;
}

.header-sub__item--phone::before,
.header-sub__item--mail::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background-size: contain;
    background-repeat: no-repeat;
    top: 50%;
    transform: translateY(-50%);
    left: -25px;
}

.header-sub__item--phone::before {
    background-image: url(../images/phone-icon-orange.png);
}

.header-sub__item--mail::before {
    background-image: url(../images/mail-icon-orange.png);
}

.header-sub__item-form {
    display: flex;
    align-items: center;
    height: 100%;
}

.header-sub__item-form-box {
    position: relative;
    display: flex;
    height: 100%;
}

.header-sub__item-input {
    border: 1px solid #4c444d;
    padding-left: 13px;
    padding-right: 1.5em;
    padding-bottom: 5px;
}

/* プレースホルダーのスタイル */
.header-sub__item-input::-moz-placeholder {
    color: #4d4d4d;
    font-size: 1.2rem;
    font-weight: 300;
}
.header-sub__item-input::placeholder {
    color: #4d4d4d;
    font-size: 1.2rem;
    font-weight: 300;
}

.header-sub__item-input-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    width: 30px;
    height: inherit;
    transition: opacity 0.3s;
}

.header-sub__item-input-button img {
    aspect-ratio: 15/13;
    -o-object-fit: cover;
    object-fit: cover;
    height: auto;
    width: 15px;
}

.header-sub__item-link--green,
.header-sub__item-link--purple {
    color: #fff;
    font-weight: 300;
    padding-left: 33px;
    padding-right: 46px;
    padding-top: 3px;
    padding-bottom: 3px;
    position: relative;
}

.header-sub__item-link--green::after,
.header-sub__item-link--purple::after {
    position: absolute;
    content: "";
    right: 10px;
    top: 50%;
    display: inline-block;
    line-height: 1px;
    width: 9px;
    height: 9px;
    border: 0.2em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translate(-50%, -50%) rotate(45deg);
}

.header-sub__item-link--green {
    background-color: #006036;
}

.header-sub__item-link--purple {
    background-color: #4c444d;
}

/* ============================================
# ハンバーガー
=============================================== */
.hamburger {
    outline: none;
    z-index: 100;
    top: 0;
    right: 0;
    background-color: #004ca0;
    /* border: 1px solid #707070; */
    position: relative;
    width: 70px;
    height: 72px;
    transition: 0.3s;
}

.hamburger.hamburger.is-open {
    margin-left: auto;
}

.hamburger span {
    display: block;
    height: 3px;
    width: 46px;
    background-color: #fff;
    transition: 0.3s;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.hamburger span:nth-of-type(1) {
    top: -11px;
}

.hamburger span:nth-of-type(2) {
    top: 0;
}

.hamburger span:nth-of-type(3) {
    top: 11px;
}

.hamburger.is-open span:nth-of-type(1) {
    top: 3px;
    transform: translateX(-50%) rotate(45deg);
}

.hamburger.is-open span:nth-of-type(2) {
    opacity: 0;
}

.hamburger.is-open span:nth-of-type(3) {
    top: -3px;
    transform: translateX(-50%) rotate(-45deg);
}

/* ============================================
# ドロワーメニュー
=============================================== */
.sp-menu__nav {
    overflow-y: auto;
    scrollbar-width: none;
}

.sp-menu__nav-item {
    background-color: #004ca0;
    border-bottom: 1px solid #e5e5e5;
    flex-grow: 1;
}

.sp-menu__nav-item:nth-last-child(2) {
    border-bottom: none;
}

.sp-menu__nav-item:last-child {
    border-top: solid 1px #004ca0;
    border-bottom: none;
}

.sp-menu__nav-item-text,
.sp-menu__accordion-title {
    padding: 20px 35px;
    display: block;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    letter-spacing: 0.01em;
    cursor: pointer;
    position: relative;
}

.sp-menu__nav-item-text span,
.sp-menu__accordion-title span {
    position: absolute;
    content: "";
    right: 25px;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 15px;
    height: 15px;
    border: 0.2em solid #fff;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translate(-50%, -50%) rotate(135deg);
    transition: 0.3s;
}

.sp-menu__nav-item-text.is-open span,
.sp-menu__accordion-title.is-open span {
    transform: translate(-50%, -14%) rotate(-45deg);
}

/* .sp-menu__nav-item-text.is-open + ul > li {
    border-bottom: none;
} */

.sp-menu__accordion-items {
    background-color: #ccdbed;
    display: none;
}

.sp-menu__sns {
    width: 100%;
    background-color: #ccdbed;
    padding: 18px 28px;
}

/* ============================================
# アコーディオンメニュー（ドロワーとSP用フッター）
=============================================== */
.sp-menu-accordion__title {
    font-weight: 700;
    color: #4d4d4d;
    line-height: 1;
    padding: 20px 35px;
    display: block;
    font-size: 1.7rem;
    letter-spacing: 0.05em;
    border-top: solid 1px #004ca0;
}

.sp-menu-accordion__title,
.sp-menu-accordion__item {
    border-bottom: solid 1px #004ca0;
}
.sp-menu-accordion__item:last-child {
    border-bottom: none;
}

.sp-menu-accordion__item {
    /* padding: 13px 35px;
    display: block; */
    cursor: pointer;
    position: relative;
}

.sp-menu-accordion__item a {
    padding: 13px 35px;
    display: block;
    font-size: 1.6rem;
    font-weight: 700;
    color: #3c3c3c;
    line-height: 1;
    /* letter-spacing: 0.05em; */
    transition: color 0.3s;
    letter-spacing: 0.01em;
}

.sp-menu-accordion__item a:hover {
    color: #004ca0;
}

.sp-menu-accordion__item a::before {
    content: "-";
    font-size: 1.7rem;
    color: #3c3c3c;
    font-weight: 700;
    line-height: 1.7647058824;
    letter-spacing: 0.01em;
}

/* ============================================
# mv
=============================================== */
.mv {
    width: 100%;
    height: 402px;
    position: relative;
}

.mv__inner {
    width: 100%;
    height: 100%;
}

.mv__contents {
    width: 100%;
    height: 100%;
    position: relative;
}

.mv__contents picture,
.mv__contents .mv__contents-img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    /* filter: blur(3px); */
}

.mv__contents-box {
    width: 100%;
    height: inherit;
    padding-inline: 25px;
    z-index: 10;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: center;
    align-items: center;

    @media (max-width: 1214px) {
        flex-direction: column;
        align-items: normal;
    }

    @media (max-width: 768px) {
        padding-inline: 5px;
    }
}

.mv__contents-box-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;

    @media (max-width: 1214px) {
        margin-block-start: initial;
    }

    @media (max-width: 768px) {
        gap: 5px;
    }
}

.mv__contents-box-img {
    height: 180px;
    @media (max-width: 1214px) {
        height: 100px;
    }

    @media (max-width: 768px) {
        width: 80px;
        height: 50px;
    }
}

.mv__contents-box-img img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

.mv__title {
    font-size: 3.2rem;
    color: #fff;
    font-weight: 700;

    @media (max-width: 768px) {
        font-size: 1.8rem;
    }
}

.mv__message-wrapper.message__img-wrapper {
    margin-left: 20px;
    margin-bottom: initial;
    gap: 20px;

    @media (max-width: 1214px) {
        margin-left: initial;
    }

    @media (max-width: 768px) {
        margin-block-start: initial;
        gap: 10px;
    }
}

.mv__message-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.mv__message-item-img.message-img__body {
		width: min(133px, 12vw);
    @media (max-width: 768px) {
        max-width: max(12vw, 87px);
    }
}

.mv__message-item-img.message-img__body img {
    border-radius: 50%;
    border: 1px solid #fff;
    aspect-ratio: 133/169;
}

.mv__message-item-link.button {
    position: relative;
    padding-block-end: 5px;
    padding-block-start: 3px;
    border-radius: 70px;
    width: 200px;

    @media (max-width: 1214px) {
        width: 280px;
        display: flex;
        flex-direction: row;
        gap: 10px;
    }

    @media (max-width: 768px) {
        width: 235px;
    }

    @media (max-width: 530px) {
        width: 37vw;
        flex-direction: column;
        gap: initial;
    }
}

.mv__message-item-link.button::after {
    display: none;
}

.mv__message-item-text.message-img__text {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: initial;
    color: #fff;

    @media (min-width: 500px) and (max-width: 1214px) {
        /* flex-direction: row; */
        gap: 5px;
    }
}

.mv__message-item-text.message-img__text p,
.mv__message-item-text.message-img__text span {
    @media (max-width: 768px) {
        font-size: 1.4rem;
    }

    @media (max-width: 375px) {
        font-size: 1rem;
    }
}

.mv__message-item-text-small {
    position: relative;
}
.mv__message-item-text-small::after {
    position: absolute;
    content: "";
    right: -24px;
    top: 51%;
    display: inline-block;
    line-height: 1;
    width: 8px;
    height: 8px;
    border: 0.2em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
}

.top-link {
    font-size: 1.7rem;
    font-weight: 700;
    color: #223670;
    display: inline-block;
    cursor: pointer;
    letter-spacing: 0.01em;
}

@media (max-width: 768px) {
        .top-smv-profile {

					.mv__message-item-img.message-img__body {
						display: flex;
						flex-direction: column;
						align-items: center;
						justify-content: center;
						width: 100%;
						max-width: 71px;
					}
					.message-img__body img{
						width: 100%;
					}

					.message-img__text-name {
						font-size: 1.2rem !important;
					}

					.message-img__text-name-post {
						font-size: 1rem !important;
					}

					.mv__message-item-link.button {
						width: fit-content;
						padding-inline-start: 22px;
            padding-inline-end: 32px;
					}

					.text-small {
						font-size: 1rem !important;
					}


    }
}



/* ============================================
# 余白調整用
=============================================== */
.top-contents-wrapper {
    margin-top: 25px;
}

.contents-wrapper__inner {
    display: flex;
}

.contents-wrapper__main {
    flex: 1;
    width: 60%;
}

/* ============================================
# サイドメニュー
=============================================== */
.side-menu {
    width: 287px;
}

.side-menu__inner {
    margin-left: 0;
    margin-right: 0;
}

.side-menu__contact-title {
    background-color: #223670;
    color: #fff;
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    padding: 19px;
}

.side-menu__content-items {
    display: flex;
    flex-direction: column;
}

.side-menu__content-item {
    padding: 0 19px;
    position: relative;
    height: 58px;
    border-bottom: 1px solid #4d4d4d;
}

.side-menu__content-item-paragraph,
.side-menu__content-item a {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.2142857143;
    color: #3c3c3c;
    letter-spacing: 0.01em;
    height: inherit;
    display: flex;
    align-items: center;
    transition: color 0.3s;
}

.side-menu__content-item a:hover {
    color: #004ca0;
}

.side-menu__content-item span {
    position: absolute;
    right: 13px;
    top: 54%;
    display: inline-block;
    line-height: 1;
    width: 12px;
    height: 12px;
    border: 0.2em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translate(-50%, -50%) rotate(45deg);
}

.side-menu__content-item .side-menu__content-item-paragraph span {
    position: absolute;
    right: 13px;
    top: 54%;
    display: inline-block;
    line-height: 1;
    width: 12px;
    height: 0;
    border: 0.2em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translate(-50%, -50%) rotate(0);
}

/* ============================================
# 余白調整用
=============================================== */
.top-message {
    margin-top: 15px;
    margin-bottom: 30px;
}

/* ============================================
# メッセージ
=============================================== */
.message {
    margin-left: 55px;
}

.message__contents {
    display: flex;
    flex-direction: column;
}

.message__text {
    font-size: 1.7rem;
    font-weight: 400;
    color: #3c3c3c;
    line-height: 1.7;
    letter-spacing: 0.01em;
    text-align: left;
}

.message__text.top-line-height {
    line-height: 2.1;
}
.message__contents .text {
    line-height: 1.5;
}

.message__contents .marriage__description::after {
    display: none;
}

.message__text {
    margin-top: 30px;
    /* display: flex;
    flex-direction: column; */
    /* gap: 30px; */
}

.message__text p {
    font-size: 1.7rem;
    color: #223670;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.01em;
}

.message__img-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    /* flex-direction: column; */
    /* margin-left: 20px; */
    gap: 200px;
    margin-bottom: 50px;
}

/* ============================================
# メッセージ画像
=============================================== */
.message-img {
    display: flex;
    gap: 10px;
}

.message-img__body {
    width: 133px;
}

.message-img__body img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    aspect-ratio: 96/111;
}

.message-img__name {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.message-img__text {
    margin-top: 10px;
    text-align: center;
}

.message-img__text-name,
.message-img__text-name-post {
    white-space: nowrap;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: #fff;
}

.message-img__button {
    text-align: center;
    margin-top: 10px;
}

/* ============================================
# 余白調整用
=============================================== */
.top-service {
    margin-top: 15px;
}

/* ============================================
# サービス
=============================================== */
.service {
    padding-top: 30px;
    padding-bottom: 30px;
    padding-left: 60px;
    padding-right: 30px;
}

.service.w-right {
    margin-right: calc(66% - 50vw);
    padding-left: 70px;
}

.featured.w-right {
    margin-right: calc(66% - 50vw);
    padding-left: 70px;
}

.service__inner {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 15px;
    width: 100%;
    max-width: 1280px;
    padding-bottom: 50px;
}
.service__inner2 {
    margin-left: auto;
    margin-right: auto;
    /* margin-bottom: 15px; */
    width: 100%;
    max-width: 1280px;
    padding-left: 55px;
    padding-right: 50px;
    padding-bottom: 50px;
}

.service.w-right .service__inner {
    margin-left: 0;
    margin-right: 0;
    max-width: 848px;
}

.featured.w-right .featured__inner {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    max-width: 963px;
}

.service__text {
    font-size: 1.6rem;
    font-weight: 400;
    color: #3c3c3c;
    line-height: 1.7647058824;
    letter-spacing: 0.01em;
}

.service__text.service__text2 {
    padding-top: 50px;
    font-size: 1.7rem;
}

.service__contents {
    margin-top: 20px;
}
.service__contents2 {
    margin-top: 50px;
}

.service__between {
    margin-top: 55px;
}

.service__between-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.service__between-img {
    display: inline-block;
    margin-left: 35px;
}

.service__between-img.service__between-img--right img {
    width: 82%;
}

.service__between-img--down {
    margin-top: 30px;
    width: 39px;
}

.service__between-img img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

.service__between-text p,
.service__fin-text p {
    color: #fff;
    background-color: #2e2f2f;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-radius: 3px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 20px 12px 20px;
    white-space: nowrap;
    width: 290px;
}

.service__between-text--green {
    padding-inline-end: 20px;
}

.service__between-text--green p {
    background-color: #006036;
    width: 100%;
}

.service__between-button {
    text-align: right;
    margin-left: 35px;
    margin-right: 30px;
    width: 42%;
}

.service__between-button.service__between-button--marriage {
    text-align: center;
    margin-left: 0;
    margin-right: 0;
    width: 70%;
}

.service__fin {
    margin-top: 10px;
}

.service__fin-text {
    margin-top: 55px;
}

/* ============================================"
# 下層サービス図
=============================================== */
.visa__option-content {
    display: flex;
    align-items: flex-start;
}

.visa__option-content-wrap {
    width: 68%;
}

.section--gray {
    background-color: #f2f2f2;
}

.section--white {
    background-color: #fff;
    padding-bottom: 50px;
    padding-top: 50px;
}

.section.section--gray2 {
    background-color: #f2f2f2;
    padding-bottom: 50px;
    padding-top: 50px;
}

.section--gray.w-right {
    margin-right: calc(65% - 50vw);
}

.service-step__between.section--gray {
    flex: 1;
    margin-top: 50px;
    padding-bottom: 0;
}
.service-step__between.section--white {
    flex: 1;
    margin-top: 50px;
    padding-bottom: 0;
}

.service.section--gray.section--box {
    padding-left: 0;
    padding-right: 0;
}

.visa__option {
    margin-top: 50px;
    /* display: flex;
    align-items: center;
    justify-content: center; */
    padding: 20px;
    background-color: #e0e7f1;
    border: 1px solid #6388e0;
}

.visa__option-wrap {
    display: flex;
    align-items: center;
    background-color: #e0e7f1;
}

.visa__option-text {
    background-color: #333;
    color: #fff;
    padding: 7px;
    border-radius: 5px;
    white-space: nowrap;
    font-size: 1.7rem;
    line-height: 2;
    letter-spacing: 0.01em;
}

.visa__option-text p {
    margin: 0;
}

.visa__option-description {
    /* padding: 0.5rem 1rem; */
    margin-left: 20px;
    background-color: #e0e7f1;
    /* display: flex;
    align-items: center; */
}

.visa__option-description .text {
    font-size: 1.6rem;
    line-height: 2;
    letter-spacing: 0.01em;
}

.text-small {
    font-size: 1.4rem;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.marriage__between-img {
    display: inline-block;
}

.marriage__between-img--down {
    /* margin-top: 30px; */
    width: 39px;
}

.arrow-down {
    width: 40px;
    height: 100px;
    background-color: black;
    clip-path: polygon(
        30% 0%,
        70% 0%,
        70% 70%,
        100% 70%,
        50% 100%,
        0% 70%,
        30% 70%
    );
}

.marriage__between-img img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

.page-service__text {
    margin-top: 70px;
}

.top-announce {
    margin-top: 50px;
    margin-left: 30px;
}

.announce__inner {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    padding-left: 25px;
    /* padding-right: 20px; */
}

/* ============================================
# cards(announceセクションで使用)
=============================================== */
.cards {
    display: grid;
    gap: 37px;
    /* grid-template-columns: 300px 300px 300px; */
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    justify-content: center;
}
.cards--2cal {
    display: grid;
    gap: 37px;
    grid-template-columns: 1fr 1fr;
    justify-content: center;
}

/* ============================================
# card(announceセクションで使用)
=============================================== */
.card {
    background-color: #dee8f6;
    padding-top: 18px;
    padding-left: 13px;
    padding-right: 13px;
    padding-bottom: 18px;
    border: 1px solid #003472;
}

.card__body {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.card__body .card__contents {
    flex: 1;
}

.card__body-img {
    width: 111px;
    height: 98px;
}

.card__body-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.card__title {
    font-size: 1.7rem;
    letter-spacing: 0.01em;
    color: #00377a;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

.card__contents {
    /* margin-top: 20px; */
    margin-top: 28px;
    display: flex;
    flex-direction: column;
    gap: 15.5px;
}

.card__contents.card__contents--big {
    margin-top: 20px;
}

.card__contents-link {
    /* min-height: 106px; */
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    background-color: #fff;
    padding-left: 10px;
    padding-right: 20px;
    padding-block: 10px;
    border-radius: 3.5px;
    border: solid 1px #fc8606;
    font-size: 1.7rem;
    font-weight: 500;
    color: #2f302f;
    position: relative;
    letter-spacing: 0.01em;
    transition: background-color 0.3s, color 0.3s, background-image 0.3s;
    @media (max-width: 768px) {
        min-height: 55px;
    }
}

.card__contents-link--top {
    min-height: 106px;
}

.card__contents-link:hover {
    background-color: #fc8606;
    color: #fff;
    opacity: 1;
}

.card__contents-link::after {
    position: absolute;
    content: "";
    right: 7px;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 8px;
    height: 8px;
    border: 2px solid #fc8606;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
}

.card__contents-link:hover::after {
    position: absolute;
    content: "";
    right: 7px;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 8px;
    height: 8px;
    border: 2px solid #fff;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* ============================================
# 注目のコンテンツ
=============================================== */
.featured {
    padding-top: 43px;
    padding-bottom: 50px;
}

.featured__inner {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1280px;
    padding-left: 50px;
    padding-right: 25px;
}

.featured__title {
    text-align: center;
}

.featured__title-subtext {
    font-size: 1.7rem;
    color: #3c3c3c;
    margin-top: 23px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.featured__cards {
    margin-top: 43px;
}

.top-featured {
    margin-top: 50px;
}

.featured-cards {
    display: grid;
    gap: 39px;
    grid-template-columns: 1fr 1fr 1fr;
}

.featured-card {
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.3s;
}

.featured-card:hover {
    box-shadow: 2px 2px 10px 0 rgba(0, 0, 0, 0.25);
}

.featured-card__img img {
    aspect-ratio: 297/93;
    width: 100%;
    height: auto;
    -o-object-fit: cover;
    object-fit: cover;
}

.featured-card__body {
    padding-top: 17px;
    padding-left: 13px;
    padding-right: 13px;
    padding-bottom: 13px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-grow: 1;
    background-color: #fff;
}

.featured-card__body-title {
    text-align: center;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #3c3c3c;
}

.featured-card__body-description {
    font-size: 1.7rem;
    line-height: 1.8;
    flex-grow: 1;
    letter-spacing: 0.01em;
    color: #3c3c3c;
    margin-top: 12px;
}

.featured-card__button {
    margin-top: 25px;
    text-align: center;
}

/* ============================================
# 余白調整用
=============================================== */
.top-faq {
    margin-top: 50px;
}

/* ============================================
# FAQ
=============================================== */
.faq__title {
    text-align: center;
}

.faq__items {
    margin-top: 33px;
}

.faq__item-questions {
    display: flex;
    align-items: center;
    position: relative;
    padding-right: 50px;
    padding-top: 25px;
    padding-bottom: 25px;
    border-bottom: 1px solid #707070;
    cursor: pointer;
    transition: border-bottom-color 0.3s, border-bottom-width 0.3s;
}

.faq__item-questions p {
    transition: opacity 0.3s, color 0.3s;
}

.faq__item-questions p:hover {
    opacity: 0.7;
    color: #004ca0;
}

.faq__item-questions.is-open {
    border-bottom-color: transparent;
    border-bottom-width: 0;
    transition: border-bottom-color 0.5s, border-bottom-width 0.5s;
}

/* .faq__item-questions p {
    color: #3c3c3c;
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.2142857143;
    letter-spacing: 0.01em;
    flex: 1;
    position: relative;
} */

.faq__item-questions::after {
    position: absolute;
    content: "";
    right: 10px;
    top: 28px;
    display: inline-block;
    line-height: 1;
    width: 15px;
    height: 15px;
    border: 0.2em solid #fc8606;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: rotate(135deg);
    transition: 0.3s;
}

.faq__item-questions.is-open::after {
    transform: rotate(-45deg);
}

.faq__item-answer {
    display: none;
    position: relative;
    border-bottom: 1px solid #707070;
    padding-bottom: 40px;
    padding-top: 5px;
}

.faq__item-answer p {
    font-size: 1.7rem;
    font-weight: 300;
    color: #4d4d4d;
    line-height: 1.8;
    padding-right: 50px;
    letter-spacing: 0.01em;
}

.faq__item-answer-button + p {
    margin-top: 20px;
}

.faq__item-answer-button {
    text-align: center;
    margin-top: 20px;
}

.faq__button {
    margin-top: 50px;
    text-align: center;
}

.faq__button a::after {
    top: 50%;
}

.faq__list,
.h3-sitemap {
    padding-left: 20px;
    padding-right: 20px;
}

.faq__list-item {
    text-indent: -1em;
    padding-left: 1em;
}

.faq__list-item:not(:first-child) {
    padding-top: 15px;
}

.faq__list-item a:hover {
    opacity: 0.7;
    color: #004ca0;
}

.faq__list-item:not(:first-child) {
    margin-top: 5px;
}

/* ============================================
# 余白調整用
=============================================== */
.top-news {
    margin-top: 50px;
}

/* ============================================
# ニュース
=============================================== */
.news {
    padding-top: 50px;
    padding-bottom: 50px;
}

.news__title {
    text-align: center;
}

.news__contents {
    border-top: 30px solid #005ab4;
    border-bottom: 1px solid #005ab4;
    border-left: 1px solid #005ab4;
    border-right: 1px solid #005ab4;
    background-color: #fff;
    margin-top: 50px;
    padding: 0 70px 0 20px;
}

.news__contents-items {
    padding-block: 15px;

}

.news__button {
    text-align: center;
    margin-top: 50px;
}

.news-item a {
    display: flex;
    padding-top: 5px;
    padding-bottom: 5px;
    transition: color 0.3s;
}

.news-item a:hover {
    color: #004ca0;
}

.news-item__date {
    width: 200px;
    white-space: nowrap;
}

.news-item__date.news-item__date--news {
    width: 125px;
}

.news-item__date,
.news-item__title {
    font-size: 1.7rem;
    color: #3c3c3c;
    font-weight: 300;
}

.new-item__date--new::after {
    content: "NEW";
    color: #fc8606;
    font-size: 1.7rem;
    font-weight: 700;
    background-image: none;
    padding-left: 10px;
}

.news-item__title {
    flex: 1;
    margin-left: 30px;
}

.news-item__title span {
    /* line-height: 1.5; */
    background-repeat: repeat-x;
    background-image: linear-gradient(to right, transparent 50%, #004ca0 50%);
    background-size: 200% 2px;
    background-position: 0 bottom;
    transition: background-position 0.5s ease;
}

.news-item__title span:hover {
    background-position: -100% bottom;
}

/* .news-time {
    padding-block-end: 10px;
} */

/* ============================================
# 余白調整用
=============================================== */
.top-banners {
    margin-top: 50px;
}

/* ============================================
# バナーエリア
=============================================== */
.banners__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.banners__list--1col {
    grid-template-columns: 1fr;
    width: 33.3333333333%;
    margin: 0 auto;
}

.top-banners {
    margin-top: 50px;
}

.banners-item__img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    aspect-ratio: 297/123;
}

/* ============================================
# 余白調整用
=============================================== */
.top-resources {
    margin-top: 50px;
}

/* ============================================
# 参考ウェブサイト
=============================================== */
.resources {
    padding-top: 50px;
    padding-bottom: 50px;
}

.resources__title {
    text-align: center;
}

.resources__list {
    margin-top: 58px;
    padding-right: 50px;
    max-width: 1200px;
    width: 100%;
    margin-inline: auto;
    display: flex;
    justify-content: space-evenly;
}

.resources-list__item a {
    white-space: nowrap;
}

/* .resources-list__item a:hover {
    color: #004ca0;
}

.resources-list__item a::after {
    position: absolute;
    content: "";
    right: -27px;
    top: 52%;
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url("../images/arrow.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: translateY(-50%);
}  */

/* ============================================
# 余白調整用
=============================================== */
.top-footer-message {
    margin-top: 50px;
}

/* ============================================
# フッターメッセージ
=============================================== */
.footer-message__text {
    font-size: 1.7rem;
    font-weight: 700;
    color: #223670;
    text-align: right;
    display: block;
    padding-right: 50px;
    cursor: pointer;
    letter-spacing: 0.01em;
}

/* FAQのボンタン */
.footer-message__text {
    margin-top: 10px;
}

.footer-message__text.arrow-orange::after {
    right: 15px;
}

/* ============================================
# サイド固定ボタン
=============================================== */
/* .contact-side {
    position: fixed;
    bottom: 140px;
    right: 0;
    z-index: 1000;
}

.contact-side__button {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 185px;
    padding-top: 7px;
    padding-left: 7px;
    padding-right: 12px;
    padding-bottom: 10px;
    text-align: center;
    background-color: #fff;
    border: solid 4px #b2cde4;
    transition: background-color 0.3s, border-color 0.3s;
}

.contact-side__button:hover {
    background-color: #fc8606;
    border: solid 4px #fc8606;
    opacity: 1;
}

.contact-side__button::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 87%;
    height: 1px;
    background-color: #003984;
    top: 41%;
    left: 46%;
    transform: translate(-50%, -50%);
    transition: background-color 0.3s;
}

.contact-side__button:hover::before {
    background-color: #fff;
}

.contact-side__button:not(:first-child) {
    margin-top: 10px;
}

.contact-side__button::after {
    position: absolute;
    content: "";
    right: 0;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 12px;
    height: 12px;
    border: 2px solid #003472;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
    transition: border-color 0.3s;
}

.contact-side__button:hover::after {
    position: absolute;
    content: "";
    right: 0;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 12px;
    height: 12px;
    border: 2px solid #fff;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
}

.contact-side__button-name {
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding-left: 22px;
    color: #ed6c0b;
    position: relative;
    white-space: nowrap;
    text-align: left;
    transition: color 0.3s;
}

.contact-side__button-name::before {
    position: absolute;
    content: "";
    display: inline-block;
    background-size: contain;
    background-repeat: no-repeat;
    left: 0;
    width: 20px;
    height: 18px;
    transform: translateY(-50%);
    transition: opacity 0.3s;
    opacity: 1;
}

.contact-side__button-name::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 20px;
    height: 18px;
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.3s;
}

.contact-side__button-name--mail::before {
    background-image: url("../images/mail-orange2.png");
    top: 57%;
}

.contact-side__button-name--mail::after {
    background-image: url("../images/mail-white.png");
    top: 57%;
}

.contact-side__button-name--tel::before {
    background-image: url("../images/tel-orange.png");
    top: 50%;
}

.contact-side__button-name--tel::after {
    background-image: url("../images/tel-white.png");
    top: 50%;
}

.contact-side__button:hover .contact-side__button-name--mail::after,
.contact-side__button:hover .contact-side__button-name--tel::after {
    opacity: 1;
}

.contact-side__button:hover .contact-side__button-name--mail::before,
.contact-side__button:hover .contact-side__button-name--tel::before {
    opacity: 0;
}

.contact-side__text-wrapper {
    margin-top: 7px;
}

.contact-side__text {
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #003984;
    transition: color 0.3s;
}

.contact-side__button:hover .contact-side__button-name,
.contact-side__button:hover .contact-side__text {
    color: white;
} */

/* ============================================
# contact-side2
=============================================== */
.contact-side2 {
    position: fixed;
    bottom: 140px;
    right: 0;
    z-index: 1000;
}

.contact-side2__button {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 8px;
    padding-bottom: 5px;
    padding-right: 3px;
    padding-left: 3px;
    text-align: center;
    background-color: #fff;
    border: solid 4px #b2cde4;
    transition: background-color 0.3s, border-color 0.3s;
}

.contact-side2__button:hover {
    background-color: #fc8606;
    border: solid 4px #fc8606;
    opacity: 1;
}

.contact-side2__button-img {
    width: 63px;
    height: 47px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: background-image 0.3s;
    position: relative;
}

.contact-side2__button-img.contact-side2__button-img--mail {
    background-image: url("../images/mail-orange.svg");
}

.contact-side2__button-img.contact-side2__button-img--tel {
    width: 67px;
    height: 57px;
    background-image: url("../images/tel-orange.svg");
}

.contact-side2__button-body {
    margin-top: 5px;
}

.contact-side2__button-body-main {
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #ed6c0b;
    position: relative;
    white-space: nowrap;
    text-align: left;
    transition: color 0.3s;
}

.contact-side2__button-body-sub {
    margin-top: 5px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.contact-side2__button-body-sub-text {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #003984;
    transition: color 0.3s;
}

.contact-side2__button:not(:first-child) {
    margin-top: 10px;
}

.contact-side2__button:hover,
.contact-side2__button:hover .contact-side2__button-body-main,
.contact-side2__button:hover .contact-side2__button-body-sub-text {
    color: white;
}

.contact-side2__button-img--mail::after,
.contact-side2__button-img--tel::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: opacity 0.3s;
    opacity: 0;
}

.contact-side2__button-img--mail::after {
    background-image: url("../images/mail-white.svg");
}

.contact-side2__button-img--tel::after {
    background-image: url("../images/tel-white.svg");
}

.contact-side2__button:hover .contact-side2__button-img--mail::after,
.contact-side2__button:hover .contact-side2__button-img--tel::after {
    opacity: 1;
}

/* ============================================
# ページトップボタン
=============================================== */
.page-top {
    width: 60px;
    height: 60px;
    position: fixed;
    bottom: 20px;
    right: 80px;
    transform: translateX(50%);
    z-index: 1000;
}

.page-top img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    aspect-ratio: 1/1;
}

/* ============================================
# 余白調整用
=============================================== */
.top-footer {
    margin-top: 50px;
}

/* ============================================
# フッター
=============================================== */
.footer {
    background-color: #223670;
    padding-top: 50px;
    padding-bottom: 20px;
}

.footer__info {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 22px;
    padding-bottom: 22px;
    padding-left: 13px;
    padding-right: 13px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    margin-top: 50px;
}

.footer__info-name-link {
    font-size: 1.2rem;
    font-weight: 300;
    line-height: 2;
    color: #fff;
    font-weight: 700;
    text-align: center;
    display: inline-block;
}

.footer__info-items {
    display: flex;
    gap: 90px;
}

.footer__info-item a {
    padding: 10px;
    font-size: 1.2rem;
    font-weight: 300;
    color: #fff;
}

.footer__copyright {
    margin-top: 20px;
    display: flex;
    align-items: center;
}

.footer__copyright-text {
    margin-left: auto;
    text-align: right;
    font-size: 1.4rem;
    line-height: 1.2857142857;
    font-weight: 300;
    color: #fff;
}

/* ============================================
# フッターリスト（PC）
=============================================== */
.footer-list {
    display: flex;
    justify-content: space-between;
    -moz-column-gap: 22px;
    column-gap: 22px;
}

.footer-list__left,
.footer-list__right {
    display: flex;
    gap: 22px;
    width: 40%;
    justify-content: center;
}

.footer-list__center {
    width: 20%;
}

.footer-list__section {
    flex: 1;
    padding-left: 25px;
}

.footer-list__title,
.footer-list__category h3,
.footer-list__category a {
    font-size: 1.7rem;
    line-height: 1.2222222222;
    color: #fff;
    white-space: nowrap;
}

.footer-list__title {
    font-weight: 700;
}

.footer-list__category h3 {
    font-weight: 300;
}

.footer-list__category {
    margin-top: 17px;
}

.footer-list__items {
    margin-top: 11px;
}

.footer-list__item:not(:first-child) {
    margin-top: 11px;
}

.footer-list__category .footer-list__items .footer-list__item {
    text-indent: 1em;
}

.footer-list__item a {
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1.1875;
    color: #fff;
    white-space: nowrap;
}

.footer-list__category
    .footer-list__items
    .footer-list__item.footer-list__item--sub {
    text-indent: inherit;
}

.footer-list__item.footer-list__item--sub a {
    margin-left: 1em;
    position: relative;
}

.footer-list__item.footer-list__item--sub a::before {
    position: absolute;
    content: "-";
    left: -1em;
}

/* ============================================
# フッターSP
=============================================== */
.footer-sp {
    background-color: #223670;
}

.footer-sp__nav {
    flex-grow: 1;
}

.footer-sp__nav--noscroll {
    overflow-y: auto;
    scrollbar-width: none;
}

.footer-sp__nav-item {
    background-color: #004ca0;
    border-bottom: 1px solid #e5e5e5;
    flex-grow: 1;
}

.footer-sp__nav-item-text,
.footer-sp__accordion-title {
    padding: 20px 23px;
    display: block;
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    letter-spacing: 0.01em;
    cursor: pointer;
    position: relative;
}

.footer-sp__nav-item-text span,
.footer-sp__accordion-title span {
    position: absolute;
    content: "";
    right: 25px;
    top: 50%;
    display: inline-block;
    line-height: 1;
    width: 15px;
    height: 15px;
    border: 0.2em solid #fff;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translate(-50%, -50%) rotate(135deg);
    transition: 0.3s;
}

.footer-sp__nav-item-text.is-open span,
.footer-sp__accordion-title.is-open span {
    transform: translate(-50%, -14%) rotate(-45deg);
}

.footer-sp__accordion-items {
    background-color: #ccdbed;
    display: none;
}

.footer-sp__footer .footer-sp__contact {
    position: static;
}

.footer-sp__info {
    background: #223670;
}

.footer-sp__info-list {
    padding: 20px 35px;
    border-bottom: 1px solid #707070;
}

.footer-sp__info-list-items {
    display: flex;
    justify-content: space-around;
}

.footer-sp__info-list-item a {
    font-size: 1rem;
    font-weight: 300;
    color: #fff;
}

.footer-sp__info-copyright {
    font-size: clamp(0.438rem, 0.259rem + 0.895vw, 0.688rem);
    font-weight: 300;
    color: #fff;
    text-align: center;
    display: block;
    margin-top: 20px;
    white-space: nowrap;
}

/* ============================================
# スマホ用下部固定コンタクトエリア
=============================================== */
.footer-contact {
    cursor: pointer;
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 2000;
}

.footer-contact__wrapper {
    display: flex;
}

.footer-contact__mail {
    width: 50%;
    background-color: #fc8606;
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 3vw;
    padding-right: 3vw;
    /* border: 1px solid #707070; */
}

.footer-contact__mail:hover,
.footer-contact__tel:hover {
    opacity: 1;
}

.footer-contact__tel {
    padding-top: 10px;
    padding-bottom: 10px;
    padding-right: 3vw;
    padding-left: 3vw;
    width: 50%;
    background-color: #223670;
    display: flex;
    justify-content: space-around;
    align-items: center;
    /* border: 1px solid #707070; */
}

.footer-contact__mail-img {
    width: 8.5vw;
}

.footer-contact__tel-img {
    width: 6.75vw;
}

.footer-contact__mail img {
    width: 100%;
    height: auto;
    aspect-ratio: 49/36;
}

.footer-contact__tel img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
}

.footer-contact__mail p,
.footer-contact__tel p {
    font-size: min(5vw, 20px);
    color: #fff;
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-align: end;
}

/* ============================================
# SNSエリア
=============================================== */
.sns {
    display: flex;
}

.sns--small {
    height: 20px;
    justify-content: space-between;
}

.sns--large {
    justify-content: space-around;
}

.sns__post {
    width: 65px;
}

.sns__post--large {
    width: 92px;
}

/* ============================================
# 矢印（オレンジ）
=============================================== */
.arrow-orange {
    position: relative;
}

.arrow-orange::after {
    position: absolute;
    content: "";
    right: -35px;
    top: 54%;
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url("../images/arrow.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: translateY(-50%);

    @media screen and (max-width: 768px) {
        width: 15px;
        height: 15px;
        right: -22px;
    }
}

/* ============================================
# コンタクトボタン(announceセクションで使用）
=============================================== */
.contact-button {
    width: 100%;
    display: flex;
    flex-direction: column;
    /* justify-content: flex-start; */

    text-align: center;
    position: relative;
    padding-top: 5px;
    padding-bottom: 5px;
}

.card__contents-link.contact-button {
    justify-content: initial;
}

.contact-button::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 85%;
    height: 1px;
    background-color: #ed6c0d;
    top: 50%;
    left: 47%;
    transform: translate(-50%, -50%);
}

.contact-button:hover::before {
    background-color: #fff;
}

.contact-button--mail {
    width: 100%;
}

.contact-button--tel {
    background-color: #223670;
    width: 100%;
}

.contact-button__name {
    margin-top: 11px;
    margin-bottom: 17px;
    width: 100%;
    font-size: 1.7rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    /* line-height: 2.5; */
    /* padding-left: 49px; */
    color: #2f302f;
    white-space: nowrap;
}

.contact-button__name span {
}

.icon-tel {
    position: relative;
}

.icon-mail {
    position: relative;
}

.icon-mail::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-size: contain;
    background-repeat: no-repeat;
    top: 50%;
    left: -30px;
    transform: translateY(-50%);
    background-image: url("../images/mail-icon-orange.png");
}

.icon-question {
    position: relative;
}

.icon-question::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-size: contain;
    background-repeat: no-repeat;
    top: 50%;
    left: -30px;
    transform: translateY(-50%);
    background-image: url("../images/q-icon.svg");
}

.contact-button__name.contact-button__name--mail {
    width: 75%;
}

.contact-button__name.contact-button__name--tel span::before,
.icon-tel::before {
    position: absolute;
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-size: contain;
    background-repeat: no-repeat;
    top: 50%;
    left: -30px;
    transform: translateY(-50%);
    background-image: url("../images/tel-orange.png");
}

.contact-button__text.contact-button__text--indent {
    width: 100%;
    /* text-indent: 1.5em; */
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.contact-button__text-paragraph {
    width: 100%;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #2f302f;
    line-height: 1;
}

.contact-button__text-sub {
    font-size: 1.2rem;
    font-weight: 700;
    color: #2f302f;
    letter-spacing: 0.01em;
    /* white-space: nowrap; */
    display: block;
}

.contact-button__text-sub--center {
    width: 100%;
    margin-top: 7px;
    /* margin-left: 7px; */
}

a.card__contents-link.contact-button:hover,
a.card__contents-link.contact-button:hover .contact-button__name,
a.card__contents-link.contact-button:hover .contact-button__text-paragraph,
a.card__contents-link.contact-button:hover .contact-button__text-sub {
    color: #ffffff;
}

a.card__contents-link.contact-button:hover
    .contact-button__name.contact-button__name--tel
    span::before {
    background-image: url("../images/tel-white.png");
    aspect-ratio: 1/1;
}

a.card__contents-link.contact-button:hover .icon-mail::before {
    background-image: url("../images/mail-white2.png");
    top: 72%;
    width: 24px;
    height: 24px;
}

/* ============================================"
# 下層ページ用のCSS
=============================================== */
.page-mv {
    width: 100%;
    height: 200px;
    background-image: url("https://www.ase-source.co.jp/mockup/demo01/idea_newdesign_ver2/images/mv-dummy.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    aspect-ratio: 375 / 460;
    position: relative;
}

.page-mv__inner {
    padding: 0 30px;
    width: 100%;
    height: inherit;
    display: flex;
    align-items: center;
}

.page-mv__title {
    z-index: 10;
    position: absolute;
    top: 47%;
    left: calc(max(30px, 50% - min(48.5vw, 35.8125rem)));
    transform: translateY(-50%);
    font-size: 3.2rem;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.01em;
}

/* ============================================"
# 結婚による永住権申請について
=============================================== */
.section-layout {
    margin-top: 25px;
    margin-left: 30px;
}

.section-layout.section--dv {
    margin-left: initial;
    max-width: 800px;
    width: 100%;
    margin-inline: auto;
}

.section-layout.section--dv .section-layout__inner {
    padding-left: initial;
}

.section-layout.section--dv .section-layout__inner--form,
.section-layout__inner.section-layout__inner--dv.section-layout__inner--form {
    padding-left: 25px;
}

.section-wrapper.section-wrapper--dv .section-layout2 {
    padding-left: initial;
    padding-right: initial;
    margin-left: initial;
    max-width: 800px;
    width: 100%;
    margin-inline: auto;
}

.section-layout__inner {
    margin: 0 auto;
    padding-left: 25px;
    /* padding-right: 25px; */
}

.section-layout__inner.section-layout__inner--dv {
    padding-left: initial;
}

.section-layout_content {
    margin-top: 62px;
}

.section-layout2.section-layout_content {
    margin-top: 62px;
    padding-top: 0;
}

.section-layout__tabs {
    list-style: none;
    display: flex;
    justify-content: center;
    padding: 0;
    margin: 0;
    gap: 10px;
}

.tab {
    background-color: #999;
    position: relative;
    width: 100%;
    /* height: 100%; */
    border-radius: 15px 15px 0 0;
    transition: background-color 0.3s, color 0.3s;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-right: 5px;
    padding-left: 5px;
    /* max-height: fit-content; */
}

.tab.tab--big {
    padding: initial;
}

.tab.tab--big a {
    padding-block: 20px;
    @media screen and (max-width: 768px) {
        padding-block: 10px;
    }
}

.tab a {
    width: 100%;
    /* height: 100%; */
    height: 50px;
    text-decoration: none;
    color: #fff;
    font-size: min(clamp(1.25rem, 0.87rem + 0.791vw, 2.5rem), 2rem);
    font-weight: 600;
    display: inline-block;
    transition: background-color 0.3s, color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    white-space: nowrap;
}

.tab--big a {
    font-size: 2.5rem;
    font-weight: 700;
}

.tab a span.text-middle {
    font-size: 2rem;
}
.tab a span {
    margin-block-start: -15px;
    font-size: clamp(1.25rem, 0.87rem + 0.791vw, 2.5rem);
    line-height: 2;
    letter-spacing: normal;
    @media screen and (max-width: 1500px) {
        margin-block-start: initial;
    }
}
.tab:hover {
    background-color: #f5a623;
    color: #fff;
}

.tab a:hover {
    opacity: 1;
}

.tab--active {
    background-color: #f5a623;
    color: #fff;
    font-size: 2.5rem;
}

.tab--active::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 10px 10px 0;
    border-style: solid;
    border-color: #f5a623 transparent transparent transparent;
}

.section-layout__content {
    margin-top: 2rem;
}

.marriage {
}

.marriage__title {
    text-align: center;
    font-size: 2rem;
    color: #333;
}

.main-content {
    padding: 2rem;
}

.info {
    text-align: center;
}

.info__text {
    font-size: 1rem;
    color: #333;
    margin-bottom: 2rem;
}

.info__image {
    width: 200px;
    height: 200px;
    background-color: #ccc;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.marriage__description {
    display: flex;
    position: relative;
    margin-top: 50px;
    margin-bottom: 50px;
    padding-bottom: 50px;
}

.marriage__description--line-none {
    padding-bottom: initial;
}

.marriage__description.marriage__description--line-none::after {
    display: none;
}

.marriage__description2 {
    position: relative;
    margin-top: 50px;
    margin-bottom: 50px;
}

.marriage__description::after {
    position: relative;
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #008cff;
    position: absolute;
    bottom: 0;
    left: 0;
}

.marriage__description-text {
    flex: 1;

    padding: 0 50px;
}

.marriage__description-text.text-large {
    line-height: 1.7;
}

.marriage__text {
    margin-top: 50px;
}

.marriage__text::after {
    content: "";
    display: block;
    clear: both;
}

.marriage__text-paragraph:not(:first-child) {
    margin-top: 20px;
}

.marriage__image {
    width: 15%;
    /* width: 25%; */
    height: 100%;
    float: right;
    margin-left: 30px;
}
.marriage__image img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
}

/* ============================================"
# 結婚による永住権申請について(詳しく見る）
=============================================== */
.marriage__details {
    margin-top: 50px;
}
.details {
    /* background-color: #e0f0ff; */
    padding: 30px;
    border: 1px solid #0059b3;
    position: relative;
    border-radius: 4px;
}
.details__title {
    text-align: center;
    font-size: 1.7rem;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #0059b3;
}
.details__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 0;
    padding: 0;
}
.details__list--2col {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
}
.details__list--2col li {
    width: calc(50% - 10px);
}

.details__list a {
    position: relative;
}

.details::before {
    content: "index";
    position: absolute;
    top: 0;
    left: 28px;
    transform: translateY(-63%);
    align-self: flex-start;
    margin: 0 -10px;
    padding: 0 10px;
    background: #fff;
    text-align: center;
    font-size: 2.2rem;
    letter-spacing: 0.01em;
    color: #0059b3;
    line-height: 1em;
}
.details__item {
    width: 48%;
    padding-top: 5px;
    padding-bottom: 5px;
    padding-right: 44px;
    padding-left: 20px;
    background-color: #fff;
    border: 1px solid #3c3c3c;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    transition: opacity 0.3s;
    cursor: pointer;
    text-align: left;
}
.details__item:hover {
    background-color: #fff6e5;
    border-color: #ff6600;
    color: #ff6600;
}

.details__item-text svg {
    position: absolute;
    top: 0.5em;
    left: 0;
    width: 1em;
    height: 1em;
}

.details__item-text.text {
    transition: opacity 0.3s;
    text-indent: -62px;
    padding-left: 70px;
}

.details__item-text.text.details__item-text--2col {
    text-indent: -45px;
    padding-left: 56px;
}

.details__item-number {
    font-size: 1.7rem;
    margin-right: 10px;
    color: #3c3c3c;
    margin-left: 20px;
}

.details__item-number::after {
    /* content: "|";
    position: absolute;
    left: 41px;
    color: #3c3c3c; */
}
.details__item-text {
    flex: 1;
    /* margin-left: 20px; */
}

.details__item::after {
    position: absolute;
    content: "";
    right: 22px;
    top: 49%;
    display: inline-block;
    line-height: 1;
    width: 15px;
    height: 15px;
    border: 0.2em solid #fc8606;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateY(-50%) rotate(135deg);
    transition: 0.3s;
}

/* ============================================"
# セクション１（結婚によるアメリカ移住の流れ）
=============================================== */

.layout-section {
    margin-top: 40px;
}
.layout-padding {
    padding-top: 50px;
}
.layout-margin {
    margin-top: 40px;
}

.layout-margin2 {
    margin-top: 50px;
}

.layout-margin-100 {
    margin-top: 100px;
}

.layout-margin-big {
    margin-top: 80px;
}

.layout-margin-10 {
    margin-top: 10px;
}

.layout-margin-20 {
    margin-top: 20px;
}

.layout-margin-30 {
    margin-top: 30px;
}

.section__inner {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1400px;
    padding-left: 25px;
    padding-right: 25px;
}

.section__inner2 {
    width: 100%;
    max-width: 1113px;
    padding-left: 55px;
    padding-right: 50px;
}

.section__description {
    margin-top: 50px;
}

.section__description2 {
    margin-block-end: 50px;

    @media (max-width: 768px) {
        margin-block-end: 25px;
    }
}

.section__description-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 6%;

    @media (max-width: 768px) {
        flex-direction: column;
    }
}

.section__description-wrapper--flex {
    flex-direction: row-reverse;
    align-items: flex-end;
    gap: 10px;
}

.section__description-wrapper:not(:first-child) {
    margin-top: 50px;
    /* @media (max-width: 768px) {
        margin-top: 25px;
    } */
}

.section__description-img {
    width: 200px;
    flex-shrink: 0;

    @media (max-width: 768px) {
        width: 35%;
    }
}

.section__description-img--flex,
.section__description-img--flex-3cal {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.section__description-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.text-flex-right {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-end;
}

.section__description.layout-m-0 {
    margin-top: 0;
}

.text-list.layout-m-0 {
    margin-top: 0;
}

.section__description.bg-white {
    background-color: #fff;
    padding: 35px;
    padding-bottom: 50px;
}

.section__visa {
    margin-top: 50px;
    /* margin-top: 100px; */
}

.section__visa-title {
}

.section__visa-items {
    margin-top: 35px;
    margin-left: 25px;
}

.section__visa-item {
    display: flex;
    align-items: flex-start;
}

.section__visa-item--no-flex {
    display: block;
}

.section__visa-item--indent {
    padding-left: 1.5em;
    text-indent: -1.3em;
}

.section__visa-item:not(:first-child) {
    margin-top: 25px;
}

.section__visa-type {
    font-size: 1.7rem;
    color: #3c3c3c;
    font-weight: 700;
    position: relative;
    padding-left: 25px;
    white-space: nowrap;
    letter-spacing: 0.01em;
}

.section__visa-type--nomark {
    display: inline-block;
    white-space: normal;
}

.square-mark {
    position: relative;
}
.square-mark--big {
    top: 0.5em;
    @media screen and (max-width: 768px) {
        top: 0.2em;
    }
}

.square-mark::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    background-color: #008cff;
}

.square-mark--big p {
    padding-left: 20px;
}

.section__visa-type::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    top: 0.8em;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    background-color: #008cff;
}

.section__visa-type--nomark::after {
    content: "";
    display: none;
}

.section__visa-type::after {
    margin-left: 10px;
    position: absolute;
    content: ":";
    top: 11px;
    transform: translateY(-50%);
}

.section__visa-type-arrow {
    position: relative;
}

.section__visa-type-arrow::after {
    position: absolute;
    right: -22px;
    top: 52%;
    display: inline-block;
    width: 10px;
    height: 10px;
    border: 0.2em solid #3c3c3c;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateY(-50%) rotate(45deg);
    content: "";
}

.section__visa-description {
    margin-left: 10px;
    padding-left: 30px;
    position: relative;
    font-size: 1.7rem;
    font-weight: 400;
    color: #3c3c3c;
    letter-spacing: 0.01em;
    line-height: 1.7;
}
.section__visa-description--small {
    padding-left: initial;
    margin-left: 12px;
}

.section__note:not(:first-child) {
    margin-top: 35px;
}

/* ============================================"
# 2. アメリカ人（米国籍者）と結婚している or 予定の方
=============================================== */

.section__item {
    margin-top: 50px;
}

.section__item-img {
    display: flex;
    justify-content: center;
    align-items: center;
}

.section__item.layout-m-0 {
    margin-top: 0;
}

.section__item-title {
}

.section__item-title::before {
}

.section__item-description {
    margin-top: 35px;
}

.section__item-duration {
    margin-top: 18px;
    display: flex;
    align-items: center;
    position: relative;
    padding-left: 30px;
    margin-left: 25px;
}

.section__item-duration::before {
    position: absolute;
    content: "";
    left: 0;
    top: 52%;
    transform: translateY(-50%);
    width: 25px;
    height: 25px;
    background-image: url("../images/arrow-right.png");
    background-size: contain;
    background-repeat: no-repeat;
}

.section__contents {
    margin-top: 60px;
}

.section__item-items {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.section__item-item {
}
.section__item-item img {
    width: 100%;
    height: 100%;
    aspect-ratio: 176/151;
    object-fit: contain;
}

/* ============================================"
# セクションテーブル
=============================================== */

.section__table-title {
    margin-top: 50px;
}

.section__table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    margin-top: 5px;
}

.section__table th,
.section__table td {
    border: 1px solid #ddd;
    padding: 15px;
    text-align: left;
    font-size: 1.7rem;
    letter-spacing: 0.01em;
    line-height: 2;
}

.section__table th {
    background-color: #f2f2f2;
    font-weight: bold;
}

.section__table td {
    background-color: #ffffff;
}

/* ============================================"
# セクションチェックリスト
=============================================== */
.section__checklist {
    /* width: 91%; */
    list-style: none;
    padding-top: 35px;
    padding-bottom: 35px;
    padding-left: 35px;
    padding-right: 35px;
    margin-top: 50px;
    /* margin-left: 30px; */
    background-color: #ffffff;
}

.section__checklist.section__checklist--immigrante {
    padding: 0;
    margin-top: 30px;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    align-items: flex-end;
}

.section__checklist.section__checklist--immigrante li {
    padding-left: 40px;
    margin-top: 0 !important;
}
.section__checklist.section__checklist--immigrante li::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 52%;
    transform: translateY(-50%);
}

.section__checklist--immigrante-item {
    padding: 10px 30px 10px 40px;
    background-color: #f2f2f2;
}

.section__checklist--white {
    margin-top: 20px;
}

.section__checklist.layout-m-0 {
    margin-top: 0;
}

.section__checklist li {
    position: relative;
    padding-left: 30px;
    font-size: 1.7rem;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.section__checklist li:not(:first-child) {
    margin-top: 18px;
}

.section__checklist li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    transform: translateY(-50%);
    background-image: url("../images/lower/marriage/check-box.svg");
    background-size: contain;
    background-repeat: no-repeat;
    width: 20px;
    height: 20px;
}

.box-border__items.section__checklist {
    padding: 0;
    margin: 0;
}

.box-border__items.section__checklist li::before {
    top: 20px;
    width: 25px;
    height: 25px;
}

/* ============================================"
# トップと下層サービスセクション
=============================================== */

.service__text {
    font-size: 1.6rem;
    font-weight: 400;
    color: #3c3c3c;
    line-height: 1.7647058824;
    letter-spacing: 0.01em;
}

.service__text.service__text2 {
    line-height: 2;
}

.service__content:not(:first-child) {
    /* margin-top: 10px; */
}

.service__content2 {
    margin-top: 17px;
}
.service__between {
    margin-top: 55px;
}

.service__between-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* .service__between-text p,
.service__fin-text p {
    color: #fff;
    background-color: #2e2f2f;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-radius: 3px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 20px 12px 20px;
    white-space: nowrap;
    width: 290px;
} */

.service__fin {
    margin-top: 10px;
}

.service__fin-text {
    margin-top: 55px;
}

.service-step,
.service-step2 {
    display: flex;
    background-color: #fff;
}

.service-step__title,
.service-step2__title {
    padding-top: 10px;
    background-color: #003984;
    position: relative;
    width: 102px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.service-step__title::after,
.service-step2__title::after {
    content: "";
    position: absolute;
    bottom: -31.5px;
    left: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 51px solid transparent;
    border-left: 51px solid transparent;
    border-top: 32px solid #003984;
    border-bottom: 0;
}

.service-step__title-img,
.service-step2__title-img {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.service-step__title-img img,
.service-step2__title-img img {
    aspect-ratio: 1/1;
    width: 77%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

.service-step__title-text,
.service-step2__title-text {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2.7rem;
    color: #fff;
    font-weight: 700;
    margin-top: 10px;
}

.service-step__body {
    flex: 1;
    padding-top: 20px;
    position: relative;
}
.service-step2__body {
    flex: 1;
    padding-top: 20px;
    padding-bottom: 20px;
    position: relative;
}

.service-step__body-wrap,
.service-step2__body-wrap {
    display: flex;
    align-items: center;
    padding-left: 20px;
    padding-bottom: 20px;
    margin-left: 20px;
}

.service-step__lists-items li,
.service-step2__lists-items li {
    font-size: 1.7rem;
    color: #3c3c3c;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.01em;
    text-indent: -1em;
    padding-left: 0.01em;
}

.service-step__lists-items li::before,
.service-step2__lists-items li::before {
    content: "・";
}

.service-step__button,
.service-step2__button {
    position: absolute;
    width: 47%;
    right: 30px;
    display: flex;
    flex-direction: column;

    &.top-service-step__button {
        width: initial;
        .service-step__button-price {
            margin-left: initial;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            padding-inline-end: 50px;
            font-weight: 700;
        }
    }

    &.top-service-step__button2 {
        width: initial;
        gap: 30px;
    }
}

.service-step__button-price {
    margin-top: 14px;
    margin-left: 23px;
    display: inline-block;
    font-size: 1.7rem;
    font-weight: 400;
    color: #3c3c3c;
    letter-spacing: 0.15em;
}

.service-step__price-annotation {
    margin-top: 5px;
    padding-top: 15px;
    padding-left: 15px;
    padding-right: 15px;
    padding-bottom: 15px;
    font-size: 1.6rem;
    font-weight: 500;
    color: #dd0016;
    letter-spacing: 0.15em;
    background-color: #dee8f6;
}

.service-step2__lists {
    margin-left: 35px;
}

.service-step2__lists-items li {
    font-size: 1.7rem;
    color: #3c3c3c;
    font-weight: 700;
    line-height: 1.7647058824;
    letter-spacing: 0.01em;
}

.service-step__between {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding-bottom: 20px;
}

/* ============================================"
# アメリカビザ よくある質問
=============================================== */
.visa-faq__content {
    /* margin-top: 30px; */
}

.visa-faq__heading.heading {
    text-align: center;
    letter-spacing: initial;
}

.visa-faq__categories {
    margin-top: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    /* overflow: hidden; */
}

.visa-faq__categories-header {
    background-color: #555;
    color: white;
    padding: 10px;
    font-size: 1.6rem;
    margin: 0;
}

.visa-faq__category-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(390px, 1fr));
    gap: 10px;
    padding: 10px;
    list-style-type: none;
    margin: 0;
}

.visa-faq__category-item {
    border: 1px solid #ccc;
    border-radius: 5px;
    background-color: #fff;
}

.visa-faq__category-item a {
    display: block;
    padding-top: 10px;
    padding-left: 10px;
    padding-right: 20px;
    padding-bottom: 10px;
    text-decoration: none;
    color: #000;
    line-height: 1.7;
    transition: background-color 0.3s;
    position: relative;
    text-indent: -1.4em; /* 最初の行のインデントを負にすることで、全体を右に動かします */
    padding-left: 2em;
    height: 100%;
}
.visa-faq__category-item a span::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translate(50%, -50%);
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 5px;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
}

.visa-faq__category-item a:hover {
    background-color: #f0f0f0;
}

.fas {
    margin-left: 5px;
    width: 20px;
    height: 20px;
    display: inline-block;
}

.fa-angle-down {
    display: inline-block;
    margin-left: 5px;
    width: 20px;
    height: 20px;
}

.faq-list__item {
    display: flex;
    list-style: none;
    padding-bottom: 25px;
    padding-top: 25px;
    border-bottom: 1px solid #707070;
    cursor: pointer;
    transition: border-bottom-color 0.3s, border-bottom-width 0.3s;
}

.faq-list__item:last-child {
    border-bottom: none;
}

/* .faq-list__item + .faq-list__item {
    margin-top: 20px;
} */

.faq-list__item-question {
    display: block;
    transition: opacity 0.3s, color 0.3s;
    flex: 1;
}

.faq-list__item-question:hover {
    opacity: 0.7;
    color: #004ca0;
}

.faq-list__item span {
    display: inline-block;
    color: #0059b3;
    margin-right: 8px;
    font-size: 1.7rem;
    font-weight: 400;
    letter-spacing: 0.01em;
}

.section-layout2 {
    margin-top: 50px;
    margin-left: 30px;
    padding-top: 50px;
}

.top-section {
    margin-top: 50px;
}

.section__checklist.layout-m-20 {
    margin-block-start: 20px;
}

.section.section--gray.layout2 {
    padding-bottom: 50px;
}

.section.section--gray.w-right {
    padding-bottom: 50px;
}
/* ============================================"
# 共通パーツ
=============================================== */
.text {
    font-size: 1.7rem;
    font-weight: 400;
    color: #3c3c3c;
    line-height: 1.7;
    letter-spacing: 0.01em;
    text-align: left;
}

.text a {
    text-decoration: underline;
    color: #004ca0;
}

.text--red {
    color: #dd0016;
}

.text.text--indent {
    padding-left: 20px;
    padding-right: 20px;
}
.text--normal {
    line-height: normal;
}

.text-decoration-underline {
    text-decoration: underline;
    color: #004ca0;
}

.text-bold {
    font-weight: 700;
    font-size: 1.7rem;

    color: #3c3c3c;
    line-height: 1.7;
    letter-spacing: 0.01em;
    text-align: left;
}

.text-bold.text-bold--center {
    text-align: center;
}
.text-bold.text-bold--left {
    text-align: left;
}

.text-large {
    font-size: 2rem;
    font-weight: 700;
    color: #3c3c3c;
    line-height: 2;
    letter-spacing: 0.01em;
}

.text-big {
    font-size: 2.7rem;
    @media screen and (max-width: 768px) {
        font-size: 2.3rem;
    }
}

.text-underline {
    text-decoration: underline;
}

.footer-message__text.text-underline-none {
    text-decoration: none;
}

a.text-underline:hover {
    opacity: 0.7;
    color: #004ca0;
}

.section.section--gray {
    background-color: #f2f2f2;
    padding-top: 50px;
    /* padding-bottom: 25px; */
}

.bold {
    font-weight: 700;
}
/* ============================================
# ボタン
=============================================== */
.button {
    width: 100%;
    color: #fff;
    background-color: #fc8606;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-radius: 10px;
    text-align: center;
    position: relative;
    display: inline-block;
    padding: 10px 34px 12px 20px;
    white-space: nowrap;
}

p.button::after {
    display: none;
}

.button--gray {
    width: 100%;
    max-width: 322px;
    border: solid 4px #b2cde4;
    background-color: #fff;
    color: #3c3c3c;
}

.button--large {
    width: 100%;
    max-width: 322px;
}
.button--large2 {
    width: 100%;
    max-width: 372px;
}

.button--navy {
    background-color: #223670;
    padding-right: 60px;
    font-weight: 700;
}

.button--navy-w {
    background-color: #fff;
    color: #223670;
    border: 1px solid #223670;
}

.button--blue {
    background-color: #008cff;
    padding-right: 60px;
    font-weight: 700;
}

.button--orange {
    background-color: #fc8606;
    padding-right: 60px;
    font-weight: 700;
}

.button--green2 {
    background-color: #006036;
    padding-right: 60px;
    font-weight: 700;
}

span.button {
    padding-inline: 5px;
}

span.button::after {
    display: none;
}

.button::after {
    position: absolute;
    content: "";
    right: 7px;
    top: 52%;
    display: inline-block;
    line-height: 1;
    width: 12px;
    height: 12px;
    border: 0.2em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
}

.button--1::after {
    right: 38%;
    @media screen and (max-width: 900px) {
        right: 32%;
    }
    @media screen and (max-width: 800px) {
        right: 29%;
    }
}
.button--2::after {
    right: 35%;
    @media screen and (max-width: 900px) {
        right: 30%;
    }
    @media screen and (max-width: 800px) {
        right: 25%;
    }
}

.button--eb5::after {
    right: 20px;
}

.button.button--gray::after {
    position: absolute;
    content: "";
    right: 7px;
    top: 52%;
    display: inline-block;
    line-height: 1;
    width: 12px;
    height: 12px;
    border: 0.2em solid #fc8606;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    letter-spacing: 0.01em;
    transform: translate(-50%, -50%) rotate(45deg);
}

.button--large::after {
    right: 20px;
}

.button--small {
    border-radius: 40px;
    padding: 5px 32px;
    font-size: 1.6rem;
    letter-spacing: 0.5em;
}

.button--small::after {
    right: 9px;
    width: 8px;
    height: 8px;
}

.button--green {
    color: #fff;
    background-color: #006036;
    width: 100%;
}

.top-button {
    margin-top: 25px;
}

.faq__link {
    margin-top: 50px;
}
/* ============================================
# セクション見出し
=============================================== */
.heading {
    font-size: 3rem;
    color: #223670;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.5;
}

.heading.heading--need-help {
    font-size: 2.5rem;
}

.heading-small {
    padding-inline: 5px;
    padding-block: 10px;
    border-radius: 4px;
    font-size: 2.4rem;
    color: #fff;
    background-color: #0059b3;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 2;
}

.heading-small--left {
    text-align-last: left;
    padding-left: 20px;
}

.heading--underline {
    position: relative;
}

.heading--underline::after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #3c3c3c;
    position: absolute;
    bottom: -20px;
    left: 0;
}

.sub-heading {
    font-size: 2rem;
    color: #3c3c3c;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-left: 8px solid #0059b3;
    position: relative;
    padding-left: 20px;
}

.sub-heading--center {
    text-align: center;
}

.sub-heading.sub-heading--indent {
    padding-left: 53px;
    text-indent: -1.9em;
}
.sub-heading::after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #3c3c3c;
    position: absolute;
    bottom: -10px;
    left: -8px;
}

/* ============================================
# 共通のインナー幅
=============================================== */
.inner {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1400px;
    padding-left: 25px;
    padding-right: 25px;
}

.section--gray .section__inner {
    padding-left: calc(25px + 287px + 25px + 30px);
}
.section--white .section__inner {
    padding-left: calc(25px + 287px + 25px + 30px);
}

/* ============================================"
# パンくずリスト
=============================================== */
.breadcrumb {
    margin-top: 0px;
}

.breadcrumb__inner {
    margin-left: 55px;
}

.breadcrumb__text {
}

.breadcrumb span {
    padding: 0 5px;
}

.breadcrumb__text--active {
    color: #004ca0;
}

/* ============================================"
# 申請の流れ
=============================================== */

.marriage-flow {
    position: relative;
}

.marriage-flow__phase {
    margin-bottom: 40px;
    padding: 20px;
    background: #f2f2f2;
}

.marriage-flow__phase-separator.marriage-flow__phase--m01,
.marriage-flow__phase--m01 {
    margin-right: 152px;
}

.marriage-flow__wrapper {
    width: 100%;
    margin-inline: auto;
}

.marriage-flow__wrapper--total {
    padding-top: 10px;
}

.marriage-flow__wrapper--pin {
    display: flex;
    gap: 1vw;
}

.marriage-flow__note {
    margin: 10px 0;
    padding: 10px 15px;
}

.marriage-flow__note--process {
    background-color: #e3f2fd;
    border: 1px solid #90caf9;
    color: #2b5f75;
    margin: 10px 0;
    padding: 5px;
}

.marriage-flow__note--period {
    background-color: #ffefcf;
    border: 2px solid #f5a623;
    color: #633c01;
}

.marriage-flow__note--info {
    background-color: #dee8f6;
    border: 1px solid #bee3f8;
    display: block;
}
.marriage-flow__note--red {
    background-color: #fff;
    border: 1px solid #dd0016;
    display: block;
    margin-left: 40px;
    @media screen and (max-width: 768px) {
        margin: 10px;
    }
}
.marriage-flow__note--red .marriage-flow__note-title {
    margin-bottom: initial;
    @media screen and (max-width: 768px) {
        text-align: left;
    }
}

.marriage-flow__note-title {
    font-weight: bold;
    color: #0059b3;
    margin-bottom: 5px;
}

.marriage-flow__flowchart-box {
    padding: 15px 6px 15px 60px;
    margin: 20px 0;
    background-color: #0059b3;
    text-align: center;
    flex-grow: 1;
}

.button.marriage-flow__flowchart-box {
    margin-block: 0;
    width: 96%;
}

.marriage-flow__flowchart-box--orange,
.marriage-flow__flowchart-box--orange .marriage-flow__flowchart-box-text {
    background-color: #fd7449;
}

.marriage-flow__flowchart-box--step {
    margin-left: 40px;
}

.p-5 {
    padding: 5px;
}

.marriage-flow__flowchart-box--step.p-5 {
    margin-left: 2vw;
    background-color: initial;
    @media screen and (max-width: 768px) {
        background-color: #0059b3;
    }
}

.marriage-flow__flowchart-box--step.p-5.p-5--orange {
    @media screen and (max-width: 768px) {
        background-color: #fd7449;
    }
}

.marriage-flow__flowchart-box--step.box--wide {
    padding-left: 70px;
}

.marriage-flow__step {
    position: relative;
}

.marriage-flow__step img {
    position: absolute;
    top: -7px;
    left: 0;
    width: 89px;
    height: 89px;
    z-index: 1;
}

.marriage-flow__flowchart-box-text {
    color: #fff;
}

.marriage-flow__flowchart-box-text a {
    color: #fff;
    text-decoration: underline;
}

.marriage-flow__flowchart-box-text.heading-small {
    padding: 0px 11% 0px 0px;
}

.marriage-flow__flowchart-box-text.heading-small.marriage-flow__flowchart-box-text--1col {
    padding: 0px 0px 0px 0px;
}

.marriage-flow__flowchart-box-text.heading-small.p-20 {
    padding: 20px;

    @media screen and (max-width: 768px) {
        padding: initial;
    }
}

.marriage-flow__content-box {
    border: 1px solid #ddd;
    padding: 15px 20px;
    margin: 10px 0;
    background-color: #fff;
}

.marriage-flow__content-box.marriage-flow__content-box--dv {
    max-width: 800px;
    margin-inline: auto;
}

.marriage-flow__content-box p:not(:first-child) {
    margin-top: 10px;
}

.marriage-flow__list-item:not(:first-child) {
    margin-top: 10px;
}
.marriage-flow__list-item p {
    padding-left: 1em;
    text-indent: -1em;
}

.marriage-flow__arrow {
    position: relative;
    height: 30px;
    display: flex;
    justify-content: center;
    margin-top: 20px;
    margin-bottom: 0;
    margin-inline: auto;
}

.marriage-flow__arrow.u-mobile {
    display: none;
    @media screen and (max-width: 768px) {
        display: flex;
    }
}

.marriage-flow__arrow::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
    border-top: 15px solid #999;
    top: 25%;
}

.marriage-flow__bullet-list {
    padding-left: 20px;
    list-style-type: disc;
}

.marriage-flow__bullet-item {
    margin-bottom: 10px;
}

.marriage-flow__phase-separator {
    height: 40px;
    display: flex;
    justify-content: center;
    margin: 20px auto;

    @media screen and (max-width: 768px) {
        margin: 5px auto;
    }
}

.marriage-flow__arrow-right.u-desktop {
    display: block;
    @media screen and (max-width: 768px) {
        display: none;
    }
}

.marriage-flow__phase-separator.u-mobile {
    display: none;
    @media screen and (max-width: 768px) {
        display: block;
    }
}

.marriage-flow__phase-separator-right {
    height: 40px;
    display: flex;
    justify-content: center;
    margin: 20px auto;
}

.marriage-flow__phase-separator.u-mobile {
    display: none;
    @media (max-width: 768px) {
        display: flex;
        margin-top: 20px;
    }
}

.marriage-flow__phase-separator-right.u-desktop {
    @media screen and (max-width: 768px) {
        display: none;
    }
}

.marriage-flow__phase-separator-right::after,
.marriage-flow__phase-separator::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 20px solid #223670;
}

.marriage-flow__phase-separator-right::after {
    rotate: -90deg;
    transform: translate(-30%, 74%);
}

.flow-line-wrapper {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: row-reverse;
}

.flow-right {
    margin-top: 40px;
    margin-left: 20px;
    position: relative;
    height: 100%;
    position: sticky;
    top: 0;
    right: 0;
    z-index: 10;
    width: 100%;
    flex: 1;
}

.flow-right.flow-right--arrow {
    top: 30px;
}

.flow-right--arrow--criminal-record {
    position: static;
    margin-top: 526px;
}

.flow-right--arrow--criminal-record .flow-line .flow-line__text {
    min-height: 268px;
    padding-top: 10px;
}

.flow-line {
    position: relative;
    height: 1000px;
}

.flow-line--arrow {
    height: auto;
}

.flow-line__container {
    display: flex;
    gap: 10px;
}

.flow-line__text-wrapper {
    padding-top: 95px;
    display: flex;
    gap: 10px;
}

.flow-line__text {
    writing-mode: vertical-rl;
    text-orientation: upright;
    width: 50px;
    background-color: #dee8f6;
    color: #3c3c3c;
    font-weight: 600;
    padding: 20px 10px;
    text-align: center;
    min-height: 400px;
    display: flex;
    align-items: center;
    padding-top: 55px;
}

.flow-line__text--arrow {
    clip-path: polygon(
        0% 0%,
        100% 0%,
        100% calc(100% - 30px),
        50% 100%,
        0% calc(100% - 30px)
    );
}

.flow-line__text--arrow--arrow {
    padding-top: initial;
}

.bracket-line {
    position: relative;
    width: 3px;
    background-color: #0059b3;
    margin-top: 40px;
    margin-left: 20px;
    margin-bottom: 40px;
}

.bracket-line::before,
.bracket-line::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 3px;
    background-color: #0059b3;
}
.bracket-line::before {
    left: -17px;
}

.bracket-line::after {
    right: 0px;
}

.bracket-line::before {
    top: 0;
}

.bracket-line::after {
    bottom: 0;
}

/* ============================================"
# 追加
=============================================== */

.layout-bottom,
.layout-bottom-pc {
    padding-bottom: 50px;
}

.layout-bottom-2 {
    padding-bottom: 20px;
}
.marriage-flow__content-box--flex {
    display: flex;
    flex-direction: column;
    row-gap: 15px;
}

.text-center {
    text-align: center;
}
.text-right {
    text-align: right;
}
.text-left {
    text-align: left;
}

.notice {
    padding: 30px;
    border: 1px solid #ccc;
    background-color: #fff;
}

.notice__heading {
    color: #dd0016;
    margin-bottom: 20px;
    text-decoration: underline;
}

.notice__intro {
    margin-bottom: 30px;
}

.notice__cases-heading {
    margin: 20px 0;
}

.notice__cases-list {
    padding-left: 0;
    padding: 15px;
}

.notice__cases-list--grey {
    background-color: #f2f2f2;
}

.notice__case-item {
    margin-bottom: 15px;
    padding-left: 1.5em;
    position: relative;
}

.notice__case-item--noUnderline {
    border-bottom: none;
}

.notice__case-item a {
    display: block;
    text-decoration: none;
    color: #004ca0;
    font-weight: bold;
    text-align: right;
}

.notice__case-item::before {
    content: "•";
    position: absolute;
    left: 0.5em;
}

.notice__case-item.notice__case-item--nl {
    padding-left: 5px;
    padding-right: 5px;
}

.notice__case-item--nl::before {
    content: none;
}

.notice__consultation {
    margin-top: 30px;
}

.box-flex {
    display: flex;
    justify-content: space-between;
    row-gap: 15px;
}

.EB5__image {
    width: 145px;
    height: auto;
    flex-grow: 1;
    flex-shrink: 0;
}

.EB5__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.EB5__image--details {
    width: 259px;
    height: auto;
    overflow: hidden;
    position: relative;
}
.EB5__image--details img {
    width: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}

/* ============================================"
# EB-5 特徴
=============================================== */

.features-list {
    margin-top: 40px;
}

.feature-item {
    display: flex;
    column-gap: 20px;
    padding-top: 15px;
    padding-bottom: 15px;
    @media (max-width: 768px) {
        flex-direction: column;
    }
}

.feature-icon {
    width: 90px;
    height: 90px;
}
.feature-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.feature-content {
    flex: 1;
}

.text-red {
    color: #dd0016;
}

.text-blue {
    color: #0059b3;
}

.text-blue2 {
    color: #223670;
}

.button-list-wrapper {
    max-width: 800px;
    margin-top: 40px;
    margin-left: auto;
    margin-right: auto;
}

.button-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 30px;
}

.button-list--2col {
    grid-template-columns: 1fr 1fr;
    justify-items: center;
    @media (max-width: 768px) {
        grid-template-columns: 1fr;
    }
}

.button-list--3col {
    display: flex;
    @media (max-width: 768px) {
        flex-direction: column;
    }
}

.button-list__item a {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    width: 100%;
    height: 74px;
    letter-spacing: 0.05em;

    @media screen and (max-width: 768px) {
        height: auto;
    }
}

.button-list__item--2col {
    width: 292px;
    @media screen and (max-width: 375px) {
        width: 100%;
    }
}

.button-list__item--2col-five {
    width: 323px;
    @media screen and (max-width: 375px) {
        width: 100%;
    }
}
.button-list__item--2col a {
    width: 100%;
}

.button-list__item a img {
    padding-top: 3px;
    width: auto;
    height: 20px;
    flex-shrink: 0;
    object-fit: contain;
}

.button-list__item-tel-text {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.button-list__item-tel-text span {
    white-space: nowrap;
}

/* ============================================"
# ダウンロード(EB5)
=============================================== */
.download-item {
    padding-left: 35px;
    position: relative;
}
.download-item__text {
    display: inline-block;
}
.download-item::before {
    content: "▶";
    position: absolute;
    left: 0;
    color: #666;
}

.download-item__link {
    margin-top: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.download-item:not(:first-child) {
    margin-top: 50px;
}

.download-item a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
    width: 100%;
    max-width: 400px;
    height: 50px;
    font-size: 2rem;
    letter-spacing: 0.05em;
    color: #fff;
}
.download-button {
    background-color: #008cff;
    border-radius: 50px;
    font-size: 1.2rem;
    color: #fff;
    text-decoration: none;
    display: inline-block;
    padding-inline: 10px;
    padding-block: 2px;
}

.download-button--orange {
    background-color: #ff8c00;
    border-radius: 5px;
}

.content-section {
    margin-top: 30px;
}

.content-title.text {
    color: #0059b3;
}
.download-list {
    margin-top: 30px;
}

.download-container {
    width: 100%;
    max-width: 600px;
}

.download-link {
    display: flex;
    align-items: center;
    padding: 10px;
    padding-right: 50px;
    margin-bottom: 50px;
    text-decoration: none;
    color: #000;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #f9f9f9;
}

.download-link:not(:last-child) {
    margin-bottom: 30px;
}

.download-link:hover {
    background-color: #f0f0f0;
}

.pdf-icon {
    width: 24px;
    height: 24px;
    margin-right: 10px;
}

.download-info {
    flex-grow: 1;
    display: flex;
    gap: 30px;
    justify-content: space-between;
}

.file-name {
    margin: 0;
    display: inline-block;
}

.file-size {
    margin: 0;
}

/* ============================================"
# 資料請求フォーム(EB5)
=============================================== */
fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

legend {
    padding: 0;
    margin: 0;
    float: none;
    width: auto;
    display: block;
    font-weight: inherit;
    font-size: inherit;
}

.form-container {
    margin-top: 40px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

label {
    display: block;
    margin-top: 10px;
}

.mail-label__text {
    margin-top: initial;
}
input[type="text"],
input[type="email"],
input[type="number"],
select,
textarea {
    width: 100%;
    border: 1px solid #3c3c3c;
    border-radius: 3px;
}
input[type="radio"],
input[type="checkbox"] {
    margin-right: 5px;
}
.required {
    color: #dd0016;
}
.note {
    padding: 10px;
    background-color: #dee8f6;
    border: 1px solid #bee3f8;
    margin-top: 20px;
    border-radius: 3px;
}

.note.note--five-way {
    margin-top: 50px;
    @media screen and (max-width: 768px) {
        margin-top: 25px;
    }
}
.btn-group {
    margin-top: 20px;
    display: flex;
    justify-content: space-evenly;
}

.btn-group button {
    width: 30%;
    padding-inline: 10px;
}
.btn-group button::after {
    display: none;
}

.box-border {
    padding: 30px 20px;
    border: 1px solid #3c3c3c;
    position: relative;
    @media screen and (max-width: 768px) {
        padding: 15px 10px;
    }
}

.box-border__items li:not(:first-child) {
    @media screen and (max-width: 768px) {
        margin-top: initial;
    }
}

/* メール配信 */
.mail-subscription {
    margin-top: 30px;
}

.mail-subscription label {
    margin-top: initial;
}

.mail-subscription-description {
    margin-bottom: 15px;
}

.mail-label {
    display: flex;
    align-items: center;
    padding-right: 20px;
    position: relative;
}

.radio-option {
    display: flex;
    align-items: center;
}

input[type="radio"] {
    margin: 0;
    width: 16px;
    height: 16px;
    margin-right: 8px;
}

input[type="radio"] + label {
    font-size: 1.7rem;
    cursor: pointer;
}

input[type="radio"] {
    appearance: none;
    border: 2px solid #999;
    border-radius: 50%;
    outline: none;
    cursor: pointer;
}

input[type="radio"]:checked {
    border: 2px solid #666;
    background: white;
    position: relative;
}

input[type="radio"]:checked::before {
    content: "";
    width: 8px;
    height: 8px;
    background: #666;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
}

.radio-option input[type="radio"] {
    display: inline-block;
    -webkit-appearance: radio;
    -moz-appearance: radio;
    appearance: radio;
    width: 16px;
    height: 16px;
    margin: 0 5px 0 0;
}

/* アンケート */
.survey-section {
    margin-top: 30px;
}

.survey-section__title {
    margin-bottom: 15px;
}

.survey-section table {
    width: 100%;
    border-collapse: collapse;
}

.survey-section table tr {
    display: flex;
}

.survey-section th {
    min-width: 200px;
    padding: 15px;
    text-align: left;
    vertical-align: top;
    background-color: #f8f8f8;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    border-left: 1px solid #ddd;

    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;
}

.survey-section td {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 15px;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    @media screen and (max-width: 1214px) {
        border-left: 1px solid #ddd;
    }
}

.survey-section tr:first-child th,
.survey-section tr:first-child td {
    border-top: solid 1px #ddd;
}
.survey-section tr:last-child th,
.survey-section tr:last-child td {
    border-bottom: solid 1px #ddd;
}

.survey-section input[type="checkbox"],
.survey-section input[type="radio"] {
    display: inline-block;
    -webkit-appearance: auto;
    -moz-appearance: auto;
    appearance: auto;
    margin-right: 5px;
}

.survey-section label {
    display: inline-flex;
    align-items: center;
    margin-right: 15px;
    margin-bottom: 5px;
    cursor: pointer;
}

.survey-section tr:nth-child(3) td,
.survey-section tr:nth-child(4) td {
    flex-direction: row;
    align-items: center;
    flex: 1;
}

.survey-section tr:nth-child(1) td,
.survey-section tr:nth-child(2) td {
    flex-direction: row;
    flex-wrap: wrap;
}

.form-section {
    margin-top: 30px;
    margin-bottom: 30px;
    margin-bottom: 15px;
    background: #fff;
}

.form-section__title {
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    margin: 0;

    display: flex;
    align-items: center;
}

.form-section label {
    margin-top: initial;
}

.radio-group,
.checkbox-group {
    display: flex;
    column-gap: 20px;
    flex-wrap: wrap;
    width: 100%;
    padding: 10px;
    border: 1px solid #3c3c3c;
    border-radius: 3px;
}

.radio-label,
.checkbox-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    white-space: nowrap;
}

input[type="radio"],
input[type="checkbox"] {
    display: inline-block;
    -webkit-appearance: auto;
    -moz-appearance: auto;
    appearance: auto;
    margin-right: 5px;
}

.checkbox-option {
    display: flex;
    margin-bottom: 8px;
}

.checkbox-option input[type="checkbox"] {
    margin-right: 8px;
    margin-top: 8px;

    width: 16px;
    height: 16px;
    cursor: pointer;
}

select {
    padding: 8px;
    width: 200px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

textarea {
    width: 100%;
    padding: 8px;
    border: 1px solid #3c3c3c;
    border-radius: 4px;
    resize: vertical;
    font-size: 1.8rem;
}

.nested-section {
    margin-top: 10px;
}

.survey-section {
    margin-top: 40px;
}

.survey-section__table label {
    margin-top: initial;
}

select {
    width: auto;
    padding: 8px 12px;
    border: 1px solid #3c3c3c;
    border-radius: 4px;
    background-color: #fff;
    font-size: 1.6rem;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
    padding-right: 40px;
}

select:hover {
    border-color: #999;
}

select:focus {
    outline: none;
    border-color: #4a90e2;
    box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);
}

select::-ms-expand {
    display: none;
}

select::-ms-expand {
    display: none;
}

@media (max-width: 768px) {
    select {
        font-size: 1.6rem;
    }
}

.checkbox-option--other {
    display: flex;
    flex-direction: column;
    flex: 1 1 100%;
}

.checkbox-row {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.other-textarea {
    width: 100%;
    max-width: 600px;
    padding: 8px;
    border: 1px solid #3c3c3c;
    border-radius: 4px;
    font-size: 1.8rem;
}

/* ============================================"
# ボタン
=============================================== */
.section-button {
    margin-top: 50px;
    margin-inline: auto;
    width: 100%;
    display: flex;
    justify-content: center;
}

.section-button--flex-end {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.section-button__link.button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
    width: fit-content;
    height: 74px;
    font-size: 2rem;
    letter-spacing: 0.05em;
    padding-inline-start: 30px;
    padding-inline-end: 50px;

    @media (max-width: 865px) {
        font-size: 1.5rem;
        padding-inline-start: 20px;
    }
    @media (max-width: 375px) {
        padding-inline-end: 30px;
        padding-inline-start: 10px;
    }
}

.note__link {
    text-decoration: underline;
    color: #004ca0;
}

/* ============================================"
# テーブル（Eビザ）
=============================================== */
.E-visa-table {
    border-collapse: collapse;
}

.E-visa-table,
.E-visa-table th,
.E-visa-table td {
    border: 1px solid #ccc;
}

.E-visa-table th,
.E-visa-table td {
    padding: 15px;
    vertical-align: top;
}

.E-visa-table th {
    width: 33%;
    text-align: left;
    background-color: #f5f5f5;
}

.E-visa-table td {
    width: 67%;
}

.visa-requirements {
    padding-left: 20px;
    list-style-type: disc;
}

.visa-requirements li {
    margin-bottom: 12px;
}

.visa-link {
    position: relative;
    padding-top: 5px;
    display: block;
    padding-left: 1.3em;
}

.visa-link--right {
    text-align: right;
    display: inline-block;
}

.visa-link::before {
    position: absolute;
    content: "▶ ";
    top: 0.6em;
    left: 0;
    color: #008cff;
    font-size: 0.8em;
}

.text-link {
    text-decoration: underline;
    color: #004ca0;
}

.text-link.text.text--red {
    color: #dd0016;
}

.text-underline-red {
    border-bottom: 5px solid #dd0016;
}

/* ============================================"
# メリット
=============================================== */

.merit-list {
}

.merit-list__box {
    border: 1px dotted #ccc;
    padding: 20px;
    @media (max-width: 768px) {
        padding: 10px;
    }
}

.merit-list__box:not(:first-child) {
    margin-top: 20px;
}

.merit-list__header {
    display: flex;
    align-items: center;
}

.merit-list__header--grid {
    display: grid;
    grid-template-columns: 90px auto;
    gap: 20px;
}

.merit-list__label {
    background-color: #223670;
    color: #fff;
    font-weight: 700;
    padding: 10px 20px;
    margin-right: 20px;
    flex-shrink: 0;
}

.heading-small-2cal.heading-small--tokou {
    align-items: flex-start;
}

.merit-list__label--orange.merit-list__label--tokou {
    margin-block: initial;
    padding-block: 3px;
    padding-inline-start: 20px;
    padding-inline-end: 15px;
}

.merit-list__label--small {
    background-color: #008cff;
    padding: 0px 10px;
    font-weight: 600;
    margin-right: initial;
    text-align: center;
}

.merit-list__label.merit-list__label--width {
    width: fit-content;
}

.merit-list__label--orange {
    background-color: #fc8606;
    margin-block: 14px;
}

.merit-list__content {
    margin-top: 20px;
}

.button-list__item--right {
    width: fit-content;
    margin-left: auto;
}

.button-list__item-tel a {
    display: block;
    height: auto;
    text-align: right;
}

.button-list__item-tel--total {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
/* ============================================"
# サービスの流れ
=============================================== */

.flow2-list {
    counter-reset: number;
}
.flow2-list.flow2-list--number {
    counter-reset: number 5;
}

.flow2-list__item:not(first-child) {
    margin-top: 30px;
}

.flow2-list__item-wrapper {
    display: flex;
    gap: 30px;

    @media (max-width: 768px) {
        width: 100%;
        flex-direction: column;
    }
}

.flow2-list__item-number {
    padding-top: 10px;
    padding-bottom: 20px;
    display: flex;

    width: 225px;
    min-height: 110px;
    flex-shrink: 0;
    background-color: #0059b3;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 5px;

    @media (max-width: 768px) {
        width: 100%;
        min-height: auto;
        padding-top: 1.3vw;
        padding-bottom: 2.6vw;
    }
}
.flow2-list__item-numberLess {
    margin: initial;
    padding-inline: 10px;
    padding-bottom: 5px;
    width: 215px;
    flex-shrink: 0;
    background-color: #0059b3;
    min-height: 110px;
    display: flex;
    justify-content: center;
    align-items: center;

    @media (max-width: 768px) {
        width: 100%;
        min-height: 20vw;
    }
}

.flow2-list__item-number::before {
    padding-top: 5px;
    counter-increment: number;
    content: counter(number);
    display: block;
    line-height: 1;
    color: #fff;
    text-align: center;
}

.flow2-list__item-title {
    color: #fff;
    text-align: center;
}

.flow2-list__item-content {
}
.flow2-list__item-text-list,
.text-list {
    list-style-type: disc;
    padding-left: 2em;

    @media (max-width: 768px) {
        padding-left: 1.5em;
    }
}

.text-list--sub {
    list-style-type: circle;
    padding-left: 2em;
}

.flow2-list__item-text a {
    text-decoration: underline;
    color: #004ca0;
}

.marriage-flow__phase-separator--mini {
    height: auto;

    @media (max-width: 768px) {
        display: none;
    }
}

.flow2-list__item-text-list2 {
    list-style-type: circle;
    margin-top: 10px;
    padding-left: 20px;
}

.flow2-list__item-number--orange,
.flow2-list__item-number--orange2 {
    background-color: #fd7449;
    min-height: 110px;
    @media screen and (max-width: 768px) {
        min-height: auto;
    }
}

.flow2-list__item-number--orange2::before {
    content: "オプション";
    counter-increment: none;
    color: #fff;
    font-size: 1.7rem;
    text-align: center;
    line-height: 1;
}

.flow2-list__item-numberLess.flow2-list__item-number--orange {
    display: flex;
    justify-content: center;
    align-items: center;
    @media screen and (max-width: 768px) {
        min-height: 20vw;
    }
}

/* ============================================"
# 法律相談（テーブル）
=============================================== */

.table-container {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.table-container table {
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid #333;
    border-left: 1px solid #333;
}

.table-container th,
.table-container td {
    padding: 15px;
    text-align: left;
    border: 1px solid #333;
}

.table-container td,
.table-container th {
    border-right: 1px solid #333;
    border-bottom: 1px solid #333;
    border-top: none;
    border-left: none;
}

.table-container th {
    background-color: #223670;
    font-weight: 700;
    color: #fff;
}

.table-container .highlight-row {
    background-color: #dee8f6;
}

.table-container .fee-amount {
    text-align: right;
    font-weight: 700;
}

.table-container ul {
    margin: 5px 0;
    list-style-type: disc;
    padding-left: 2em;

    @media (max-width: 768px) {
        padding-left: 1em;
    }
}

.table-container li {
    margin: 8px 0;
}

.table-container .visa-requirement {
    margin: 10px 0;
}

.table-bg-skyblue {
    background-color: #dee8f6;
}

.table-container__table--visa {
    display: grid;
    grid-template-columns: 18% 32% 18% 32%;
    width: 100%;
}
.table-container__table--visa tr,
.table-container__table--visa tbody {
    display: contents;
}

.visa-table--pc {
    display: grid;
}
.visa-table--sp {
    display: none;
}

/* ============================================"
# 弁護士申請代行サポート（テーブル）
=============================================== */
.total-table {
    background-color: #fff;
    margin: 20px auto;
    max-width: 100%;
}

.total-table table {
    width: 100%;
    border-collapse: collapse;
}

.total-table th,
.total-table td {
    padding: 15px;
    text-align: left;
    border: 1px solid #333;

    @media screen and (max-width: 768px) {
        padding: 5px;
    }
}

.total-table th {
    background-color: #223670;
    font-weight: 700;
    color: #fff;
}

.total-table .highlight-row {
    background-color: #dee8f6;
}

.total-table .fee-amount {
    text-align: right;
    font-weight: 700;
}

.total-table ul {
    margin: 5px 0;
    list-style-type: disc;
    padding-left: 2em;
}

.total-table li {
    margin: 8px 0;
}

.total-table .visa-requirement {
    margin: 10px 0;
}

@media (max-width: 768px) {
    .total-table ul {
        padding-left: 1em;
    }
}

/* ============================================"
# 法律相談（申し込み手続き）
=============================================== */

.application-list {
    display: flex;
    gap: 20px;
    justify-content: center;
    padding: 20px;
    margin: 0 auto;
    @media (max-width: 945px) {
        flex-direction: column;
        max-width: 550px;
        width: 100%;
        gap: 30px;
    }
}

.application-list--3col {
    gap: 1vw;
    padding-inline: initial;
    @media (max-width: 945px) {
        max-width: 550px;
        width: 100%;
        gap: 30px;
    }
}

.application-list--1col {
    max-width: 600px;
    width: 100%;
}

.application-list__item {
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 20px;
    width: 100%;
    padding-block: 5px;
    @media (max-width: 945px) {
        width: 100%;
        min-height: initial;
        min-width: initial;
    }
}

.application-list__item.application-list__item--consulting {
    padding-block: 20px;
}

.application-list__item--consult {
    max-width: 500px;
    margin-inline: auto;
}

.application-list--3col .application-list__item {
    padding: 15px;
}

.application-list.guide-application-list {
    padding-block-start: 10px;
    padding-block-end: 3px;

    & .application-title--icon {
        margin-bottom: initial;
    }

    & .card__contents {
        margin-top: initial;
        gap: initial;

        & .card__contents-link {
            padding-block: 5px;
        }
    }

    & .phone-number--small {
        font-size: 35px;
        line-height: 1;
        @media screen and (max-width: 768px) {
            font-size: 30px;
        }
    }

    & .application-list__item {
        /* padding-block: 5px !important; */
        padding-block-end: 10px;
        padding-block-start: 5px;
        @media screen and (max-width: 945px) {
            padding-block: 10px !important;
        }
    }

    & .card__contents-link--guide {
        min-height: initial;
    }
}

.application-title--blue {
    display: inline-block;
}

.reception-hours.reception-hours--blue,
.text.reception-hours--blue {
    display: inline-block;
    margin-left: 3%;
}

.phone-number {
    display: block;
    font-size: 48px;
    text-align: center;
}

.phone-number--small {
    font-size: 38px;
}

.reception-hours {
    display: block;
    text-align: center;
}

@media (max-width: 768px) {
    .application-container {
        flex-direction: column;
    }

    .application-box {
        width: 100%;
    }
}

/* ============================================"
# 法律相談（お支払い方法）
=============================================== */

.payment-container__item {
    margin-top: 30px;
}

.payment-container__item-title {
    display: flex;
    align-items: center;
}

.payment-container__item-description,
.text-list {
    margin-top: 20px;
}

.text-list--sub {
    margin-top: 10px;
}

.text-list--sub.marker-none {
    list-style-type: none;
}

.text-list li:not(:first-child) {
    margin-top: 1.5em;
}

.text-list--sub li:not(:first-child) {
    margin-top: 0.5em;
}

.payment-container__item-description li {
    margin-top: 15px;
    line-height: 1.6;
    padding-left: 24px;
    position: relative;
}

.payment-container__item-description li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 12px;
    height: 12px;
    background-color: #dd0016;
    border-radius: 50%;
}

.credit-cards {
    margin-top: 5px;
}

.credit-cards li {
    margin-bottom: 15px;
    line-height: 1.6;
    padding-left: 24px;
    position: relative;
}

.credit-cards li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 8px;
    height: 8px;
    background-color: #333;
    border-radius: 50%;
}

.number-list {
    list-style-type: decimal;
    padding-left: 30px;

    li {
        margin-bottom: 10px;
    }

    li:not(:first-child) {
        margin-top: 10px;
    }
}

.marriage__details.details.margin-0 {
    margin-block-start: 0;
}

.margin-20 {
    margin-top: 20px;
}
.text-list li.margin-30 {
    margin-top: 30px;
}

.card__contents-link--big {
    font-size: 2rem;
}

.card__contents-link--middle {
    font-size: 2rem;
}

.card__contents-link--guide {
    min-height: 65px;
}

.heading-small-2cal {
    display: flex;
    align-items: center;
}

.arrow-right {
    transform: rotate(-90deg);
    width: 100px;
    height: auto;
    padding-inline: 20px;
    @media (max-width: 768px) {
        width: min(70px, 20%);
        padding-inline: 8px;
    }
}

.box-blue {
    padding: 30px 20px;
    border: 1px solid #0059b3;
    position: relative;
    border-radius: 4px;
}

.application-title--icon {
    padding-left: 30px;
    margin-bottom: 10px;
    @media (max-width: 768px) {
        margin-bottom: initial;
    }
}

.section__description-img-wrap {
    display: flex;
    align-items: center;
    @media screen and (max-width: 768px) {
        justify-content: flex-end;
    }
}

.section__description-img-wrap img.image-size-100 {
    width: 100px;
    height: auto;
    margin-inline: auto;
}

.section.section--gray.checklist-section-mini {
    padding-block: 20px;
    padding-inline: initial;
}

.button-list-wrapper.layout-margin-100 {
    margin-top: 100px;
    @media screen and (max-width: 768px) {
        margin-top: 50px;
    }
}

.layout-margin-0 {
    margin-top: 0 !important;
}

.table-container.table-container--flex {
    display: flex;
    justify-content: space-between;
    background-color: #f2f2f2;
    border: none;
    @media screen and (max-width: 768px) {
        flex-direction: column;
        gap: 20px;
    }
}

.table-container--flex .table-wrapper {
    width: calc(50% - 10px);
    @media screen and (max-width: 768px) {
        width: 100%;
    }
}
.table-wrapper .visa-table2 {
    width: 100%;
}

.table-container .visa-table2 tr {
    width: 100%;
    background-color: #fff;
}

.table-container .visa-table2 tr.table-bg-skyblue {
    background-color: #dee8f6;
}

.section-box {
    padding: 20px;
    @media screen and (max-width: 480px) {
        padding: 10px;
    }
}

.section-box.section-box--gray {
    background-color: #f2f2f2;
}

.visa-type-tittle {
    width: 30%;
}

.guide-box__wrapper {
    display: flex;
    gap: 2%;
    @media screen and (max-width: 768px) {
        flex-direction: column;
    }
}

.guide-box__list {
    padding-top: 50px;
    width: 49%;
    @media screen and (max-width: 768px) {
        padding-block: initial;
        width: 100%;
    }
}

.guide-box__list li {
    min-height: 160px;
    @media screen and (max-width: 768px) {
        min-height: initial;
    }
}

.guide-box__description {
    padding-left: 25px;
}

.mb-10 {
    margin-bottom: 10px;
}

.mb-20 {
    margin-bottom: 20px;
}

.guide-box__body {
    padding-top: 5px;
    @media screen and (max-width: 768px) {
        padding-top: initial;
    }
}

.section__visa-item--trouble {
    text-indent: -5.3rem;
    padding-left: 4rem;
    @media screen and (max-width: 768px) {
        text-indent: -4.5rem;
        padding-left: 20px;
    }
}

.section__visa-items:has(.section__visa-item--trouble) {
    margin-left: initial;
}

.section__visa-item.section__visa-item--trouble span.number {
    position: relative;
    top: 0.06em;
}

.section-layout_content.section-layout-content-trouble {
    margin-top: 0;
}

.section__description.application-list {
    margin-top: 50px;
}

.triangle {
    position: relative;
    display: inline-block;
    padding-inline: 10px;
}
.triangle::after {
    content: "";
    height: 25px;
    width: 30px;
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
    background-color: #dee8f6;
    position: absolute;
    bottom: 100%;
    left: 103px;
}

.label-criminal-record,
.label-criminal-record-01 {
    position: relative;
}

.label-criminal-record::after,
.label-criminal-record-01::after {
    content: "当事務所";
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 5px;
    left: 5px;
    padding-inline: 5px;
    min-width: 10px;
    min-height: 10px;
    background-color: #fff;
    color: #223670;
    z-index: 2;
    font-size: 1.4rem;
    line-height: 1.7;
    letter-spacing: 0.01em;
}

.label-criminal-record-01::after {
    content: "あなた様";
}

.criminal-record-link-wrapper {
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    row-gap: 30px;
    @media screen and (max-width: 768px) {
        margin-top: 30px;
        row-gap: 40px;
    }
}

.criminal-record-link {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    @media screen and (max-width: 768px) {
        grid-template-columns: 1fr;
    }
}

.button-list__item--1col {
    width: 265px;
}

.merit-list__title a {
    text-align: left;
    display: inline-block;
}

.faq__list--sitemap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
    align-items: end;
    @media screen and (max-width: 768px) {
        grid-template-columns: 1fr;
    }
}

.news-item--box {
    padding-inline: 20px;
    border-bottom: 1px solid #ccc;
}

.beginning-list {
    display: flex;
    align-items: flex-end;
    column-gap: 20px;
    row-gap: 5px;
    flex-direction: row;
    flex-wrap: wrap;
}

.beginning-list__item {
    margin-inline-start: min(5vw, 20px);
}

.section-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.section__visa-item.section__visa-item--privacy {
    display: flex;
    flex-direction: column;
}

.section__visa-item.section__visa-item--privacy p {
    margin-top: 5px;
}

.japanese-numbered-list {
    list-style: none;
    counter-reset: item;
    padding-left: 0;
}

.japanese-numbered-list li {
    counter-increment: item;
    position: relative;
    padding-left: 2.5em;
}

.japanese-numbered-list li::before {
    content: "（" counter(item) "）";
    position: absolute;
    left: 0;
    font-weight: 700;
}
.margin-30 {
    margin-top: 30px;
}

.japanese-numbered-list-2 {
    list-style: none;
    counter-reset: item;
    padding-left: 0;
}

.japanese-numbered-list-2 li {
    position: relative;
    padding-left: 1.5em;
}

.japanese-numbered-list-2 li:nth-child(1)::before {
    content: "①";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(2)::before {
    content: "②";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(3)::before {
    content: "③";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(4)::before {
    content: "④";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(5)::before {
    content: "⑤";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(6)::before {
    content: "⑥";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(7)::before {
    content: "⑦";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(8)::before {
    content: "⑧";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(9)::before {
    content: "⑨";
    position: absolute;
    left: 0;
    font-weight: 700;
}

.japanese-numbered-list-2 li:nth-child(10)::before {
    content: "⑩";
    position: absolute;
    left: 0;
    font-weight: 700;
}

/* DVページ */

.dv-table-container {
    display: inline-block;
    border: 1px solid #333;
    background-color: #fff;
}

.dv-table-row {
    display: flex;
    border-bottom: 1px solid #333;
}

.dv-table-row:last-child {
    border-bottom: none;
}

.dv-table-cell {
    border-right: 1px solid #333;
    background-color: #dee8f6;
    width: 80px;
    text-align: center;
    font-size: 14px;
}

.dv-table-cell:last-child {
    border-right: none;
}

.dv-table-year-cell {
    background-color: #d4e6f1;
    font-weight: normal;
}

.dv-table-count-cell {
    background-color: #f8f9fa;
    text-align: right;
    padding-right: 20px;
}

.dv-table-container {
    width: 100%;
}

.dv-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #333;
    background-color: #fff;
}

.dv-table th {
    background-color: #dee8f6;
    padding: 12px 8px;
    border: 1px solid #333;
    border-bottom: none;
    text-align: center;
    font-weight: 600;
}

.dv-table td {
    padding: 8px 15px;
    border: 1px solid #333;
    border-top: none;
    background-color: #dee8f6;
    text-align: center;
}

.dv-table td[data-label="年度"] {
    background-color: #dee8f6;
    font-weight: normal;
    text-align: center;
}

.dv-table td[data-label="当選者数"] {
    background-color: #fff;
    text-align: right;
    padding-right: 20px;
}

.dv-table th[scope="col"] {
    position: relative;
}

.dv-table th[scope="col"]::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: #333;
}

.service-step__lists-items-title {
    padding-top: 30px;
    padding-bottom: 20px;

    @media screen and (max-width: 768px) {
        padding-top: 20px;
        padding-bottom: 10px;
    }
}

/* 永住権取得方法のテーブル */
.perm-residence-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

.perm-residence-table th,
.perm-residence-table td {
    border: 1px solid #ccc;
    padding: 12px;
    text-align: left;
    vertical-align: middle;
}

.perm-residence-table th {
    background-color: #f2f2f2;
    font-weight: bold;
    text-align: center;
}

.perm-residence-table .pr-number-col {
    width: 60px;
    text-align: center;
    font-weight: bold;
    background-color: #f8f8f8;
}

.perm-residence-table .pr-method-col {
    width: 60%;
    padding-left: 20px;
}

.perm-residence-table .pr-period-col {
    width: 35%;
    text-align: center;
}

.tokou-image {
    max-width: 600px;
    width: 100%;
    margin-inline: auto;
}
.tokou-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.tokou-image.tokou-image--2 {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

body:has(.tokou-image--bg-gray) {
    background-color: #bbbbbb;
}

.access-map-image {
    max-width: 500px;
    width: 100%;
    margin-inline: auto;
}

.access-map-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.access-map-content {
    max-width: 500px;
    width: 100%;
    margin-inline: auto;
}

.access-map-content iframe {
    width: 100%;
    /* height: auto; */
}

/* ============================================
# メール情報配信フォーム
=============================================== */

.mailnews {
    max-width: 800px;
}

.mailnews__table {
    width: 100%;
    border-collapse: collapse;
}

.mailnews__table-cell {
    border: 1px solid #ccc;
    padding: 12px;
    vertical-align: top;
}

.mailnews__label {
    background-color: #f8f8f8;
    width: 150px;
    font-weight: 600;
    position: relative;
}

.mailnews__required {
    color: #ff6b6b;
    font-size: 14px;
    margin-left: 5px;
}

.mailnews__input-cell {
    background-color: white;
    padding: 12px 20px;
}

.mailnews__input,
.mailnews__textarea {
    border: 1px solid #ccc;
    padding: 8px;
    font-size: 14px;
    font-family: inherit;
}

.mailnews__input--name {
    width: 200px;
}

.mailnews__input--postal {
    width: 60px;
}

.mailnews__input--phone {
    width: 80px;
}

.mailnews__input--email {
    width: 300px;
}

.mailnews__textarea--address {
    width: 500px;
    height: 60px;
    resize: vertical;
}

.mailnews__example {
    color: #666;
    font-size: 12px;
    margin-left: 10px;
}

.mailnews__note {
    color: #666;
    font-size: 11px;
    margin-top: 5px;
}

.mailnews__hyphen {
    margin: 0 5px;
    font-weight: bold;
}

.mailnews__input-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.mailnews__input-group-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.mailnews-required {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.section-h3 {
    font-size: 1.5rem;
    font-weight: 700;
}

.fetch-address-btn {
    background-color: #008cff;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 6px 12px;
    cursor: pointer;
    display: inline-block;
    margin-left: 8px;
    vertical-align: middle;
    min-width: 80px;
}

.office-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

.office-info-table th {
    background-color: #f8f8f8;
    padding: 15px 20px;
    text-align: left;
    border: 1px solid #ccc;
    width: 200px;
    vertical-align: top;
}

.office-info-table td {
    padding: 15px 20px;
    text-align: left;
    border: 1px solid #ccc;
    vertical-align: top;
    color: #000;
}

@media (max-width: 768px) {
    .office-info-table th,
    .office-info-table td {
        padding: 5px;
        font-size: 14px;
    }

    .office-info-table th {
        width: 100px;
    }
}

.media-table {
    width: 100%;
    border-collapse: collapse;
}

.media-table th {
    background-color: #f8f8f8;
    padding: 15px 20px;
    text-align: left;

    border: 1px solid #ccc;
    width: 370px;
    vertical-align: top;
}

.media-table td {
    /* background-color: #ffffff; */
    padding: 15px 20px;
    text-align: left;
    border: 1px solid #ccc;
    vertical-align: top;
    color: #000;
}

@media (max-width: 768px) {
    .media-table th,
    .media-table td {
        padding: 5px;
        font-size: 14px;
    }

    .media-table th {
        width: 100px;
    }
}

.office-image-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 50px;
    @media screen and (max-width: 768px) {
        max-width: 500px;
        margin-inline: auto;
        grid-template-columns: repeat(1, 1fr);
    }
}

.office-image-wrapper .office-image {
    width: 100%;
    height: 100%;
}
.office-image-wrapper .office-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.office-image__title {
    display: block;
}

.gcse-search {
    width: 100% !important;
}

.gcse-search input[type="text"] {
    width: 100% !important;
    height: 40px !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    padding: 8px 40px 8px 12px !important;
    font-size: 14px !important;
    background: white !important;
    outline: none !important;
    box-sizing: border-box !important;
}

.gcse-search input[type="text"]::placeholder {
    color: #999 !important;
    content: "サイト内検索" !important;
}

.gcse-search input[type="submit"] {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 24px !important;
    height: 24px !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    background-image: url("images/sp-search-icon.svg") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

.gcse-search .gsc-search-button {
    display: none !important;
}

.gcse-search .gsc-input-box {
    position: relative !important;
}

.text-decoration-none {
    text-decoration: none !important;
}

.margin-right-30 {
    margin-right: 30px;
}

/* 名前入力フィールドの横並びレイアウト */
.name-wrap {
    margin-top: 20px;
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: 130px auto 100px 130px auto 100px;
    @media screen and (max-width: 768px) {
        margin-top: 10px;
        grid-template-columns: 1fr;
    }
}

.name-wrap label {
    margin-top: initial;
    display: flex;
    align-items: center;
}

.name-wrap .text-small {
    display: flex;
    align-items: center;
    margin-left: 10px;
    @media screen and (max-width: 768px) {
        margin-left: 0;
    }
}

.name-wrap label:not(:first-child) {
    @media screen and (max-width: 768px) {
        margin-top: 10px;
    }
}


/* ============================================
# top2
=============================================== */

:root {
    --mv-contents-bg-color-black: rgba(0, 0, 0, 0.2);
    --mv-contents-bg-color-white: rgba(255, 255, 255, 0.1);

    --gray: #f2f2f2;
    --white: #fff;
    --mv-contents-box-img-border-radius: 5px;
}

.mv__contents.mv__contents--top2 {
    position: relative;
}

.mv__contents.mv__contents--top2::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--mv-contents-bg-color-black);
}

.mv__title--big {
    font-size: 4.2rem;
}

@media (max-width: 1214px) {
    .mv__title--big {
        font-size: 3.2rem;
    }
}

@media (max-width: 768px) {
    .mv__title--big {
        font-size: 1.8rem;
    }
}

.mv__contents-box--top2 {
    width: 100%;
    height: inherit;
    padding-inline: 25px;
    z-index: 10;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: center;
    align-items: center;

    @media (max-width: 1214px) {
        flex-direction: row;
    }

    @media (max-width: 768px) {
        flex-direction: column;
        align-items: center;
				justify-content: space-around;
    }
}

.mv__contents {
    position: relative;
}


.mv__message-item-link.button {
    width: 130px;
}

/* ============================================
# 追加
=============================================== */

.link-add {
    display: inline;
}

.link {
    display: inline-block;
    margin-top: initial;
}

.marriage__description.m-top-none {
    margin-top: 0;
    margin-bottom: 50px;
    padding-bottom: 20px;
}


@media screen and (max-width: 768px) {
    .marriage__description.m-top-none {
        margin-bottom: 30px;
        padding-bottom: 10px !important;
    }
}

.blue-bg {
    background-color: #dee8f6;
    /* border: 1px solid #bee3f8; */
    display: block;
    padding: 20px;

}
@media screen and (max-width: 768px) {
    .blue-bg {
        padding: 10px;
    }
}

/* ============================================
# 追加の微調整
=============================================== */

.marriage__description2.layout-margin-top {
    margin-block: 30px;
}

@media screen and (max-width: 768px) {
    .marriage__description2.layout-margin-top {
        margin-top: 17px;
    }
    
    .marriage__description.layout-sp-top {
        padding-bottom: 30px;
    }
}

.message__text.layout-margin-none {
    margin-top: 0;
}

.bg-gray {
    background-color: #f2f2f2;
    padding: 20px;
    padding-block-start: 15px;
}

.bg-gray.layout-margin-top {
    margin-top: 20px;
}

.section__visa-items.section__visa-items--no-margin li {
    margin-top: 5px;
}

.section__visa-items.section__visa-items--no-margin2 {
    margin-top: 5px;
    li {
        margin-top: 5px;
    }
}

/* ============================================
# サイト内検索
=============================================== */

.gsc-results .gs-no-results-result,
.gs-no-results-result .gs-snippet, .gs-error-result .gs-snippet {
    font-size: 1.7rem !important;
    font-weight: 400;
    color: #3c3c3c !important;
    line-height: 1.7 !important;
    letter-spacing: 0.01em !important;
    text-align: left !important;
    background-color: transparent !important;
    border: none !important;
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;

    @media screen and (max-width: 768px) {
        font-size: clamp(0.875rem, 0.204rem + 3.356vw, 1.813rem) !important;
    }
}


