/* ======== 基本設定 & リセット ======== */
body {
    margin: 0;
    padding: 0;
    font-family: 'Noto Sans JP', sans-serif;
    background-color: #f4f4f4;
    color: #333;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

/* デフォルト（PC）の表示設定 */
.sp-only {
    display: none;  /* スマホ用は、PCでは非表示 */
}
.pc-only {
    display: block; /* PC用は、PCでは表示（imgは元々inlineなのでblockに） */
}
@media screen and (max-width: 768px) {
    .sp-only {
        display: block; /* スマホ用は、スマホでは表示 */
    }
    .pc-only {
        display: none;  /* PC用は、スマホでは非表示 */
    }
}

 body {
            font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
            margin: 0;
            background-color: #f9f9f9; /* 背景色を付けてヘッダーを見やすくします */
        }
        a {
            text-decoration: none;
            color: #002d69 !important;
        }

.js-fade-in {
    opacity: 0;
    transform: translateY(50px); /* 少し下からせり上がる動き */
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* 2. アニメーションの最終状態（画面に入った後） */
.js-fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}


        /* ===============
           ヘッダー
        ================ */
        .site-header {
            width: 98%;
            margin: 0 auto;
            background-color: #fff;
            padding: 20px 0; /* 上下の余白 */
            border-bottom: 1px solid #e0e0e0;
            
            /* flexboxで要素を配置 */
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        /* 左側: ロゴと会社情報 */
        .header-left {
            display: flex;
            align-items: center;
            gap: 20px; /* ロゴと情報の間の余白 */
        }
        
        .logo-area {
            display: flex;
            align-items: center;
            gap: 15px; /* ロゴ画像とテキストの間の余白 */
        }

.logo-area img {
    height: auto;
    width: 250px;
}
        
        .logo-area .site-title {
            font-size: 20px;
            font-weight: bold;
            line-height: 1.4;
            color: #002d69; /* ロゴの青色を参考 */
        }

        .header-info {
            font-size: 12px;
            color: #555;
            line-height: 1.6;
        }
        
        .header-info p {
            margin: 0;
        }

.mvbot-info{
	display: none;
}

.side_btn01{
	position: fixed;
	right: 0;
	top: 250px;
	z-index: 100;
}

.side_btn02{
	position: fixed;
	right: 0;
	top: 450px;
	z-index: 100;
}

.hamburger-menu{
	display: none;
}


.global-nav ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 35px;
}

/* --- ナビゲーションの各項目 (li) --- */
.global-nav ul li {
    position: relative; /* サブメニューの位置を決めるための基準点 */
}

/* --- ナビゲーションのリンク (a) --- */
.global-nav a {
    display: block;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    color: #333 !important; /* !importantで優先度を上げる */
    transition: color 0.3s;
    padding: 10px 0;
}
.global-nav a:hover {
    color: #007bff !important;
}

/* --- 英語表記 (span.en) --- */
.global-nav a .en {
    display: block;
    font-size: 12px;
    font-weight: normal;
    color: #999;
    margin-top: 4px;
}


/* --- サブメニュー（プルダウン） --- */
.global-nav .submenu {
    display: block; /* flexの影響をリセット */
    position: absolute;
    top: 100%;
    left: 50%;
    background-color: #002d69;
    color: #fff;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 20px rgba(0, 45, 105, 0.15);
    list-style: none;
    padding: 10px 0;
    margin: 0;
    width: 220px;
    z-index: 100;

    /* 初期状態は非表示 */
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
}

/* 親メニューをホバーした時にサブメニューを表示 */
.global-nav li.has-child:hover > .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

/* サブメニューの各項目 (li) */
.global-nav .submenu li {
    display: block;
    width: 100%;
    text-align: left;
}
.global-nav .submenu li:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

/* サブメニューのリンク (a) */
.global-nav .submenu li a {
    font-weight: normal; /* 太字をリセット */
    white-space: nowrap;
    padding: 14px 20px;
    font-size: 15px;
    transition: background-color 0.3s;
    color: #fff !important;
}
.global-nav .submenu li a:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: #fff !important; /* ホバー時も色を維持 */
}

/* サブメニュー内の英語表記は非表示 */
.global-nav .submenu li a .en {
    display: none;
}
        /* 右側: 電話番号 */
        .header-contact {
            display: flex;
            gap: 10px; /* アイコンと電話番号の間の余白 */
        }
.header-contact .phone-icon {
    /* アイコンの位置を微調整するための設定 */
    line-height: 1; /* アイコンの上下の余分な余白をなくす */
}
        .header-contact .phone-icon img {
            height: 30px; /* アイコンの高さを調整 */
            width: auto;
        }
        
        .header-contact .phone-details {
            text-align: right;
        }
        
        .header-contact .phone-number {
            font-size: 28px;
            font-weight: bold;
            color: #0e7d6b; /* デザインの色を参考 */
            line-height: 1.1;
            letter-spacing: 1px;
        }

        .header-contact .reception-info {
            font-size: 12px;
            color: #555;
            margin-top: 5px;
        }

.main-visual {
    width: 100%;
    height: 85vh; /* ビューポートの高さに合わせて調整 */
    min-height: 600px; /* 高さが低くなりすぎないように最小値を設定 */
    background-image: url('/images/mv.jpg');
    background-size: cover;
    background-position: center;
    position: relative; /* テキストを絶対配置するための基準点 */
}

.mv-catchcopy {
    position: absolute;
    top: 50%;
    right: 12%; /* 右からの位置を調整 */
    transform: translateY(-50%);
    
    margin: 0; /* h1のデフォルトマージンをリセット */
    color: #fff;
    font-size: 28px;
    /* デザインに近い明朝系のフォントを指定 */
    font-family: "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-weight: 500;
    line-height: 2; /* 行間 */
    letter-spacing: 4px; /* 文字と文字の間隔 */
    
    /* 縦書きを指定 */
    writing-mode: vertical-rl;
    text-orientation: mixed;
    
    /* 文字の影 */
    text-shadow: 0 0 15px rgba(0, 0, 0, 0.6)
}


/* 横書きテキスト（下部に配置） */
.mv-text-horizontal {
    width: 100%;
    align-self: flex-end; /* 下端に配置 */
}

/* 流れる文字のアニメーション */
.text-infinity-scroll {
    width: 100%;
	bottom: 0;
    overflow: hidden;
    display: flex; /* h1を横並びにする */
}
.text-infinity-scroll h1 {
    font-family: Arial, sans-serif;
    font-weight: bold;
    font-size: 64px;
    color: #e4ecf1;
    white-space: nowrap; /* 改行させない */
    margin: 0;
    padding: 20px 0;
}
.text-infinity-scroll h1.first {
    animation: infinity-scroll-left 380s linear infinite;
}
.text-infinity-scroll h1.second {
    animation: infinity-scroll-left 380s linear infinite;
}

/* アニメーションの定義 */
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* ===============
   Aboutセクション
================ */
.about-section {
    background-color: #fff;
    padding: 50px 0;
    text-align: center;
    background-image: url(/images/bg01.jpg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: bottom;
}


.section-title {
    font-size: 28px;
    font-weight: bold;
    color: #165c8d;
    margin: 0 0 40px 0;
}

.section-description {
    font-size: 16px;
    color: #444;
    line-height: 2.2;
    margin: 0 0 30px 0;
}
/* brタグ2つで段落間を表現 */
.section-description br + br {
    content: "";
    display: block;
    margin-top: 1em;
}




.location-section {
    padding: 80px 0;
    background-color: #fff; /* 背景が白でない場合は変更してください */
}

/* PC表示：Flexboxで横並び */
.location-section .container {
    display: flex;
    align-items: center; /* 垂直方向中央揃え */
    gap: 40px; /* 画像とテキストの間隔 */
}

.location-section .location-map {
    flex: 1 1 40%; /* 画像エリアの幅の割合 */
    text-align: center;
}

.location-section .location-map img {
    max-width: 100%;
    height: auto;
}

.location-section .location-text {
    flex: 1 1 60%; /* テキストエリアの幅の割合 */
    background-color: #f7f9fb; /* 画像で使われている薄い青系の背景色 */
    padding: 40px;
    border-radius: 8px; /* 角を少し丸める */
}

.location-section .location-text h2 {
    font-size: 26px; /* 見出しのフォントサイズ */
    color: #0d2c54; /* 濃い青色 */
    margin-top: 0;
    margin-bottom: 24px;
    font-weight: bold;
}

.location-section .location-text p {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    margin-bottom: 1em;
}

.location-section .location-text p:last-child {
    margin-bottom: 0;
}


/* スマホ表示：縦積みに変更 */
@media (max-width: 768px) {
    .location-section {
        padding: 40px 20px;
    }

    .location-section .container {
        flex-direction: column; /* 縦積みに変更 */
        gap: 30px;
    }
    
    .location-section .location-text {
        padding: 30px 25px;
    }

    .location-section .location-text h2 {
        font-size: 20px; /* スマホ用にフォントサイズ調整 */
    }

    .location-section .location-text p {
        font-size: 15px;
    }
}

/* 特徴リスト */
.feature-list {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin-bottom: 60px;
}

.feature-item {
    flex-basis: 380px;
}

.feature-item img {
    max-width: 100%;
    height: auto;
    margin-bottom: 20px;
}

.feature-title {
    font-size: 22px;
    font-weight: bold;
    color: #165c8d;
    margin: 0 0 20px 0;
}

.feature-item p {
    font-size: 15px;
    color: #444;
    line-height: 1.9;
    margin: 0;
    text-align: center;
}


/* ボタン */
.button-wrapper {
    margin-top: 60px;
    text-align: center;
}

.btn-primary {
    display: inline-block;
    background-color: #165c8d;
    color: #fff !important;
    padding: 18px 70px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.btn-primary:hover {
    background-color: #114972; /* 少し濃い色に */
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(22, 92, 141, 0.3);
}

.service-section {
    padding: 100px 0;
}
.personal-service { background-color: #f7f9fa; }
.corporate-service { background-color: #fff; }

/* --- セクションヘッダー（タイトル部分）の共通スタイル --- */
.service-section .service-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    margin-bottom: 60px;
}
.service-section .service-icon { height: 150px; width: auto; }
.service-section .service-title-area { text-align: left; }
.service-section .section-title-blue {
    font-size: 32px;
    font-weight: bold;
    color: #165c8d;
    margin: 0;
}
.service-section .section-title-blue .sub-title {
    display: block;
    font-size: 14px;
    font-weight: normal;
    color: #165c8d;
    letter-spacing: 2px;
    margin-top: 5px;
    text-transform: uppercase;
}
.service-section .service-title-area p {
    font-size: 16px;
    color: #444;
    margin: 15px 0 0 0;
}

/* --- Swiperコンテナ共通スタイル --- */
.personal-swiper, .corporate-swiper {
    overflow: visible; /* ボタンをはみ出して表示 */
    position: relative;
    padding: 20px 0;
}

/* --- カード共通スタイル --- */
.service-section .service-card {
    background-color: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 15px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    height: 100%; /* 高さを揃えるためのキー */
    box-sizing: border-box;
    text-align: left;
	min-height: 350px;
}
.service-section .service-card img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 15px;
}
.service-section .service-card h3 {
    font-size: 18px;
    font-weight: bold;
    color: #165c8d;
    margin: 0 0 10px 0;
}
.service-section .service-card p {
    font-size: 14px;
    color: #555;
    line-height: 1.7;
    margin: 0;
}

/* --- ナビゲーションボタン（矢印）のスタイル --- */
/* 個人向け・法人向けで完全に分離して記述 */

/* ▼▼▼ 個人向けカルーセルのボタン ▼▼▼ */
.personal-swiper .swiper-button-prev,
.personal-swiper .swiper-button-next {
    color: #2978f7; background-color: #fff; border: 1px solid #e0e0e0;
    border-radius: 50%; width: 30px !important; height: 30px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: all 0.3s ease;
    top: 95px; transform: translateY(-50%);
}

.personal-swiper .swiper-button-prev:after,
.personal-swiper .swiper-button-next:after { font-size: 20px !important; font-weight: bold; }
.personal-swiper .swiper-button-prev:hover,
.personal-swiper .swiper-button-next:hover {
    background-color: #f5f5f5; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.personal-swiper .swiper-button-prev { top: 125px; }
.personal-swiper .swiper-button-next { top: 125px; }

/* ▼▼▼ 法人向けカルーセルのボタン ▼▼▼ */
.corporate-swiper .swiper-button-prev,
.corporate-swiper .swiper-button-next {
    color: #2978f7; background-color: #fff; border: 1px solid #e0e0e0;
    border-radius: 50%; width: 30px !important; height: 30px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: all 0.3s ease;
    top: 95px; transform: translateY(-50%);
}

.corporate-swiper .swiper-button-prev:after,
.corporate-swiper .swiper-button-next:after { font-size: 20px !important; font-weight: bold; }
.corporate-swiper .swiper-button-prev:hover,
.corporate-swiper .swiper-button-next:hover {
    background-color: #f5f5f5; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.corporate-swiper .swiper-button-prev { top: 125px; }
.corporate-swiper .swiper-button-next { top: 125px; }


/*
================================================
Price & Flow Section
================================================
*/
.info-section {
    background-color: #fff;
    padding: 30px 0;
    position: relative;
}

/* 中央の点線 */
.info-section .info-grid::before {
    content: '';
    position: absolute;
    top: 15%; /* 少し上から */
    bottom: 15%; /* 少し下まで */
    left: 50%;
    transform: translateX(-50%);
    border-left: 1px dotted #ccc;
}

.info-grid {
    display: flex;
    justify-content: space-around; /* 左右に均等配置 */
    align-items: flex-start; /* 上揃え */
    gap: 5%; /* ブロック間の余白 */
}

.info-block {
    flex-basis: 45%; /* 各ブロックの幅 */
    max-width: 500px;
    text-align: center;
}

.info-title-area {
    margin-bottom: 40px;
}

.info-title-en {
    font-size: 55px;
    color: #c2cfd8;
    margin: 0;
    font-family: arial;
    letter-spacing: 2px;
    font-weight: bold;
}

.info-title-jp {
    font-size: 20px;
    font-weight: bold;
    color: #333;
    margin-top: 5px;
    display: inline-block; /* マーカーのため */
    position: relative;
}

/* マーカーのスタイル */
.info-title-jp::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 8px; /* マーカーの高さ */
    background-color: #f5ea77;
    z-index: -1; /* テキストの背面に */
}

.info-image-wrapper {
    margin-bottom: 30px;
    padding: 10px; /* 枠線の内側の余白 */
    border: 1px solid #c2cfd8; /* 枠線の色と太さ */
}

.info-image-wrapper img {
    display: block; /* 余分な隙間をなくす */
    width: 100%;
    height: auto;
}

.info-description {
    font-size: 16px;
    line-height: 1.8;
    color: #444;
    margin: 0 0 30px 0;
    text-align: justify; /* 両端揃え */
}

.feature-section-wrapper {
    padding-top: 100px;
    background-color: #fff;
    overflow: hidden;
}

.section-title-blue{
    font-size: 32px;
    font-weight: bold;
    color: #165c8d;
    margin: 0;
}

.section-title-blue span{
	font-weight: normal;
	display: block;
}


.feature-section-wrapper .section-header-center {
    text-align: center;
}

/* 上部コンテンツ（背景帯＋画像/テキスト） */
.feature-top-content {
    position: relative; /* 背景帯(.feature-bg)の配置基準 */
    padding: 30px 0 0 0;
}

/* 背景の帯 */
.feature-top-content .feature-bg {
    position: absolute;
    left: 0;
    width: 100%;
    height: 300px;
    background-color: #9ab3c5;
    z-index: 1;
    bottom: 0;
}
.feature-02 .feature-top-content .feature-bg { background-color: #a4bbc9; }

/* 背景の帯の上に乗るコンテンツエリア（Flexboxコンテナ） */
.feature-top-content .feature-content-inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 60px;
}


/* 画像エリア */
.feature-image-area {
    flex: 1;
    position: relative;
    min-width: 0;
}
.feature-image-area img {
    width: 100%;
    display: block;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.feature-image-area img.license{
	width: 300px;
	height: auto;
	display: block;
	margin: 0 auto;
}

/* 英語キャプション */
.feature-en-caption {
    color: #fff !important;
    padding: 15px 30px;
    font-size: 20px !important;
    letter-spacing: 1px;
    margin: 0;
	text-align: center;
}

/* 証明書の日本語キャプション */
.feature-02 .feature-image-caption {
    bottom: 55px;
    right: 20px;
    font-size: 13px;
    color: #fff !important;
    line-height: 1.6;
    text-align: center;
    margin-top: 20px;
}

/* テキストエリア */
.feature-text-area {
    flex: 1;
    position: relative;
    color: #fff;
    text-align: center;
    padding: 40px 0;
    min-width: 0;
}
/* #ナンバー */
.feature-text-area .feature-number {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-size: 60px;
    font-weight: bold;
    color: #aabdca;
    opacity: 0.3;
}
/* アイコン */
.feature-text-area .feature-icon {
    font-size: 48px;
    margin-bottom: 25px;
    padding-top: 230px;
}
/* タイトル */
.feature-text-area h3 {
    font-size: 26px;
    line-height: 1.6;
    margin: 0;
    font-weight: bold;
}

/* 下部の説明文エリア */
.feature-bottom-description {
    padding: 60px 0 80px 0; /* 上下に見やすい余白を確保 */
}
.feature-bottom-description .container {
    max-width: 800px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 2.2;
    color: #444;
}
.feature-bottom-description p {
    margin-top: 0;
    margin-bottom: 1.5em;
}
.feature-bottom-description p:last-child {
    margin-bottom: 0;
}

/*
================================================
Page: はじめての方へ (Guide) - 全体完成版
================================================
*/

.guide-page-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 60px 20px;
    /* Arkheの基本スタイルをリセット */
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.8;
}
.guide-page-container *, .guide-page-container *::before, .guide-page-container *::after {
    box-sizing: border-box;
}
.guide-page-container p { margin-bottom: 1em; }
.guide-page-container p:last-child { margin-bottom: 0; }
.guide-page-container h1, .guide-page-container h2, .guide-page-container h3 { margin: 0 0 1em 0; line-height: 1.5; }
.guide-page-container a { color: #165c8d; }
.guide-page-container a:hover { text-decoration: underline; }

/* ページヘッダー */
.guide-page-container .guide-page-header {
    text-align: center;
    margin-bottom: 80px;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 40px;
}
.guide-page-container .guide-breadcrumbs { font-size: 14px; color: #888; margin-bottom: 20px; }
.guide-page-container .guide-breadcrumbs a { text-decoration: none; }
.guide-page-container .guide-title { font-size: 36px; font-weight: 700; color: #165c8d; margin-bottom: 10px; }
.guide-page-container .guide-title-en { display: block; font-size: 16px; font-weight: normal; color: #9ab3c5; letter-spacing: 3px; margin-top: 5px; }
.guide-page-container .guide-lead { font-size: 16px; color: #555; max-width: 700px; margin: 20px auto 0; }

/* 共通 */
.guide-page-container .guide-section { margin-bottom: 100px; }
.guide-page-container .guide-section-heading { font-size: 26px; color: #165c8d; font-weight: 700; border-left: 5px solid #165c8d; padding-left: 15px; margin-bottom: 25px; }
.guide-page-container .guide-section-heading--center { text-align: center; border-left: none; padding-left: 0; font-size: 28px; margin-bottom: 60px; }
.guide-page-container .guide-section-heading--center i { margin-right: 15px; color: #9ab3c5; }

/* 導入セクション */
.guide-page-container .guide-intro { display: flex; align-items: center; gap: 50px; background-color: #f7f9fa; padding: 50px; border-radius: 12px; }
.guide-intro__image { flex: 0 0 40%; }
.guide-intro__image img { width: 100%; border-radius: 8px; box-shadow: 0 8px 25px rgba(0,0,0,0.1); display: block; }
.guide-intro__text { flex: 1; }

/* 5つのポイント */
.guide-points .points-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.points-grid .point-card { background: #fff; padding: 30px; border: 1px solid #e8e8e8; border-radius: 12px; text-align: center; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.03); }
.points-grid .point-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(22, 92, 141, 0.1); border-color: #9ab3c5; }
.point-card__icon { font-size: 42px; color: #165c8d; margin: 0 auto 20px; width: 80px; height: 80px; line-height: 80px; background-color: #f0f4f8; border-radius: 50%; }
.point-card__title { font-size: 20px; font-weight: 700; color: #165c8d; margin-bottom: 15px; }
.point-card__description { font-size: 15px; color: #555; text-align: left; }

/* よくある質問 */
.guide-faq .faq-container {
    max-width: 900px;
    margin: 0 auto;
}
.guide-faq .faq-item {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    margin-bottom: 20px;
    overflow: hidden; /* アニメーションに必要 */
    transition: .3s;
}
.guide-faq .faq-item.is-open {
    border-color: #b0c4d4;
    box-shadow: 0 5px 20px rgba(154,179,197,0.15);
}
.guide-faq .faq-question {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 20px 25px 20px 5px;
    gap: 20px;
    font-family: inherit;
    font-size: 18px;
    font-weight: 700;
    color: #333;
    text-align: left;
    cursor: pointer;
    background: none;
    border: none;
    position: relative; /* 矢印アイコンの位置基準 */
}
.guide-faq .faq-question-text {
    flex-grow: 1; /* テキストが幅を埋めるように */
}
.guide-faq .faq-icon-q, .guide-faq .faq-icon-a {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.guide-faq .faq-icon-q {
    background-color: #165c8d;
}
.guide-faq .faq-icon-a {
    background-color: #e67e22;
    align-self: flex-start;
    margin-top: 4px;
}
.guide-faq .faq-toggle-icon {
    width: 26px;
    height: 26px;
    margin-left: auto; /* 右端に配置 */
    flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239ab3c5'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.3s ease;
}
.guide-faq .faq-item.is-open .faq-toggle-icon {
    transform: rotate(180deg);
}

/* --- 回答部分のアニメーション設定 --- */
.guide-faq .faq-answer {
    max-height: 0; /* 初期状態では高さを0に */
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
}
.guide-faq .faq-item.is-open .faq-answer {
    max-height: 600px; /* 十分な高さを設定 */
    transition: max-height 0.7s ease-in-out;
}
/* 回答の内部レイアウト */
.guide-faq .faq-answer-inner {
    display: flex;
    padding: 0 25px 25px 25px;
    gap: 20px;
}
.guide-faq .faq-answer-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.guide-faq .faq-answer-body p { margin: 0; }
.guide-faq .alert-box {
    padding: 20px;
    background: #fff9e6;
    border-left: 4px solid #e67e22;
    border-radius: 4px;
}
.guide-faq .alert-box h4 { font-size: 16px; color: #d35400; margin-bottom: 10px; }
.guide-faq .alert-box h4 i { margin-right: 8px; }
.guide-faq .alert-box p { font-size: 15px; color: #555; }


/* お悩み事例 */
.guide-worries .worries-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.worries-grid .worries-card { background: #f7f9fa; padding: 30px; border-radius: 12px; border: 1px solid #e8e8e8; }
.worries-card h3 { font-size: 20px; color: #165c8d; padding-bottom: 15px; border-bottom: 2px solid #9ab3c5; }
.worries-card h3 i { margin-right: 10px; }
.worries-card ul { list-style: none; padding-left: 0; margin: 0; }
.worries-card li { font-size: 16px; color: #444; padding-left: 25px; position: relative; margin-bottom: 10px; }
.worries-card li:last-child { margin-bottom: 0; }
.worries-card li::before { content: '\f00c'; font-family: 'Font Awesome 5 Free'; font-weight: 900; color: #165c8d; position: absolute; left: 0; top: 5px; }

.page-head {
  position: relative;
  width: 100%;
  height: 300px; /* お好みで調整 */
  background-image: url('/images/low_head.jpg');
  background-size: cover;
  background-position: center center;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.page-head-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3); /* 黒フィルター 0.3 */
  z-index: 1;
}

.page-title {
  position: relative;
  color: #fff;
  font-size: 36px;
  z-index: 2;
  text-align: center;
  padding: 0 20px;
}

/*
================================================
Page: ご相談の流れ (Flow) - 最終完成版
================================================
*/
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css');

/* --- ページ全体のコンテナ --- */
.flow-page-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
}
.flow-page-container *, .flow-page-container *::before, .flow-page-container *::after {
    box-sizing: border-box;
    font-family: inherit;
}
.flow-page-container .flow-section {
    margin-bottom: 80px;
}
.flow-page-container p { margin: 0 0 1em; line-height: 1.8; }
.flow-page-container p:last-child { margin-bottom: 0; }
.flow-page-container h3 { margin: 0 0 1em 0; line-height: 1.5; font-weight: 700; }

/* --- 導入部 --- */
.flow-intro {
    text-align: center;
    margin-bottom: 80px;
}
.flow-lead {
    font-size: 22px;
    font-weight: 500;
    color: #002d69;
    line-height: 1.8;
    margin-bottom: 40px;
}
.flow-intro-image {
    max-width: 640px;
    margin: 0 auto;
}
.flow-intro-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    display: block;
}

/* --- タイムライン全体 --- */
.flow-timeline {
    position: relative;
    padding: 20px 0;
}
.flow-timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 48px;
    height: 100%;
    width: 4px;
    background-color: #e0e6ec;
    border-radius: 2px;
}

/* --- 各ステップ --- */
.flow-step {
    position: relative;
    display: flex;
    gap: 30px;
    padding-left: 120px;
    margin-bottom: 50px;
}
.flow-step:last-child {
    margin-bottom: 0;
}
.flow-step__number {
    position: absolute;
    left: 0;
    top: -5px;
    width: 96px;
    height: 96px;
    background-color: #fff;
    border: 4px solid #e0e6ec;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #002d69;
    font-weight: bold;
    z-index: 1;
    transition: border-color 0.3s;
}
.flow-step:hover .flow-step__number {
    border-color: #002d69;
}
.flow-step__number .step-label {
    font-size: 14px;
    color: #9ab3c5;
}
.flow-step__number .step-count {
    font-size: 36px;
    line-height: 1;
}
.flow-step__content {
    background-color: #f7f9fa;
    border-radius: 12px;
    padding: 30px;
    width: 100%;
    border: 1px solid #e8e8e8;
    position: relative;
}
.flow-step__icon {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 36px;
    color: #c2cfd8;
}
.flow-step__title {
    font-size: 24px;
    color: #002d69;
    margin: 0 0 15px;
}
.flow-step__description {
    font-size: 16px;
    color: #444;
    margin: 0;
}
.flow-step__point {
    margin-top: 20px;
    padding: 10px 15px;
    background-color: #eaf2ff;
    border-left: 4px solid #3498db;
    border-radius: 4px;
    font-size: 15px;
    color: #333;
}
.flow-step__point i {
    color: #3498db;
    margin-right: 8px;
}

/* --- 弁護士サポートボックス --- */
.lawyer-support {
    margin-top: 80px;
}
.lawyer-support-box {
    background-color: #f7f9fa;
    border: 1px solid #e0e6ec;
    border-left: 6px solid #002d69;
    border-radius: 12px;
    padding: 30px 40px;
    display: flex;
    align-items: flex-start;
    gap: 30px;
    box-shadow: 0 5px 20px rgba(0, 45, 105, 0.07);
}
.lawyer-support-box__icon-area {
    font-size: 40px;
    color: #002d69;
    flex-shrink: 0;
    padding-top: 5px;
}
.lawyer-support-box__text-area {
    flex: 1;
}
.lawyer-support-box__title {
    font-size: 20px;
    color: #002d69;
    margin: 0 0 10px;
    text-align: left;
}
.lawyer-support-box__text {
    font-size: 16px;
    color: #444;
    margin: 0;
    text-align: left;
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .flow-page-container { padding: 40px 15px; }
    .flow-lead { font-size: 18px; }
    .flow-timeline::before { left: 30px; }
    .flow-step { padding-left: 80px; gap: 20px; }
    .flow-step__number { width: 64px; height: 64px; }
    .flow-step__number .step-label { font-size: 12px; }
    .flow-step__number .step-count { font-size: 24px; }
    .flow-step__content { padding: 20px; }
    .flow-step__title { font-size: 20px; }
    .flow-step__description { font-size: 15px; }
    .flow-step__icon { display: none; }
    .lawyer-support-box { padding: 25px; flex-direction: column; text-align: center; gap: 20px; }
    .lawyer-support-box__icon-area { padding-top: 0; margin: 0 auto; }
    .lawyer-support-box__title,
    .lawyer-support-box__text { text-align: center; }
}

/*
================================================
Page: 料金案内 (Price) - 最終修正版
================================================
*/
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css');

/* --- ページ全体のコンテナ --- */
.price-page-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
}
.price-page-container *, .price-page-container *::before, .price-page-container *::after {
    box-sizing: border-box;
}
.price-page-container h2, .price-page-container h3 {
    margin: 0;
    padding: 0;
    font-weight: 700;
}
.price-page-container p {
    margin: 0;
    line-height: 1.8;
}

/* --- 導入セクション --- */
.price-intro {
    text-align: center;
    padding: 20px 0; /* 上下に少し余白を追加 */
    margin-bottom: 80px;
}
.price-section-heading--center {
    font-size: 32px;
    font-weight: 700;
    color: #002d69;
    margin: 0 auto 20px;
}
.price-page-container p.price-lead{
    font-size: 18px;
    color: #444;
    line-height: 1.8;
    max-width: 800px;
    margin: 30px auto 50px !important;
}
.price-intro-image {
    max-width: 500px;
    margin: 0 auto 50px;
}
.price-intro-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    display: block;
}
.price-note {
    max-width: 800px;
    margin: 0 auto;
    padding: 25px;
    background-color: #f7f9fa;
    border-radius: 8px;
    border: 1px solid #e8e8e8;
    text-align: left;
    font-size: 15px;
    color: #333;
}
.price-note p {
    margin: 0; /* pタグのデフォルトマージンをリセット */
}
.price-note i {
    color: #165c8d;
    margin-right: 10px;
    vertical-align: middle;
}
/* --- 料金一覧 --- */
.price-list {
    margin-bottom: 80px;
}
.price-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
}
.price-card {
    background-color: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.price-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(22, 92, 141, 0.1);
    border-color: #9ab3c5;
}
.price-card__header {
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}
.price-card__header i {
    font-size: 24px;
    color: #165c8d;
}
.price-card__title {
    font-size: 18px;
    color: #333;
}
.price-card__body {
    background-color: #f7f9fa;
    padding: 30px 20px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    min-height: 130px; /* 全てのカードの高さを揃えるための最小値 */
}
.price-card__amount {
    font-size: 28px;
    font-weight: 700;
    color: #002d69;
    line-height: 1.2;
}
.price-card__amount .price-card__unit {
    font-size: 16px;
    font-weight: normal;
    color: #333;
    margin-left: 5px;
}
.price-card__condition {
    font-size: 14px;
    color: #777;
    margin-top: 5px;
    min-height: 21px; /* 1行分の高さを確保してレイアウトを揃える */
}

/* 「ご相談ください」のテキストスタイル */
.price-card__consult-text {
    font-size: 20px;
    font-weight: bold;
    color: #165c8d;
}
/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .price-page-container { padding: 40px 15px; }
    .price-section-heading--center { font-size: 26px; }
    .price-lead { font-size: 16px; }
    .price-grid { grid-template-columns: 1fr; }
}

.company-page-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
}
.company-page-container *, .company-page-container *::before, .company-page-container *::after {
    box-sizing: border-box;
}
.company-page-container .company-section {
    margin-bottom: 80px;
}
.company-page-container p {
    margin: 0 0 1.5em;
    line-height: 1.8;
}
.company-page-container p:last-child {
    margin-bottom: 0;
}
.company-page-container h2, .company-page-container h3 {
    margin: 0 0 30px 0;
    font-weight: 700;
}
.company-section-heading {
    font-size: 22px;
    color: #002d69;
    margin-bottom: 1em;
}
.company-section-heading--center {
    font-size: 28px;
    color: #002d69;
    margin-bottom: 50px;
    text-align: center;
}
.company-section-heading--center i {
    margin-right: 15px;
    color: #9ab3c5;
}


/* --- イントロダクション --- */
.company-intro {
    background-color: #f7f9fa; /* 背景色を追加 */
    padding: 60px;
    border-radius: 12px;
    margin-bottom: 80px;
}

.company-intro__inner {
    display: flex;
    align-items: center;
    gap: 50px;
    max-width: 1100px; /* 内部の最大幅を調整 */
    margin: 0 auto;
}

.company-intro__text {
    flex: 1;
}

.company-intro__image {
    flex: 0 0 45%;
    max-width: 450px;
}

.company-intro__image img {
    width: 100%;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    display: block;
}
/* --- 会社概要テーブル --- */

.overview-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: -50px;
}
.overview-table th, .overview-table td {
    padding: 20px;
    text-align: left;
    border-bottom: 1px solid #e8e8e8;
    vertical-align: top;
}
.overview-table tr:last-child th,
.overview-table tr:last-child td {
    border-bottom: none;
}
.overview-table th {
    background-color: #f7f9fa;
    width: 25%;
    min-width: 140px;
    font-weight: 700;
    color: #333;
}
.overview-table td {
    color: #444;
}
.overview-table a {
    text-decoration: none;
}
.overview-table .trademark-note {
    display: block;
    font-size: 14px;
    color: #777;
    margin-top: 5px;
}

/* --- 沿革タイムライン --- */
.history-timeline {
    position: relative;
    padding-left: 40px;
    border-left: 3px solid #e0e6ec;
}
.history-item {
    position: relative;
    padding-bottom: 40px;
}
.history-item:last-child {
    padding-bottom: 0;
}
.history-item::before {
    content: '';
    position: absolute;
    left: -48px;
    top: 5px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #9ab3c5;
    border: 3px solid #fff;
}
.history-item__year {
    font-size: 18px;
    font-weight: 700;
    color: #002d69;
    margin-bottom: 8px;
}
.history-item__description {
    font-size: 16px;
    color: #444;
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .company-page-container { padding: 40px 5%; }
    .company-section-heading, .company-section-heading--center { font-size: 24px; }
    .company-intro {
        flex-direction: column-reverse; /* 画像を上に */
        gap: 30px;
    }
    .overview-table th {
        width: 35%;
        min-width: 100px;
    }
    .overview-table th, .overview-table td {
        padding: 15px;
    }
    .company-intro {
        padding: 30px; /* スマホではpaddingを調整 */
    }
    .company-intro__inner {
        flex-direction: column-reverse; /* 画像を上に */
        gap: 30px;
    }
}
@media screen and (max-width: 500px) {
    .overview-table th, .overview-table td {
        display: block;
        width: 100%;
    }
    .overview-table th {
        border-bottom: none;
        padding-bottom: 5px;
    }
    .overview-table td {
        padding-top: 5px;
    }
    .overview-table tr:last-child td {
        border-bottom: 1px solid #e8e8e8;
    }
}



.sitemap-container {
    padding: 60px 20px;
    max-width: 900px;
    margin: 0 auto;
}

.sitemap-list,
.sitemap-sub-list,
.sitemap-grandchild-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sitemap-list > li {
    margin-bottom: 25px;
    border-bottom: 1px solid #eee;
    padding-bottom: 25px;
}

.sitemap-list > li:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* 第1階層のリンク */
.sitemap-list > li > a,
.sitemap-parent-title {
    font-size: 20px;
    font-weight: bold;
    color: #333;
    text-decoration: none;
    display: inline-block;
    position: relative;
    padding-left: 25px;
}
.sitemap-list > li > a::before,
.sitemap-parent-title::before {
    font-family: 'Font Awesome 6 Free';
    content: '\f0da'; /* 右向き矢印 */
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #0d77d9;
}
.sitemap-list > li > a:hover {
    color: #0d77d9;
}
.sitemap-parent-title {
    cursor: default;
}


/* 第2階層のリスト */
.sitemap-sub-list {
    margin-top: 20px;
    padding-left: 25px;
}
.sitemap-sub-list > li {
    margin-bottom: 20px;
}
.sitemap-sub-list > li:last-child {
    margin-bottom: 0;
}
.sitemap-sub-list > li > a {
    font-size: 18px;
    font-weight: bold;
    color: #444;
    text-decoration: none;
}
.sitemap-sub-list > li > a:hover {
    color: #0d77d9;
}

/* 第3階層のリスト (各サービス詳細) */
.sitemap-grandchild-list {
    margin-top: 15px;
    padding-left: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* PCでは2カラム */
    gap: 10px 20px;
}
.sitemap-grandchild-list li a {
    font-size: 15px;
    color: #555;
    text-decoration: none;
    display: block;
    padding: 5px 0 5px 20px;
    position: relative;
    transition: color 0.2s, background-color 0.2s;
}
.sitemap-grandchild-list li a::before {
    font-family: 'Font Awesome 6 Free';
    content: '\f054'; /* 小さい右向き矢印 */
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: #aaa;
    transition: color 0.2s;
}
.sitemap-grandchild-list li a:hover {
    color: #0d77d9;
    background-color: #f7f9fb;
}
.sitemap-grandchild-list li a:hover::before {
    color: #0d77d9;
}

/* スマホでの表示調整 */
@media (max-width: 768px) {
    .sitemap-container {
        padding: 40px 20px;
    }
    .sitemap-grandchild-list {
        grid-template-columns: 1fr; /* スマホでは1カラムに */
    }
    .sitemap-list > li > a,
    .sitemap-parent-title {
        font-size: 18px;
    }
    .sitemap-sub-list > li > a {
        font-size: 16px;
    }
}

/*
================================================
Page: プライバシーポリシー (Privacy Policy)
================================================
*/
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css');

.privacy-page-container {
    max-width: 800px; /* テキストが読みやすいように少し狭くする */
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
    color: #333;
}
.privacy-page-container *, .privacy-page-container *::before, .privacy-page-container *::after {
    box-sizing: border-box;
}

.privacy-content {
    background-color: #fff;
    padding: 40px;
    border-radius: 12px;
    border: 1px solid #e8e8e8;
}

.privacy-lead {
    font-size: 16px;
    line-height: 1.8;
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid #e8e8e8;
}

.privacy-section {
    margin-bottom: 40px;
}
.privacy-section__title {
    font-size: 22px;
    color: #002d69;
    padding-bottom: 10px;
    margin-bottom: 20px;
    border-bottom: 2px solid #002d69;
}

.privacy-content p {
    font-size: 16px;
    line-height: 2;
    margin: 0 0 1em;
}

.privacy-content ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.privacy-content ul li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 15px;
}
.privacy-content ul li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: #002d69;
    font-weight: bold;
}

.privacy-box {
    background-color: #f7f9fa;
    padding: 25px;
    border-radius: 8px;
    margin-top: 20px;
}
.privacy-box ul li {
    margin-bottom: 10px;
}
.privacy-box ul li:last-child {
    margin-bottom: 0;
}

.privacy-footer {
    margin-top: 50px;
    padding-top: 30px;
    border-top: 1px solid #e8e8e8;
    font-size: 15px;
    line-height: 1.8;
}
.privacy-footer .date {
    margin-top: 20px;
    font-size: 14px;
    color: #777;
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .privacy-page-container {
        padding: 40px 15px;
    }
    .privacy-content {
        padding: 30px;
    }
    .privacy-section__title {
        font-size: 20px;
    }
    .privacy-content p {
        font-size: 15px;
    }
}

/* --- フォーム全体のコンテナ --- */
.contact-form-container {
    max-width: 800px;
    margin: 40px auto;
    padding: 40px;
    background-color: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
}

/* --- 導入文 --- */
.contact-form-container .form-lead {
    text-align: center;
    font-size: 16px;
    margin-bottom: 40px;
    line-height: 1.8;
}
.required-note {
    font-size: 14px;
    color: #777;
}
.required-star {
    color: #e44d26;
}

/* --- 各入力グループ --- */
.contact-form-container .form-group {
    margin-bottom: 30px;
}
.contact-form-container .form-label,
.contact-form-container .form-group > label {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin-bottom: 10px;
}

.form-group label{
	display: block;
}
.required-tag {
    display: inline-block;
    background-color: #e44d26;
    color: #fff;
    font-size: 12px;
    font-weight: normal;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 8px;
    vertical-align: middle;
}

/* --- 入力フィールドのスタイル --- */
.contact-form-container input[type="text"],
.contact-form-container input[type="email"],
.contact-form-container input[type="tel"],
.contact-form-container textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 16px;
    transition: border-color 0.3s, box-shadow 0.3s;
}
.contact-form-container input[type="text"]:focus,
.contact-form-container input[type="email"]:focus,
.contact-form-container input[type="tel"]:focus,
.contact-form-container textarea:focus {
    border-color: #165c8d;
    box-shadow: 0 0 0 3px rgba(22, 92, 141, 0.1);
    outline: none;
}
.contact-form-container textarea {
    min-height: 200px;
    resize: vertical;
}

/* --- ラジオボタン・チェックボックス --- */
.wpcf7-list-item {
    margin: 0 20px 10px 0;
}
.wpcf7-list-item-label {
    margin-left: 5px;
}

/* --- 補足説明 --- */
.form-note {
    font-size: 14px;
    color: #777;
    margin-top: 8px;
}

/* --- プライバシーポリシー同意 --- */
.form-privacy-check {
    text-align: center;
    margin: 40px 0 30px;
}
.form-privacy-check .wpcf7-list-item-label {
    font-size: 15px;
}
.form-privacy-check a {
    text-decoration: underline;
    color: #165c8d;
}
.form-privacy-check a:hover {
    text-decoration: none;
}

/* --- 送信ボタン --- */
.form-submit {
    text-align: center;
	margin-bottom: 15px;
}
.contact-form-container input[type="submit"] {
    display: inline-block;
    background-color: #165c8d;
    color: #fff;
    padding: 15px 60px;
    border-radius: 50px;
    border: none;
    font-weight: bold;
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.contact-form-container input[type="submit"]:hover {
    background-color: #114972;
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(22, 92, 141, 0.3);
}

/* --- Contact Form 7のエラーメッセージ --- */
.wpcf7-response-output {
    margin: 20px 0 0 !important;
    padding: 15px !important;
    border-radius: 8px !important;
}
span.wpcf7-not-valid-tip {
    font-size: 14px !important;
}

.thanks-page-container {
    max-width: 800px;
    margin: 60px auto;
    padding: 20px;
    font-family: 'Noto Sans JP', sans-serif;
}

.thanks-box {
    background-color: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 60px 40px;
    text-align: center;
    box-shadow: 0 5px 20px rgba(0, 45, 105, 0.05);
}

.thanks-icon {
    font-size: 60px;
    color: #0e7d6b; /* サイトの緑色をアクセントに */
    margin-bottom: 30px;
}

.thanks-title {
    font-size: 28px;
    font-weight: 700;
    color: #002d69;
    margin: 0 0 30px;
}

.thanks-message {
    font-size: 16px;
    line-height: 1.8;
    color: #444;
    margin: 0 0 20px;
}
.thanks-message:last-of-type {
    margin-bottom: 40px;
}

.thanks-action {
    margin-top: 20px;
}

.thanks-button {
    display: inline-block;
    background-color: #165c8d;
    color: #fff !important;
    padding: 15px 50px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.thanks-button:hover {
    background-color: #114972;
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(22, 92, 141, 0.3);
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .thanks-page-container {
        margin: 40px auto;
    }
    .thanks-box {
        padding: 40px 20px;
    }
    .thanks-title {
        font-size: 24px;
    }
    .thanks-message {
        font-size: 15px;
    }
}




.personal-service-page-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
}

.service-list-intro { text-align: center; margin-bottom: 60px; }
.service-list-heading { position: relative; display: inline-block; font-size: 32px; font-weight: 700; margin: 0 0 30px; padding-bottom: 15px; }
.service-list-heading::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 60px; height: 4px; border-radius: 2px; }
.service-list-lead { font-size: 18px; color: #444; line-height: 1.8; max-width: 800px; margin: 0 auto; }
.service-list-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; }
.service-card { display: block; background-color: #fff; border: 1px solid #e8e8e8; border-radius: 12px; padding: 30px; text-align: center; text-decoration: none; box-shadow: 0 4px 15px rgba(0,0,0,0.03); transition: all 0.3s ease; }
.service-card__icon { font-size: 42px; margin: 0 auto 20px; width: 80px; height: 80px; line-height: 80px; border-radius: 50%; transition: background-color 0.3s; }
.service-card__title { font-size: 20px; font-weight: 700; margin: 0 0 15px; transition: color 0.3s; }
.service-card__description { font-size: 15px; line-height: 1.8; color: #555; margin: 0; }

/* --- 【個人向け】配色 --- */
.personal-service-page-container .service-list-heading { color: #002d69; }
.personal-service-page-container .service-list-heading::after { background-color: #165c8d; }
.personal-service-page-container .service-card { color: #333; }
.personal-service-page-container .service-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(22, 92, 141, 0.1); border-color: #9ab3c5; color: #002d69; }
.personal-service-page-container .service-card__icon { color: #165c8d; background-color: #f0f4f8; }
.personal-service-page-container .service-card:hover .service-card__icon { background-color: #e3eaf3; }
.personal-service-page-container .service-card__title { color: #333; }
.personal-service-page-container .service-card:hover .service-card__title { color: #002d69; }

/* --- 【法人向け】配色 --- */
.corporate-service-page-container .service-list-heading { color: #105f6b; }
.corporate-service-page-container .service-list-heading::after { background-color: #105f6b; }
.corporate-service-page-container .service-card { color: #333; }
.corporate-service-page-container .service-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(16, 95, 107, 0.1); border-color: #a6c9ce; color: #105f6b; }
.corporate-service-page-container .service-card__icon { color: #105f6b; background-color: #e7f4f6; }
.corporate-service-page-container .service-card:hover .service-card__icon { background-color: #d8e9ec; }
.corporate-service-page-container .service-card__title { color: #105f6b; }

a.service-card {
    color: inherit; /* 親要素の文字色を継承する */
    text-decoration: none; /* 下線を消す */
    display: block; /* ブロック要素として扱い、幅や高さを有効にする */
}

/* もしホバー時のスタイルも設定するなら */
a.service-card:hover {
    /* ここにホバー時のスタイルを追加 (例: opacity: 0.8;) */
}

.corporate-service-page-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
}



/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .service-list-page-container {
        padding: 40px 15px;
    }
    .service-list-heading {
        font-size: 26px;
    }
    .service-list-lead {
        font-size: 16px;
    }
    .service-list-grid {
        grid-template-columns: 1fr;
    }
}



.trademark-info-box {
    max-width: 800px; /* ボックスの最大幅 */
    margin: 60px auto 0; /* 挨拶文との間に余白をとり、左右中央に配置 */
    padding: 30px;
    border: 1px solid #ddd; /* 控えめな枠線 */
    border-radius: 8px;
    background-color: #fff;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03); /* わずかに影をつける */
}

.trademark-title {
    font-size: 22px;
    font-weight: bold;
    color: #333;
    margin: 0 0 20px 0;
}

.trademark-title .fa-award {
    margin-right: 10px;
    color: #0d77d9; /* サイトのキーカラーに合わせる */
}

.trademark-main {
    font-size: 18px;
    margin: 0 0 8px 0;
}

.trademark-owner {
    font-size: 14px;
    color: #666;
    margin: 0 0 20px 0;
}

.trademark-link a {
    font-size: 14px;
    color: #0d77d9;
    text-decoration: underline;
}

.trademark-link a:hover {
    text-decoration: none;
}

/* レスポンシブ対応 (スマホ用) */
@media (max-width: 768px) {
    .trademark-info-box {
        margin-top: 40px;
        padding: 25px 20px;
        text-align: left; /* スマホでは左揃えの方が見やすい */
    }
    .trademark-title {
        font-size: 18px;
    }
    .trademark-main {
        font-size: 16px;
    }
}


/*
================================================
Page: 調査詳細ページ (Service Detail) - 修正版
================================================
*/
.service-detail-page-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: 'Noto Sans JP', sans-serif;
}
.service-detail-page-container *, .service-detail-page-container *::before, .service-detail-page-container *::after {
    box-sizing: border-box;
}

/* --- ▼▼▼ ヒーローセクションを追加 ▼▼▼ --- */
.service-detail-hero {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 60px;
    background-color: #f7f9fa;
    padding: 40px;
    border-radius: 12px;
}
.service-detail-hero__image {
    flex: 0 0 40%; /* 幅40%を確保 */
    max-width: 400px;
}
.service-detail-hero__image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}
.service-detail-hero__text {
    flex: 1;
}
p.service-detail-lead {
    font-size: 18px;
    font-weight: 500;
    line-height: 2;
    color: #333;
    margin: 0; /* 親要素で制御するためリセット */
}
/* --- ▲▲▲ ここまで ▲▲▲ --- */


.service-detail-content {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

/* --- メインコンテンツ --- */
.service-detail-main {
    flex: 1;
    min-width: 0;
}
.service-detail-section {
    margin-bottom: 50px;
}
.service-detail-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 24px;
    color: #002d69;
    padding-bottom: 10px;
    margin-bottom: 20px;
    border-bottom: 2px solid #e0e6ec;
}
.service-detail-heading i {
    color: #9ab3c5;
}
.service-detail-main p {
    font-size: 16px;
    line-height: 2;
    color: #444;
    margin: 0 0 1em;
}
.service-point-box {
    background-color: #f0f4f8;
    border-left: 5px solid #165c8d;
    border-radius: 0 8px 8px 0;
    padding: 20px;
    margin-top: 30px;
}
.service-point-box__title {
    font-weight: 700;
    color: #002d69;
    margin-bottom: 10px;
}
.alert-box.-warning {
    background-color: #fff9e6;
    border-left: 5px solid #e67e22;
    border-radius: 0 4px 4px 0;
    padding: 20px;
    font-size: 15px;
    margin-top: 30px;
}
.alert-box.-warning p { margin: 0; }
.alert-box.-warning i { margin-right: 8px; }

.check-list, .check-list-box {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}
.check-list li {
    position: relative;
    border-bottom: 1px dashed silver;
    padding-left: 30px;
    margin-bottom: 15px;
    font-size: 16px;
    padding-bottom: 10px;s
}
.check-list li::before {
    content: '\f00c';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    color: #165c8d;
    position: absolute;
    left: 0;
    top: 2px;
}
.check-list-box {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 15px;
    margin-top: 30px;
}
.check-list-box li {
    background: #f7f9fa;
    border-radius: 8px;
    padding: 15px;
    font-size: 16px;
    font-weight: 500;
    color: #333;
    display: flex;
    align-items: center;
    gap: 10px;
}
.check-list-box li i {
    color: #165c8d;
}

/* --- サイドバー --- */
.service-detail-sidebar {
    flex: 0 0 300px;
    position: sticky;
    top: 40px;
}
.sidebar-widget {
    background-color: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 30px;
}
.sidebar-widget__title {
    font-size: 18px;
    font-weight: 700;
    color: #002d69;
    margin: 0 0 20px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.sidebar-price {
    text-align: center;
    margin-bottom: 20px;
}
.price-amount {
    font-size: 32px;
    font-weight: 700;
    color: #e44d26;
    line-height: 1;
}
.price-unit {
    font-size: 16px;
    font-weight: normal;
    color: #333;
    margin-left: 5px;
}
.price-condition {
    font-size: 13px;
    color: #777;
    margin-top: 5px;
}
.sidebar-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sidebar-list li {
    font-size: 14px;
    color: #555;
    position: relative;
    padding-left: 18px;
    margin-bottom: 10px;
}
.sidebar-list li::before {
    content: '※';
    position: absolute;
    left: 0;
}
.sidebar-text {
    font-size: 14px;
    line-height: 1.8;
    color: #555;
}
.sidebar-button {
    display: block;
    width: 100%;
    background-color: #165c8d;
    color: #fff !important;
    text-align: center;
    padding: 12px;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s;
    margin-top: 20px;
}
.sidebar-button:hover {
    background-color: #114972;
    text-decoration: none;
    transform: translateY(-2px);
}
.sidebar-button i {
    margin-left: 8px;
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 900px) {
    .service-detail-content {
        flex-direction: column;
    }
    .service-detail-sidebar {
        flex: 0 0 auto;
        width: 100%;
        position: static;
        top: auto;
    }
}
@media screen and (max-width: 768px) {
    .service-detail-page-container { padding: 40px 10%; }
    .service-detail-hero {
        flex-direction: column; /* スマホでは縦並び（画像が上） */
        padding: 30px;
        gap: 30px;
    }
    .service-detail-lead { font-size: 16px; text-align: center;}
    .service-detail-heading { font-size: 22px; }
    .service-detail-main p { font-size: 15px; }
    .check-list-box { grid-template-columns: 1fr; }
}

.sidebar-widget .price-table {
    width: 100%;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    overflow: hidden;
}
.sidebar-widget .price-table__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px;
    border-bottom: 1px solid #e8e8e8;
}
.sidebar-widget .price-table__row:last-child {
    border-bottom: none;
}
.sidebar-widget .price-table__label {
    font-size: 14px;
    font-weight: 500;
}
.sidebar-widget .price-table__amount {
    font-size: 18px;
    font-weight: 700;
    color: #002d69;
}
.sidebar-widget .price-table__unit {
    font-size: 14px;
    font-weight: normal;
    color: #555;
}
.sidebar-widget .price-table__row.-total {
    background-color: #f0f4f8;
}
.sidebar-widget .price-table__row.-total .price-table__label {
    font-weight: 700;
}
.sidebar-widget .price-table__row.-total .price-table__amount {
    color: #e44d26;
}

.sidebar-widget .price-consult {
    font-size: 24px;
    font-weight: 700;
    color: #002d69;
    padding: 10px 0;
}

.tools-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin: 20px 0 10px;
}
.tool-item img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    border: 1px solid #e8e8e8;
    display: block;
}
.tool-caption {
    font-size: 14px;
    color: #777;
    text-align: center;
}

@media screen and (max-width: 600px) {
    .tools-grid {
        grid-template-columns: repeat(2, 1fr); /* スマホでは2列に */
    }
}

.evidence-case-grid {
    display: grid;
    gap: 20px;
    margin-top: 30px;
}
.evidence-case-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background-color: #f7f9fa;
    padding: 20px;
    border-radius: 8px;
}
.evidence-case-card__icon {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    background-color: #e3eaf3;
    color: #165c8d;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}
.evidence-case-card__title {
    font-size: 18px;
    font-weight: 700;
    color: #002d69;
    margin-bottom: 8px;
}
.evidence-case-card__content p {
    font-size: 15px;
    margin: 0;
    line-height: 1.8;
}

.-corporate .service-detail-heading,
.-corporate .service-point-box__title,
.-corporate .sidebar-widget__title {
    color: #105f6b;
}
.-corporate .service-detail-heading i {
    color: #81b7c0;
}
.-corporate .service-point-box {
    background-color: #e7f4f6;
    border-left-color: #105f6b;
}
.-corporate .check-list li::before,
.-corporate .check-list-box li i {
    color: #105f6b;
}
.-corporate .sidebar-button {
    background-color: #105f6b;
}
.-corporate .sidebar-button:hover {
    background-color: #0c4a54;
}
.check-list-box.-column-2 {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

@media screen and (max-width: 768px) {
    .check-list-box.-column-2 {
        grid-template-columns: 1fr;
    }
}


body{
background: #fff !important;
}
.akari-content-container {
    max-width: 1100px;
    margin: 60px auto;
    padding: 0 20px;
    display: flex;
    gap: 40px;
    align-items: flex-start;
}
.akari-main-content {
    flex: 1;
    min-width: 0;
}
.akari-sidebar {
    flex: 0 0 300px;
    width: 300px;
    position: sticky;
    top: 40px;
}


/* --- 2. メインコンテンツ（記事）のスタイル --- */
.post-header {
    padding-bottom: 30px;
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 40px;
}
.post-title-main {
    font-size: 32px;
    font-weight: 700;
    color: #333;
    line-height: 1.5;
    text-align: center;
}
.post-meta {
    text-align: center;
    margin-top: 20px;
    font-size: 14px;
    color: #777;
}
.post-meta span {
    margin: 0 10px;
}
.post-meta i {
    margin-right: 5px;
}
.post-body {
    font-size: 16px;
    line-height: 1.9;
}


/* --- 3. カスタムサイドバーのスタイル --- */
.sidebar-widget {
    background-color: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 30px;
}
.sidebar-widget__title {
    font-size: 18px;
    font-weight: 700;
    color: #002d69;
    margin: 0 0 20px;
    text-align: center;
    border-bottom: 1px solid #e8e8e8;
    padding-bottom: 15px;
}

/* 検索フォーム */
.sidebar-widget .search-form {
    display: flex;
}
.sidebar-widget .search-form .search-field {
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 6px 0 0 6px;
    padding: 10px;
}
.sidebar-widget .search-form .search-submit {
    background-color: #165c8d;
    color: #fff;
    border: none;
    padding: 0 15px;
    border-radius: 0 6px 6px 0;
    cursor: pointer;
}

/* カテゴリーリスト */
.sidebar-widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sidebar-widget li {
    padding: 10px 0;
    border-bottom: 1px dashed #ccc;
}
.sidebar-widget li:last-child {
    border-bottom: none;
}
.sidebar-widget li a {
    text-decoration: none;
    color: #333 !important;
}
.sidebar-widget ul.children { /* 子カテゴリーのインデント */
    padding-left: 20px;
    margin-top: 10px;
}

/* アーカイブ（プルダウン） */
.sidebar-widget select {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background-color: #fff;
}


/* --- 4. レスポンシブ対応 --- */
@media screen and (max-width: 959px) {
    .akari-content-container {
        flex-direction: column;
        margin: 40px auto;
    }
    .akari-sidebar {
        width: 100%;
        position: static;
    }
    .post-title-main {
        font-size: 26px;
    }
}

.wp-block-image img{
	margin: 30px 0;
}

.akari-archive-container {
    max-width: 900px; /* 記事リストの最大幅 */
    margin: 60px auto;
    padding: 0 20px;
}
.post-list-archive {
    border-top: 1px solid #e0e0e0;
}

/* --- 2. 各投稿カードのスタイル --- */
.post-card {
    padding: 30px 0;
    border-bottom: 1px solid #e0e0e0;
}
.post-card__header {
    margin-bottom: 15px;
}
.post-card__meta {
    display: flex;
    align-items: center;
    gap: 15px; /* 日付とカテゴリーの間の余白 */
    margin-bottom: 10px;
}
.post-card__date {
    font-size: 14px;
    color: #777;
}
.post-card__date i {
    margin-right: 5px;
}

/* --- 2a. カテゴリーラベルの色分け --- */
.post-card__category {
    color: #fff !important;
    font-size: 13px;
    font-weight: bold;
    padding: 4px 12px;
    border-radius: 50px;
    line-height: 1;
}
/* お知らせ */
.post-card__category.category-news {
    background-color: #009688;
}
/* コラム */
.post-card__category.category-column {
    background-color: #3f51b5;
}
/* 事例紹介 */
.post-card__category.category-jirei {
    background-color: #b8a552;
}
/* 親カテゴリーやその他のカテゴリーのデフォルト色 */
.post-card__category:not(.category-news):not(.category-column):not(.category-jirei) {
    background-color: #777;
}

/* --- 2b. タイトルと抜粋 --- */
.post-card__title {
    font-size: 22px;
    margin: 0;
    line-height: 1.5;
}
.post-card__title a {
    text-decoration: none;
    color: #333 !important;
    transition: color 0.3s;
}
.post-card__title a:hover {
    color: #002d69 !important;
}
.post-card__excerpt {
    font-size: 15px;
    color: #555;
    line-height: 1.8;
}
.post-card__excerpt p {
    margin: 0;
}

/* --- 3. ページネーションのスタイル --- */
.navigation.pagination {
    margin: 50px 0 0;
    font-size: 16px;
}
.nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
}
.page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid #ddd;
    border-radius: 50%;
    color: #333 !important;
    text-decoration: none;
    transition: all 0.3s;
}
.page-numbers:hover {
    background-color: #f0f4f8;
    border-color: #165c8d;
}
.page-numbers.current {
    background-color: #165c8d;
    border-color: #165c8d;
    color: #fff !important;
}
.page-numbers.dots {
    border: none;
}

/* --- 4. 記事がない場合の表示 --- */
.no-posts-found {
    text-align: center;
    padding: 50px 0;
    font-size: 18px;
    color: #777;
}

/* --- 5. レスポンシブ対応 --- */
@media screen and (max-width: 768px) {
    .akari-archive-container {
        margin: 40px auto;
    }
    .post-card__title {
        font-size: 20px;
    }
}


/*
================================================
トップページ お知らせ・コラムセクション
================================================
*/
.news-section {
    width: 100%;
    padding: 60px 0;
}
.news-grid {
    display: flex;
    justify-content: center;
}
.news-box {
    width: 50%;
    padding: 40px 10%;
    color: #fff;
}
.news-box.-news {
    background-color: #9ab3c5;
}
.news-box.-column {
    background-color: #e3eaf3;
    color: #002d69;
}
.news-box__header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}
.news-box__icon {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
}
.news-box__icon img {
    width: 100%;
    height: auto;
}
.news-box__title {
    font-size: 28px;
    font-weight: bold;
    line-height: 1.4;
}
.news-box__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.news-box__list li a {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 0;
    text-decoration: none;
    color: inherit !important;
    border-bottom: 1px dotted rgba(255, 255, 255, 0.5);
}
/* コラム側の点線の色を調整 */
.news-box.-column .news-box__list li a {
    border-bottom-color: rgba(0, 45, 105, 0.3);
}

.news-box__date {
    flex-shrink: 0;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1;
}
.-news .news-box__date {
    background-color: #e3eaf3;
    color: #002d69;
}
.-column .news-box__date {
    background-color: #9ab3c5;
    color: #fff;
}
.news-box__title-text {
    font-size: 16px;
    transition: opacity 0.3s;
}
.news-box__list li a:hover .news-box__title-text {
    opacity: 0.7;
}
.news-box__footer {
    text-align: center;
    margin-top: 30px;
}
.news-box__button {
    display: inline-block;
    padding: 12px 40px;
    border: 1px solid #fff;
    border-radius: 4px;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s;
}
.-news .news-box__button {
    background-color: transparent;
    color: #fff !important;
}
.-news .news-box__button:hover {
    background-color: #fff;
    color: #9ab3c5 !important;
}
.-column .news-box__button {
    border-color: #002d69;
    background-color: transparent;
    color: #002d69 !important;
}
.-column .news-box__button:hover {
    background-color: #002d69;
    color: #fff !important;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
    .news-grid {
        flex-direction: column;
    }
    .news-box {
        width: 100%;
        padding: 30px 20px;
    }
    .news-box__title {
        font-size: 24px;
    }
}


/*
================================================
お問い合わせセクション
================================================
*/
.contact-section {
    position: relative;
    width: 100%;
    padding: 80px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

/* --- 背景画像とオーバーレイ --- */
.contact-section__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}
.contact-section__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.contact-section__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 45, 105, 0.1); /* 背景を少し暗くする調整 */
    z-index: 2;
}

/* --- コンテンツ全体 --- */
.contact-section__content {
    position: relative;
    z-index: 3;
    text-align: center;
    color: #fff;
    max-width: 1100px;
    width: 100%;
}

/* --- ヘッダーテキスト部分 --- */
.contact-section__header {
    margin-bottom: 50px;
}
.contact-title-en {
    font-size: 48px;
    font-weight: 600;
    margin: 0 0 20px;
    text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}
.contact-lead {
    font-size: 18px;
    line-height: 1.8;
    text-shadow: 0 1px 5px rgba(0,0,0,0.3);
}

/* --- 3つのカードのグリッド --- */
.contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
.contact-card {
    background-color: rgba(240, 244, 248, 0.9); /* 半透明の背景 */
    backdrop-filter: blur(5px); /* 背景をぼかす（対応ブラウザのみ） */
    -webkit-backdrop-filter: blur(5px);
    border-radius: 12px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    text-decoration: none;
    color: #333 !important;
    transition: all 0.3s ease;
    min-height: 120px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}
.contact-card:hover {
    transform: translateY(-5px);
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0 12px 30px rgba(0, 45, 105, 0.15);
}
.contact-card__icon {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
}
.contact-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.contact-card__text {
    text-align: left;
}
.contact-card__main-text {
    display: block;
    font-size: 24px;
    font-weight: bold;
    color: #002d69;
    line-height: 1.2;
}
.contact-card__sub-text {
    display: block;
    font-size: 14px;
    color: #555;
    margin-top: 5px;
}

/* レスポンシブ対応 */
@media screen and (max-width: 900px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }
}
@media screen and (max-width: 768px) {
    .contact-section {
        padding: 60px 20px;
    }
    .contact-title-en {
        font-size: 36px;
    }
    .contact-lead {
        font-size: 14px;
    }
    .contact-card {
        padding: 25px;
    }
}

.point3{
	display: flex;
	gap: 40px;
	max-width: 1000px;
    margin: 0 auto 50px;
}
.point3 img{
	width: 100%;
	height: auto;

}
@media screen and (max-width: 768px) {
.point3{
	display: block;
	margin: 0 10%;
}
.point3 p{
	margin-bottom: 30px;
}
}


.site-footer {
    background-color: #fff;
    color: #333;
    font-size: 15px;
}
.footer-main {
    padding: 50px 20px;
    border-top: 1px solid #e0e0e0;
}
.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

/* --- 左側: 会社情報 --- */
.footer-info {
    flex: 1;
    min-width: 280px;
}
.footer-logo {
    display: block;
    max-width: 250px;
    margin-bottom: 20px;
}
.footer-logo img {
    width: 100%;
}
.footer-company-id {
    font-size: 13px;
    color: #555;
    line-height: 1.6;
    margin-bottom: 20px;
}
.footer-details p {
    margin: 0 0 10px;
    line-height: 1.6;
}
.footer-tel {
    font-size: 18px;
    font-weight: bold;
}

/* --- 中央: サイトマップ --- */
.footer-nav {
    display: flex;
    gap: 40px;
    padding-top: 10px;
}
.footer-nav-column {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-nav-column li {
    margin-bottom: 15px;
}
.footer-nav-column a {
    text-decoration: none;
    color: #333 !important;
    transition: color 0.3s;
}
.footer-nav-column a:hover {
    color: #002d69 !important;
    text-decoration: underline;
}

/* --- 右側: 協会バナー --- */
.footer-banner {
    flex-shrink: 0;
}
.footer-banner a {
    display: block;
    padding: 5px;
    transition: opacity 0.3s;
}
.footer-banner a:hover {
    opacity: 0.8;
}
.footer-banner img {
    display: block;
    max-width: 300px;
    height: auto;
}

/* --- コピーライト --- */
.footer-copyright {
    color: #000;
    text-align: center;
	border-top: 1px dashed silver;
    padding: 15px 20px;
    font-size: 13px;
    text-align: center;
    padding: 15px 20px;
    font-size: 13px;
}
.footer-copyright p {
    margin: 0;
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 959px) {
    .footer-container {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .footer-info, .footer-nav, .footer-banner {
        width: 100%;
        max-width: 500px;
    }
    .footer-logo {
        margin-left: auto;
        margin-right: auto;
    }
    .footer-nav {
        justify-content: center;
    }
}
@media screen and (max-width: 500px) {
    .footer-nav {
        flex-direction: column;
        gap: 0;
        align-items: center;
    }
    .footer-nav-column:first-child {
        margin-bottom: 15px;
    }
}

@media screen and (max-width: 1400px) {
.header-info {
    font-size: 10px;
}
.header-contact .phone-number {
    font-size: 20px;
}
.global-nav ul {
    gap: 25px;
}
}

@media screen and (max-width: 1300px) {
.logo-area img {
    height: auto;
    width: 200px;
}
.header-contact {
    display: flex;
    gap: 4px;
}
.container {
    max-width: 1200px;
    margin: 0 10%;
    padding: 0;
}

}

@media screen and (max-width: 1199px) {
.global-nav{display: none;}
.header-contact{display: none;}
.side_btn01{display: none;}
.side_btn02{display: none;}

html.is-fixed,
html.is-fixed body {
  height: 100%;
  overflow: hidden;
}

.hamburger-menu{
	display: block;	
	}

.menu-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    height: 60px;
    width: 60px;
    justify-content: center;
    align-items: center;
    z-index: 10001;
    background-color: #002d69;
}
.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
    content: '';
    display: block;
    height: 3px;
    width: 25px;
    border-radius: 3px;
    background-color: #fff;
    position: absolute;
}
.menu-btn span:before {
    bottom: 8px;
}
.menu-btn span:after {
    top: 8px;
}
#menu-btn-check:checked ~ .menu-btn span {
    background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
}
#menu-btn-check:checked ~ .menu-btn span::before {
    bottom: 0;
    transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
    top: 0;
    transform: rotate(-45deg);
}
#menu-btn-check {
    display: none;
}

.menu-content ul {
    padding: 70px 30px 0 30px;
}
.menu-content ul li {
    border-bottom: solid 1px #ffffff;
    list-style: none;
}
.menu-content ul li a {
    display: block;
    width: 100%;
    font-size: 15px;
    box-sizing: border-box;
    color:#ffffff !important;
    text-decoration: none;
    padding: 20px 15px 20px 0;
    position: relative;
}
.menu-content > ul > li:not(.has-child-menu) > a::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 2px #ffffff;
    border-right: solid 2px #ffffff;
    transform: rotate(45deg);
    position: absolute;
    right: 11px;
    top: 24px;
}
.menu-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%;/*leftの値を変更してメニューを画面外へ*/
    z-index: 10000;
    background-color: #305c96;
    transition: all 0.5s;/*アニメーション設定*/
}
#menu-btn-check:checked ~ .menu-content {
    left: 0;/*メニューを画面内へ*/
}
.section-description{
text-align: left;
}

.feature-item p {
    font-size: 15px;
    color: #444;
    line-height: 1.9;
    margin: 0;
    text-align: center;
    text-align: left;
}
.feature-bottom-description .container {
    max-width: unset;
    margin: 0 10%;
    font-size: 16px;
    line-height: 2.2;
    color: #444;
    text-align: left;
}
.feature-top-content .feature-content-inner {
    position: relative;
    z-index: 2;
    display: block;
    align-items: center;
    gap: 0;
}
.feature-en-caption{
text-align: center !important;
}
.feature-text-area {
    flex: 1;
    position: relative;
    color: #fff;
    text-align: center;
    padding: 0;
    min-width: 0;
}

.feature-top-content .feature-bg {
    position: absolute;
    left: 0;
    width: 100%;
    height: 300px;
    background-color: #9ab3c5;
    z-index: 1;
    bottom: unset;
    top: 200px;
}
.feature-text-area .feature-icon{
color: #aabdca;
}
/* 基本スタイル */
.feature-top-content .feature-content-inner {
  display: flex;
  flex-direction: column;
}

.verse{
  flex-direction: column-reverse !important;
}
/* 2番目の要素だけ逆順 */
.feature-top-content .feature-content-inner:nth-of-type(2) {
  flex-direction: column-reverse;
}
    .feature-top-content .feature-bg {
        display: none;
}
.feature-02 .feature-image-caption {
    bottom: 55px;
    right: 20px;
    font-size: 13px;
    color: #000 !important;
}
.feature-bottom-description {
    padding: 30px 0 0 0;
}
.feature-text-area .feature-number {
    position: static;
    left: 50%;
    transform: unset;
    font-size: 60px;
    font-weight: bold;
    color: #aabdca;
    opacity: 0.3;
    text-align: center;
}

.feature-text-area .feature-icon {
    font-size: 48px;
    margin-bottom: 25px;
    padding-top: 0;
}
.feature-text-area h3 {
    font-size: 20px;
    line-height: 1.6;
    margin: 0;
    font-weight: bold;
    color: #165c8d;
}
.feature-en-caption{
    color: #aabdca !important;
}
}

@media screen and (max-width: 767px) {
.feature-list {
    display: block;
}
.feature-item{
	margin-bottom: 40px;
}

.info-grid {
    display: block;
    justify-content: space-around;
    align-items: flex-start;
    gap: 5%;
}
.info-section .info-grid::before {
    content: '';
    position: unset;
    top: 15%;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    border-left: unset;
}
.info-block {
    flex-basis: 45%;
    max-width: unset;
    text-align: center;
	margin-bottom: 40px;
}
.main-visual {
    width: 100%;
    height: 30vh;
    min-height: 400px;
    background-image: url(/images/mv.jpg);
    background-size: cover;
    background-position: center;
    position: relative;
}
.mv-catchcopy {
    position: absolute;
    top: 50%;
    right: 12%;
    transform: translateY(-50%);
    margin: 0;
    color: #fff;
    font-size: 18px;
    height: 280px;
    font-family: "游明朝体", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 4px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    text-shadow: 0 0 15px rgba(0, 0, 0, 0.6);
}
.text-infinity-scroll h1{
    font-family: Arial, sans-serif;
    font-weight: bold;
    font-size: 45px;
}
.about-section {
    background-color: #fff;
    padding: 0 0 50px 0;
}
.section-title {
        font-size: 24px;
        font-weight: bold;
        color: #165c8d;
        margin: 0 0 40px 0;
        letter-spacing: 2px;
}
.service-section .service-header {
    display: block;
    align-items: center;
    justify-content: center;
    gap: 30px;
    margin-bottom: 60px;
}
.service-section .service-icon {
    height: 100px;
    width: auto;
    display: block;
    margin: 0 auto 15px auto;
}
.service-section .section-title-blue {
    font-size: 28px;
    font-weight: bold;
    color: #165c8d;
    margin: 0;
    text-align: center;
}
.info-section {
    background-color: #fff;
    padding: 0 0 40px 0;
    position: relative;
}
    .news-box {
        width: 100%;
        padding: 30px 10%;
    }
    .point3 {
        display: block;
        margin: 0 10% 50px 10%;
    }
.guide-page-container .guide-intro {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 50px;
    background-color: #f7f9fa;
    padding: 50px 20px;
    border-radius: 12px;
}
.guide-page-container .guide-section-heading--center {
    text-align: center;
    border-left: none;
    padding-left: 0;
    font-size: 24px;
    margin-bottom: 30px;
}
.page-title {
    position: relative;
    color: #fff;
    font-size: 24px;
    z-index: 2;
    text-align: center;
    padding: 0 20px;
}
.guide-page-container .guide-section {
    margin-bottom: 40px;
}
.guide-faq .faq-toggle-icon {
    width: 26px;
    height: 26px;
}
.guide-faq .faq-question-text {
    flex-grow: 1;
    line-height: 1.5;
    font-size: 16px;
}
.guide-faq .faq-question {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 20px 0px 10px 5px;
    gap: 10px;
}
.guide-worries .worries-grid {
    display: grid;
    grid-template-columns: unset;
    gap: 40px;
    flex-direction: column;
}
.footer-banner {
        width: auto;
        max-width: unset;
        text-align: center;
        margin: 0 auto;
    }

.header-info{
	display: none;
}

.mvbot-info{
	display: block;
	padding: 10px;
	text-align: center;
	font-size: 13px;
	background: #f5f8fa;
}

}


/* ========== スマホ用 固定CTA ========== */
.sp-fixed-cta {
    /* PCでは非表示にする */
    display: none;
}

/* 768px以下の画面幅（スマホ・タブレット）で表示する */
@media (max-width: 768px) {
.footer-copyright {
    color: #000;
    text-align: center;
	border-top: 1px dashed silver;
    padding: 15px 20px;
    font-size: 13px;
    padding-bottom: 70px;
}
.price-list {
    padding: 0 5%;
}

    .sp-fixed-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        display: flex; /* 横並びにする */
        background-color: #fff;
        box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.1);
        z-index: 999;
        
        /* アニメーションのための設定 */
        transform: translateY(100%); /* 初期状態は画面下に隠す */
        visibility: hidden;
        transition: transform 0.4s ease-out, visibility 0.4s;
    }

    /* スクロール時にJavaScriptで付与されるクラス */
    .sp-fixed-cta.is-visible {
        transform: translateY(0); /* 画面内に表示 */
        visibility: visible;
    }

    .sp-fixed-cta a {
        flex: 1; /* 3つのボタンを均等な幅に */
        display: flex;
        flex-direction: column; /* アイコンとテキストを縦に並べる */
        align-items: center;
        justify-content: center;
        padding: 8px 5px;
        text-decoration: none;
        color: #fff !important;
        font-size: 11px;
        font-weight: bold;
        transition: opacity 0.2s;
    }

    .sp-fixed-cta a:hover {
        opacity: 0.9;
    }

    .sp-fixed-cta i {
        font-size: 22px;
        margin-bottom: 4px; /* アイコンとテキストの間隔 */
    }

    /* 各ボタンの色分け */
    .sp-fixed-cta .cta-phone {
        background-color: #e67e22; /* オレンジ系 */
    }
    .sp-fixed-cta .cta-line {
        background-color: #06C755; /* LINE公式の緑 */
    }
    .sp-fixed-cta .cta-contact {
        background-color: #0d77d9; /* サイトのキーカラー（青） */
    }
}

.hamburger-menu .has-child-menu > a.menu-accordion-toggle {
    position: relative;
    display: flex;
    justify-content: space-between; /* テキストと矢印を両端に配置 */
    align-items: center;
}

/* ▼ 矢印のスタイル */
.hamburger-menu .has-child-menu > a.menu-accordion-toggle::after {
    content: '\f078'; /* Font Awesomeの下向き矢印アイコン */
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    transition: transform 0.3s ease-in-out;
}

/* 開いた状態の矢印（上向きに回転） */
.hamburger-menu .has-child-menu.is-open > a.menu-accordion-toggle::after {
    transform: rotate(-180deg);
}

/* ▼ サブメニューの初期状態（非表示） */
.hamburger-menu .sub-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #f7f9fb; /* 背景色を少し変えて区別しやすく */
    
    /* アニメーションのための設定 */
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out;
}

/* サブメニュー内のリンクのスタイル */
.hamburger-menu .sub-menu li a {
    display: block;
    padding: 14px 20px 14px 40px; /* 左にインデントを持たせる */
    font-size: 14px;
    color: #444 !important;
    text-decoration: none;
    border-top: 1px solid #e9e9e9;
    position: relative;
}

/* サブメニューのリンクの先頭に印をつける */
.hamburger-menu .sub-menu li a::before {
    content: '›';
    position: absolute;
    left: 25px;
    top: 35%;
    transform: translateY(-50%);
    color: #888;
}

.hamburger-menu .sub-menu li a:hover {
    background-color: #eef2f5;
    color: #0d77d9;
}


.page-topic-warning .privacy-section__title {
    border-bottom: none;
    text-align: center;
    font-size: 26px;
    margin-bottom: 40px;
}

.page-topic-warning .entry-content {
    font-size: 16px;
    line-height: 2;
}

/* 赤文字の強調 */
.page-topic-warning .text-danger {
    color: #d32f2f;
}

/* 外部リンクのアイコン */
.page-topic-warning .entry-content a[target="_blank"] {
    text-decoration: underline;
}
.page-topic-warning .entry-content a[target="_blank"] i {
    font-size: .8em;
    margin-left: 4px;
}

/* 下部のボタン */
.page-topic-warning .topic-link-wrapper {
    text-align: center;
    margin-top: 50px;
}
.page-topic-warning .btn-topic-link {
    display: inline-block;
    padding: 15px 40px;
    border: 2px solid #333;
    border-radius: 50px;
    text-decoration: none;
    color: #333 !important;
    font-weight: bold;
    transition: all 0.3s ease;
}
.page-topic-warning .btn-topic-link:hover {
    background-color: #333;
    color: #fff !important;
}
.page-topic-warning .btn-topic-link i {
    margin-right: 10px;
}

.page-topic-jittai .privacy-section__title {
    border-bottom: none;
    text-align: center;
    font-size: 26px;
    margin-bottom: 40px;
}

.page-topic-jittai .entry-content {
    font-size: 16px;
    line-height: 2;
}

/* 黄色マーカーの強調 */
.page-topic-jittai .text-marker {
    background: linear-gradient(transparent 60%, #f5ea77 60%);
    font-weight: bold;
}

/* 下部のボタン */
.page-topic-jittai .topic-link-wrapper {
    text-align: center;
    margin-top: 50px;
}
.page-topic-jittai .btn-topic-link {
    display: inline-block;
    padding: 15px 40px;
    border: 2px solid #333;
    border-radius: 50px;
    text-decoration: none;
    color: #333 !important;
    font-weight: bold;
    transition: all 0.3s ease;
}
.page-topic-jittai .btn-topic-link:hover {
    background-color: #333;
    color: #fff !important;
}
.page-topic-jittai .btn-topic-link i {
    margin-right: 10px;
}