@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
*/


/* =============================
   ヘッダー
============================= */
@media (min-width: 960px) {
    .l-header {
        position: fixed !important;
        background: transparent;
    }

    .l-header__inner {
        background: rgba(3, 45, 140, 0.65);
    }

    .l-header__logo {
        padding-bottom: 0 !important;
    }

    .-parallel .l-header__inner {
        padding-right: 4%;
        padding-left: calc((100% - 1200px) / 2);
        padding-right: calc((100% - 1200px) / 2);
    }

    .-parallel-bottom .l-header__inner {
        padding-top: 0;
    }

    .-parallel .l-header__logo {
        width: 40%;
    }

    .l-header.-parallel .w-header {
        width: 43%;
        justify-content: right;
    }

    .-parallel .w-header {
        margin-top: 0;
    }

    .-parallel .l-header__gnav .c-gnav > li > a {
        padding: 12px 16px !important;
    }

    .c-gnav > .menu-item > a .ttl {
        font-size: 16px;
    }

    .-img .c-headLogo__link {
        text-align: left;
        padding-left: 3rem;
    }
}

@media (max-width: 960px) {
    .l-header {
        background: transparent;
    }

    .l-header__inner {
        background: rgba(3, 45, 140, 0.65);
    }
}

/* キャッチコピー */
.l-header__bar .l-container {
    max-width: 965px;
    padding-left: 1rem;
}

@media (max-width: 1200px) {
    .l-header__bar .l-container {
        max-width: 1010px;
    }
}

/* PCヘッダーボタン */
.w-header {
    align-items: end;
}

@media (min-width: 782px) {
    header .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        width: 200px;
        max-height: 45px;
    }
}

header .is-layout-flex:not(.is-vertical).is-content-justification-right {
    display: block;
}

header .wp-block-buttons > .wp-block-button {
    width: 100%;
}


/* =============================
   ハンバーガーメニュー
============================= */
@media (min-width: 960px) {
    .l-header__menuBtn.sp_ {
        display: block !important;
        position: relative;
        top: 18px;
    }

    .p-spMenu {
        display: block !important;
    }

    .p-spMenu__inner {
        max-width: 600px;
    }

    .c-iconBtn {
        position: relative;
        top: 22px;
        left: min(93vw, 1100px);
    }
}

.p-spMenu__body {
    padding: 0 3vw 10vw !important;
}

.c-widget__title.-spmenu {
    display: none;
}

.c-listMenu a {
    padding: 0.5em 1em 0.5em 1.5em;
}

.c-spnav > .menu-item:first-child > a {
    margin-top: 1.2em !important;
}

.ham_menu_list {
    padding-left: 0 !important;
}

@media (max-width: 600px) {
    .ham_menu_list {
        font-size: 14px;
        gap: 1rem;
    }

    .ham_menu_lists .wp-block-column:first-of-type {
        flex-basis: 45% !important;
        flex-grow: 0;
    }
}

.ham_menu_lists .wp-block-column:first-child .swell-block-linkList__item:nth-child(10),
.ham_menu_lists .wp-block-column:first-child .swell-block-linkList__item:nth-child(11) {
    padding-left: 1rem;
}

.ham_menu_lists .wp-block-column:last-child .swell-block-linkList__item:nth-child(5),
.ham_menu_lists .wp-block-column:last-child .swell-block-linkList__item:nth-child(9) {
    padding-left: 1rem;
}


/* =============================
   パンくずリスト
============================= */
@media (min-width: 960px) {
    .p-breadcrumb {
        margin-top: calc(var(--logo_size_pc) + 45px);
        padding-left: calc((100% - 1000px) / 2);
        padding-right: calc((100% - 1000px) / 2);
    }
}
.single .p-breadcrumb__item:last-child > span.p-breadcrumb__text {
      display: inline-flex;
  }

/* =============================
   メインビジュアル
============================= */
.swiper-slide {
    align-items: normal;
}

@media (max-width: 960px) {
    .p-mainVisual.-height-full {
        height: 500px;
    }
}

@media (min-width: 960px) {
    .p-mainVisual.-height-full {
        height: 800px;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.p-mainVisual__slideTitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 3rem;
    font-weight: 900;
    color: #fff;
    letter-spacing: 0.05em;
    text-align: center;
    line-height: 1.5;
    opacity: 0;
    animation: fadeIn 1.8s ease-out forwards;
    text-shadow:
        -1px -1px 0 #033e8c,
         1px -1px 0 #033e8c,
        -1px  1px 0 #033e8c,
         1px  1px 0 #033e8c;
}

/*
.p-mainVisual__slideTitle::after {
    content: "";
    display: block;
    margin: 0.5em auto 0;
    width: 60px;
    height: 2px;
    background: #fff;
    opacity: 0.7;
}
*/

/* =============================
   コンテンツエリア
============================= */
.top #content {
    padding-top: 0;
}

.l-content {
    margin: 0 auto;
}

@media (max-width: 960px) {
    .swell-block-fullWide__inner {
        padding: 0 10px;
    }
}


/* =============================
   記事本文（見出し）
============================= */
.post_content h2 {
    font-size: 24px;
    margin-bottom: 1.5rem;
}

.post_content h3 {
    font-size: 22px;
    margin-bottom: 1.25rem;
}

@media (max-width: 600px) {
    .post_content h2 {
        font-size: 22px;
    }

    .post_content h3 {
        font-size: 20px;
    }
}


/* =============================
   関連記事ブロック（ブログカード）
============================= */
.swell-block-postLink {
    margin-top: 2rem;
}

.p-blogCard {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    transition: box-shadow 0.3s ease;
}

.p-blogCard:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

@media (max-width: 600px) {
    .p-blogCard__title {
        font-size: 14px;
    }
}

@media (max-width: 480px) {
    .p-blogCard {
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    }

    .p-blogCard:hover {
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
    }
}


/* =============================
   バナーリンク
============================= */
@media (max-width: 960px) {
    .c-bannerLink__text {
        line-height: 1.1;
        padding-top: 5.1em;
    }
}

@media (min-width: 960px) {
    .c-bannerLink__text {
        padding: 2.1em 0.6em 0 0.6em;
        font-size: 14px;
        line-height: 1.2;
    }
}


/* =============================
   ボタン
============================= */
.wp-block-buttons > .wp-block-button.has-custom-font-size .wp-block-button__link {
    width: 200px;
}


/* =============================
   テーブル
============================= */
.wp-block-table td {
    padding: 1.5em 1em;
}

th.has-text-align-left {
    text-align: center;
}

@media (max-width: 600px) {
    .wp-block-table td {
        padding: 0.6em;
    }
}


/* =============================
   メリット・デメリットバッジ
============================= */
.merit {
    position: relative;
    top: -5px;
    padding: 0.35rem 1.4rem;
    border-radius: 30px;
    background-color: #54bfb5;
    color: #fff;
    font-weight: bold;
    font-size: 17px;
}

.demerit {
    position: relative;
    top: -5px;
    padding: 0.35rem 1.4rem;
    border-radius: 30px;
    background-color: #033e8c;
    color: #fff;
    font-weight: bold;
    font-size: 17px;
}


/* =============================
   ステップブロック
============================= */
.swell-block-step__item::before {
    border: none !important;
}


/* =============================
   フローブロック（VK）
============================= */
.vk_flow .vk_flow_frame_image {
    max-width: 300px;
}

.vk_flow .vk_flow_frame_text_title {
    line-height: 2;
}


/* =============================
   リストスタイル
============================= */
.is-style-bad_list li,
.is-style-check_list li,
.is-style-good_list li,
.is-style-triangle_list li {
    padding-left: 3px;
}


/* =============================
   グループブロック
============================= */
@media (max-width: 960px) {
    .is-style-vk-group-solid-roundcorner {
        padding: 1.3em;
    }
}


/* =============================
   メディア＆テキスト
============================= */
.wp-block-media-text__media img {
    border-radius: 0.5rem !important;
}


/* =============================
   FAQ アコーディオン
============================= */
.swell-block-faq .swell-block-faq__item + .swell-block-faq__item {
    position: relative;
}

/* Q（質問） */
.swell-block-faq .faq_q {
    background: var(--color_gray);
    position: relative;
    padding: 1em 4em 1em 3em;
    cursor: pointer;
}

.swell-block-faq .faq_q::before,
.swell-block-faq .faq_a::before {
    box-shadow: none;
    left: 12px;
}

.swell-block-faq .faq_q::before {
    content: "Q." !important;
    font-weight: bold;
}

.swell-block-faq .faq_a::before {
    content: "A." !important;
    font-weight: bold;
}

/* 開閉アイコン */
.swell-block-faq__item .faq_q::after {
    content: "\e91c";
    font-family: icomoon !important;
    font-weight: bold;
    position: absolute;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.4em;
}

.swell-block-faq__item.is-open .faq_q::after {
    content: "\e919";
}

/* A（回答）— Grid アニメーション */
.swell-block-faq .faq_a {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    overflow: hidden;
    padding: 0 !important;
    border: 0 !important;
    transition:
        grid-template-rows 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        opacity 0.4s ease;
}

.swell-block-faq .swell-block-faq__item.is-open .faq_a {
    grid-template-rows: 1fr;
    opacity: 1;
}

.swell-block-faq .faq_a_inner {
    overflow: hidden;
    min-height: 0;
}

.swell-block-faq .faq_a_content {
    padding: 1em 1em 1em 3em;
    border-top: 0;
    position: relative;
}


/* =============================
   カテゴリページ
============================= */
.c-pageTitle__subTitle {
    display: none;
}
@media (max-width: 600px) {
	.p-termHead__desc{
		font-size:15px;
	}
}

/* =============================
   フッター
============================= */
.l-footer .wp-block-button__link {
    min-width: 214px;
}

.l-footer .swell-block-linkList.is-style-default .swell-block-linkList__link:hover {
    color: #fff;
    opacity: 0.5;
    text-decoration: none;
}

.footer-before img {
    position: relative;
    left: -5px;
    top: 4px;
}

@media (max-width: 600px) {
    .l-footer__nav {
        width: 350px;
        padding-bottom: 150px !important;
    }
}

@media (600px <= width <= 960px) {
    .l-footer__nav {
        padding-bottom: 140px !important;
        width: 620px;
    }
}

@media (min-width: 960px) {
    .l-footer__nav {
        padding-bottom: 120px !important;
    }
}


/* =============================
   フローティングバナー
============================= */
@media (max-width: 960px) {
    .floating-banner {
        position: fixed;
        z-index: 2;
        bottom: 0;
        right: 0;
        width: 100%;
        padding-bottom: 5px !important;
    }
}

@media (min-width: 960px) {
    .floating-banner {
        position: fixed;
        z-index: 2;
        bottom: 0;
        right: 0;
        width: 100%;
        padding-bottom: 20px !important;
        padding-top: 5px !important;
    }
}

/*
@media (max-width: 960px) {
    #fix_bottom_menu + .p-fixBtnWrap {
        bottom: 150px;
    }
}

@media (min-width: 960px) {
    #fix_bottom_menu + .p-fixBtnWrap {
        bottom: 170px;
    }
}
*/


/* =============================
   レスポンシブ表示切替
============================= */
@media (min-width: 960px) {
    .sp-only {
        display: none !important;
    }
}

@media (max-width: 960px) {
    .pc-only {
        display: none !important;
    }

    .text-hh {
        font-size: 19px !important;
    }
}


/* =============================
   ユーティリティ
============================= */
.pt10 { padding-top: 10px !important; }
.pb10 { padding-bottom: 10px !important; }
.pt5  { padding-top: 5px !important; }
.pb5  { padding-bottom: 5px !important; }
.mb0  { margin-bottom: 0 !important; }
