 @charset "UTF-8";
 /*
     Template: swell
     Theme Name: SWELL CHILD
     Theme URI: https://swell-theme.com/
     Description: SWELLの子テーマ
     Version: 1.0.0
     Author: LOOS WEB STUDIO
     Author URI: https://loos-web-studio.com/
 
     License: GNU General Public License
     License URI: http://www.gnu.org/licenses/gpl.html
 */

 /* 背景 */
.bg-right, .bg-left, .bg-gra  {
    position: relative;
}
.bg-right::before {
    content: "";
    display: block;
    width: 92vw;
    right: 0;
    z-index: -2;
    background: linear-gradient(60deg, #f6fafc, #e8f0f8);
    top: 0;
    height: 100%;
    position: absolute;
}
.bg-left::before {
    content: "";
    display: block;
    width: 92vw;
    left: 0;
    z-index: -2;
    background: linear-gradient(-60deg, #f6fafc, #e8f0f8);
    top: 0;
    height: 100%;
    position: absolute;
}

.bg-gra:before {
    content: "";
    display: block;
    width: 100vw;
    right: 0;
    z-index: -2;
    background: linear-gradient(0deg, #ffffff, #e8f0f8);
    top: 0;
    height: 100%;
    position: absolute;
}
@media (max-width: 781px) {
    .bg-right::before, .bg-left::before {
        width: 100vw;
    }
}

/* レスポンシブ順番入れ替え */
@media (max-width: 960px) {
    .replacement {
        display: flex;
    }
    .replacement .swell-block-columns__inner {
        flex-direction: column-reverse;
    }
}
@media (max-width: 781px) {
    .voice .replacement {
        display: flex;
        flex-direction: column-reverse;
    }
    .voice .c-balloon__body {
        justify-content: center;
    }
}

 /* mv */
@media (min-width: 960px) {
    #main_visual picture.p-mainVisual__imgLayer.c-filterLayer__img {
        padding-left: 33vw;
    }
    #main_visual .p-mainVisual__textLayer {
        max-width: 35vw;
        left: 0;
        top: 30px;
        -webkit-transform: unset;
        transform: unset;
    }
    .p-mainVisual__textLayer>.p-blogParts {
        display: none;
    }
}

@media (max-width: 959px) {
    .p-mainVisual__imgLayer.c-filterLayer__img {
        display: none;
    }
   .mv-text {
    writing-mode: vertical-rl;
    text-align: left;
    padding-bottom: 20px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);

}

    .p-mainVisual__slideTitle, .p-mainVisual__slideText {
        display: none;
    }
    .sp-mv .wp-block-cover__inner-container.is-layout-flow.wp-block-cover-is-layout-flow {
        justify-content: center;
        display: flex;
    }
    .p-mainVisual__textLayer>.p-blogParts {
        margin-top: 0;
    }
}

.p-mainVisual__slideTitle, .p-mainVisual__slideText {
    text-shadow: none;
    text-align: justify;
}
.p-mainVisual__slideTitle {
    font-weight: bold;
    line-height: 1.8;
    margin-bottom: 20px;
}
.p-mainVisual__slideText {
    line-height: 2;
}

/* 下層mv */

.l-topTitleArea.c-filterLayer::before, .l-topTitleArea.c-filterLayer::after {
   display: none;
}
.l-topTitleArea {
   height: 280px;
}
h1.c-pageTitle {
   text-shadow: none;
   font-size: 1.8rem;
   color: #304b54;
   letter-spacing: -2.5px;
}

@media (max-width: 781px) {
   h1.c-pageTitle {
       font-size: 1.4rem;
   }
}

@media (min-width: 960px) {
   .l-topTitleArea {
       height: 500px;
   }
   img.l-topTitleArea__img.c-filterLayer__img.u-obf-cover {
       padding-left: 37%;
   }
   .page-id-43 .c-pageTitle__subTitle {
       display: block;
       margin-top: 10px;
       margin-left: 0;
   }
}

@media (max-width: 959px) {
   .l-topTitleArea {
       display: block;
       height: 400px;
       padding-top: 20px;
   }
   img.l-topTitleArea__img.c-filterLayer__img.u-obf-cover {
       padding-top: 70px;
   }
   .page .l-content {
       padding-top: 0;
   }
   .page-id-45 .l-content {
       padding-top: 2em;
   }
}

@media (max-width: 599px) {
   .page-id-43 .c-pageTitle__subTitle {
       display: block;
       margin-top: 0px;
       margin-left: 0;
   }
   .page-id-43 img.l-topTitleArea__img.c-filterLayer__img.u-obf-cover {
       padding-top: 80px;
   }

   .l-mainContent__inner>.post_content {
       margin-top: 2em;
   }
}

 /* アワード */

.top-award {
  margin-top: 40px !important; /* 40px はお好みで調整可能 */
}

 /* ヘッダー */

 @media (min-width: 960px) {
    .home header .c-gnav>.menu-item>a {
        font-weight: bold;
        color: #ffffff;
        text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.4);
    }
    .c-smallNavTitle {
        opacity: 1;
        font-weight: 400;
    }
    .-series .l-header__inner {
        align-items: center;
    }
    nav#gnav {
        height: 50px;
    }

    .contact-btn {
        position: relative;
        display: inline-block;
        background: linear-gradient(60deg, #0D79BE, #57C9F7);
        border-radius: 100px;
        color: #ffffff;
        padding: 10px 20px;
        margin-left: 10px;
        overflow: hidden;
        z-index: 0;
    }

    .contact-btn::before {
        background-image: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, .6) 80%, hsla(0, 0%, 100%, 0));
        content: "";
        height: 200px;
        left: -120px;
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%) rotate(25deg);
        transform: translateY(-50%) rotate(25deg);
        width: 80px;
    }

    .contact-btn:hover::before {
        left: 130%;
        transition: all 0.5s;
    }

    ul.c-gnav {
        height: 50px;
    }
}

.l-fixHeader__gnav.c-gnavWrap {
    display: flex;
    align-items: center;
}

/* グローバルナビ */
.c-gnav > li:hover > a, .c-gnav > .-current > a {
    background: transparent;
}
.c-gnav > li:not(:last-child):hover > a {
    color: #4b8fcf;
    transition: all .25s;
}
.c-gnav > li:last-child:hover > a {
    color: #ffffff;
    transition: all .25s;
}

/* スマホメニュー */
.p-spMenu__nav{
	display:none;
}
/*メニューのタイトルを消す*/
.c-widget__title.-spmenu{
  display:none;
}

/* テキスト均等配置 */
.justify {
    text-align: justify;
}

/* 見出し */
.gradient-text span {
    background: linear-gradient(to right, #0D79BE, #90d6ef);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
h2.wp-block-heading.title-line, h3.wp-block-heading.title-line {
    position: relative;
    padding: 0.25em 0;
    display: table;
    margin-left: auto;
    margin-right: auto;
}

h2.wp-block-heading.title-line::after,
h3.wp-block-heading.title-line::after  {
    content: "";
    display: block;
    height: 2px;
    width: calc(100% + 0.5em);
    margin-left: -0.25em;
    background: linear-gradient(to right, #0D79BE , #57C9F7);
    margin-top: 0.2em;
}

@media (max-width: 781px) {
    h3.sp-fssmall {
        font-size: 1.4rem !important;
    }
    .sp-fsmid span{
        font-size: 2.8rem !important;
        line-height: 1.2;
    }
}

/* ボタン */
@media (max-width: 781px) {
    a.swell-block-button__link {
        width: 80%;
    }
}

/* 画像左右寄せ */
@media (min-width: 960px) {
    figure.fig-right, .fig-right > figure {
        margin-right: calc(50% - 35vw) !important;
    }
}
@media (min-width: 960px) {
    figure.fig-left, .fig-left > figure {
        margin-left: calc(50% - 35vw) !important;
    }
}


/* コンテンツ幅 */
@media (min-width: 960px) {
    .width-small .l-article{
        max-width: 800px;
    }
}

/* section-about */
.kansai-map {
    position: relative;
}
.kansai-map::after {
    content: "";
    position: absolute;
    top: 10%;
    right: 50px;
    width: 100%;
    height: 100%;
    background-image: url("../swell_child/img/kansai-bg.webp");
    background-size: contain;
    background-position: center right;
    background-repeat: no-repeat;
    z-index: -99;
    pointer-events: none;
    opacity: 0.5;
}


@media (max-width: 781px) {
    .kansai-map::after {
        top: 70%;
        right: 0;
        width: 50%;
        height: 50%;
        opacity: 0.4;
    }
}

.section-about .merit-area .swell-block-column p {
    margin: 0 1.2em 1.2em;
}

.merit {
    position: relative;
}
.merit::before {
    content: "";
    position: absolute;
    top: -14px;
    left: -6px;
    width: 50px;
    height: 50px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
}
.merit.merit1::before {
    background-image: url('../swell_child/img/number1.webp');
}
.merit.merit2::before {
    background-image: url('../swell_child/img/number2.webp');
}
.merit.merit3::before {
    background-image: url('../swell_child/img/number3.webp');
}


/* 導入数 */
.section-case-record .wp-block-group {
    border-radius: 50%;
    height: 19rem;
    width: 19rem;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35);
}
.section-case-record .wp-block-columns{
    justify-content: center;
}

/* section-service  */
.section-service .swell-block-column p, .section-merit .swell-block-column p {
    text-align: left;
    margin: 0 1.2em 1.2em;
}

.section-service .swell-block-columns__inner {
    justify-content: center;
}



/* 特定技能コラム */
.section-ssw-column .swiper-postListWrap .p-postList {
	flex-wrap: nowrap;
	margin: 0;
}
.section-ssw-column .swiper-postListWrap .-type-card .p-postList__item {
	padding: 0;
}
.section-ssw-column .swiper-postListWrap a.p-postList__link {
    box-shadow: var(--swl-box_shadow);
    background-color: #ffffff;
}
.section-ssw-column .swiper-postListWrap .p-postList__body {
    padding: 1em;
}
.section-ssw-column .swiper-button-next, .section-ssw-column .swiper-button-prev {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}
.section-ssw-column .swiper-button-next:after, .section-ssw-column .swiper-button-prev:after {
    height: 8px;
    width: 8px;
}
.section-ssw-column {
    position: relative;
}
.section-ssw-column .swiper-button-prev:after {
    left: 5px;
}
.section-ssw-column .swiper-button-next:after {
    right: -3px;
}
.section-ssw-column .swiper-pagination-bullet-active {
    background: #57C9F7;
}


/* news */
@media (max-width: 781px) {
    .section-news .wp-block-group.u-mb-ctrl.u-mb-30 {
        margin-bottom: 1em !important;
    }
}


/* faq */
.faq_q {
    cursor: pointer;
    position: relative;
    padding-right: 30px; /* アイコン分のスペースを確保 */
}

.faq_q::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5em;
    font-weight: bold;
}

.faq_q.active::after {
    content: '-';
    font-size: 2em;
    font-weight: bold;
}


/* company */
.table-side {
    margin-left: 40px;
    margin-right: 40px;
}

/* service */
/* アンカーリンク */
#body_wrap:not(.page-id-45) .link-service{
    display:none;
}

.link-service a.swell-block-button__link {
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.link-service a.swell-block-button__link::after {
    display: none;
}
.link-service a.swell-block-button__link span {
    line-height: 1.5;
}
.link-service a.swell-block-button__link {
    padding: 10px 0 0 0;
}

@media not all and (min-width: 600px) {
    .swell-block-step:not(.is-style-big):not(.is-style-small)>.swell-block-step__item>.swell-block-step__body {
        margin-left: -60px;
    }
    #flow .wp-block-media-text__media img {
        width: 100%;
        margin-left: auto;
    }
}
/* 初期状態で非表示 */
/* エディター画面を除外して初期状態で非表示 */
body:not(.wp-admin) .side-ssw,
body:not(.wp-admin) .side-blog {
    display: none;
}

/* カスタム投稿タイプ 'ssw-column' のシングルページだけ表示 */
.single-ssw-column .side-ssw {
    display: block !important;
}
.single-post .side-blog {
    display: block !important;
}

/* ------------------------------
    お問い合わせページ
------------------------------ */

/* 入力欄100% */
.snow-monkey-form input.smf-text-control__control {
    width: 100%;
}

.snow-monkey-form {
    padding-left: 5px;
    padding-right: 5px;
}

/*エラーメッセージの色 */
.smf-error-messages {
    color: #f20c10;
    margin-top: var(--_margin-2);
}
/*エラーメッセージの枠 */
.smf-form [data-invalid="1"] {
    border-color: red;
}


/* 入力・確認画面非表示 */
[data-screen="confirm"] .input {
    display:none;
}

[data-screen="input"] .confirm,
[data-screen="invalid"] .confirm {
    display:none;
}

/* フォーム枠線 */
.smf-form--business .smf-item__col--label {
    background-color: transparent;
    border-right: none;
}

.smf-form--business .smf-item {
    border: 1px solid #c1c1c1;
    border-left: none;
    border-right: none;
}

.smf-form--business .smf-item:last-child {
    border: none;
}

.smf-form--business .smf-item__col--label {
    border-bottom: none;
}

.checkboxes-policy .smf-item__controls {
    text-align: center;
}
.checkboxes-policy .smf-item__controls p.has-text-align-left.input {
    text-align: center;
}
.address .smf-placeholder{
    width: 100%;
}

/* ボタン装飾 */
.snow-monkey-form .smf-action .smf-button-control__control {
    position: relative;
    display: inline-block;
    background: linear-gradient(60deg, #0D79BE, #57C9F7);
    border-radius: 100px;
    border: none;
    color: #ffffff;
    padding: 10px 40px;
    overflow: hidden;
    z-index: 0;
}

.smf-button-control__control::before {
    background-image: linear-gradient(90deg, hsla(0, 0%, 100%, 0), hsla(0, 0%, 100%, .6) 80%, hsla(0, 0%, 100%, 0));
    content: "";
    height: 200px;
    left: -120px;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(25deg);
    transform: translateY(-50%) rotate(25deg);
    width: 80px;
}

.smf-button-control__control:hover::before {
    left: 130%;
    transition: all 0.5s;
}

/* トラッカー色 */
.snow-monkey-form[data-screen=input] .smf-progress-tracker__item--input .smf-progress-tracker__item__number {
    background-color: #4b8fcf;
}



/* 沿革 */
.card-wrapper {
    position: relative;
    margin: auto;

}
.card-wrapper::after {
    z-index: 1;
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    border-left: 1px solid rgba(191, 191, 191, 0.4);
}

/* Cards */
.card {
    position: relative;
    display: block;
    margin: 10px auto 80px;
    max-width: 94%;
    z-index: 2;
}

/* Card Head */
.card .head {
    position: relative;
    display: flex;
    align-items: center;
    color: #fff;
    padding-left: 1rem;
    height: 2rem;
}


/* Card Body */
.card .card-body {
    background: #fff;
    border: 1px solid rgba(191, 191, 191, 0.4);
    border-top: 0;
    padding: 20px;
}

/* Card Colors */
.card:nth-of-type(4n+1) {
    background-color: #005F9E;
}
.card:nth-of-type(4n+2) {
    background-color: #2e8bc8;
}
.card:nth-of-type(4n+3) {
    background-color: #6eb1d5;
}
.card:nth-of-type(4n+4) {
    background-color: #6ed5af;
}


.card-wrapper {
    display: flex;
    flex-flow: column wrap;
    width: 100%;
    margin: 0 auto;
}

.card {
    width: 45%;
    max-width: 960px;
    margin-top: 45px;
    margin-bottom: 45px;
}


/* Odd cards (left side) */
.card:nth-child(odd) {
    margin-left: 0;
}

.card:nth-child(odd) .head::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    border-left-width: 14px;
    border-left-style: solid;
    left: 100%;
}

.card:nth-child(odd) .head::before {
    position: absolute;
    content: "";
    width: 9px;
    height: 9px;
    background-color: #bdbdbd;
    border-radius: 9px;
    box-shadow: 0px 0px 2px 8px #ffffff;
    right: -12.5%;
}

/* Even cards (right side) */
.card:nth-child(even) {
    margin-right: 0;
}
.card:nth-child(even) .head::after {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    border-right-width: 14px;
    border-right-style: solid;
    right: 100%;
}

.card:nth-child(even) .head::before {
    position: absolute;
    content: "";
    width: 9px;
    height: 9px;
    background-color: #bdbdbd;
    border-radius: 9px;
    box-shadow: 0px 0px 2px 8px #ffffff;
    left: -12%;
}

/* Arrow colors */
.card:nth-child(4n+1) .head::after {
    border-color: #005F9E;
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
    }
.card:nth-child(4n+2) .head::after {
    border-color: #2e8bc8;
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
}
.card:nth-child(4n+3) .head::after {
    border-color: #6eb1d5;
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
}
.card:nth-child(4n+4) .head::after{
    border-color: #6ed5af;
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
}

@media screen and (max-width: 599px) {
    .card-wrapper::after {
        left: 5.5%;
    }
    .card {
        width: 85%;
    }
    .card:nth-child(odd) {
        margin-left: auto;
        margin-right: 0;
    }
    .card:nth-child(odd) .head::after {
        left: auto;
        right: 100%;
        border-left: none;
        border-right-width: 14px;
        border-right-style: solid;
    }
    .card:nth-child(odd) .head::before {
        right: auto;
        left: -12%;
    }

}
