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

/* ==========================================================================
   カラー変数
   ========================================================================== */
:root {
    --color-primary: #004a9c;
    --color-light-blue: #d4e6f7;
    --color-sky-blue: #00bfff;
    --color-secondary: #6b757e;
    --color-secondary-light: #e9ecef;
    --color-danger: #e03131;
    --color-orange: #f59e0b;
    --color-white: #ffffff;
}

/* ==========================================================================
   ベース
   ========================================================================== */
body {
    font-feature-settings: "palt";
    letter-spacing: 0.125em;
}

/* ==========================================================================
   コンポーネント
   ========================================================================== */

/**
 * カード
 */
.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    border-radius: 20px;
}

.card-hover {
    transition: all 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-5px);
    box-shadow:
        0 10px 25px -5px rgba(0, 0, 0, 0.1),
        0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/**
 * ボタン
 */
.button-scale {
    transition: all 0.3s ease;
}

.button-scale:hover {
    transform: scale(1.05);
}

/**
 * 料金案内CTA：このボタンだけモックに合わせる
 */
.cta-free-consult {
    /* SWELLのボタン変数をこのブロック内だけ上書き */
    --the-btn-bg: #fff;
    --the-btn-color: #1f3c88;
    --the-btn-radius: 999px;
    --the-btn-padding: 18px 44px;
    --the-min-width: auto;
    --the-width: auto;
}

/* ボタン本体（aタグ） */
.cta-free-consult .swell-block-button__link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 14px;

    background: var(--the-btn-bg) !important;
    color: var(--the-btn-color) !important;

    border-radius: var(--the-btn-radius) !important;
    padding: var(--the-btn-padding) !important;

    /* 影（モックの"浮き"） */
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background-color 0.25s ease;
    text-decoration: none;

    /* 横幅：PCは程よく、スマホは画面に合わせる */
    min-width: min(420px, 90vw);
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* 親（中央寄せ） */
.cta-free-consult.swell-block-button {
    text-align: center;
}

/* 右矢印アイコンのサイズ微調整 */
.cta-free-consult .__icon.-right {
    width: 1.05em;
    height: 1.05em;
}

/* hover */
.cta-free-consult .swell-block-button__link:hover {
    background-color: #f5f7fb !important;
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.2);
}

/**
 * チェックリスト
 */
.is-style-check_list li:before {
    content: "✔";
}

/**
 * リンク
 */
a:not([href]) {
    cursor: default;
}

/**
 * アイコンカード
 */
.icon-card {
    border: 2px solid transparent;
    transition: all 0.3s ease;
}

.icon-card:hover {
    border-color: var(--color-primary);
    --swl-box_shadow: 0 8px 16px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);
}

.icon-card.icon-card-primary:hover {
    border-color: var(--color-primary);
}

.icon-card.icon-card-blue:hover {
    border-color: var(--color-sky-blue);
}

.icon-card.icon-card-pink:hover {
    border-color: #ff6a91;
}

.icon-card.icon-card-green:hover {
    border-color: #4bd614;
}

.icon-card .icon-box {
    transition: all 0.3s ease;
}

.icon-card:hover .icon-box {
    background-color: var(--color-primary);
}

.icon-card:hover .icon-box svg {
    color: #ffffff;
}

.icon-card .icon-box.icon-box-circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    color: #fff;
    background-color: var(--color-light-blue);
    border: 3px solid #fff;
    font-size: 54px;
    line-height: 1;
    margin-bottom: 0;
    margin-left: auto;
    margin-right: auto;
    box-shadow:
        0 4px 6px -1px rgba(0, 0, 0, 0.1),
        0 2px 4px -2px rgba(0, 0, 0, 0.1);
}

.icon-card .icon-box.icon-box-circle.icon-box-circle-primary {
    background-color: var(--color-primary);
}

.icon-card .icon-box.icon-box-circle.icon-box-circle-blue {
    background-color: var(--color-sky-blue);
}

.icon-card .icon-box.icon-box-circle.icon-box-circle-pink {
    background-color: #ff6a91;
}

.icon-card .icon-box.icon-box-circle.icon-box-circle-green {
    background-color: #4bd614;
}
.icon-card-title {
    transition: color 0.3s ease;
}

.icon-card:hover .icon-card-title {
    color: var(--color-primary);
}

.icon-card:hover .icon-card-title.icon-card-title-primary {
    color: var(--color-primary);
}

.icon-card:hover .icon-card-title.icon-card-title-blue {
    color: var(--color-sky-blue);
}

.icon-card:hover .icon-card-title.icon-card-title-pink {
    color: #ff6a91;
}

.icon-card:hover .icon-card-title.icon-card-title-green {
    color: #4bd614;
}

/**
 * 装飾円
 * 親要素に position: relative と overflow: hidden が必要
 * 使用例: <div class="deco-circle deco-circle--tr"></div>
 */
.deco-circle {
    border-radius: 9999px;
    position: absolute;
}

/* 右上配置（白） */
.deco-circle--tr {
    background-color: #ffffff;
    height: 16rem;
    opacity: 0.05;
    right: 0;
    top: 0;
    transform: translateY(-50%) translateX(33.333%);
    width: 16rem;
}

/* 左下配置（青） */
.deco-circle--bl {
    background-color: rgb(59, 130, 246);
    bottom: 0;
    height: 12rem;
    left: 0;
    opacity: 0.2;
    transform: translateY(33.333%) translateX(-33.333%);
    width: 12rem;
}

/**
 * ホームページ コンテンツエリア
 */
.home #content {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

.home #before_footer_widget {
    margin-top: 0 !important;
}

/**
 * ホームページ スライダー sticky
 * 右カラムをスクロール中、左カラムのスライダーを画面に固定
 */
@media (min-width: 992px) {
    .home .profile-section {
        align-items: flex-start !important;
    }

    .home .profile-section .profile-sticky {
        position: sticky;
        top: 100px;
        width: auto;
    }
}

/**
 * トップタイトルエリア
 */
@media (min-width: 992px) {
    .l-topTitleArea {
        min-height: 460px !important;
    }
}
.c-pageTitle {
    display: none;
}

.l-topTitleArea__img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

/**
 * サービスリスト
 */
.service-list .service-item {
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.service-list .service-item + .service-item {
    padding-top: 16px;
    border-top: 1px solid rgba(0, 0, 0, 0.125);
}

.service-list .service-item .service-title {
    color: var(--color-primary);
    font-weight: 700;
    position: relative;
}

.service-list .service-item .service-title::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -2.5%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-color: var(--color-primary);
    border-radius: 50%;
}

.service-list .service-item .service-title .swl-inline-icon {
    color: #fff;
    width: 32px;
}

.service-list .service-item .service-text {
    line-height: 1.4;
}

@media (min-width: 768px) {
    .service-list .service-item {
        flex-direction: row;
    }

    .service-list .service-item .service-title {
        min-width: 240px;
    }

    .service-list .service-item .service-text {
        flex: 1;
    }
}

/**
 * 見出しバー装飾
 * 見出しの左側に縦線バーを表示
 */
.heading-bar {
    position: relative;
    color: var(--color-primary);
    font-weight: bold;
    padding-left: 1em;
}

.heading-bar::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background-color: var(--color-primary);
    border-radius: 3px;
}

/**
 * タイトルアイコン
 */
.title-icon-primary .swl-inline-icon {
    width: 1.5em;
    color: var(--color-primary);
}

/**
 * テーブル（2カラム）
 */
.table-2column figure.wp-block-table {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--color-light-blue);
}

.table-2column .wp-block-table td,
.table-2column .wp-block-table th {
    border: none;
    padding: 1em 1.5em;
}

.table-2column .wp-block-table th {
    color: rgba(0, 74, 156, 0.75);
    background-color: rgba(0, 191, 255, 0.05);
}

.table-2column .wp-block-table td {
    background-color: rgba(255, 255, 255, 0.25);
}

.table-2column .wp-block-table tr + tr {
    border-top: 1px solid rgba(212, 230, 247, 0.5);
}

/**
 * フッター
 */
.l-footer {
    position: relative;
    overflow: hidden;
}

.l-footer .l-footer__inner .l-footer__foot {
    padding-top: 0;
    padding-bottom: 0;
}

.l-footer .l-footer__inner .l-footer__foot .l-container {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    padding-top: 48px;
    padding-bottom: 48px;
}

.l-footer .l-footer__inner .l-footer__foot .l-container .copyright {
    font-size: 14px;
    text-align: center;
    line-height: 1.85;
}

/**
 * フッター前ウィジェット
 */
.w-beforeFooter {
    background-color: var(--color-primary);
    color: #fff;
    padding-top: 64px;
    padding-bottom: 64px;
    position: relative;
    overflow: hidden;
}

.w-beforeFooter .btn {
    color: #fff;
    font-size: 18px;
    border-radius: 9999px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5em;
    font-weight: bold;
    padding-top: 16px;
    padding-bottom: 16px;
    padding-left: 40px;
    padding-right: 40px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.w-beforeFooter .btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.w-beforeFooter .btn.btn-warning {
    background-color: var(--color-orange);
    border-color: var(--color-orange);
}

/* ==========================================================================
   ユーティリティ
   ※ クラス名はアルファベット順で並べる
   ========================================================================== */

.align-items-center {
    align-items: center !important;
}

.align-items-start {
    align-items: flex-start !important;
}

.badge {
    background-color: #dfedff;
    border-radius: 9999px;
    color: var(--color-primary);
    display: inline-block;
    font-weight: 600;
    letter-spacing: 0.125em;
    padding: 6px 16px;
}

.bg-white {
    background-color: #ffffff;
}

.br-md-block br {
    display: none !important;
}

@media (min-width: 768px) {
    .br-md-block br {
        display: block !important;
    }
}

.border-2 {
    border-width: 2px !important;
}

.d-flex {
    display: flex !important;
}

.d-inline-block {
    display: inline-block !important;
}

/**
 * Flexbox子要素を均等幅にする
 */
.equal-width.is-row {
    flex-direction: column;
    justify-content: center;
    align-items: start;
    gap: 24px;
}

.equal-width.is-row > * {
    flex: 1;
}

@media (min-width: 992px) {
    .equal-width.is-row {
        flex-direction: row;
    }

    .post_content .is-row.mt-lg-24 {
        margin-top: 24px !important;
    }
}

.flex-column {
    flex-direction: column !important;
}

@media (min-width: 768px) {
    .flex-md-row {
        flex-direction: row !important;
    }
}

.fw-bold {
    font-weight: 700 !important;
}

.fz-14 {
    font-size: 14px !important;
}

.fz-16 {
    font-size: 16px !important;
}

.fz-18 {
    font-size: 18px !important;
}

.fz-20 {
    font-size: 20px !important;
}

.fz-24 {
    font-size: 24px !important;
}

.fz-30 {
    font-size: 30px !important;
}

.fz-34 {
    font-size: 34px !important;
}

.fz-36 {
    font-size: 36px !important;
}

.fz-48 {
    font-size: 48px !important;
}

.fz-54 {
    font-size: 54px !important;
}

@media (min-width: 768px) {
    .fz-md-48 {
        font-size: 48px !important;
    }
}

.gap-8 {
    gap: 8px !important;
}

.gap-16 {
    gap: 16px !important;
}

.gap-48 {
    gap: 48px !important;
}

.hover-primary {
    transition: color 0.3s ease;
}

.hover-primary:hover {
    color: var(--color-primary);
}

.justify-content-center {
    justify-content: center !important;
}

.lh-1 {
    line-height: 1 !important;
}

.lh-12 {
    line-height: 1.2 !important;
}

.lh-14 {
    line-height: 1.4 !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-16 {
    margin-bottom: 16px !important;
}

.mt--24,
.icon-card .wp-block-image.mt--24 {
    margin-top: -24px !important;
}

.mt-0 {
    margin-top: 0 !important;
}

.mt-8 {
    margin-top: 8px !important;
}

.mt-16 {
    margin-top: 16px !important;
}

.mt-18 {
    margin-top: 18px !important;
}

.mt-22 {
    margin-top: 22px !important;
}

.mt-24 {
    margin-top: 24px !important;
}

.mt-32 {
    margin-top: 32px !important;
}

@media (min-width: 992px) {
    .mt-lg-24 {
        margin-top: 24px !important;
    }
}

.my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.mx--24 {
    margin-left: -24px !important;
    margin-right: -24px !important;
}

.mx-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}

.overflow-hidden {
    overflow: hidden !important;
}

.p-8 {
    padding: 8px;
}

.p-16 {
    padding: 16px !important;
}

.py-10 {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.py-54 {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
}

.px-12 {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

.px-24 {
    padding-left: 24px !important;
    padding-right: 24px !important;
}

@media (min-width: 992px) {
    .px-lg-48 {
        padding-left: 48px !important;
        padding-right: 48px !important;
    }
}

.position-absolute {
    position: absolute !important;
}

.position-relative {
    position: relative !important;
}

.rounded-4 {
    border-radius: 4px;
}

.rounded-8 {
    border-radius: 8px;
}

.rounded-12 {
    border-radius: 12px;
}

.shadow {
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.1),
        0 10px 20px rgba(0, 0, 0, 0.15) !important;
}

.shadow-sm {
    box-shadow:
        0 4px 6px -1px rgba(0, 0, 0, 0.1),
        0 2px 4px -2px rgba(0, 0, 0, 0.1);
    transition:
        box-shadow 0.3s ease,
        transform 0.3s ease;
}

.shadow-sm:hover {
    box-shadow:
        0 10px 15px -3px rgba(0, 0, 0, 0.1),
        0 4px 6px -4px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.text-center {
    text-align: center !important;
}

.text-primary {
    color: var(--color-primary) !important;
}

.text-secondary {
    color: var(--color-secondary) !important;
}

.text-warning {
    color: var(--color-orange) !important;
}

.text-white {
    color: var(--color-white) !important;
}

.text-sky-blue {
    color: var(--color-sky-blue) !important;
}

.top-50px {
    top: -50px !important;
}

.w-100 {
    width: 100% !important;
}

.max-width-960 {
    max-width: 960px !important;
}

/**
 * フル幅ブロック内カラム間の余白
 */
.swell-block-fullWide__inner > .wp-block-columns {
    gap: 48px !important;
}

/**
 * プロフィールセクション
 * SWELLフル幅ブロック（swell-block-fullWide）と組み合わせて使用
 */
.profile-section .swell-block-fullWide__inner {
    display: block;
    max-width: 1200px;
    margin: 0 auto;
}

@media (min-width: 992px) {
    .profile-section .swell-block-fullWide__inner {
        display: flex;
        align-items: flex-start;
        gap: 64px;
    }

    .profile-section .profile-sticky {
        position: sticky;
        top: 100px; /* SWELLヘッダーの高さに応じて調整 */
        width: 33.333%;
        flex-shrink: 0;
    }

    .profile-section .profile-content {
        width: 66.666%;
    }
}

/**
 * プロフィール画像の装飾
 * 構造: グループブロック内に画像ブロックと装飾用divを配置
 * デザイン: 画像の右下に16pxずらした青いボーダー（PCのみ表示）
 */
.profile-section .profile-sticky .wp-block-image {
    margin-bottom: 16px;
}

.profile-section .profile-sticky .wp-block-image img {
    border-radius: 16px;
    box-shadow:
        0 20px 25px -5px rgba(0, 0, 0, 0.1),
        0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.profile-image-deco {
    display: none;
}

@media (min-width: 992px) {
    .profile-section .profile-sticky .wp-block-group:has(.profile-image-deco) {
        position: relative;
        display: inline-block;
        margin-bottom: 16px;
    }

    .profile-section .profile-sticky .wp-block-group:has(.profile-image-deco) .wp-block-image {
        position: relative;
        z-index: 1;
        margin-bottom: 0;
    }

    .profile-image-deco {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        transform: translate(16px, 16px);
        border: 2px solid var(--color-light-blue);
        border-radius: 16px;
        z-index: 0;
        pointer-events: none;
    }
}

/* ==========================================================================
   お問い合わせフォーム
   ========================================================================== */
.contact-form {
    max-width: 720px;
    margin: 0 auto;
    padding: 32px 24px;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #e6eef7;
    box-shadow:
        0 18px 30px -20px rgba(0, 0, 0, 0.25),
        0 12px 20px -20px rgba(0, 0, 0, 0.2);
}

@media (min-width: 768px) {
    .contact-form {
        padding: 40px;
    }
}

.contact-form__group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-form__group + .contact-form__group {
    margin-top: 16px;
}

.contact-form__label {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #1f2a44;
    display: flex;
    align-items: center;
}

.contact-form__required,
.contact-form__optional {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 4px;
    font-size: 10px;
    letter-spacing: 0.08em;
    margin-left: 8px;
}

.contact-form__required {
    background-color: var(--color-danger);
    color: #ffffff;
}

.contact-form__optional {
    background-color: var(--color-secondary-light);
    color: var(--color-secondary);
}

.form-control,
.form-select {
    width: 100%;
    border: 1px solid #d6e3f4;
    border-radius: 12px;
    padding: 14px 16px;
    background-color: #f8fbff;
    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background-color 0.25s ease;
}

.form-control:focus,
.form-select:focus {
    outline: none;
    border-color: var(--color-primary);
    background-color: #ffffff;
    box-shadow: 0 0 0 4px rgba(0, 74, 156, 0.12);
}

.form-select {
    padding-top: 18px;
    padding-bottom: 18px;
}

textarea.form-control {
    min-height: 160px;
    resize: vertical;
}

.contact-form__message {
    margin-top: 28px;
    padding: 20px;
    border-radius: 16px;
    border: 1px dashed #cfe0f4;
    background: linear-gradient(135deg, #f4f8ff, #eef5ff);
}

.contact-form__message-title {
    margin: 0 0 8px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--color-primary);
}

.contact-form__message-text {
    margin: 0;
    color: #3b4a66;
    line-height: 1.8;
}

.contact-form__message-figure {
    margin: 16px 0 0;
    display: flex;
    justify-content: center;
}

.contact-form__message-image {
    width: min(560px, 100%);
    border-radius: 14px;
    box-shadow:
        0 18px 36px -26px rgba(21, 52, 112, 0.5),
        0 10px 18px -20px rgba(21, 52, 112, 0.45);
    border: 1px solid rgba(207, 224, 244, 0.9);
    background-color: #ffffff;
}

.contact-form__privacy {
    margin: 20px 0 0;
    text-align: center;
}

.contact-form__privacy-link {
    color: #2a4f8f;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: color 0.2s ease;
}

.contact-form__privacy-link:hover {
    color: #123a76;
}

.contact-form__submit {
    margin-top: 32px;
    text-align: center;
}

.contact-form__submit-button {
    border: none;
    background-color: var(--color-primary);
    color: #ffffff;
    border-radius: 999px;
    padding: 14px 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    min-width: min(320px, 90%);
    box-shadow:
        0 14px 22px -16px rgba(0, 0, 0, 0.4),
        0 8px 12px -16px rgba(0, 0, 0, 0.3);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background-color 0.25s ease;
}

.contact-form__submit-button:hover {
    transform: translateY(-2px);
    background-color: #003f86;
    box-shadow:
        0 18px 26px -16px rgba(0, 0, 0, 0.45),
        0 12px 16px -16px rgba(0, 0, 0, 0.35);
}

.contact-form .wpcf7-not-valid {
    border-color: #e35b5b;
    background-color: #fff5f5;
}

.contact-form .wpcf7-not-valid-tip {
    margin-top: 6px;
    font-size: 12px;
    color: #d94848;
}

.wpcf7 .contact-form .wpcf7-response-output {
    margin: 24px 0 0;
    padding: 14px 22px;
    border: 2px solid #46b450;
    border-radius: 14px;
    background-color: #edfbee;
    color: #46b450;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.6;
}

.wpcf7 form.invalid .contact-form .wpcf7-response-output,
.wpcf7 form.unaccepted .contact-form .wpcf7-response-output,
.wpcf7 form.payment-required .contact-form .wpcf7-response-output {
    border-color: var(--color-danger);
    background-color: #ffeef0;
    color: #b42318;
}

.home .p-mainVisual__textLayer {
    justify-content: end;
    top: unset;
    bottom: 75px;
}
@media (min-width: 768px) {
    .home .p-mainVisual__textLayer {
        justify-content: end;
        align-items: flex-end;
    }
}
.home .p-mainVisual__slideTitle {
    position: relative;
    text-align: left;
    font-size: 18px;
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
    text-shadow:
        0 2px 4px rgba(0, 0, 0, 0.35),
        0 6px 12px rgba(0, 0, 0, 0.25);
}
.home .p-mainVisual__slideText {
    text-align: left;
}
.home .p-mainVisual__slideText .subTitle {
    font-size: 32px;
    font-weight: bold;
    line-height: 1.2;
    text-shadow:
        0 2px 4px rgba(0, 0, 0, 0.35),
        0 6px 12px rgba(0, 0, 0, 0.25);
}
.home .p-mainVisual__slideText .subText {
    font-size: 16px;
    line-height: 1.4 !important;
    text-shadow: none;
}
@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }
}
@media (min-width: 768px) {
    .p-mainVisual__slideTitle {
        font-size: 32px;
        margin-left: auto;
    }
    .p-mainVisual__slideText {
        text-align: right;
    }
    .p-mainVisual__slideText .subTitle {
        font-size: 26px;
        text-align: right;
    }
    .p-mainVisual__slideText .subText {
        font-size: 18px;
    }
}
@media (min-width: 992px) {
    .home .p-mainVisual__textLayer {
        justify-content: center;
        top: 0;
        bottom: unset;
    }
    .home .p-mainVisual__slideTitle::before {
        content: "";
        position: absolute;
        top: 50%;
        right: 105%;
        width: 60px;
        height: 1px;
        background-color: #fff;
    }
    .home .p-mainVisual__slideText .subTitle {
        font-size: 56px;
    }
}
.swl-format-1 {
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
}
/*「Cloudflare Turnstile」ウィジェットを中央揃えにする*/
div.cf-turnstile {
    display: flex !important;
    justify-content: center !important;
}
