@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
*/

/* メインビジュアル内 */
.p-mainVisual__slideTitle {
    font-size: 6.0vw;
    font-weight: 700;
}

@media screen and (min-width: 600px) {

    /*　画面サイズが600pxからはここを読み込む　*/
    .p-mainVisual__slideTitle {
        font-size: 2.8rem;
        text-shadow: 1px 1px 1px rgb(0 0 0 / 50%);
        line-height: 1.5;
        font-weight: 700;
    }
}

/* 投稿スライダー内 */
.p-postSlider .p-postList__item img {
    height: 100% !important;
    width: auto !important;
    margin: auto !important;
}

/* Featured Services */
#featured-services h4 {
    padding: 0;
    border-left: none
}

.mininote {
    color: #d0a900;
}

/* 投稿コンテンツ内 */
.post_content h2 {
    font-size: 1.8em;
}

.post_content .is-style-section_ttl small {
    display: block;
    font-size: .6em;
    padding-top: .25em;
}

#what_new .u-obf-cover {
    object-fit: contain;
}

/*カラム高さ調整用*/
.myColumn {
    background-color: #fff;
}

.counter {
    font-family: "Montserrat", sans-serif;
    font-weight: bold;
    font-size: 28px;
    display: block;
    color: #d0a900;
}

/* 製品一覧 */
.product_img .p-postList .p-postList__item img,
.c-postThumb__figure img {
    height: 100% !important;
    width: auto !important;
    right: 0;
    left: 0;
    margin: 0 auto;
}

/* Contact Form 7 */
.wpcf7-form-control-wrap {
    font-size: 20px;
}

/* テキストを太字 */
.wpcf7-form label {
    font-weight: bold;
    margin-bottom: 20px;
    font-size: 20px;
}

/* フォームの下に余白 */
.wpcf7-form p {
    margin-bottom: 30px;
}

/* フォームのカスタマイズ */
.wpcf7-text,
.wpcf7-email,
.wpcf7-tel,
.wpcf7-textarea {
    width: 100%;
    background-color: #fff;
    margin-top: 5px;
}

/* ラジオボタンの左の余白 */
.wpcf7-radio span {
    margin-left: 0;
}

/* ボタンのカスタマイズ */
.wpcf7-submit,
.wpcf7-previous {
    display: inline-block;
    width: 240px;
    padding: 1.2em 1em;
    border-radius: 50px;
    background: #D53633;
    /* ここにメインカラー */
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1;
    color: #fff !important;
}

/* 必須マーク */
.required {
    color: #fff;
    background: #D53633;
    /* ここにメインカラー */
    font-size: 0.8em;
    padding: 0.3em;
    border-radius: 0.5em;
}

.form-group {
    padding: 30px 0;
}

.text-center {
    margin-top: 20px;
    text-align: center;
}


/* reCAPTCHA v3 非表示 */
.grecaptcha-badge {
    visibility: hidden;
}

/*アイコン周り*/
#services i {
    margin-right: 10px;
}

#contact i {
    font-size: 4em;
}

@media screen and (min-width: 800px) {
    .footer_logo {
        padding: 15px 50px 0px 0px;
    }
}

.footer_logo h3 {
    margin-bottom: 20px;
}

.footer_logo img {
    max-width: 300px;
}

/* ダウンロードリンク */
.ed_form {
    font-size: var(--swl-fz--large) !important;
}

input#email.form-control,
select#group.form-control {
    background-color: #fff !important;
}

span.ed_short_desc {
    display: block;
}

.ed_form p {
    margin-bottom: 30px;
}

.ed_short_desc {
    width: 100%;
    font-size: var(--swl-fz--large) !important;
    margin-bottom: 30px;
}

.ed_form #email {
    width: 100%;
}

.ed_form #group {
    width: 100%;
}

input.btn.btn-primary {
    display: inline-block;
    width: 340px;
    padding: 1.2em 1em;
    border-radius: 50px;
    background: #f09f4d;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1;
    color: #fff !important;
}

div.p-postList__thumb.c-postThumb {
    background-color: #cccccc;
}

#what_new div.p-postList__thumb.c-postThumb {
    background-color: white;
}

#what_new .p-postList__title {
    font-size: 18px;
}

#what_new .p-postList__excerpt {
    font-size: 16px;
}

/* ローディング画面表示 */
.loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100vw;
    height: 100vh;
    background-color: black;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    /* ローディング中にクリックを無効化 */
    animation: overlayFadeOut 2.5s 2s forwards;
}

.loader-overlay img {
    width: 360px;
    /* PCのロゴ画像のサイズ */
    opacity: 0;
    transform: scale(0.9);
    /* 初期状態は少し小さく */
    animation: logoFadeZoom 1.5s ease-out forwards, logoFadeOut 1.5s 1.5s ease-out forwards;
    /* ロゴのフェードインとフェードアウトアニメーション */
}

@media screen and (max-width: 959px) {
    .loader-overlay img {
        width: 180px;
        /* スマホのロゴ画像のサイズ */
    }
}

/* ローディング画面全体のフェードアウトアニメーション */
@keyframes overlayFadeOut {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        visibility: hidden;
    }
}

/* ロゴのズームインとフェードインのアニメーション */
@keyframes logoFadeZoom {
    0% {
        opacity: 0;
        transform: scale(0.9);
        /* 少し小さい状態から始める */
    }

    100% {
        opacity: 1;
        transform: scale(1);
        /* 徐々にフェードインしながら元のサイズに */
    }
}

/* ロゴがフェードアウトのアニメーション */
@keyframes logoFadeOut {
    0% {
        opacity: 1;
        transform: scale(1);
        /* フェードアウト前の状態を維持 */
    }

    100% {
        opacity: 0;
        transform: scale(1);
        /* 少し大きくしてふわっと消える */
    }
}

.l-header .c-gnav>li>a:after {
    background: #ff0000 !important;
}

#featured-services strong {
    color: #d0a900;
}

#fix_bottom_menu {
    z-index: 10001;
}

.c-modal {
    z-index: 9999;
}

.p-spMenu {
    z-index: 10000;
}

.p-fixBtnWrap {
    z-index: 9999;
}

.ico {
    height: 100px;
    width: 100px;
    display: block;
    background: #d0a900;
    text-align: center;
    border-radius: 50%;
    margin: 0px auto 20px auto;
}

.ico i {
    width: 100px;
    height: 100px;
    line-height: 100px;
    font-size: 50px !important;
    color: #ffff;
}

.follow-banner {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 20;
}

.follow-banner a {
    display: flex;
    align-items: center;
    gap: 0.5em;
    writing-mode: vertical-rl;
    color: #fff;
    background-color: var(--color_main);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 1.5em 0.5em;
    border-radius: 10px 0 0 10px;
    transition: opacity 0.25s;
}

div.wp-block-group.follow-banner {
    z-index: 10000;
}

.follow-banner a:hover {
    opacity: 0.7;
}

.follow-banner .swl-inline-icon::after {
    left: 50%;
    transform: translateX(-50%);
}

/* スマホでは非表示に */
@media screen and (max-width: 599px) {
    .follow-banner {
        display: none;
    }
}

#before_footer_widget {
    margin: 0 auto !important;
}

div.catalog-dl img {
    border: 1px solid rgba(0, 0, 0, .1);
}

.page-id-30374 #top_title_area {
    display: none;
}