@charset "utf-8";
/* *************************************
// スタイル
************************************* */

/***** ページ全体の設定 *****/
body {
    --main-color: #f69600;
    --sub-color: #fdc82a;
    font-size: 16px;
    font-weight: normal;

    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;

    --color-green: #42b789;
}
body:has(main.lp) {
    font-size: 18px;
}
#container {
    color: var(--text-color);
}
@media (max-width: 767px) {
    #container {
        overflow-x: hidden;
        padding-top: 0;
    }
}

#main {
    overflow: hidden;
}

/***** h2タイトル class ttl001 *****/
.ttl001 {
    margin-bottom: 50px;
    font-size: min(calc(45 / 1365 * 100vw), 45px);
    font-weight: bold;
}
.ttl001 .en {
    font-size: 50%;
}
.ttl001.white {
    color: #fff;
}
@media (max-width: 767px) {
    .ttl001 {
        font-size: clamp(32px, calc(32 / 375 * 100vw), 40px);
        text-align: center;
        margin-bottom: 30px;
    }
}

/***** ボタン class btn001 *****/
.btn001 a {
    position: relative;
    z-index: 1;
    border: 1px solid var(--text-color);
    background-color: transparent;
    border-radius: 0;
    transition: 0.3s ease;
}
#container #content .btn001 a:hover {
    opacity: 1;
    color: var(--text-color);
}
.btn001 a::before {
    content: "";
    position: absolute;
    display: block;
    inset: 0;
    background-color: var(--text-color);
    z-index: -1;
    transition: 0.3s ease;
    transform-origin: right;
    transform: scaleX(1);
}
.btn001 a:hover::before {
    transform: scaleX(0);
}

/***** ボタン class btn_ *****/
div[class^="btn_"] a {
    display: flex;
    align-items: center;
    width: fit-content;
    padding: 0.75em 1.75em;
    border-radius: 100vh;
    color: #000;
    transition: 0.2s;
}
div[class^="btn_"] a img {
    height: 1.25em;
    width: auto;
    display: block;
    margin-right: 0.5em;
}
@media (max-width: 767px) {
    div[class^="btn_"] a {
        margin-inline: auto;
    }
}

/***** ボタン class btn_yellow *****/
.btn_yellow a {
    background-color: var(--sub-color);
}

/***** ボタン class btn_white *****/
.btn_white a {
    background-color: #fff;
}

/***** お問い合わせ系ボタン *****/
.tel_contents a {
    display: block;
}
.tel_contents a .number {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-size: 35px;
    font-weight: bold;
    color: #333;
}
.tel_contents a .number img {
    display: block;
    filter: invert(49%) sepia(97%) saturate(745%) hue-rotate(127deg)
        brightness(99%) contrast(102%);
    width: 0.75em;
}
.tel_contents a .time {
    text-align: center;
    color: #333;
}
.contact_contents a {
    display: flex;
    align-items: center;
    width: fit-content;
    margin-inline: auto;
    font-size: 18px;
    font-weight: bold;
    gap: 10px;
    border-radius: 100vh;
    padding: 0.75em 2.75em;
    color: #000;
}
.contact_contents a img {
    height: 1.25em;
    filter: invert(100%);
}
@media (max-width: 767px) {
    .contact_contents a {
        padding-inline: 1.5em;
    }
}

/***** ページタイトル class page-title *****/
.page-title {
    position: relative;
    z-index: 1;
    font-size: calc(80 / 1513 * 100vw);
    font-weight: bold;
    text-align: center;
    padding: 180px 0 50px;
    background-image: url(../images/common/page-title.webp);
    background-size: cover;
    background-position: center;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    letter-spacing: 0.05em;
}
.page-title::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--main-color);
    opacity: 0.8;
    z-index: -1;
}
.page-title .en {
    line-height: 1.25;
}
.page-title h1 {
    font-size: 50%;
}
@media (max-width: 767px) {
    .page-title {
        padding: 110px 0 30px;
        font-size: calc(45 / 375 * 100vw);
    }
}

/***** ページタイトル class hl001 *****/
.hl001 {
    position: relative;
    z-index: 1;
    padding: 80px 50px;
    background: none;
    background-color: var(--main-color);
    overflow: hidden;
}
.hl001::before {
    content: none;
}
.hl001::after {
    content: "";
    position: absolute;
    top: 10%;
    left: 65%;
    width: 60vw;
    height: 60vw;
    background-color: #fff;
    opacity: 0.3;
    border-radius: 50%;
    z-index: -1;
}
.hl001 .box {
    color: #333;
    background-color: #fff;
    padding: 50px;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1), 0 0 15px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}
.hl001 .box .category_name {
    font-size: 16px;
    font-weight: bold;
    background-color: var(--text-color);
    color: #fff;
    padding: 5px 20px;
    border-radius: 100vh;
    width: fit-content;
    margin-inline: auto;
    outline: 1px solid #fff;
    outline-offset: -2px;
    letter-spacing: 0.05em;
}
.hl001 .box h1 {
    margin-bottom: 30px;
    color: var(--main-color);
}
.hl001 .box:has(.category_name) h1 {
    margin-bottom: 0;
}
.hl001 .box .text {
    font-size: 20px;
    line-height: 1.8;
}
@media (max-width: 767px) {
    .hl001 {
        font-size: clamp(32px, calc(32 / 375 * 100vw), 40px);
        padding: 30px 15px;
    }
    .hl001::after {
        width: 100vw;
        height: 100vw;
        top: auto;
        left: 45%;
        bottom: -40%;
    }
    .hl001 .box {
        padding: 30px 15px;
    }
    .hl001 .box h1 {
        margin-bottom: 15px;
    }
    .hl001 .box .text {
        font-size: 16px;
    }
}

/***** ローダー class loader-bg *****/
#loader-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 9999;
}
#loader-bg .spinner > div {
    background-color: var(--main-color);
}
span.color {
    color: var(--main-color);
}

/***** 改行調整 *****/
br.pc {
    display: inline;
}
br.sp {
    display: none;
}
@media (max-width: 767px) {
    br.pc {
        display: none;
    }
    br.sp {
        display: inline;
    }
}

/***** アーカイブページ class pl002 *****/
.pl002 {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 30px;
    padding: 0 10% 80px;
    justify-content: center;
    align-items: flex-start;
    margin-inline: calc(50% - 50vw);
}
body:has(.pl002) .hl001 {
    margin-bottom: 80px;
}
@media (max-width: 1029px) {
    .pl002 {
        display: flex;
        align-items: center;
        flex-direction: column;
        margin-inline: 0;
        padding: 0 15px 50px;
    }
    body:has(.pl002) .hl001 {
        margin-bottom: 50px;
    }
}

.pl002 > .pagination {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
}

/***************************************
// 投稿系装飾
***************************************/

/***** お役立ちコラム class post_list *****/
.post_list {
    width: 100%;
    max-width: 1000px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px;
    flex-wrap: wrap;
    align-items: stretch;
    margin-left: auto;
    margin-right: auto;
}
.post_list .item {
    width: 100%;
}
.post_list .item a {
    display: flex;
    height: 100%;
    flex-direction: column;
    background-color: #fff;
    border-radius: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    container-type: inline-size;
    color: #333;
}
.post_list .item a .image_contents {
    position: relative;
    overflow: hidden;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    z-index: 1;
    flex-shrink: 0;
}
.post_list .item a .image_contents::before {
    content: "";
    position: absolute;
    top: 100%;
    right: 100%;
    width: 200%;
    height: 200%;
    transform: rotate(45deg);
    background-color: var(--main-color);
    z-index: -1;
    transition: 0.4s;
    opacity: 0.2;
}
.post_list .item a:hover .image_contents::before {
    top: 50%;
    right: 50%;
    translate: 50% -50%;
}
.post_list .item a img {
    display: block;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    width: 100%;
    height: 100%;
    transition: 0.2s;
}
.post_list .item a:hover img:not([src*="logo_light.svg"]) {
    transform: scale(1.05);
}
.post_list .item a img[src*="logo_light.svg"] {
    object-fit: contain;
    padding: 10%;
}
.post_list .item a .text_contents {
    border-top: 1px solid #ccc;
    padding: 15px;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
}

.post_list .item a .text_contents .title {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
}
.post_list .item a .text_contents .btn_border {
    color: #333;
    border: 1px solid #ccc;
    border-radius: 100vh;
    padding: 0.5em 2.5em;
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-inline: auto;
}
.post_list .item a .text_contents .btn_border::after {
    content: "→";
    display: block;
    color: var(--main-color);
    transition: 0.2s;
}
.post_list .item a:hover .text_contents .btn_border::after {
    translate: 5px 0;
}

@media (max-width: 1029px) {
    .post_list {
        grid-template-columns: 1fr 1fr;
    }
    .post_list .item {

    }
    .post_list .item a .text_contents .title {
        font-size: 18px;
    }
}


@media (max-width: 767px) {
    .post_list {
        grid-template-columns: 100%;
        gap: 30px 0;
    }

    .post_list .item a .text_contents .title {
        font-size: 16px;
    }
}


.post_content .scroll_table {
    width:100% !important;
    max-width: 100%;
    overflow-x: auto;
    margin-bottom: 0.5em;
}
.post_content .scroll_table table {
    width: 100%;
}

.post_content table th {
    padding: 10px;
    border: 1px solid #ccc;
    background: #fff6e8;
}
.post_content table td {
    padding: 10px;
    border: 1px solid #ccc;
}

@media (max-width: 767px) {
    .post_content table th {
        white-space: nowrap;
    }
    .post_content table td {
        white-space: nowrap;
    }

}

/***** お客様の声 class voice_list *****/
.voice_list {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 0;
}
.voice_list > div {
    width: calc(50% - 40px);
    margin-inline: 20px;
}
.voice_list > div a {
    display: block;
    border: 1px solid #ccc;
    border-radius: 20px;
    overflow: hidden;
    color: #333;
    container-type: inline-size;
}
.voice_list > div a .image_contents {
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    overflow: hidden;
}
.voice_list > div a .image_contents img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center;
    transition: 0.2s;
}
.voice_list > div a:hover .image_contents img {
    transform: scale(1.05);
}
.voice_list > div a .image_contents img[src*="logo_light.svg"] {
    object-fit: contain;
    padding: 7.5%;
}
.voice_list > div a .text_contents {
    border-top: 1px solid #ccc;
    padding: 20px 30px;
}
.voice_list > div a .text_contents .title {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 5px;
    line-height: 1.5;
}
.voice_list > div a .text_contents .company {
    color: var(--main-color);
    line-height: 1.5;
    margin-bottom: 5px;
}
@media (max-width: 767px) {
    .voice_list > div {
        width: 100%;
    }
    .voice_list > div a .text_contents {
        padding: 15px;
    }
    .voice_list > div a .text_contents .title {
        font-size: 18px;
    }
}

/***** 資料一覧 class docs_list *****/
.docs_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 40px 0;
    margin-bottom: 50px;
}
/*
.docs_list > div:first-child,
.docs_list > div:nth-child(2) {
    width: calc(50% - 20px);
}
*/
.docs_list > div {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    background-color: #fff;
    border-radius: 20px;
    width: calc(33.33333% - 20px);
    margin-inline: 10px;
}
.docs_list > div a {
    display: block;
    color: #333;
    container-type: inline-size;
}
.docs_list > div .image_contents {
    position: relative;
    overflow: hidden;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    z-index: 1;
}
.docs_list > div .image_contents::before {
    content: "";
    position: absolute;
    top: 100%;
    right: 100%;
    width: 200%;
    height: 200%;
    transform: rotate(45deg);
    background-color: var(--main-color);
    z-index: -1;
    transition: 0.4s;
    opacity: 0.2;
}
.docs_list > div a:hover .image_contents::before {
    top: 50%;
    right: 50%;
    translate: 50% -50%;
}
.docs_list > div .image_contents img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: contain;
    padding: 10%;
    filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3));
}
.docs_list > div .text_contents {
    padding: 15px 30px 30px;
    border-top: 1px solid #ccc;
}
.docs_list > div .name {
    font-size: calc(21 / 327 * 100cqi);
    font-weight: bold;
    line-height: 1.4;
}
.docs_list > div .btn_docs {
    font-size: calc(20 / 500 * 100cqi);
}
.btn_docs {
    display: flex;
    align-items: center;
    font-weight: bold;
    border: 1px solid #ccc;
    border-radius: 100vh;
    padding: 0.75em 2.75em;
    margin-top: 15px;
    width: fit-content;
    margin-inline: auto;
}
.btn_docs::before {
    content: url(../images/common/icon_download.svg);
    display: block;
    width: 1.5em;
    aspect-ratio: 27 / 25;
    height: 100%;
    margin-right: 0.75em;
    filter: invert(49%) sepia(97%) saturate(745%) hue-rotate(127deg)
        brightness(99%) contrast(102%);
}
.docs_list > div a .btn_docs::before {
    transition: 0.2s;
}
.docs_list > div a:hover .btn_docs::before {
    transform: translateY(5px);
}

@media (max-width: 1029px) {

    .docs_list > div .text_contents {
        padding: 15px 15px 15px;
    }
}

@media (max-width: 767px) {
    .docs_list {
        gap: 20px 0;
    }
    .docs_list > div {
        width: calc(100% - 60px);
        margin-inline: auto;
    }
    .docs_list > div .text_contents {
        padding: 15px;
    }
}


/* *************************************
// ページネーション
************************************* */
.pagination ul {
	display: flex;
	justify-content: center;
	margin-top: 30px;
}
.pagination li {
	margin: 0 5px;
	border: none;
}
.pagination li > a,
.pagination li > span {
	padding: 5px 10px;
    border-radius: 5px;
}
.pagination li > a {
	border: 1px solid var(--main-color);
	color: #000;
	background: #fff;

}
.pagination li > .page-numbers.current {
	border: 1px solid var(--main-color);
	color: #fff;
	background: var(--main-color);
}
.pagination li > a:hover,
.pagination li > a:focus {
	background: var(--main-color);
	color: #fff;
}



/* *************************************
// ヘッダー
************************************* */
.header.h001 {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: transparent;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    padding: 10px 20px;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.9);
    background-color: rgba(255, 255, 255, 0.9);
}
#container:has(.lp) .header.h001 {
    display: none;
}
#container:has(.lp.thanks) .header.h001 {
    display: block;
}

.h001.header #inner-header {
    align-items: center;
}

.h001.header .menu_box {
    background-color: transparent;
    justify-content: flex-end;
    overflow: hidden;
    visibility: visible;
    opacity: 1;
}
.h001.header .menu_box nav.sp {
    display: none;
}
.h001.header .menu_box nav.pc {
    display: block;
}
.h001.header .menu_box nav ul {
    align-items: center;
}

.h001.header .menu_box nav ul li a {
    position: relative;
    padding: 0.75em 1em;
    font-weight: bold;
}
.h001.header .menu_box nav ul li a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 10%;
    width: 80%;
    height: 3px;
    background-color: var(--main-color);
    transition: 0.3s ease;
    transform-origin: left;
    transform: scaleX(0);
}
.h001.header .menu_box nav ul li.btn a {
    border-radius: 100vh;
    border: 1px solid var(--main-color);
    margin-inline: 0.5em;
    transition: 0.2s;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.15), 0 0 15px rgba(0, 0, 0, 0.1);
    padding: 0.5em 1em;
}
.h001.header .menu_box nav ul li.btn a::after {
    content: none;
}
.h001.header .menu_box nav ul li.btn a:hover {
    opacity: 0.75;
}
.h001.header .menu_box nav ul li.btn.green a {
    background-color: var(--main-color);
    color: #fff;
}
.h001.header .menu_box nav ul li.btn.white a {
    background-color: #fff;
    color: var(--main-color);
}
.h001.header .menu_box nav ul li a:hover::after {
    transform: scaleX(1);
}
.h001.header .menu_box nav ul li:has(ul.sub-menu) {
    position: relative;
}
.h001.header .menu_box nav ul li ul.sub-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
    padding: 10px;
    white-space: nowrap;
    border: 3px solid var(--main-color);
    opacity: 0;
    transition: 0.3s;
    transform-origin: top;
    visibility: hidden;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu {
    opacity: 1;
    visibility: visible;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu li {
    position: relative;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu li::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 5%;
    width: 90%;
    border-top: 1px dashed #ccc;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu li:last-child::after {
    content: none;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu li a {
    transition: 0.2s;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu li a:hover {
    opacity: 0.6;
}
.h001.header .menu_box nav ul li:hover ul.sub-menu li a::after {
    content: none;
}
.h001.header .menu_box nav ul li ul.sub-menu::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 50%;
    width: 15px;
    height: 15px;
    background-color: var(--main-color);
    transform: translateX(-50%);
    clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

.h001.header .menu_box nav ul.archive-menu {
    position: absolute;
    width: auto;

    opacity: 0;
    visibility: hidden;
    background: #fff;
    transition: all 0.3s;
    padding: 20px;
    display: flex;
    flex-wrap: wrap;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.15), 0 0 15px rgba(0, 0, 0, 0.1);
    width: calc(250px * 2 + 40px);
    border-radius: 20px;
}
.h001.header .menu_box nav li:hover ul.archive-menu {
    opacity: 1;
    visibility: visible;
}

.h001.header .menu_box nav ul.archive-menu > li {
    width: 250px;
}  
.h001.header .menu_box nav ul.archive-menu > li > a {
    text-align: left;
    transition: opacity 0.3s;
}  
.h001.header .menu_box nav ul.archive-menu > li > a:before {
    content: "-";
    display: inline;
    margin-right: 0.5em;
}
.h001.header .menu_box nav ul.archive-menu > li > a:after {
    display: none;
}
.h001.header .menu_box nav ul.archive-menu > li > a:hover {
    opacity: 0.5;
}

.h001.header .menu_box ul.global_sub_menu {
    justify-content: flex-end;
    margin-bottom: 10px;
}

.h001.header .menu_box ul.global_sub_menu li a {
    padding: 0 1em;
    font-weight: normal;
}
.h001.header .menu_box ul.global_sub_menu li a:after {
    display: none;
}

.h001.header .logo a {
    display: block;
    font-size: 14px;
    font-weight: normal;
}
.h001.header .logo a > span {
    padding: 0 5px;
}
.h001.header .logo a img {
    height: 60px;
    width: auto;
    display: block;
    object-fit: contain;
}

@media (max-width: 1279px) {

    .h001.header .menu_box {
        background: #fff;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        overflow-y:auto;
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px);
        padding-inline: 15px;
        filter: blur(5px);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.2s, filter 0.2s;
        padding-top: 120px;
        padding-bottom: 60px;
        pointer-events: none;
    }
    .h001.header:has(.menu.open) .menu_box {
        filter: blur(0);
        opacity: 1;
        visibility: visible;
        pointer-events: all;
    }
    .h001.header .menu_box nav.sp {
        display: grid;
    }
    .h001.header .menu_box nav.pc {
        display: none;
    }
    .h001.header .menu_box nav {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 60px;
    }

    .h001.header .menu_box nav ul li {
        border: none;
    }

    .h001.header .menu_box nav ul.archive-menu {
        position: static;
        visibility: visible;
        opacity: 1;
        background: #fff;
        display: block;
        box-shadow:none;
        width: auto;
        border-radius: 0;
        padding: 0;
    }

    .h001.header .menu_box nav ul li a::after {
        display: none;
    }

    .h001.header .menu_box nav ul{
        border: none;
    }


    .h001.header .menu_box nav .btn_contents {
        grid-column: 1 / 3;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }
    .h001.header .menu_box nav .btn_contents div[class^="btn_"] a {
        width: 100%;
        justify-content: center;
        max-width: 400px;
        margin: auto;
    }
}


@media (max-width: 767px) {
    .header.h001 {
        width: 100%;
        top: 0;
        left: 0;
        border-radius: 0;
        padding: 0;
        border: none;
        background-color: transparent;
        backdrop-filter: none;
    }
    .h001.header .logo a {
        font-size: 10px;
        line-height: 1;
    }
    .h001.header .logo a > span {
        height: 10px;
        display: block;
        padding-left: 48px;
    }
    .h001.header #inner-header {
        padding: 0;
    }
    .h001.header #inner-header .logo {
        position: relative;
        z-index: 100;
        padding: 5px 60px 0px 10px;
        background-color: rgba(255, 255, 255, 0.85);
        border-color: rgba(255, 255, 255, 0.85);
        box-shadow: 0 0 10px rgba(5, 37, 48, 0.1), 0 0 30px rgba(5, 37, 48, 0.1);
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px);
        height: auto;
        height: 60px;
    }
    .h001.header .logo a img {
        height: 40px;
        width: auto;
    }

    .h001.header .menu {
        right: 0;
    }

    body:has(.menu.open) {
        overflow: hidden;
    }
    .h001.header:has(.menu.open) .menu_box {
        padding-top: 70px;
    }

    .h001.header .header_box + .menu_box::before {
        content: "";
        position: absolute;
        inset: 0;
        background-color: var(--main-color);
        opacity: 0.9;
        z-index: -1;
    }
    .h001.header .menu_box nav.sp {
        display: block;
        width: 100%;
    }

    .h001.header .menu_box nav ul {
        border: none;
    }
    .h001.header .menu_box nav ul.global-nav > li {
        border: none;
        border-bottom: 1px solid #333!important;
    }
    .h001.header .menu_box nav ul > li.btn,
    .h001.header .menu_box nav ul > li:last-child {
        border-bottom: none;
    }
    .h001.header .menu_box nav ul > li:not(.btn) + li.btn {
        margin-top: 30px;
    }
    .h001.header .menu_box nav ul > li.btn {
        margin: 15px 0;
    }
    .h001.header .menu_box nav ul > li.btn a {
        text-align: center;
    }
    .h001.header .menu_box nav ul li a {
        padding: 10px 0;
    }
    .h001.header .menu_box nav ul li:has(ul.sub-menu) a {
        padding-bottom: 0.25em;
    }
    .h001.header .menu_box nav ul li a::after {
        content: none;
    }
    .h001.header .menu_box nav ul li ul.sub-menu {
        position: static;
        visibility: inherit;
        opacity: 1;
        transform: none;
        background-color: transparent;
        border: none;
        border-radius: 0;
        box-shadow: none;
        padding: 0;
        backdrop-filter: none;
        font-size: 16px;
        margin-bottom: 5px;
    }
    .h001.header .menu_box nav ul li ul.sub-menu::before {
        content: none;
    }
    .h001.header .menu_box nav ul li ul.sub-menu li a {
        display: flex;
        align-items: center;
        gap: 0.5em;
        font-weight: normal;
        padding: 7px 32px;
        font-size: 14px;
    }
    .h001.header .menu_box nav ul li ul.sub-menu li a::before {
        content: "";
        display: block;
        width: 0.5em;
        height: 1em;
        background-color: var(--main-color);
        clip-path: polygon(0 0, 0% 100%, 100% 50%);
    }

    .h001.header .menu_box nav ul.archive-menu {
        display: flex;
        flex-wrap: wrap;
        font-size: min(3.5vw, 14px);
    }
    .h001.header .menu_box nav ul.archive-menu > li {
        width: 50%;
    }

    .h001.header .menu_box nav ul:nth-child(2) {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 10px;
        margin-top: 15px;
    }
    .h001.header .menu_box nav ul:nth-child(2) li {
        width: 100%;
    }

    .h001.header .menu_box nav .btn_contents {
        margin-top: 40px;
        grid-template-columns: 100%;
        gap: 15px;
    }
}

/* *************************************
// メインビジュアル
************************************* */
#main_visual {
    position: relative;
    background-color: var(--main-color);
    z-index: 1;
    overflow: hidden;
}
#main_visual::before {
    content: "";
    position: absolute;
    top: 5%;
    right: 0;
    width: 50vw;
    height: 50vw;
    background-color: #fff;
    border-radius: 50%;
    translate: 40% 0;
    opacity: 0.4;
    z-index: -1;
}
#main_visual .two_in_one {
    padding-left: 5%;
    padding-right: 2%;
}
#main_visual .text_contents {
    container-type: inline-size;
    width: 60%;
    color: #fff;
    padding: 7.5% 0 calc(7.5% + 50px);
    text-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
#main_visual .text_contents .title {
    margin-bottom: 30px;
}
#main_visual .text_contents .title h1 {
    font-size: calc(50 / 780 * 100cqi);
    font-weight: bold;
    line-height: 1.5;
}
#main_visual .text_contents .text {
    font-size: 18px;
    margin-bottom: 30px;
}
#main_visual .text_contents .btn_contents {
    font-size: 18px;
    display: flex;
    gap: 30px;
    justify-content: flex-start;
}
#main_visual .image_contents {
    width: 40%;
    display: flex;
    align-items: center;
}
#main_visual .image_contents {
}

@media (max-width: 1029px) {

    #main_visual .text_contents .btn_contents {
        flex-wrap: wrap;
    }
    #main_visual .text_contents .btn_contents a {
        width: 280px;
        justify-content: center;
    }
}

@media (max-width: 767px) {
    #main_visual .two_in_one {
        padding: 0;
        flex-direction: column-reverse;
    }
    #main_visual .text_contents {
        width: 100%;
    }
    #main_visual .image_contents {
        width: 100%;
        padding-top: 20px;
    }
    #main_visual .text_contents .title {
        margin-bottom: 15px;
    }
    #main_visual .text_contents .title h1 {
        text-align: center;
    }
    #main_visual .text_contents .text {
        text-align: center;
        font-size: 16px;
    }
    #main_visual .text_contents .btn_contents {
        font-size: 16px;
        flex-direction: column;
        align-items: center;
        gap: 15px;
        width: 80%;
        max-width: 250px;
        margin-inline: auto;
    }
    #main_visual .text_contents .btn_contents > div {
        width: 100%;
    }
    #main_visual .text_contents .btn_contents a {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* *************************************
// トップバナー
************************************* */
#top_banner {
    position: relative;
    z-index: 1;
    margin-top: -50px;
}
#top_banner::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: calc(100% - 50px);
    background-color: #f8f8f8;
    z-index: -1;
}
#top_banner .contents .item {
    margin: 0 10px;
}
#top_banner .contents .item a {
    display: block;
    background-color: #fff;
    border-radius: 15px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}
#top_banner .contents .item a img {
    display: block;
    aspect-ratio: 21 / 9;
    object-fit: cover;
    background-color: #ccc;
}

@media (max-width: 767px) {
    #top_banner .contents .item {
        margin-inline: 5px;
    }
    #top_banner .contents .item a {
        border-radius: 10px;
    }
}

/* *************************************
// サポート
************************************* */
#top_support2 {
    padding-top: 10%;
    background-color: #f8f8f8;
    position: relative;
    z-index: 1;
}
#top_support2 .detail .title {
    margin-bottom: 30px;
}
#top_support2 .detail h2 {
    font-size: 40px;
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
#top_support2 .detail .text_contents {
    container-type: inline-size;
    width: 50%;
    padding-right: 5%;
    padding-bottom: 5%;
}


#top_support2 .detail .text_contents .text {
    margin-bottom: 30px;
}
#top_support2 .detail .image_contents {
    width: 50%;
    align-self: flex-end;
}
#top_support2 .detail .image_contents img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

#top_support2 .logo {
    font-size: 15px;
    margin-bottom: 10px;
}
#top_support2 .logo img {
    width: 300px;
    height: auto;
    display: block;
}


#top_support .contents {
    background-color: #fff;
    max-width: 100%;
    width: 100%;
    margin-inline: auto;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
    padding: 80px 50px;
}
#top_support .contents .catch {
    container-type: inline-size;
    margin-bottom: 30px;
}
#top_support .contents .catch h2 {
    position: relative;
    font-size: calc(35 / 1100 * 100cqi);
    width: fit-content;
    text-align: center;
    font-weight: bold;
    padding: 0 1.25em 5px;
    margin-inline: auto;
}
#top_support .contents .catch h2::before,
#top_support .contents .catch h2::after {
    content: "";
    position: absolute;
    top: 0;
    width: 1px;
    height: 90%;
    background-color: #000;
}
#top_support .contents .catch h2::before {
    left: 0;
    transform: skewX(20deg);
}
#top_support .contents .catch h2::after {
    right: 0;
    transform: skewX(-20deg);
}
#top_support .contents .text {
    text-align: center;
    margin-bottom: 50px;
}
#top_support .contents .top_service_list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    margin-bottom: 50px;
    gap: 40px 60px;
    max-width: 1200px;
    margin: 0 auto 50px;
}
#top_support .contents .top_service_list .item {
    width: 100%;
}
#top_support .contents .top_service_list .item a {
    position: relative;
    display: block;
    container-type: inline-size;
    color: var(--text-color);
}
#top_support .contents .top_service_list .item a .image {
    overflow: hidden;
    border-radius: 20px;
    margin-bottom: 10px;
}
#top_support .contents .top_service_list .item a img {
    display: block;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: 0.2s;
}
#top_support .contents .top_service_list .item a:hover img {
    opacity: 0.7;
}
#top_support .contents .top_service_list .item a .name {
    width: 100%;
    line-height: 1.5em;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    transition: 0.2s;
}
#top_support .contents .top_service_list .item a .name > span {
    font-size: 80%;
}
#top_support .contents .top_service_list .item a .name > span:first-child {
    color: var(--main-color);
}
#top_support .contents .top_service_list .item a:hover .name {
    opacity: 1;
    filter: blur(0);
}
#top_support .contents .btn_yellow a {
    margin-inline: auto;
}

@media (max-width: 1029px) {

    #top_support2 .detail .text_contents,
    #top_support2 .detail .image_contents {
        width: 100%;
        padding-left: 0;
        padding-right: 0;
    }
    #top_support2 .detail .image_contents > img {
        width: 80%;
        margin: auto;
    }


    #top_support .contents .top_service_list {
        grid-template-columns: 1fr 1fr;
    }
    #top_support .contents .top_service_list .item a .image {
        width: 70%;
        margin: 0 auto 10px;
    }
}

@media (max-width: 767px) {
    #top_support2 .detail .text_contents {
        width: 100%;
        margin-bottom: 30px;
    }
    #top_support2 .detail .image_contents {
        width: 75%;
        margin-inline: auto;
    }
    #top_support2 {
        padding-top: 20%;
    }
    #top_support2 .detail .text_contents .title {
        margin-bottom: 15px;
    }
    #top_support2 .detail .text_contents h2 {
        text-align: center;
    }
    #top_support2 .detail .text_contents .text {
        text-align: justify;
    }
    #top_support2 .detail .image_contents > img {
        width: 100%;
    }
    #top_support .contents {
        padding: 30px 15px;
    }
    #top_support .contents .catch h2 {
        font-size: calc(21 / 307.5 * 100cqi);
    }
    #top_support .contents .catch h2::before,
    #top_support .contents .catch h2::after {
        height: 80%;
        top: auto;
        bottom: 0;
    }
    #top_support .contents .catch h2::before {
        transform: skewX(15deg);
    }
    #top_support .contents .catch h2::after {
        transform: skewX(-15deg);
    }
    #top_support .contents .text {
        margin-bottom: 30px;
    }
    #top_support .contents .top_service_list {
        gap: 40px 0;
        justify-content: center;
        grid-template-columns: 100%;
    }
    #top_support .contents .top_service_list .item {
        width: calc(100% - 20px);
    }

    #top_support2 .logo {
        text-align: center;
        font-size: 14px;
    }
    #top_support2 .logo img {
        margin: auto;
        width: 200px;
    }
    #top_support2 .detail h2 {
        font-size: 25px;
        text-align: center;
    }
}

/* *************************************
// 無料セミナー
************************************* */
#top_seminar {
    padding: 100px 0;
}
#top_seminar .two_in_one {
    align-items: center;
}
#top_seminar .image_contents {
    padding-right: 5%;
}
#top_seminar .image_contents img {
    background-color: #ccc;
    border-radius: 20px;
    display: block;
}
#top_seminar .text_contents {
    container-type: inline-size;
}
#top_seminar .text_contents .title {
    margin-bottom: 30px;
}
#top_seminar .text_contents .title h2 {
    font-size: calc(35 / 520 * 100cqi);
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
#top_seminar .text_contents .text {
    margin-bottom: 30px;
}
@media (max-width: 767px) {
    #top_seminar {
        padding: 50px 0;
    }
    #top_seminar .image_contents {
        padding: 0 15px;
        margin-bottom: 30px;
    }
    #top_seminar .text_contents {
        padding-inline: 15px;
    }
}

/* *************************************
// お役立ちコラム
************************************* */
#top_column {
    position: relative;
    z-index: 1;
    padding: 80px 0;
    padding-inline: 5%;
}
#top_column::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--main-color);
    opacity: 0.05;
    z-index: -1;
}
#top_column .ttl001 {
    margin-bottom: 30px;
}
#top_column .text {
    margin-bottom: 50px;
}
#top_column .contents h3 {
    position: relative;
    font-size: calc(30 / 1352 * 100vw);
    font-weight: bold;
    color: var(--main-color);
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}
#top_column .contents h3::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 0.5em);
    width: 100vw;
    height: 1px;
    background-color: var(--main-color);
}
#top_column .post_list {
    max-width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px;
}
#top_column .post_list > div {
    width: 100%;
}
#top_column .post_list .item a .text_contents .title {
    font-size: 20px;
}
#top_column .btn_yellow {
    margin-top: 50px;
}
#top_column .btn_yellow a {
    margin-inline: auto;
    font-size: 18px;
    padding: 0.75em 3em;
}
@media (max-width: 767px) {
    #top_column {
        padding: 50px 5%;
    }
    #top_column .post_list {
        grid-template-columns: 100%;
    }

    #top_column .text {
        text-align: center;
    }
    #top_column .contents h3 {
        font-size: clamp(24px, calc(24 / 375 * 100vw), 32px);
    }
}

/* *************************************
// お客様の声
************************************* */
#top_voice {
    position: relative;
    z-index: 1;
    padding-bottom: 80px;
}
#top_voice::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 30%;
    height: 100%;
    background-color: var(--main-color);
    opacity: 0.1;
    z-index: -1;
}
#top_voice .detail_contents {
    padding: 100px 0 180px;
    background-color: var(--main-color);
}
#top_voice .detail_contents .text {
    color: #fff;
}
#top_voice .detail_contents .two_in_one {
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
}
#top_voice .detail_contents .ttl001 {
    margin-bottom: 30px;
}

#top_voice .detail_contents .two_in_one > div {
    width: auto;
}

#top_voice .detail_contents .text {
}
#top_voice .detail_contents .btn_white > a {
    white-space: nowrap;
}
#top_voice .contents {
    margin-top: -130px;
}
#top_voice .contents .slick-list {
    overflow: visible;
}
#top_voice .contents .item a {
    display: block;
    background-color: #fff;
}
#top_voice .contents .item {
    padding: 0 0.25%;
}
#top_voice .contents .item a img {
    display: block;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    width: 100%;
    height: 100%;
}
#top_voice .contents .item a img[src*="logo_light.svg"] {
    object-fit: contain;
    padding: 10%;
}

#top_voice .contents .item .description,
#top_voice .contents .item .arrow {
    display: none;
}

@media (max-width: 767px) {
    #top_voice .detail_contents {
        padding-top: 50px;
    }
    #top_voice .detail_contents .two_in_one {
        flex-direction: column;
    }
    #top_voice .detail_contents .text {
        text-align: left;
    }
    #top_voice .detail_contents .two_in_one > div.btn_white {
        display: none;
    }
}

/* *************************************
// 資料ダウンロード
************************************* */
#top_docs {
    position: relative;
    padding: 150px 0 100px;
    z-index: 1;
}
#top_docs::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 30%;
    height: 100%;
    background-color: var(--main-color);
    opacity: 0.1;
    z-index: -1;
}
#top_docs .ttl001 h2 {
    text-align: center;
}
#top_docs .btn_yellow a {
    margin-inline: auto;
    font-size: 18px;
}
@media (max-width: 767px) {
    #top_docs {
        padding: 80px 0 50px;
    }
}

/* *************************************
// お問い合わせ
************************************* */
#footer_contact {
    position: relative;
    z-index: 1;
    padding: 80px 0;
}
#footer_contact > img.bg {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
    object-position: center right;
}
#footer_contact::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: 0.5;
    z-index: -1;
}
#footer_contact .ttl001 {
    margin-bottom: 30px;
}
#footer_contact .ttl001 .en,
#footer_contact .ttl001 h2 {
    color: #fff;
    text-align: center;
}
#footer_contact .text {
    color: #fff;
    text-align: center;
    margin-bottom: 50px;
}
#footer_contact .contents {
    background-color: #fff;
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    margin-inline: auto;
    width: 850px;
    max-width: 95%;
}
#footer_contact .contents .two_in_one {
    align-items: center;
}

@media (max-width: 1029px) {
    #footer_contact .contents .two_in_one {
        gap: 15px 0;
    }
    #footer_contact .contents .two_in_one > div {
        width: 100%;
    }

}

@media (max-width: 767px) {
    #footer_contact {
        padding: 50px 0;
    }
    #footer_contact .text {
        margin-bottom: 30px;
    }
    #footer_contact .contents {
        padding: 30px 15px;
    }
}

/* *************************************
// スマホ Fixメニュー
************************************* */
.fix_menu {
    display: none;
}
@media (max-width: 767px) {
    .fix_menu {
        position: fixed;
        display: block;
        bottom: 0;
        left: 0;
        width: 100%;
        z-index: 99;
        background-color: #fff;
        box-shadow: 0 -2px 5px rgba(5, 37, 48, 0.1);
        transition: transform 0.3s ease-in-out;
    }
    body.home .fix_menu {
        transform: translateY(100%);
    }
    .fix_menu .three_in_one > div {
        position: relative;
        width: calc(100% / 2);
        line-height: 1.5;
    }
    .fix_menu .three_in_one > div a {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
        font-weight: bold;
        font-size: 14px;
        padding: 5px 10px;
        color: #333;
    }
    .fix_menu .three_in_one > div:first-child a {
        background-color: var(--main-color);
        color: #fff;
    }
    .fix_menu .three_in_one > div:nth-child(2) a {
        background-color: var(--sub-color);
    }
}


/* *************************************
// フッター
************************************* */
.footer.f001 {
    position: relative;
    background-color: #333;
    z-index: 2;
    box-shadow: none;
}
.footer.f001 #inner-footer {
    flex-wrap: wrap;
}
.footer.f001 #inner-footer .company_info {
    box-shadow: none;
    width: 400px;
    max-width: 100%;
}
.footer.f001 #inner-footer .company_info .logo {
    width: 300px;
}
.footer.f001 #inner-footer .company_info .text {
}
.footer.f001 #inner-footer .company_info .text a {
    color: #fff;
}
.footer.f001 #inner-footer .company_info .text p {
    margin-bottom: 15px;
    color: #fff;
}
.footer.f001 #inner-footer nav {
    width: auto;
    margin-left: 50px;
}
.footer.f001 #inner-footer nav > ul {
    width: fit-content;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    height: calc((1.5em + 10px) * 6);
    gap: 0 50px;
}
.footer.f001 #inner-footer nav ul > li {
    line-height: 1.5;
    margin: 5px 0;
}
.footer.f001 #inner-footer nav ul > li a {
    display: flex;
    align-items: center;
    gap: 10px;
    transition: 0.2s;
}
.footer.f001 #inner-footer nav ul > li a:hover {
    opacity: 0.6;
    text-decoration: underline;
}
.footer.f001 #inner-footer nav ul > li a::before {
    content: "";
    display: block;
    width: 5px;
    height: 1px;
    background-color: #fff;
}
.footer.f001 #inner-footer nav ul > li a {
    padding: 0;
}
.footer.f001 #inner-footer nav ul > li ul.sub-menu  {
    margin-left: 15px;
}
.footer.f001 #inner-footer nav ul > li ul.sub-menu > li {
    padding: 0;
}
.footer.f001 #inner-footer nav ul > li ul.sub-menu > li:last-child {
    margin-bottom: 0;
}
.footer.f001 #inner-footer nav ul > li ul.sub-menu > li a::before {
    margin: 0;
    width: 5px;
    height: 5px;
    background-color: #fff;
    border-radius: 50%;
}
.f001 .copyright {
    padding: 7px 0;
}

@media (max-width: 1279px) {
    .footer.f001 #inner-footer nav {
        display: none;
    }

}


@media (max-width: 767px) {
    .footer.f001 #inner-footer .company_info .logo {
        margin-inline: auto;
    }
    .footer.f001 #inner-footer .company_info .text {
        text-align: center;
        font-size: 14px;
    }
    .f001 nav {
        display: none;
    }
    .f001 .copyright {
        font-size: 12px;
    }
}

/******************************
* サービス紹介
******************************/


#service_items > .item {
    margin: 200px 0;
}
#service_items > .item:first-child {
    margin-top: 80px;
}
#service_items > .item:last-child {
    margin-bottom: 80px;
}
#service_items > .item:nth-child(odd) {
    margin-right: calc(50% - 50vw);
    padding-right: 5%;
}
#service_items > .item:nth-child(even) {
    margin-left: calc(50% - 50vw);
    padding-left: 5%;
}
#service_items > .item:nth-child(even) .two_in_one {
    flex-direction: row-reverse;
}
#service_items .item .text_contents {
    container-type: inline-size;
    width: 55%;
}
#service_items .item .catch {
    font-size: 20px;
    font-weight: bold;
    color: var(--main-color);
}
#service_items .item h2 {
    font-size: min(calc(40 / 606 * 100cqi), 40px);
    font-weight: bold;
    margin-bottom: 30px;
}
#service_items .item .text_contents > div:not(.title) {
    padding-left: 15px;
}
#service_items .item .text_contents .text {
    margin-bottom: 30px;
}
#service_items > .item:nth-child(odd) .text_contents {
    padding-right: 50px;
}
#service_items > .item:nth-child(even) .text_contents {
    padding-left: 50px;
}
#service_items .item .text_contents .btn_yellow a {
    display: flex;
    align-items: center;
    font-weight: bold;
    gap: 10px;
}
#service_items .item .text_contents .btn_yellow a::after {
    content: "→";
    display: block;
}
#service_items .item .image_contents {
    width: 45%;
}
#service_items .item .image_contents img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 15px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1), 0 0 15px rgba(0, 0, 0, 0.1);
    background-color: #ccc;
}
@media (max-width: 767px) {
    #service_items > .item {
        margin: 80px 0;
    }
    #service_items > .item:first-child {
        margin-top: 0;
    }
    #service_items > .item:nth-child(odd) {
        margin-right: 0;
        padding-right: 0;
    }
    #service_items > .item:nth-child(even) {
        margin-left: 0;
        padding-left: 0;
    }
    #service_items > .item .two_in_one {
        flex-wrap: wrap-reverse;
    }
    #service_items .item .text_contents {
        width: 100%;
    }
    #service_items .item .image_contents {
        width: 100%;
        margin-bottom: 30px;
    }
    #service_items .item .image_contents img {
        aspect-ratio: 3 / 2;
    }
    #service_items .item h2 {
        font-size: clamp(30px, calc(30 / 375 * 100vw), 32px);
        margin-bottom: 15px;
    }
    #service_items > .item:nth-child(odd) .text_contents,
    #service_items > .item:nth-child(even) .text_contents {
        padding-inline: 15px;
    }
    #service_items .item .text_contents > div:not(.title) {
        padding: 0;
    }
    #service_items .item .text_contents .btn_yellow a {
        padding-inline: 1.5em;
    }
}

/******************************
* よくあるご質問
******************************/

#faq_contents .item {
    margin-bottom: 50px;
    container-type: inline-size;
}
#faq_contents > .item:last-child {
    margin-bottom: 0;
}
#faq_contents .item .question {
    font-size: calc(25 / 1040 * 100cqi);
    font-weight: bold;
    display: flex;
    gap: 15px;
    border-bottom: 1px solid #ccc;
    padding-inline: 15px;
    padding-bottom: 10px;
    margin-bottom: 25px;
}
#faq_contents .item .question::before {
    content: "Q";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5em;
    height: 1.5em;
    min-width: 1.5em;
    min-height: 1.5em;
    background-color: var(--main-color);
    color: #fff;
    border-radius: 10px;
    font-size: 110%;
    margin-top: calc(1.8em / 2);
    margin-bottom: calc(-1.8em / 2);
    transform: translateY(-50%);
    padding-bottom: 5px;
}
#faq_contents .item .answer {
    display: flex;
    gap: 15px;
    padding-inline: 15px;
}
#faq_contents .item .answer::before {
    content: "A";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5em;
    height: 1.5em;
    min-width: 1.5em;
    min-height: 1.5em;
    border: 1px solid var(--main-color);
    color: var(--main-color);
    border-radius: 10px;
    font-size: calc((25 / 1040 * 100cqi) * 1.1);
    margin-top: calc(1.8em / 2);
    margin-bottom: calc(-1.8em / 2);
    transform: translateY(-50%);
    font-weight: bold;
}
@media (max-width: 767px) {
    #faq_contents .item .question {
        font-size: clamp(21px, calc(21 / 375 * 100vw), 28px);
        padding-inline: 5px;
        gap: 10px;
        line-height: 1.5;
        margin-bottom: 15px;
    }
    #faq_contents .item .question::before {
        flex-shrink: 0;
    }
    #faq_contents .item .answer {
        padding-inline: 5px;
        gap: 10px;
        font-size: 14px;
    }
    #faq_contents .item .answer::before {
        font-size: clamp(21px, calc(21 / 375 * 100vw), 28px);
        flex-shrink: 0;
    }
}

/******************************
* 資料ダウンロード
******************************/

.archive .docs_list > div:first-child,
.archive .docs_list > div:nth-child(2) {
    width: calc(33.33333% - 20px);
}
@media (max-width: 767px) {
    .archive .docs_list {
        margin-bottom: 0;
    }
    .archive .docs_list > div:first-child,
    .archive .docs_list > div:nth-child(2) {
        width: calc(100% - 60px);
    }
}

/****** シングルページ ******/

#docs_contents .text_contents {
    container-type: inline-size;
    padding-right: 5%;
}
#docs_contents h3 {
    position: relative;
    font-size: calc(26 / 468 * 100cqi);
    font-weight: bold;
    width: fit-content;
    padding: 0 0.75em 5px;
    margin-bottom: 15px;
    margin-inline: auto;
}
#docs_contents h3::before,
#docs_contents h3::after {
    content: "";
    position: absolute;
    top: 0;
    width: 1px;
    height: 90%;
    background-color: #333;
}
#docs_contents h3::before {
    left: 0;
    transform: skewX(20deg);
}
#docs_contents h3::after {
    right: 0;
    transform: skewX(-20deg);
}
#docs_contents .text {
    font-size: 18px;
    text-align: center;
    font-weight: bold;
    margin-bottom: 30px;
}
#docs_contents .list_contents {
    background-color: #eee;
    border-radius: 15px;
    padding: 15px;
    margin-bottom: 15px;
}
#docs_contents .list_contents .catch {
    outline: 1px solid #fff;
    outline-offset: -2px;
    background-color: #333;
    width: fit-content;
    padding: 0.25em 1.25em;
    border-radius: 100vh;
    color: #fff;
    font-weight: bold;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}
#docs_contents .list_contents ul {
    margin-left: 15px;
}
#docs_contents .list_contents ul > li {
    position: relative;
    margin-bottom: 10px;
    padding-left: 2em;
    line-height: 1.8;
}
#docs_contents .list_contents ul > li::before {
    content: "";
    background: var(--main-color);
    width: 1.5em;
    height: 1.5em;
    position: absolute;
    left: 0;
    border-radius: 50%;
    top: calc(1.8em / 2);
    transform: translateY(-50%);
}
#docs_contents .list_contents ul > li::after {
    content: "";
    width: 1em;
    height: 0.5em;
    border-left: 4px solid #fff;
    border-bottom: 4px solid #fff;
    transform: rotate(-45deg) translate(50%, -50%);
    position: absolute;
    z-index: 1;
    left: 0;
    background-color: transparent;
    border-radius: 0;
    top: calc(1.8em / 2 + 3px);
}
#docs_contents .list_contents ul > li:last-child {
    margin-bottom: 0;
}
#docs_contents .image_contents .detail {
    text-align: center;
    font-weight: bold;
}
#main:has(#docs_contents) .hl001 .box h1 {
    margin-bottom: 5px;
}
#main:has(#docs_contents) .hl001 .box .text {
    font-size: 60%;
}
@media (max-width: 767px) {
    #docs_contents .text_contents {
        padding-right: 0;
    }
    #docs_contents h3 {
        font-size: calc(24 / 360 * 100cqi);
    }
    #docs_contents .text {
        font-size: 16px;
        line-height: 1.5;
    }
    #docs_contents .list_contents .catch {
        margin: -15px -15px 15px;
        width: calc(100% + 30px);
        text-align: center;
        padding: 0.75em 0.5em;
        border-radius: 15px;
    }
    .post_single:has(#docs_contents) .btn001 {
        display: none;
    }
}

/******************************
* セミナー
******************************/
.seminar_list {
    width: 100%;
    max-width: 1000px;
}
.seminar_list .item {
    border-bottom: 1px solid #333;
}
.seminar_list .item:last-child {
    border-bottom: none;
}
.seminar_list .item a {
    display: flex;
    align-items: center;
    gap: 20px;
    color: #333;
    padding: 15px;
}
.seminar_list .item a .image_contents {
    position: relative;
    width: 35%;
    overflow: hidden;
}
.seminar_list .item a .image_contents .seminar_end {
    position: absolute;
    inset: 0;
    background-color: rgba(50, 50, 50, 0.85);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: min(calc(24 / 1349 * 100vw), 24px);
    font-weight: bold;
    text-align: center;
    letter-spacing: 0.05em;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.seminar_list .item a .image_contents img {
    display: block;
    width: 100%;
    transition: 0.2s;
}
.seminar_list .item a:hover .image_contents img {
    transform: scale(1.05);
}
.seminar_list .item a .text_contents {
    width: 65%;
    container-type: inline-size;
}
.seminar_list .item a .text_contents .date {
    color: var(--main-color);
    font-weight: bold;
}
.seminar_list .item a .text_contents .name {
    font-size: calc(24 / 612 * 100cqi);
    font-weight: bold;
    margin-bottom: 15px;
    line-height: 1.5;
}
.seminar_list .item a .text_contents .detail {
    font-size: 14px;
}

.seminar_sidebar {
    width: 270px;
    flex-shrink: 0;
}
.seminar_sidebar h3 {
    background-color: var(--main-color);
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    padding: 5px 20px;
    outline: 1px solid #fff;
    outline-offset: -2px;
    text-align: center;
}
.seminar_sidebar ul {
    background-color: #f8f8f8;
    padding: 5px 10px;
}
.seminar_sidebar ul li {
    border-bottom: 1px dashed #aaa;
}
.seminar_sidebar ul li:last-child {
    border-bottom: none;
}
.seminar_sidebar ul li a {
    display: block;
    color: #333;
    padding: 10px 10px;
    transition: 0.2s;
}
.seminar_sidebar ul li a:hover {
    opacity: 0.5;
}
.seminar_sidebar ul li a .date {
    font-size: 14px;
    opacity: 0.75;
    color: #333;
}
.seminar_sidebar ul li a .title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 0;
    line-height: 1.5;
}
@media (max-width: 1029px) {
    .seminar_sidebar {
        width: 100%;
    }

}

@media (max-width: 767px) {
    .seminar_sidebar {
        display: none;
    }
    .seminar_list .item a {
        flex-direction: column;
    }
    .seminar_list .item a .image_contents {
        width: 100%;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.15), 0 0 15px rgba(0, 0, 0, 0.1);
    }
    .seminar_list .item a .text_contents {
        width: 100%;
    }
    .seminar_list .item a .text_contents .date {
        font-size: 14px;
    }
    .seminar_list .item a .text_contents .name {
        font-size: calc(22 / 300 * 100cqi);
        line-height: 1.5;
    }
}

/***** シングルページ ******/
.post_single:has(#seminar_contents) {
    padding: 0;
}
#main:has(#seminar_contents) .hl001 .box .text {
    font-size: 60%;
}
#main:has(#seminar_contents) .hl001 .box h1 {
    margin-bottom: 5px;
}
#seminar_contents {
    width: 100%;
    max-width: 1000px;
    container-type: inline-size;
}
#seminar_contents h2 {
    font-size: calc(24 / 833 * 100cqi);
    font-weight: bold;
    background-color: #333;
    color: #fff;
    text-align: center;
    padding: 0.5em;
    position: relative;
    outline: 1px double #fff;
    outline-offset: -2px;
    margin: 15px 0 15px;
    letter-spacing: 0.05em;
}
#seminar_contents > div {
    margin-bottom: 50px;
}
#seminar_contents > div.image_contents {
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.15), 0 0 15px rgba(0, 0, 0, 0.1);
}
#seminar_contents > div.image_contents img {
    display: block;
}
#seminar_contents .list_contents {
    background-color: #f8f8f8;
    border-radius: 15px;
    padding: 30px;
}
#seminar_contents .list_contents ul > li {
    position: relative;
    line-height: 1.8;
    margin-bottom: 15px;
    padding-left: 2em;
}
#seminar_contents .list_contents ul > li:last-child {
    margin-bottom: 0;
}
#seminar_contents .list_contents ul > li::before {
    content: "";
    background: var(--sub-color);
    width: 1.5em;
    height: 1.5em;
    position: absolute;
    left: 0;
    border-radius: 50%;
    top: calc(1.8em / 2);
    transform: translateY(-50%);
}
#seminar_contents .list_contents ul > li::after {
    content: "";
    width: 1em;
    height: 0.5em;
    border-left: 4px solid #fff;
    border-bottom: 4px solid #fff;
    transform: rotate(-45deg) translate(50%, -50%);
    position: absolute;
    z-index: 1;
    left: 0;
    background-color: transparent;
    border-radius: 0;
    top: calc(1.8em / 2 + 3px);
}
#seminar_contents .table_contents table {
    margin-inline: auto;
    border-collapse: separate;
    border-spacing: 0 10px;
    margin-bottom: 100px;
}
#seminar_contents .table_contents table th,
#seminar_contents .table_contents table td {
    padding: 0.75em 1.5em;
}
#seminar_contents .table_contents table th {
    text-align: center;
    background-color: var(--main-color);
    color: #fff;
    outline: 1px solid #fff;
    outline-offset: -2px;
    font-weight: bold;
    letter-spacing: 0.05em;
}
#seminar_contents .table_contents table td {
    background-color: #f8f8f8;
}
#seminar_contents .table_contents table td .small {
    font-size: 13px;
}
#seminar_contents .main_contents h2 {
    position: relative;
    background-color: transparent;
    color: #333;
    text-align: left;
    padding: 0;
    padding-left: 1.25em;
    padding-bottom: 0.5em;
    line-height: 1.8;
    border-bottom: 1px solid #ccc;
    margin-bottom: 30px;
}
#seminar_contents .main_contents h2::before {
    content: "";
    position: absolute;
    top: calc(1.8em / 2);
    left: 0;
    transform: translateY(-50%);
    width: 0.75em;
    height: 1em;
    background-color: var(--main-color);
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
#seminar_contents .seminar_end {
    text-align: center;
    font-size: 18px;
    margin-top: 30px;
}
#seminar_contents .seminar_end .btn001 a {
    background-color: var(--sub-color);
    color: #333;
    display: flex;
    align-items: center;
    gap: 0.5em;
    border-radius: 100vh;
    padding: 0.75em 1.75em;
    margin-top: 1em;
    font-weight: bold;
    border: none;
}
#seminar_contents .seminar_end .btn001 a::before {
    content: none;
}
#seminar_contents .seminar_end .btn001 a::after {
    content: "→";
    display: block;
}
@media (max-width: 767px) {
    #seminar_contents > div {
        margin-bottom: 30px;
    }
    #seminar_contents h2 {
        font-size: calc(20 / 330 * 100cqi);
        line-height: 1.5;
    }
    #seminar_contents .list_contents {
        padding: 20px 15px;
        font-size: 14px;
    }
    #seminar_contents .main_contents h2 {
        line-height: 1.5;
    }
    #seminar_contents .table_contents table {
        margin-bottom: 50px;
    }
    #seminar_contents .table_contents table th,
    #seminar_contents .table_contents table td {
        display: block;
        padding: 0.5em 1em;
        text-align: center;
    }
    #seminar_contents .table_contents table td .small {
        font-size: 12px;
        display: block;
        line-height: 1.5;
    }
    #seminar_contents .seminar_end {
        font-size: 16px;
    }
}


/******************************
* お客様の声
******************************/
#top_voice .voice_list .slick-track {
    display: flex;
    align-items: stretch;
}
#top_voice .voice_list .slick-track > .slick-slide {
    height: auto;
}
#top_voice .voice_list .slick-track > .slick-slide > a {
    height: 100%;
}
#top_voice .voice_list > div {
    width: 100%;
}

/******************************
* お役立ちコラム シングル
******************************/
.post-categories {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
}
.post-categories a {
    background-color: var(--sub-color);
    color: #fff;
    padding: 0.25em 1em;
    border-radius: 100vh;
    outline: 1px solid #fff;
    outline-offset: -2px;
    font-weight: bold;
    letter-spacing: 0.05em;
    transition: 0.2s;
}
.post-categories a:hover {
    opacity: 0.5;
}

@media (max-width: 767px) {

    .post-categories a {
        font-size: 14px;
    }

}

.post_single .title {
    margin-bottom: 15px;
    line-height: 1.5;
}


.author .writer_title {
    background: var(--main-color);
    color: #fff;
    display: inline-block;
    padding: 10px 20px;
    border-radius: 20px 20px 0 0;
}
.author .writer_title .en {
    font-weight: bold;
    font-size: 20px;
}
.author .writer_title .jp {
    margin-left: 15px;
    font-size: 16px;
    font-weight: normal;
}
.author .writer {
    border: 1px solid var(--main-color);
    padding: 40px;
    display: grid;
    grid-template-columns: 200px 1fr;
    grid-template-rows: auto auto;
    gap: 20px 40px;
}
.author .image {
    grid-row: 1 / 2;
    grid-column: 1 / 2;
    width: 100%;
    border-radius: 50%;
    overflow: hidden;
    align-self: start;
    aspect-ratio: 1;
}
.author .info {
    grid-row: 1 / 2;
    grid-column: 2 / 3;
    width: 100%;
}
.author .detail {
    grid-row: 2 / 3;
    grid-column: 1 / 3;
    width: 100%;
}

.author .image > img {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 1;
    display: block;
}

.author .info .name {
    font-size: 25px;
    font-weight: bold;
}
.author .info .name .kana {
    font-size: 16px;
    font-weight: normal;
}
.author .title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 0;
    line-height: 1.8;
    position: relative;
    padding-left: 1.5em;
}
.author .title:before {
    content: "";
    position: absolute;
    top: calc(1.8em / 2);
    left: 0.25em;
    transform: translateY(-50%);
    display: block;
    width: 0.75em;
    height: 1em;
    margin-right: 0.5em;
    background-color: var(--main-color);
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.author .info .position {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
}

.author .info .license {
    font-size: 14px;
    font-weight: normal;
}
body.single-format-standard #content #main .post_box .author ul {
    margin: 0;
    background: transparent;
    padding: 0 0 0 1.5em;
    border-radius: 0;
    list-style: disc;
}
body.single-format-standard #content #main .post_box .author ul > li {
    padding: 0;
    margin: 0;
}
body.single-format-standard #content #main .post_box .author ul > li:before {
    display: none;
}

.author .detail .career {
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.6;
}
.author .detail .pr {
    font-size: 14px;
    line-height: 1.6;
}

@media (max-width: 767px) {
    .author .writer_title {
        padding: 5px 20px;
    }
    .author .writer {
        padding: 15px;
        grid-template-columns: 100px 1fr;
        gap: 10px 20px;
    }
    .author .image {
       width: 100%;
       margin: auto;
    }
    .author .info .name {
        font-size: 16px;
        line-height: 1.4;
        margin-bottom: 10px;
    }
    .author .info .name .kana {
        display: block;
        font-size: 12px;
    }
    .author .info .position {
        font-size: 14px;
    }
    .author .info .license {
        margin-bottom: 0px;
        font-size: 12px;
    }

    .author .title {
        font-size: 15px;
    }

    .author .detail .career {
        font-size: 12px;
    }
    .author .detail .pr {
        font-size: 12px;
    }
}


/* *************
// エディター
************* */
.post_box {
    width: 100%;
    max-width: 1000px;
}
.post_box .thumbnail {
    width: 100%;
}
.post_box .thumbnail img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    display: block;
    width: 100%;
    height: 100%;
}
body.single-format-standard #content #main .post_box h2 {
    position: relative;
    padding-bottom: 0.25em;
    font-size: 30px;
    font-weight: bold;
    border-bottom: 1px dashed #cacaca;
    padding-bottom: 0.25em;
    padding-right: 1em;
    padding-left: 1.25em;
    margin-bottom: 1em;
    margin-top: 2em;
}

body.single-format-standard #content #main .post_box h2::before {
    content: "";
    position: absolute;
    top: calc(1.8em / 2);
    left: 0.25em;
    transform: translateY(-50%);
    display: block;
    width: 0.75em;
    height: 1em;
    margin-right: 0.5em;
    background-color: var(--main-color);
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
}

body.single-format-standard #content #main .post_box h3 {
    position: relative;
    padding: 0em 0.5em 0em;
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 1em;
    margin-top: 2em;
    border-left: 10px solid var(--main-color);
}

body.single-format-standard #content #main .post_box h3::before {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 5em;
    height: 1px;
    background-color: var(--main-color01);
}

body.single-format-standard #content #main .post_box h4 {
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 1em;
    color: var(--main-color);
    border-radius: 5px;
    margin-top: 2em;
}

body.single-format-standard #content #main .post_box h5 {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 1em;
}

body.single-format-standard #content #main .post_box h6 {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 1em;
}

body.single-format-standard #content #main .post_box h6::first-letter {
    color: var(--main-color01);
}
body.single-format-standard #content #main .post_box ul {
    margin: 1em 0;
    background: #fff6e8;
    padding: 2em 2.5em;
    border-radius: 10px;
    margin-left: 1em;
    margin-top: 2em;
    margin-bottom: 2em;
}

body.single-format-standard #content #main .post_box ul > li {
    position: relative;
    line-height: 1.8;
    padding-left: calc(15px + 0.25em);
    margin-bottom: 0.5em;
}

body.single-format-standard #content #main .post_box ul > li:last-child {
    margin-bottom: 0;
}

body.single-format-standard #content #main .post_box ul > li::before {
    content: "";
    position: absolute;
    top: calc(1.8em / 2);
    left: 0;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    background-color: var(--main-color);
    border-radius: 50%;
    border: 4px double #fff;
}

body.single-format-standard #content #main .post_box ul > li ul {
    margin: 0.25em 0;
}

body.single-format-standard #content #main .post_box ul > li ul > li {
    padding-left: calc(8px + 0.25em);
}

body.single-format-standard #content #main .post_box ul > li ul > li::before {
    height: 2px;
    background-color: var(--main-color);
    border-radius: 0;
    border: none;
    width: 8px;
}

body.single-format-standard #content #main .post_box ol {
    margin: 1em 0;
    background: #fff6e8;
    padding: 2em 2.5em;
    border-radius: 10px;
    margin-left: 1em;
    margin-top: 2em;
    margin-bottom: 2em;
    counter-reset: custom-ol;
    list-style: none;
}

body.single-format-standard #content #main .post_box ol > li {
    position: relative;
    line-height: 1.8;
    padding-left: calc(2.5em + 0.25em);
    margin-bottom: 0.5em;
    counter-increment: custom-ol;
    margin-bottom: 1em;
    font-weight: bold;
}

body.single-format-standard #content #main .post_box ol > li:last-child {
    margin-bottom: 0;
}

body.single-format-standard #content #main .post_box ol > li::before {
    content: counter(custom-ol);
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 2em;
    height: 2em;
    background-color: var(--main-color);
    color: #fff;
    font-weight: bold;
    font-size: 1.2em;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 4px double #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
}

body.single-format-standard #content #main .post_box ol > li ol {
    margin: 0.25em 0;
    background: none;
    padding: 0 0 0 1.5em;
    border-radius: 0;
}

body.single-format-standard #content #main .post_box ol > li ol > li {
    padding-left: 1.5em;
    position: relative;
    counter-increment: custom-ol-nested;
    margin-bottom: 0.5em;
}

body.single-format-standard #content #main .post_box ol > li ol > li::before {
    content: counter(custom-ol-nested, lower-alpha) ".";
    position: absolute;
    left: 0;
    top: 0.2em;
    color: var(--main-color);
    font-weight: bold;
    background: none;
    border: none;
    width: auto;
    height: auto;
    border-radius: 0;
    font-size: 1em;
}

body.single-format-standard #content #main .post_box p a,
body.single-format-standard #content #main .post_box li a {
    color: #00b390;
    text-decoration: underline;
}


.aligncenter {
    display: block;
    margin-right: auto;
    margin-left: auto;
}
.alignright {
    float: right;
    margin-bottom: 20px;
    margin-left: 20px;
}
.alignleft {
    float: left;
    margin-right: 20px;
    margin-bottom: 20px;
}
.wp-caption,
[class*='wp-image'] {
    display: block;
    max-width: 100% !important;
    margin-top: 1.5em;
    text-align: center;
}
.wp-caption-text {
    margin-top: 0;
}

@media (max-width: 767px) {

    body.single-format-standard #content #main .post_box h2 {
        font-size: 20px;
    }


}




/*****************************************
// 研修ページ
*****************************************/
#container:has(.lp .hero) .header.h001 {
    display: block;
}
body:has(.lp) {
    background-color: #fff;
}
/* ヒーローセクション */
.hero {
    position: relative;
    background: url("../images/service/genai-training/main_visual.webp")
        no-repeat center center/cover;
    color: #fff;
    height: 80vh;
    padding-top: 132px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    container-type: inline-size;
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--main-color);
    opacity: 0.6;
}
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: 0.2;
}
.hero-content {
    position: relative;
    z-index: 1;
}
.hero-content h1 {
    font-size: calc(40 / 1354 * 100cqi);
    font-weight: 900;
    line-height: 1.5;
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    letter-spacing: 0.05em;
}
.hero-content h1 > span {
    font-size: 150%;
}
.hero-content .text {
    margin: 50px 0;
    line-height: 1.8;
}
.hero-buttons {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
}
.hero-buttons a {
    background: #fdc82a;
    color: #000;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75em;
    padding: 1.25em 2em;
    border-radius: 100vh;
    transition: 0.3s;
}
.hero-buttons a:hover {
    opacity: 0.75;
}
.hero-buttons a img {
    display: block;
    width: 40px;
}
/* 右サイド固定ボタン */
.fixed-right {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 20px;
    z-index: 100;
}
.fixed-right a {
    display: block;
    width: 40px;
    background: #ffd700;
    color: #333;
    text-decoration: none;
    font-weight: bold;
    font-size: 12px;
    text-align: center;
    padding: 8px 0;
    border-radius: 5px 0 0 5px;
    transform: rotate(-90deg);
    transform-origin: center;
    white-space: nowrap;
}
.fixed-right a:nth-child(2) {
    background: #00ad73;
    color: #fff;
}
/* こんなお悩み */
.section-problem {
    position: relative;
    z-index: 1;
    background-image: url("../images/service/genai-training/problem.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    padding: 80px 20px;
    position: relative;
    container-type: inline-size;
}
.section-problem::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: 0.8;
    z-index: -1;
}
.section-problem .title h2 {
    font-size: min(calc(40 / 1354 * 100cqi), 40px);
    margin-bottom: 40px;
    font-weight: bold;
    text-align: center;
}
.problem-list {
    width: fit-content;
    margin: 0 auto;
    list-style: none;
    padding: 0;
}
.problem-list li {
    position: relative;
    background: #fff;
    color: #000;
    font-weight: bold;
    border-radius: 100vh;
    padding: 0.75em 1.5em;
    padding-left: 4em;
    margin-bottom: 20px;
    font-size: 18px;
}
.problem-list li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 2em;
    transform: translate(-50%, -50%);
    width: 1.75em;
    height: 1.75em;
    border: 2px solid var(--main-color);
    border-radius: 50%;
}
.problem-list li::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 2em;
    transform: translate(-50%, -60%) rotate(-45deg);
    width: 0.75em;
    height: 0.5em;
    border-bottom: 4px solid var(--main-color);
    border-left: 4px solid var(--main-color);
}
/* 5日間スキル */
.section-skill {
    padding: 80px 20px;
    position: relative;
}
.section-skill::before {
    content: "";
    position: absolute;
    top: 99%;
    left: 50%;
    width: 10%;
    height: 40px;
    background-color: #fff;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transform: translateX(-50%);
}
.section-skill .two_in_one {
    gap: 30px;
    font-size: 16px;
}
.section-skill .two_in_one > div {
    container-type: inline-size;
    width: calc(50% - 15px);
}
.section-skill .two_in_one > div h2 {
    font-size: calc(55 / 505 * 100cqi);
    font-weight: bold;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
.section-skill .two_in_one > div h2 > span {
    font-size: 45%;
    display: block;
    margin-bottom: 10px;
}
.days-container {
    background-color: var(--main-color);
    padding: 120px 0 80px;
}
.days-container > div {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 50px 0;
}
.day-card {
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    padding: 20px;
    padding-top: 0;
    box-sizing: border-box;
    position: relative;
    container-type: inline-size;
}
.day-card h4 {
    margin-top: 0;
    margin-bottom: 15px;
    font-weight: bold;
    position: relative;
    line-height: 1.4;
    font-size: calc(25 / 322 * 100cqi);
    text-align: center;
    margin-top: -15px;
    margin-inline: -15px;
    border-bottom: 1px solid var(--main-color);
    padding-bottom: 10px;
    margin-bottom: 25px;
}
.day-card h4::before {
    content: attr(data-day);
    background: #000;
    color: #fff;
    font-weight: bold;
    padding: 0.25em 0.75em;
    display: block;
    width: fit-content;
    margin-inline: auto;
    font-size: 18px;
    margin-bottom: 10px;
}
.day-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.8;
}
.day-card li {
    position: relative;
    display: flex;
    line-height: 1.5;
    margin-bottom: 10px;
}
.day-card li::before {
    content: "";
    display: block;
    margin-top: calc(1.5em / 2);
    transform: translateY(-50%);
    margin-right: 0.5em;
    width: 10px;
    height: 10px;
    border: 1px solid var(--main-color);
    border-radius: 50%;
}
.days-container > div > .day-card {
    width: calc(33.33333% - 15px);
}
.days-container > div > .day-card:nth-last-child(-n + 2) {
    width: calc(50% - 15px);
}
.days-container > div > .day-card:nth-last-child(-n + 2) h4 {
    font-size: calc(25 / 495 * 100cqi);
}
/* ビフォーアフター */
.section-before-after {
    position: relative;
    z-index: 1;
    background-image: url("../images/service/genai-training/before-after.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    padding: 80px 20px;
    container-type: inline-size;
}
.section-before-after::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: 0.65;
    z-index: -1;
}
.section-before-after .title h2 {
    font-size: calc(40 / 1354 * 100cqi);
    margin-bottom: 40px;
    font-weight: bold;
    text-align: center;
}
.before-after-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}
.before-after-container .box {
    position: relative;
    z-index: 1;
    background: #fff;
    color: #333;
    padding: 30px 50px;
    box-sizing: border-box;
    width: calc(50% - 15px);
    container-type: inline-size;
}
.before-after-container .box h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: calc(32 / 405 * 100cqi);
    color: var(--main-color);
    font-weight: bold;
    line-height: 1.5;
}
.before-after-container .box ul {
    list-style: none;
    padding-left: 15px;
    margin: 0;
    font-size: 17px;
    line-height: 2;
    font-weight: bold;
}
.before-after-container .arrow {
    position: relative;
    z-index: 2;
    width: 50px;
    height: 50px;
    background: var(--main-color);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-inline: -15px;
    transform: translateZ(1px);
}
.before-after-container .arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-60%, -50%) rotate(-45deg);
    width: 20px;
    height: 20px;
    border-right: 5px solid #fff;
    border-bottom: 5px solid #fff;
}
/* 選ばれている理由 */
.section-reasons {
    background: #d7f7f0;
    padding: 80px 20px;
    text-align: center;
    container-type: inline-size;
}
.section-reasons h2 {
    font-size: min(45px, calc(35 / 1354 * 100cqi));
    font-weight: bold;
    margin-bottom: 50px;
}
.reasons-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
}
.reason-box {
    width: calc(50% - 15px);
    background: #fff;
    border: 3px solid var(--main-color);
    border-radius: 5px;
    padding: 15px 30px;
    box-sizing: border-box;
    text-align: left;
    container-type: inline-size;
}
.reason-header {
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: calc(23 / 461 * 100cqi);
    margin-bottom: 20px;
}
.reason-header .number-circle {
    background: var(--main-color);
    color: #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    width: 1.5em;
    height: 1.5em;
    flex-shrink: 0;
    font-size: 175%;
}
.reason-header h4 {
    margin: 0;
    font-weight: bold;
    color: #000;
    line-height: 1.8;
}
.reason-content {
    font-size: 13px;
    line-height: 2;
    margin-bottom: 15px;
}
.conclusion {
    margin-top: 80px;
    margin-bottom: 80px;
    container-type: inline-size;
}
.conclusion .catch {
    font-size: calc(25 / 1040 * 100cqi);
    font-weight: bold;
    line-height: 1.8;
    margin-bottom: 50px;
}
.conclusion .text {
    line-height: 2;
}
/* テキストエリア */
.section-text {
    position: relative;
    z-index: 1;
    background-image: url("../images/service/genai-training/about.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    padding: 80px 20px;
    text-align: center;
    line-height: 2;
}
.section-text::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #000;
    opacity: 0.8;
    z-index: -1;
}
.section-text p {
    margin-bottom: 2em;
}
.section-text p:last-child {
    margin-bottom: 0;
}
/* 私たちがお伝えします */
.section-presenters {
    background: #00c3a6;
    padding: 80px 20px;
    text-align: center;
}
.section-presenters h2 {
    color: #fff;
    font-size: 24px;
    margin-bottom: 50px;
    font-weight: bold;
    line-height: 1.4;
}
.presenters-container {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto 40px;
    justify-content: center;
}
.presenter-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    flex: 1 1 300px;
    max-width: 500px;
    display: flex;
    padding: 20px;
    align-items: center;
    gap: 20px;
    box-sizing: border-box;
}
.presenter-image img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 50%;
}
.presenter-info {
    flex: 1;
    text-align: left;
    font-size: 13px;
    line-height: 1.6;
    color: #333;
}
.presenter-info .title {
    font-weight: bold;
    margin: 10px 0;
    font-size: 14px;
    line-height: 1.4;
}
.bottom-message {
    color: #333;
    font-size: 13px;
    background: #fff;
    display: inline-block;
    padding: 10px 20px;
    border-radius: 5px;
    margin-top: 20px;
}
/* 受講者の声 */
.section-voice {
    padding: 80px 0;
    margin-inline: auto;
}
.section-voice .title {
    container-type: inline-size;
}
.section-voice .title h2 {
    font-size: calc(40 / 1040 * 100cqi);
    font-weight: bold;
    margin-bottom: 40px;
    text-align: center;
}
.section-voice .title h2 > span {
    font-size: 60%;
    display: block;
}
.voices-grid {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 50px 0;
}
.voices-grid > div:nth-child(-n + 3) {
    width: calc(33.33333% - 15px);
}
.voice-box {
    background: #e5fbf3;
    position: relative;
    border-radius: 5px;
    padding: 30px;
    box-sizing: border-box;
    line-height: 1.8;
    width: calc(50% - 15px);
    font-size: 16px;
    display: flex;
    flex-direction: column;
}
.voice-box::after {
    content: "";
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 20px solid #e5fbf3;
}
.voice-box::before {
    content: "“";
    position: absolute;
    top: 0;
    left: 5%;
    translate: 0 -30%;
    font-size: 3vw;
    line-height: 1;
    font-weight: bold;
    color: var(--main-color);
}
.voice-box .speaker {
    text-align: right;
    margin-top: auto;
}
/* よくある質問 */
.section-faq {
    background: #cff0e9;
    padding: 80px 20px;
    text-align: center;
}
.section-faq .title {
    container-type: inline-size;
}
.section-faq .title h2 {
    font-size: calc(40 / 1040 * 100cqi);
    font-weight: bold;
    margin-bottom: 40px;
    text-align: center;
}
.faq-list > div:last-child {
    margin-bottom: 0;
}
.faq-item {
    background: #fff;
    border-radius: 5px;
    padding: 30px;
    box-sizing: border-box;
    text-align: left;
    line-height: 1.6;
    container-type: inline-size;
    margin-bottom: 30px;
}
.faq-item .question {
    display: flex;
    font-weight: bold;
    font-size: calc(23 / 1000 * 100cqi);
    padding: 0 15px 10px;
    border-bottom: 1px solid #ccc;
    margin-bottom: 20px;
}
.faq-item .question::before {
    content: "Q";
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.75em;
    height: 1.75em;
    background: #000;
    color: #fff;
    border-radius: 5px;
    margin-right: 0.75em;
    padding-bottom: 5px;
}
.faq-item .answer {
    display: flex;
    padding: 0 15px;
}
.faq-item .answer::before {
    content: "A";
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: calc(23 / 1000 * 100cqi);
    width: 1.75em;
    height: 1.75em;
    background: var(--main-color);
    color: #fff;
    border-radius: 5px;
    font-weight: bold;
    margin-right: 0.75em;
    margin-top: -5px;
}
#training_contact {
    background-color: var(--main-color);
}
#training_contact .title {
    container-type: inline-size;
}
#training_contact .title h2 {
    color: #fff;
    font-size: calc(40 / 1040 * 100cqi);
    font-weight: bold;
    margin-bottom: 40px;
    text-align: center;
}
#training_contact .space_adjust {
    margin-bottom: -80px;
}
#training_contact {
    padding: 80px 0;
}
#container #training_contact .ttl001 .en,
#training_contact .ttl001 h2 {
    color: #fff;
}
#training_contact .ttl001 .en {
    opacity: 0.4;
}
#training_contact .form {
    background-color: #fff;
    border-radius: 30px;
    padding: 50px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.fix-button {
    display: flex;
    flex-direction: column;
    position: fixed;
    bottom: 5%;
    right: 0;
    z-index: 999;
}
.fix-button a {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: #fdc82a;
    color: #000;
    font-weight: bold;
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
    padding: 30px 15px;
    text-decoration: none;
    font-size: 18px;
    writing-mode: vertical-rl;
    margin-bottom: 15px;
    transition: 0.2s;
    width: fit-content;
    margin-left: auto;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.fix-button a:hover {
    padding-right: 20px;
}
.fix-button a img {
    display: block;
    width: 35px;
}
#content:has(.fix-button) {
    z-index: 3;
}
/* スマホ対応のCSS */
@media (max-width: 767px) {
    .hero {
        height: 100vh;
        padding: 15px;
    }
    .hero-content h1 {
        font-size: calc(28 / 375 * 100vw);
    }
    .hero-content h1 > span {
        font-size: 145%;
    }
    .hero-content .text {
        font-size: 14px;
        margin: 20px 0;
    }
    .hero-buttons {
        display: none;
    }
    .section-problem .title h2 {
        font-size: calc(30 / 375 * 100vw);
        margin-bottom: 20px;
        line-height: 1.5;
    }
    .section-problem {
        padding: 40px 15px;
        padding-bottom: 20px;
    }
    .problem-list li {
        font-size: 16px;
        padding: 0.5em 1em;
        border-radius: 10px;
        padding-left: 2.5em;
        line-height: 1.5;
    }
    .problem-list li::before,
    .problem-list li::after {
        top: calc((1.5em / 2) + 0.5em);
    }
    .problem-list li::before {
        transform: translateY(-50%);
        left: 0.5em;
        width: 1.5em;
        height: 1.5em;
    }
    .problem-list li::after {
        left: calc((1.5em / 2) + 0.5em);
        transform: translate(-50%, -50%) rotate(-45deg);
    }
    .section-skill {
        padding: 40px 15px;
    }
    .section-skill .two_in_one {
        flex-direction: column;
    }
    .section-skill .two_in_one > div {
        width: 100%;
    }
    .section-skill .two_in_one .left h2 {
        font-size: calc(35 / 331 * 100cqi);
        text-align: center;
    }
    .section-skill .two_in_one .right p {
        font-size: 16px;
    }
    .section-skill::before {
        width: 30%;
        height: 30px;
    }
    .days-container {
        padding: 60px 0 50px;
    }
    .days-container > div {
        gap: 20px 0;
    }
    .days-container > div > .day-card {
        width: 100%;
        margin-bottom: 0;
    }
    .days-container > div > .day-card:nth-last-child(-n + 2) {
        width: 100%;
    }
    .days-container .day-card h4,
    .days-container > div > .day-card:nth-last-child(-n + 2) h4 {
        font-size: calc(19 / 350 * 100vw);
        display: flex;
        align-items: center;
        margin-top: 15px;
        padding: 0 10px 10px;
        margin-bottom: 15px;
    }
    .day-card h4::before {
        margin: 0;
        font-size: 14px;
        margin-right: 0.5em;
    }
    .days-container .day-card ul {
        font-size: 14px;
    }
    .days-container .day-card ul > li:last-child {
        margin-bottom: 0;
    }
    .section-before-after {
        padding: 40px 15px;
    }
    .section-before-after .title h2 {
        font-size: calc(30 / 375 * 100vw);
        line-height: 1.5;
        margin-bottom: 20px;
    }
    .before-after-container .box {
        width: 100%;
        padding: 15px;
    }
    .before-after-container > div.box:first-child {
        padding-bottom: 25px;
    }
    .before-after-container .box h3 {
        font-size: calc(25 / 301 * 100cqi);
        margin-bottom: 5px;
    }
    .before-after-container .arrow {
        margin: -15px auto;
    }
    .before-after-container .arrow::before {
        transform: translate(-50%, -65%) rotate(45deg);
    }
    .before-after-container .box ul {
        font-size: 15px;
        padding: 0 5px;
    }
    .section-reasons {
        padding: 40px 15px;
    }
    .section-reasons h2 {
        font-size: calc(30 / 375 * 100vw);
        line-height: 1.5;
        margin-bottom: 30px;
    }
    .reasons-grid {
        flex-direction: column;
        gap: 0;
    }
    .reason-box {
        width: 100%;
        padding: 15px;
        margin-bottom: 20px;
    }
    .reason-header {
        gap: 0.5em;
        font-size: calc(22 / 295 * 100cqi);
        align-items: flex-start;
        line-height: 1.5;
        margin-bottom: 10px;
    }
    .reason-header .number-circle {
        font-size: 110%;
        margin-top: calc(1.7em / 2);
        transform: translateY(-50%);
    }
    .reason-content {
        font-size: 16px;
    }
    .conclusion {
        margin-top: 15px;
        margin-bottom: 20px;
    }
    .conclusion .catch {
        margin-bottom: 20px;
        font-size: calc(21 / 331 * 100cqi);
    }
    .conclusion .text {
        font-size: 16px;
        text-align: left;
    }
    .section-text {
        padding: 40px 15px;
    }
    .section-text p {
        font-size: 16px;
    }
    .section-voice {
        padding: 50px 0;
    }
    .section-voice .title h2 {
        font-size: calc(30 / 375 * 100vw);
        margin-bottom: 20px;
    }
    .voices-grid {
        flex-direction: column;
        gap: 0;
    }
    .voice-box,
    .voices-grid > div:nth-child(-n + 3) {
        width: 100%;
        margin-bottom: 20px;
        padding: 30px 20px 20px;
    }
    .voice-box::before {
        font-size: 15vw;
    }
    .voice-box::after {
        display: none;
    }
    .section-faq {
        padding: 40px 5px;
    }
    .section-faq .title h2 {
        font-size: calc(30 / 375 * 100vw);
        margin-bottom: 20px;
    }
    .faq-list {
        flex-direction: column;
    }
    .faq-item {
        width: 100%;
        margin-bottom: 20px;
        padding: 15px;
    }
    .faq-item .question {
        padding-inline: 5px;
        font-size: calc(18 / 301 * 100cqi);
    }
    .faq-item .question::before {
        flex-shrink: 0;
        margin-right: 0.25em;
    }
    .faq-item .answer {
        font-size: 16px;
        padding: 0 5px;
    }
    .faq-item .answer::before {
        flex-shrink: 0;
        font-size: calc(18 / 301 * 100cqi);
        margin-right: 0.25em;
    }
    #training_contact .title h2 {
        font-size: calc(30 / 375 * 100vw);
        margin-bottom: 20px;
    }
    .fix-button {
        bottom: 0;
        left: 5px;
        width: calc(100% - 10px);
        flex-direction: row;
        border-top-left-radius: 10px;
        border-top-right-radius: 10px;
        box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
        overflow: hidden;
    }
    .fix-button a {
        position: relative;
        font-size: 14px;
        padding: 15px 10px;
        writing-mode: horizontal-tb;
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        margin: 0;
        justify-content: center;
        width: 100%;
        box-shadow: none;
    }
    .fix-button a:hover {
        padding: 15px 10px;
    }
    .fix-button a:first-child::before {
        content: "";
        position: absolute;
        top: 15%;
        right: 0;
        height: 70%;
        border-left: 1px dashed #000;
    }
    .fix-button a:last-child::before {
        content: none;
    }
    .fix-button a img {
        width: 28px;
    }
    body:has(.fix-button) p.copyright {
        padding-bottom: 62px;
    }
    #training_contact {
        padding: 50px 0;
    }
    #training_contact .form {
        border-radius: 15px;
        padding: 30px 15px;
    }
}






/***************************************
// サービス一覧
***************************************/
.service_list {
    width: 100%;
    max-width: 1000px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px;
    flex-wrap: wrap;
    align-items: stretch;
}
.service_list .item {
    width: 100%;
}
.service_list .item a {
    display: flex;
    height: 100%;
    flex-direction: column;
    background-color: #fff;
    overflow: hidden;
    container-type: inline-size;
    color: #333;
}
.service_list .item a .image_contents {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    z-index: 1;
    flex-shrink: 0;
    border: 1px solid #ccc;
}
.service_list .item a .image_contents::before {
    content: "";
    position: absolute;
    top: 100%;
    right: 100%;
    width: 200%;
    height: 200%;
    transform: rotate(45deg);
    background-color: var(--main-color);
    z-index: -1;
    transition: 0.4s;
    opacity: 0.2;
}
.service_list .item a:hover .image_contents::before {
    top: 50%;
    right: 50%;
    translate: 50% -50%;
}
.service_list .item a img {
    display: block;
    aspect-ratio: 1;
    object-fit: cover;
    width: 100%;
    height: 100%;
    transition: 0.2s;
}
.service_list .item a:hover img:not([src*="logo_light.svg"]) {
}
.service_list .item a img[src*="logo_light.svg"] {
    object-fit: contain;
    padding: 10%;
}
.service_list .item a .text_contents {
    padding: 15px;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
}

.service_list .item a .text_contents .title {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
}
.service_list .item a .text_contents .btn_border {
    color: #333;
    border: 1px solid #ccc;
    border-radius: 100vh;
    padding: 0.5em 2.5em;
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-inline: auto;
}
.service_list .item a .text_contents .btn_border::after {
    content: "→";
    display: block;
    color: var(--main-color);
    transition: 0.2s;
}
.service_list .item a:hover .text_contents .btn_border::after {
    translate: 5px 0;
}
@media (max-width: 767px) {
    .service_list {
        gap: 30px 0;
        grid-template-columns: 100%;
    }
    .service_list .item {
        width: 80%;
        margin-inline: auto;
    }
}



/***************************************
// サービス
***************************************/
.service_single section {
    padding: 80px 0;
}
.service_single h2 {
    font-size: 40px;
    text-align: left;
    font-weight: bold;
    margin-bottom: 40px;
    letter-spacing: 2px;
}

.service_single .action_button {
    text-align: center;
    margin-top: 40px;
}
.service_single .action_button > a {
    border-radius: 100vmax;
    border: 1px solid var(--main-color);
    margin-inline: 0.5em;
    transition: 0.2s;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.15), 0 0 15px rgba(0, 0, 0, 0.1);
    padding: 0.5em 1em;
    display: inline-block;
    min-width: 300px;
    background: var(--main-color);
    color: #fff;
    font-weight: bold;
}

@media (max-width: 767px) {

    .service_single h2 {
        font-size: 25px;
        line-height: 1.6;
        text-align: center;
    }

}


/*サービス*/
.service_single section#main_visual {
    padding: 0;
}

.service_single #main_visual .two_in_one {
    justify-content: flex-start;
}

.service_single #main_visual .text_contents .title {
    margin: 30px 0;
}



@media (max-width: 1029px) {

    .service_single #main_visual .text_contents {
        width:100%;
    }
}

@media (max-width: 767px) {
    .service_single #main_visual .text_contents .text {
        text-align: left;
        padding: 0 15px;
    }

}



/* こんなお悩み */
#service_problems {
    padding-bottom: 0;
    position: relative;
    z-index: 0;
    overflow: hidden;
    padding-top: 80px;
}
#service_problems:after {
    content: '';
    z-index: -1;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: block;
    width: calc(100% + 200px);
    height: 350px;
    opacity: 0.3;
    background: var(--sub-color);
    z-index: -1;
    border-radius: 50% 50% 0 0 / 200px 200px 0 0;
}


#service_problems h2 {
    text-align: center;
    margin-bottom: 50px;
    background: #333;
    color: #fff;
    display: table;
    margin-left: auto;
    margin-right: auto;
    padding: 10px 20px;
    position: relative;
    font-size: 40px;
    font-weight: bold;
    line-height: 1.6;
}
#service_problems h2:after {
    content: '';
    position: absolute;
    left: 50%;
    top: calc(100% - 1px);
    transform: translateX(-50%);
    width: 50px;
    height: 30px;
    background-color: #333;
    clip-path: polygon(100% 0, 0 0, 50% 100%);
    z-index: 1;
}
#service_problems .worries {
    position: relative;
    margin-bottom: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
#service_problems .worries:after {
    content: '';
    position: absolute;
    left: 50%;
    top: calc(100% + 10px);
    transform: translateX(-50%);
    width: 100px;
    height: 30px;
    background-color: var(--color-green);
    clip-path: polygon(100% 0, 0 0, 50% 100%);
    z-index: 1;
}

#service_problems .worries ul > li {
    position: relative;
    z-index: 0;
    font-size: 20px;
    padding-left: 2em;
}
#service_problems .worries ul > li:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 1.5em;
    height: 1.5em;
    background-color: var(--color-green);
    border-radius: 50%;
    z-index: 1;
}
#service_problems .worries ul > li:after {
    content: '';
    position: absolute;
    left: 0.45em;
    top: 0.4em;
    transform: rotate(45deg);
    height: 0.9em;
    width: 0.6em;
    border-right: 4px solid #fff;
    border-bottom: 4px solid #fff;
    z-index: 2;
}
#service_problems .worries ul > li:not(:last-child) {
    margin-bottom: 15px;
}

#service_problems .answer_content {
    /*
    display: grid;
    grid-template-columns: 30% 1fr;
    gap: 20px 60px;
    align-items: end;
    */
}
#service_problems .answer_content > div {
    width: 100%;
}

#service_problems .answer_content > .text {
    font-size: 20px;
    margin-bottom: 50px;
}

#service_problems .answer_content > div.image {
    width: 70%;
    margin: 0 auto;
}

#service_problems .answer_title {
    grid-column: 1 / 3;
    grid-row: 1 / 2;
    font-size: 50px;
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 50px;
}

#service_problems .answer_title > span {
    color: var(--main-color);
}

#service_problems .answer_content > .text p strong {
    font-weight: bold;
    background: var(--main-color);
    color: #fff;
    padding: 0 8px;
    white-space: nowrap;
    margin: 0 3px;
}

#service_problems .answer_content > .image > img {
    width: 100%;
    display: block;
}

@media (max-width: 1029px) {

    #service_problems .worries {
        width: 90%;
        margin-inline: auto;
    }

    #service_problems .answer_content {
        grid-template-columns: 50% 1fr;
        gap: 20px 40px;
    }

    #service_problems .answer_title { 
        font-size: 30px;
    }

    #service_problems .answer_content > .text p br.pc {
        display: none;
    }
}

@media (max-width: 767px) {
    #service_problems:after {
        height: 500px;
    }
    #service_problems h2 {
        font-size: 28px;
        width: 100%;
    }

    #service_problems .worries {
        width: 100%;
    }

    #service_problems .worries ul > li {
        font-size: 16px;
    }

    #service_problems .answer_content {
        grid-template-columns: 100%;
    }
    #service_problems .answer_title {
        font-size: 25px;
        text-align: center;
    }
    #service_problems .answer_content > .text {
        font-size: 16px;
        margin-bottom: 0;
    }

    #service_problems .answer_content > div.image {
        width: 95%;
    }
}



/***************************************
// 制作事例
***************************************/
#service_works {
    background: #f8f8f8;
}

.works_title {

}

.works_container.slick-slider .slick-track {
    display: flex;
    align-items: stretch;
}

.works_container.slick-slider .slick-track .item {
    height: auto;
}
.works_container.slick-slider .slick-track .item > a {
    height: 100%;
}


/*一覧*/
.archive .works_container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.service_single .works_container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.works_container .item {
    width: 100%;
}

.works_container .item a {
    padding: 20px;
    display: block;
    color: var(--text-color);
    background: #fff;
    height: 100%;
}
.works_container .item a .image_contents {
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: center;
    justify-content: center;
}

.works_container .item a .image_contents > img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    border: 1px solid #000;
}

.works_container .item a .company {
    font-size: 20px;
    margin-bottom: 15px;
    line-height: 1.4;
    font-weight: bold;
    margin-top: 10px;
}
.works_container .item a .company > span {
    margin-left: 5px;
    font-size: 90%;
}
.works_container .item a .category {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 15px;
}
.works_container .item a .category > span {
    border: 1px solid #999;
    background: #fff;
    color: var(--text-color);
    display: inline-block;
    padding: 5px 10px;
    line-height: 1;
    font-size: 14px;
}

@media (max-width: 767px) {
    .archive .works_container {
        grid-template-columns: 100%;
        gap: 30px;
    }
    .service_single .works_container {
        grid-template-columns: 100%;
    }

}


/* TOP */
#top_voice .works_container .item > a {
    border: 1px solid #ccc;
}

#top_voice .works_container .item > a .image_contents {
    aspect-ratio: 16 / 9;
}

#top_voice .works_container .item > a img {
    aspect-ratio: auto;
    width: 100%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
    box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
    border: none;
}

@media (max-width: 767px) {
    #top_voice .contents .item {
        padding: 0 5px;
    }

    .works_container .item a {
        padding: 10px;
    }
    .works_container .item a .company {
        font-size: 16px;
    }
    .works_container .item a .company > span {
        font-size: 80%;
    }
    .works_container .item a .category > span {
        font-size: 10px;
    }
}


/***************************************
// お客様の声
***************************************/
/*一覧*/

.voice_container {
    display: grid;
    grid-template-columns: 100%;
    gap: 40px 0;
}
.service_single .voice_container {
    display: grid;
    grid-template-columns: 100%;
    gap: 40px;
}

.voice_container .item {
    width: 100%;
}
.voice_container .item a {
    display: grid;
    grid-template-columns: 40% 1fr;
    gap: 40px;
    color: var(--text-color);
    position: relative;
}
.voice_container .item a .image_contents {
    width: 100%;
    overflow: hidden;
}
.voice_container .item a .image_contents > img {
    width: 100%;
    display: block;
    transition: transform 0.3s;
}
.voice_container .item a:hover .image_contents > img {
    transform: scale(1.05);
}



.voice_container .item a .title {
    font-size: 22px;
    line-height: 1.5;
    font-weight: bold;
    margin-bottom: 15px;
}
.voice_container .item a .company {
    font-size: 16px;
    margin-bottom: 15px;
    color: var(--main-color);
}
.voice_container .item a .description {
    font-size: 14px;
    margin-bottom: 20px;
}
.voice_container .item a .arrow {
    bottom: 10px;
    right: 10px;
    font-size: 14px;
    padding-right: 30px;
    display: table;
    margin-left: auto;
    position: relative;
    transition: right 0.2s;
}
.voice_container .item a:hover .arrow {
    right: 0;
}
.voice_container .item a .arrow:before {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0px;
    width: 115px;
    height: 1px;
    background: #000;
    transition: all .3s;
    transform: translateY(-50%);
}
.voice_container .item a .arrow:after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0px;
    width: 20px;
    height: 1px;
    background: #000;
    transform-origin: bottom right;
    transform: rotate(35deg) translateY(-50%);
    transition: all .3s;
}

@media (max-width: 1029px) {
    .voice_container .item a {
    }
    .voice_container .item a .text_contents {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .voice_container .item a .description {
        display: none;
    }
    .voice_container .item a .arrow {
        position: absolute;
        bottom: 0;
        right: 10px;
    }
}

@media (max-width: 767px) {

    .voice_container .item a {
        display: block;
    }

    .voice_container .item a .image_contents {
        margin-bottom: 15px;
    }

    .voice_container .item a .company {
        margin-bottom: 5px;
    }
    .voice_container .item a .title {
        font-size: 18px;
    }
    .voice_container .item a .arrow {
        position: relative;
        bottom: 0;
        right: 10px;
    }
}



/***************************************
// 選ばれる理由
***************************************/

#service_reason {
    background: #ffffff;
}

.reason_container {

}
.service_single .reason_container {
    display: grid;
    grid-template-columns: 100%;
    gap: 60px;
}

.reason_container .item {
    width: 100%;
    display: grid;
    grid-template-columns: 100%;
    gap: 40px;
}

.reason_container .item .reason_text {
    width: 100%;
}
.reason_container .item .reason_text .reason_container_title {
    display: flex;
    align-items: baseline;
    line-height: 1;
    gap: 0 15px;
    margin-bottom: 15px;
}
.reason_container .item .reason_text .reason_container_title .number {
    font-size: 60px;
    font-weight: 900;
    color: var(--main-color);
}
.reason_container .item .reason_text .reason_container_title .title {
    font-size: 25px;
    font-weight: bold;
    line-height: 1.5;
}

.reason_container .item .reason_text .description {
}

.reason_container .item .reason_image {
    width: 100%;
}
.reason_container .item .reason_image > img {
    width: 100%;
    background: #ccc;
    aspect-ratio: 3 / 2;
    display: block;
}

@media (max-width: 767px) {

    .reason_container .item .reason_text .reason_container_title .number {
        font-size: 40px;
        margin-bottom: 10px;
    }

    .reason_container .item .reason_text .reason_container_title {
        flex-wrap: wrap;
    }
    
    .reason_container .item .reason_text .reason_container_title .title {
        width: 100%;
        font-size: 20px;
    }
}





/***************************************
// 制作の流れ
***************************************/

#service_flow {
}


#service_flow h2 {
}

.flow_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 50px;
}

.flow_list > .item {
    width: 100%;
}
.flow_list > .item .box {
    display: grid;
    align-content: center;
    background: #fff;
    position: relative;
    border: 1px solid var(--color-green);
    padding: 20px;
    align-self: stretch;
}

.flow_list > .item .box > .step {
    position: absolute;
    background: var(--main-color);
    color: #fff;
    aspect-ratio: 1;
    border-radius: 50%;
    padding: 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 70px;
    height: 70px;
    left: -20px;
    top: -20px;
}
.flow_list > .item .box > .step > span {
    display: block;
    line-height: 1;
}
.flow_list > .item .box > .step > span.txt {

}
.flow_list > .item .box > .step > span.num {
    font-size: 30px;
    font-weight: bold;
}

.flow_list > .item:not(:last-child) .box:after {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(100% + 10px);
    transform: translateY(-50%);
    width: 20px;
    height: 30px;
    background-color: #333;
    z-index: 1;
    clip-path: polygon(100% 50%, 0 0, 0 100%);
}


.flow_list > .item .image {
    width: 50%;
    height: auto;
    background: var(--color-green);
    margin: auto;
    border-radius: 10px;
}
.flow_list > .item .image > img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    display: block;
    filter: invert(98%) sepia(10%) saturate(0%) hue-rotate(19deg) brightness(120%) contrast(100%);
    padding: 20px;
}

.flow_list > .item h3 {
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1.3;
    min-height: 3em;
    font-weight: bold;
    font-size: 20px;
    text-align: center;
}

.flow_list > .item h3 + div {
    text-align: center;
    line-height: 1.5;
}

@media (max-width: 1029px) {

    .flow_list {
        grid-template-columns: repeat(2, 1fr);
        width: 90%;
        margin: auto;
    }

    .flow_list > .item h3 + div {
        font-size: 12px;
    }

    .flow_list > .item:not(:last-child) .box:after {
        display: none;
    }
}


@media (max-width: 767px) {
    .flow_list {
        grid-template-columns: 100%;
    }
    .flow_list > .item:not(:last-child) .box:after {
        left: 50%;
        top: calc(100% + 15px);
        transform: translateX(-50%); 
        clip-path: polygon(50% 100%, 100% 0, 0 0);
        height: 20px;
    }

    .flow_list > .item .box {
        grid-template-columns: 100px 1fr;
        grid-template-rows: auto auto;
        gap: 0 20px;
    }
    .flow_list > .item .image {
        grid-column: 1 / 2;
        grid-row: 1 / 3;
        width: 100%;
    }
    .flow_list > .item .image > img {
        padding: 15px;
    }
    .flow_list > .item h3 {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
        font-size: 16px;
        justify-content: flex-start;
    }
    .flow_list > .item h3 + div {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
        text-align: left;
    }
    .flow_list > .item h3 + div br {
        display: none;
    }
}



/***************************************
// プラン
***************************************/

#service_plan {
    background: #f8f8f8;
}

#service_plan h2 {
    text-align: center;
}

#service_plan .small_text {
    width: 1280px;
    max-width: 95%;
    font-size: 12px;
    text-align: right;
    margin-inline: auto;
}

.plan_list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 20px;
    width: 1280px;
    max-width: 95%;
    margin: auto;
}

.plan_list > div.item {
    width: 100%;
    background: #fff;
    padding: 20px;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 5;
    gap: 10px;
}

.plan_list .item .catch {
    text-align: center;
    font-weight: bold;
    color: var(--main-color);
}
.plan_list .item h3 {
    text-align: center;
    font-weight: bold;
    font-size: 24px;
    margin-bottom: 20px;
}
.plan_list .item .text {
    line-height: 1.5;
}
.plan_list .item .tag {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    align-self: start;
    margin-bottom: 20px;
}
.plan_list .item .tag > span {
    font-size: 14px;
    border: 1px solid #000;
    padding: 0 5px;
    line-height: 1.5;
}
.plan_list .item .price {
    text-align: center;
    font-size: 25px;
    font-weight: bold;
}
.plan_list .item .price > .first {
    background: #333;
    color: #fff;
    font-size: 16px;
    font-weight: normal;
    display: table;
    margin: auto;
    padding: 0 10px;
}

.plan_list .item .price > span {
    font-size: 60%;
}

#service_plan .bottom_catch {
    margin-top: 40px;
    font-size: 25px;
    text-align: center;
    font-weight: bold;
}



@media (max-width: 1029px) {

    .plan_list {
        grid-template-columns: 1fr 1fr;
    }

}


@media (max-width: 767px) {
    
    .plan_list {
        grid-template-columns: 100%;
    }

}


/***************************************
// 問い合わせ
***************************************/

#service_contact {
    background: var(--main-color);
}
#service_contact h2 {
    text-align: center;
    color: #fff;
}


#service_contact .box {
    background: #fff;
    border-radius: 20px;
    padding: 40px;
}

#service_contact .box.tel {
    margin-top: 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 15px 40px;
}

#service_contact .box.tel .title {
    font-size: 20px;
    font-weight: bold; 
    line-height: 1.5;    
}

#service_contact .box.tel .tel_number {
    font-size: 45px;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: 20px;
    line-height: 1;
    white-space: nowrap;
}
#service_contact .box.tel .tel_number > img {
    width: auto;
    height: 1em;
}



@media (max-width: 767px) {

    #service_contact .box.tel {
        padding: 15px;
        flex-wrap: wrap;
    }
    #service_contact .box.tel .tel_number {
        font-size: 35px;
    }
}



/* *************************************
// お客様の声
************************************* */
#voice_top {
    padding: 80px 0;
}
#voice_top .image > img {
    width: 100%;
    height: auto;
    display: block;
}

#voice_top .two_in_one  {
    width: 100%;
    max-width: 1600px;
    align-items: center;
    margin-left: auto;
    margin-right: auto;
}

#voice_top .text {

}
#voice_top .text > .inner  {
    width: 90%;
    margin: auto;
}

#voice_top .text h2 {
    font-size: min(2.5vw, 40px);
    font-weight: bold;
    margin-bottom: 1em;
}
#voice_top .text h2 > span {
    font-size: 80%;
    margin-left: 10px;
}

#voice_top .text .catch {
    font-size: 25px;
    color: var(--main-color);
    margin-bottom: 1em;
    font-weight: bold;
}

#voice_interview {
    padding-bottom: 80px;
}

@media (max-width: 767px) {

    #voice_top .text h2 {
        font-size: 20px;
    }

    #voice_top .text .catch {
        font-size: 20px;
    }

    #voice_top .text .introduction {
        margin-bottom: 30px;
    }

}



h2.fukidashi01 {
    text-align: center;
    padding: 20px;
    background: #555;
    color: #fff;
    position: relative;
    font-size: 40px;
    font-weight: bold;
    margin-bottom: 80px;
}
h2.fukidashi01:after {
    content: "";
    display: block;
    width: 40px;
    height: 30px;
    position: absolute;
    top: calc(100% - 1px);
    left: 50%;
    transform: translateX(-50%);
    clip-path: polygon(100% 0, 0 0, 50% 100%);
    background: #555;
}

@media (max-width: 767px) {

    h2.fukidashi01 {
        font-size: 20px;
    }

}


.interview_list {
    display: grid;
    grid-template-columns: 100%;
    gap: 60px;
}
.interview_list .item {
    width: 100%;
    display: flex;
    gap: 20px 60px;
    display: flex;
} 
.interview_list .item .image {
    width: 400px;
    min-width: 400px;
    max-width: 50%;
}

.interview_list .item .text .question {
    font-size: 25px;
    font-weight: bold;

    margin-bottom: 1em;
}

@media (max-width: 767px) {

    .interview_list .item {
        flex-wrap: wrap;
    }
    .interview_list .item .text .question h3 {
        line-height: 1.5;
        font-size: 20px;
    }

    .interview_list .item .image {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

}



#voice_staff {
    padding: 80px 0 0;
}

#voice_staff .staff_comment .title {
    font-size: 25px;
    color: var(--main-color);
    margin-bottom: 1em;
    font-weight: bold;
}

#voice_staff .staff_comment .text {
    margin-bottom: 50px;
}

#voice_staff .staff_comment {
    margin-bottom: 40px;
    flex: 1;
}


#voice_staff .staff_comment h3 {
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 1em;
    text-align: center;
}

#voice_staff .staff_comment div[class^="btn_"] a {
    margin-left: auto;
    margin-right: auto;
}

.voice_staff_list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 40px;
    align-items: start;

}

#voice_staff .voice_staff_list .image {
    align-self: end;
    width: 250px;
}
#voice_staff .voice_staff_list .image > img {
    width: 100%;
    display: block;
    aspect-ratio: 2 / 3;
    object-fit: contain;
    object-position: bottom;

}

@media (max-width: 1029px) {

    #voice_staff .staff_comment h3 br {
        display: block;
    }
}

@media (max-width: 767px) {
    #voice_staff {
        padding-top: 0;
    }
    .voice_staff_list {
        display: block;
        position: relative;
        padding-bottom: 30px;
    }

    #voice_staff .staff_comment {
        width: 100%;
        margin-bottom: 0;
    }
    #voice_staff .staff_comment .title {
        font-size: 20px;
    }
    #voice_staff .staff_comment h3 {
        text-align: left;
        font-size: 16px;
        padding-right: 100px;
    }
    #voice_staff .staff_comment div[class^="btn_"] {
        padding-right:100px;
    }
    #voice_staff .staff_comment div[class^="btn_"] a {
        margin-left: 0;
    }

    #voice_staff .voice_staff_list .image {
        width: 100px;
        position: absolute;
        bottom: 0;
        right: 0;
    }

}


/***************************************
// プラン・料金ページ
***************************************/
.plan_container {
    display: grid;
    grid-template-columns: 100%;
}


.plan_container .item {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 30%;
    gap: 40px;
    padding: 50px 0;
    border-bottom: 1px solid #666;
}
.plan_container .item:last-child {
    border-bottom: none;
}

.plan_container .item .plan_text {
    width: 100%;
}
.plan_container .item .plan_text .plan_container_title {
    display: flex;
    align-items: baseline;
    line-height: 1;
    gap: 0 15px;
    margin-bottom: 15px;
}
.plan_container .item .plan_text .plan_container_title .number {
    font-size: 35px;
    font-weight: 900;
    color: var(--main-color);
}
.plan_container .item .plan_text .plan_container_title .title {
    font-size: 35px;
    font-weight: bold;
}

.plan_container .item .plan_text .description {
}

.plan_container .item .plan_image {
    width: 100%;
    grid-column: 2 / 3;
    grid-row: 1 / 3;
    align-self: center;
}
.plan_container .item .plan_image > img {
    width: 100%;
    background: #ccc;
    aspect-ratio: 3 / 2;
    display: block;
}

.plan_container .tag {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    align-self: start;
    margin-bottom: 20px;
}
.plan_container .tag span {
    font-size: 14px;
    border: 1px solid #000;
    padding: 0 5px;
    line-height: 1.5;
}

.plan_container table {
    width: 100%;
}

.plan_container table th,
.plan_container table td {
    border: 1px solid #ccc;
    padding: 10px;
    text-align: center;
}

.plan_container table th {
    text-align: center;
    font-weight: bold;
    background: #fef4e5;
}

@media (max-width: 767px) {

    .plan_container .item {
       display: flex;
       flex-direction: column;
    }

    .plan_container .item .plan_text .plan_container_title .title {
        font-size: 25px;
    }

    .plan_container .item .plan_image {
        order: 1;
    }
}



.text_center {
    text-align: center;
    margin-bottom: 50px;
}

@media (max-width: 767px) {

    .text_center {
        text-align: left;
    }
}
#plan {
    padding: 0 0 80px;
}
#plan h2 {
    text-align: center;
    font-size: 40px;
    font-weight: bold;
    margin-bottom: 50px;
}
#plan .plan_list {
    margin-right: calc((100vw - 100%) / 2 * -1);
    margin-left: calc((100vw - 100%) / 2 * -1);
    padding-right: calc((100vw - 100%) / 2);
    padding-left: calc((100vw - 100%) / 2);
    width: 100vw;
    max-width: 100vw;
    position: relative;
    z-index: 0;
    padding-bottom: 40px;
    margin-bottom: 80px;
}
#plan .plan_list:after {
    content: "";
    display: block;
    width: 100%;
    height: 60%;
    position: absolute;
    bottom: 0;
    left: 0;
    background: var(--main-color);
    z-index: -1;
    opacity: 0.5;
    
}
#plan .plan_list > div.item {
    box-shadow: 0px 0px 5px rgba(0,0,0,0.15);
}
#plan .plan_list > div.item .name {
    text-align: center;
    font-weight: bold;
    font-size: 20px;
}

#plan .plan_list > div.item .tag {
    justify-content: center;
}
#plan .plan_list > div.item .tag span {
    font-size: 13px;
}

#plan .plan_list > div.item .btn {
    display: flex;
    justify-content: center;
}
#plan .plan_list > div.item .btn > a {
    border-radius: 100vh;
    margin-inline: 0.5em;
    transition: 0.2s;
    padding: 0.5em 2em; 
    background: var(--main-color);
    color: #fff;
    display: flex;
    gap: 0 10px;
    align-items: center;
    justify-content: center;
}
#plan .plan_list > div.item .btn > a:after {
    content: "";
    display: inline-block;
    width: 0.5em;
    height: 0.5em;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(135deg);
    margin: 0;
    transform-origin: center right;
}

#plan .bottom_catch {
    text-align: center;
    font-weight: bold;
    font-size: 25px;
}

#plan .bottom_catch > span {
    color: var(--main-color);
}

@media (max-width: 767px) {

    #plan h2 {
        font-size: 30px;
    }

    #plan .bottom_catch {
        font-size: 20px;
    }


}

#subscribe {
    background: #fef4e5;
    padding: 80px 0;
}


#subscribe h2 {
    text-align: center;
    font-size: 40px;
    font-weight: bold;
    margin-bottom: 50px;
}

#subscribe h3 {
    text-align: center;
    font-size: 20px;
    font-weight: bold;
    color: var(--main-color);
    margin: 40px 0 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}
#subscribe h3:before,
#subscribe h3:after {
    content: "";
    display: inline-block;
    width: 0.5em;
    height: 2px;
    background: #000;
    margin: 0 0.5em;
}

#subscribe .box {
    background: #fff;
    padding: 40px;
    border-radius: 30px;
}


#subscribe .price {
    text-align: center;
    font-size: 30px;
    font-weight: bold;
}
#subscribe .price > span {
    font-size: 60%;
}

#subscribe .text1 {
    text-align: center;
}

#subscribe ul.check {
    display: table;
    padding: 20px 40px;
    margin: 10px auto 20px;
}
#subscribe ul.note {
    font-size: 14px;
    display: table;
    margin: auto;
}

@media (max-width: 767px) {

    #subscribe .box {
        padding: 30px 15px;
    }

    #subscribe ul.check {
        padding: 20px 0;
    }

}

ul.check > li {
    position: relative;
    z-index: 0;
    font-size: 16px;
    padding-left: 2em;
}

ul.check > li:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 1.5em;
    height: 1.5em;
    background-color: var(--color-green);
    border-radius: 50%;
    z-index: 1;
}
ul.check > li:after {
    content: '';
    position: absolute;
    left: 0.45em;
    top: 0.4em;
    transform: rotate(45deg);
    height: 0.9em;
    width: 0.6em;
    border-right: 4px solid #fff;
    border-bottom: 4px solid #fff;
    z-index: 2;
}

ul.note > li {
    display: flex;
}
ul.note > li:before {
    content: "※";
}







/***************************************
// 制作実績
***************************************/
#performance_contents {
    padding: 50px 0;
}

.performance_image {
    display: grid;
    grid-template-columns: 1fr 19%;
    align-items: center;
    gap: 20px 5%;
    margin: 0 auto 50px;
}

.performance_image img {
    box-shadow: 2.1px 11.8px 21.6px 2.4px rgba(71, 71, 61, 0.27);
    border-radius: 10px;
    width: auto;
}

#performance_contents .client {
    font-size: 30px;
    font-weight: bold;
    margin-bottom: 20px;
}
#performance_contents .client > span {
    margin-left: 0.5em;
    font-size: 80%;
}

#performance_contents .site_comment .website_name {
    font-weight: bold;
    font-size: 20px;
}
#performance_contents .site_comment .url a {
    color: var(--main-color);
    transition: all 0.3s;
}
#performance_contents .site_comment .url a:hover {
    color: var(--main-color);
    opacity: 0.7;
    text-decoration: underline;
}

#performance_contents .performance_category {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0;
}
#performance_contents .performance_category > span {
    border: 1px solid #999;
    background: #fff;
    color: var(--text-color);
    display: inline-block;
    padding: 5px 10px;
    line-height: 1;
    font-size: 14px;
}

@media (max-width: 767px) {
    #performance_contents .client {
        font-size: 25px;
    }
    .performance_image {
        grid-template-columns: 100%;
    }
    .performance_image img.sp {
        width: 50%;
        margin: auto;
    }


    .service_voice .voice_container .item a .description {
        display: block;
    }

}
