@charset "UTF-8";

/* ========================================
   リセット・基本設定
======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    color: #333;
    line-height: 1.6;
}

a {
    text-decoration: none;
    color: inherit;
}

li {
    list-style: none;
}

/* ========================================
   ヘッダー（PC用）
======================================== */
.header {
    width: 100%;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    transition: box-shadow 0.3s ease;
}

.header.is-scrolled {
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.header-inner {
    /* max-width: 1200px; */
    margin: 0 auto;
    padding: 15px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
}

.logo img {
    height: 50px;
    width: auto;
    display: block;
}

.nav-list {
    display: flex;
    gap: 28px;
}

.nav-list li a {
    font-size: 14px;
    color: #333;
    letter-spacing: 0.05em;
    transition: color 0.3s;
}

.nav-list li a:hover {
    color: #ff5a1e;
}

.hamburger {
    display: none;
}

/* ========================================
   メインビジュアル（スライダー）
======================================== */
main {
    padding-top: 80px;
}

.hero-slider {
    width: 100%;
    height: auto;
}

.hero-slider .swiper-slide img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

.swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    background: #ffffff;
    opacity: 0.9;
    box-shadow: 0 0 3px rgba(0,0,0,0.2);
}

.swiper-pagination-bullet-active {
    background: #ff5a1e;
    opacity: 1;
}

/* ========================================
   共通設定
======================================== */
.inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

.fw-semibold {
    font-weight: 600;
}

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

/* ========================================
   3つの安心ポイントセクション
======================================== */
.features-section {
    padding: 80px 0 0;
}

.features-header {
    text-align: center;
    margin-bottom: 40px;
}

.features-header img {
    max-width: 600px;
}

.features-cards {
    display: flex;
    justify-content: center;
    gap: 20px;
}

.features-cards .card {
    flex: 1;
    max-width: 300px;
}

/* ========================================
   遺品整理士セクション
======================================== */
.certificate-section {
    padding: 60px 0 40px;
    text-align: center;
}

.section-title {
    font-size: 22px;
    margin-bottom: 40px;
    letter-spacing: 0.05em;
}

.cert-images {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
}

.cert-tall {
    max-width: 200px;
}

.cert-wide {
    max-width: 260px;
}

/* ========================================
   社名の由来セクション
======================================== */
.origin-section {
    padding: 60px 0 40px;
    text-align: center;
}

.origin-title {
    font-size: 20px;
    margin-bottom: 20px;
}

.origin-subtitle {
    font-size: 20px;
    margin-bottom: 30px;
}

.origin-desc p {
    font-size: 16px;
    line-height: 1.8;
}

/* ========================================
   商工会議所セクション
======================================== */
.chamber-section {
    padding: 40px 0 100px;
    text-align: center;
}

.chamber-logo {
    margin-bottom: 20px;
}

.chamber-logo img {
    max-width: 80px;
}

.chamber-text {
    font-size: 18px;
    line-height: 1.8;
}

/* ========================================
   レスポンシブデザイン（モバイル用）
======================================== */
@media screen and (max-width: 992px) {
    .header-inner {
        padding: 10px 20px;
    }
    .nav-list {
        gap: 15px;
    }
}

@media screen and (max-width: 768px) {
    .hamburger {
        display: block;
        background: transparent;
        border: none;
        cursor: pointer;
        width: 30px;
        height: 20px;
        position: relative;
        z-index: 1001;
    }

    .hamburger span {
        display: block;
        width: 100%;
        height: 2px;
        background-color: #333;
        position: absolute;
        left: 0;
        transition: all 0.3s;
    }

    .hamburger span:nth-child(1) { top: 0; }
    .hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
    .hamburger span:nth-child(3) { bottom: 0; }

    .hamburger.is-active span:nth-child(1) {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
    .hamburger.is-active span:nth-child(2) {
        opacity: 0;
    }
    .hamburger.is-active span:nth-child(3) {
        bottom: auto;
        top: 50%;
        transform: translateY(-50%) rotate(-45deg);
    }

    .nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80%;
        max-width: 320px;
        height: 100vh;
        background-color: #fff;
        box-shadow: -2px 0 10px rgba(0,0,0,0.1);
        transition: right 0.4s ease;
        z-index: 1000;
        padding-top: 80px;
    }

    .nav.is-active {
        right: 0;
    }

    .nav-list {
        flex-direction: column;
        gap: 0;
    }

    .nav-list li a {
        display: block;
        padding: 20px;
        border-bottom: 1px solid #f5f5f5;
        font-size: 16px;
        text-align: center;
    }

    /* 3つのポイントを縦並びに（潰れ対策完了） */
    .features-cards {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }

    .features-cards .card {
        flex: none;
        width: 100%;
        max-width: 300px;
    }

    /* 資格証を縦並びに */
    .cert-images {
        flex-direction: column;
        gap: 30px;
    }

    .section-title,
    .origin-title,
    .origin-subtitle {
        font-size: 18px;
    }

    .origin-desc p br {
        display: none;
    }
    .origin-desc p {
        text-align: left;
        padding: 0 10px;
    }
}


/* ========================================
   共通設定追加（フォントウェイト）
======================================== */
.fw-regular {
    font-weight: 400;
}
.fw-medium {
    font-weight: 500;
}
.fw-bold {
    font-weight: 700;
}

/* ========================================
   お悩み解消セクション
======================================== */
.trouble-section {
    background-color: #f2f1e8; /* 画像背景のクリームグリーン系カラー */
    padding: 80px 0;
}

.trouble-title {
    text-align: center;
    font-size: 32px;
    line-height: 1.5;
    margin-bottom: 40px;
    letter-spacing: 0.05em;
    color: #111;
}

.trouble-illust {
    text-align: center;
    margin-bottom: 40px;
}

.trouble-illust img {
    max-width: 240px; /* イラストのサイズ調整 */
}

/* リスト全体を中央配置しつつ、中のテキストは左揃えにするためのラッパー */
.trouble-list-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 50px;
}

.trouble-list {
    display: flex;
    flex-direction: column;
    gap: 20px; /* リスト項目の縦の間隔 */
}

.trouble-list li {
    display: flex;
    align-items: center; /* アイコンとテキストを垂直中央で揃える */
    font-size: 18px;
    letter-spacing: 0.05em;
    color: #111;
}

.check-icon {
    width: 24px;
    height: 24px;
    margin-right: 15px; /* チェックマークとテキストの余白 */
    flex-shrink: 0; /* テキストが長くなってもアイコンが潰れないよう保護 */
}

/* ========================================
   お問合せバナー（ボタン）
======================================== */
.trouble-banner {
    text-align: center;
}

.btn-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #619a5f; /* 画像の落ち着いた緑色を再現 */
    color: #fff;
    font-size: 20px;
    padding: 15px 40px;
    border-radius: 4px;
    text-decoration: none;
    transition: opacity 0.3s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.btn-contact:hover {
    opacity: 0.8;
    color: #fff;
}

.btn-contact .arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 10px;
    border: 1px solid #fff;
    border-radius: 50%;
    font-size: 14px;
}

/* ========================================
   レスポンシブデザイン（モバイル用追加）
======================================== */
@media screen and (max-width: 768px) {
    .trouble-section {
        padding: 60px 0;
    }

    .trouble-title {
        font-size: 24px;
        margin-bottom: 30px;
    }

    .trouble-illust {
        margin-bottom: 30px;
    }

    .trouble-illust img {
        max-width: 200px;
    }

    .trouble-list-wrapper {
        margin-bottom: 40px;
        padding: 0 10px; /* スマホ画面端からの余白 */
    }

    .trouble-list {
        gap: 15px;
    }

    .trouble-list li {
        font-size: 15px;
        align-items: flex-start; /* スマホでテキストが2行になった際、アイコンを上揃えにする */
    }

    .check-icon {
        width: 20px;
        height: 20px;
        margin-right: 12px;
        margin-top: 2px; /* 上揃え時のアイコン位置の微調整 */
    }

    .btn-contact {
        font-size: 16px;
        padding: 12px 30px;
        width: 90%; /* スマホではボタンを横幅いっぱいに広げる */
        max-width: 350px;
    }
}


/* ========================================
   参考価格セクション
======================================== */
.price-section {
    background-color: #fff; /* 白背景に戻る */
    padding: 80px 0;
}

.price-header-illust {
    text-align: center;
    margin-bottom: 20px;
}

.price-header-illust img {
    max-width: 70px; /* 電卓アイコンのサイズ調整 */
}

.price-title {
    text-align: center;
    font-size: 28px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 5px;
}

.price-subtitle {
    text-align: center;
    font-size: 14px;
    color: #666;
    letter-spacing: 0.1em;
    margin-bottom: 15px;
}

.price-note {
    text-align: center;
    font-size: 13px;
    color: #333;
    margin-bottom: 35px;
}

/* 料金テーブルのレイアウト */
.price-table-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
}

.price-table {
    width: 100%;
    max-width: 450px;
    border-collapse: collapse;
    border: 1px solid #ccc;
    background-color: #fff;
}

.price-table th,
.price-table td {
    border: 1px solid #ccc;
    padding: 20px 25px;
    vertical-align: middle;
    text-align: center;
}

.price-table th {
    width: 35%;
    font-size: 20px;
    background-color: #fff;
    color: #111;
    letter-spacing: 0.05em;
}

.price-table td {
    width: 65%;
    text-align: right; /* 金額を右寄り（または中央）にきれいに見せるため */
    padding-right: 40px;
}

/* 金額のオレンジ色と大きさ */
.price-num {
    color: #ff5a1e; /* 前回のスライダー等で使っているオレンジ色 */
    font-size: 28px;
    letter-spacing: 0.05em;
}

.price-table td span.tax-status {
    font-size: 13px;
    font-weight: 450;
    color: #333;
}

.price-footer-text {
    text-align: center;
    font-size: 15px;
    color: #111;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.price-banner {
    text-align: center;
}

/* ========================================
   レスポンシブデザイン（モバイル用追加）
======================================== */
@media screen and (max-width: 768px) {
    .price-section {
        padding: 60px 0;
    }

    .price-title {
        font-size: 24px;
    }

    .price-table-wrapper {
        padding: 0 15px; /* スマホでテーブルが画面端にくっつかないようにする */
    }

    .price-table th,
    .price-table td {
        padding: 15px 10px;
    }

    .price-table th {
        font-size: 16px;
    }

    .price-num {
        font-size: 20px; /* スマホ画面で金額がはみ出さないよう少し調整 */
    }

    .price-footer-text {
        font-size: 14px;
        padding: 0 15px;
    }
}

/* ========================================
   作業事例セクション
======================================== */
.cases-section {
    background-color: #fff;
    padding: 80px 0;
}

.cases-header-title {
    text-align: center;
    margin-bottom: 50px;
}

.cases-title {
    font-size: 28px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 5px;
}

.cases-subtitle {
    font-size: 14px;
    color: #666;
    letter-spacing: 0.1em;
}

/* 事例ごとのブロック */
.case-item {
    margin-bottom: 60px;
}
.case-item:last-of-type {
    margin-bottom: 0;
}

/* Before / After 画像の並び */
.case-images {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 15px;
}

.case-img-box {
    width: 42%;
    max-width: 380px;
}

.case-img-box img {
    width: 100%;
    height: auto;
    /* border-radius: 4px; */
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    display: block;
    margin-bottom: 8px;
}

.img-label {
    text-align: center;
    font-size: 15px;
    color: #333;
}

.case-arrow {
    color: #ff5a1e; /* アクセントのオレンジ色 */
    font-size: 20px;
    font-weight: bold;
    flex-shrink: 0;
}

/* 作業説明文 */
.case-desc {
    max-width: 800px;
    margin: 0 auto 15px;
    font-size: 15px;
    line-height: 1.8;
    color: #333;
    padding: 0 15px;
}

/* 詳細情報（地域・間取り・日数・人数・価格） */
.case-info {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    font-size: 18px;
    color: #111;
    letter-spacing: 0.05em;
    flex-wrap: wrap;
    padding: 0 15px;
}

.case-info .price {
    color: #ff5a1e;
    font-size: 20px;
}

.case-info .price .num {
    font-size: 24px;
}

/* 事例の間の緑色区切り線 */
.case-divider {
    border: none;
    height: 2px;
    background-color: #619a5f; /* サイト全体の統一感を生む緑色 */
    max-width: 800px;
    margin: 50px auto;
}

/* ========================================
   レスポンシブデザイン（モバイル用追加）
======================================== */
@media screen and (max-width: 768px) {
    .cases-section {
        padding: 60px 0;
    }

    .cases-title {
        font-size: 24px;
    }

    /* スマホではBeforeとAfterの写真が横に並ばないため縦並びに変換 */
    .case-images {
        flex-direction: column;
        gap: 15px;
    }

    .case-img-box {
        width: 100%;
        max-width: 100%;
    }

    /* 矢印の向きを下に変更 */
    .case-arrow {
        transform: rotate(90deg);
        margin: 5px 0;
    }

    .case-desc {
        font-size: 14px;
        text-align: left;
    }

    .case-info {
        flex-direction: column;
        gap: 8px;
        font-size: 16px;
        text-align: center;
    }

    .case-info .price {
        font-size: 18px;
    }
    .case-info .price .num {
        font-size: 20px;
    }

    .case-divider {
        margin: 40px 20px;
    }
}

/* ========================================
   対応エリアセクション
======================================== */
.area-section {
    background-color: #fff;
    padding: 80px 0;
}

.area-header-title {
    text-align: center;
    margin-bottom: 50px;
}

.area-title {
    font-size: 28px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 5px;
}

.area-subtitle {
    font-size: 14px;
    color: #666;
    letter-spacing: 0.1em;
}

/* 対応エリアのテーブル風レイアウト */
.area-table {
    max-width: 850px;
    margin: 0 auto 40px;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

.area-row {
    display: flex;
    align-items: center;
    padding: 25px 20px;
    border-bottom: 1px solid #eee;
}

.area-row:last-child {
    border-bottom: none;
}

.area-badge-col {
    width: 180px;
    flex-shrink: 0;
    text-align: center;
}

/* 都道府県バッジ（オレンジのピル型） */
.area-badge {
    display: inline-block;
    background-color: #ff5a1e; /* サイト共通のオレンジ色 */
    color: #fff;
    font-size: 15px;
    padding: 6px 28px;
    border-radius: 20px;
    letter-spacing: 0.05em;
}

/* 市区町村リスト */
.area-cities {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    font-size: 16px;
    color: #111;
    letter-spacing: 0.05em;
}

.area-footer-text {
    text-align: center;
    font-size: 15px;
    color: #333;
    letter-spacing: 0.05em;
}

/* ========================================
   レスポンシブデザイン（モバイル用追加）
======================================== */
@media screen and (max-width: 768px) {
    .area-section {
        padding: 60px 0;
    }

    .area-title {
        font-size: 24px;
    }

    .area-table {
        margin: 0 15px 30px;
    }

    /* スマホではバッジと市区町村を縦並びにして見やすく調整 */
    .area-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        padding: 20px 15px;
    }

    .area-badge-col {
        width: auto;
        text-align: left;
    }

    .area-cities {
        gap: 15px;
        font-size: 15px;
    }
}


/* ========================================
   フッターセクション（完璧一致版）
======================================== */
.footer {
    background-color: #214e3b; /* サイト全体の深緑色の背景 */
    color: #fff;
    padding: 35px 0;
}

.footer-inner {
    max-width: 1200px; /* ヘッダーと同じ幅に広げる */
    margin: 0 auto;
    padding: 0 40px;   /* 左右に適切な余白を持たせる */
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 40px;
}

/* 左側：画像1.pngエリア */
.footer-left {
    max-width: 400px;
    width: 100%;
}

.footer-left-img {
    width: 100%;
    height: auto;
    display: block;
}

/* 右側エリア全体 */
.footer-right {
    display: flex;
    flex-direction: column;
    gap: 22px;
    flex-grow: 1;
}

/* メインメニュー (Medium) */
.footer-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 24px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-nav li a {
    color: #fff;
    text-decoration: none;
    font-size: 15px;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: opacity 0.3s;
}

.footer-nav li a span {
    font-size: 13px;
}

.footer-nav li a:hover {
    opacity: 0.8;
}

/* 下段行（プライバシーポリシー・サイトマップ と コピーライトを上下に分離） */
.footer-bottom-row {
    display: flex;
    flex-direction: column; /* 上下に縦並びにする */
    gap: 15px;              /* サブメニューとコピーライトの間の余白 */
    width: 100%;
}

/* プライバシーポリシー・サイトマップ（上段・左寄せ） */
.footer-sub-nav {
    display: flex;
    gap: 25px;
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: flex-start; /* 左側に配置 */
}

.footer-sub-nav li a {
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 0.05em;
}

.footer-sub-nav li a:hover {
    text-decoration: underline;
}

/* コピーライト（一番下の行・中央揃え） */
.footer-copy {
    text-align: center;      /* 一番下で真ん中に配置 */
    font-size: 13px;
    letter-spacing: 0.05em;
    color: #fff;
    width: 100%;
}

/* ========================================
   レスポンシブデザイン（モバイル用追加）
======================================== */
@media screen and (max-width: 768px) {
    .footer {
        padding: 30px 0;
    }

    .footer-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 30px;
    }

    .footer-left {
        max-width: 360px;
    }

    .footer-right {
        width: 100%;
        align-items: center;
    }

    .footer-nav {
        justify-content: center;
        gap: 12px 18px;
    }

    .footer-bottom-row {
        display: flex;             /* グリッドを解除して縦並びに戻す */
        flex-direction: column;
        gap: 12px;
        width: 100%;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .footer-sub-nav {
        justify-self: auto;
        justify-content: center;   /* スマホではサブメニューも中央へ */
    }
}


/* ========================================
   下層ページ：遺品整理 (ihin.html) 専用スタイル
======================================== */
.ihin-main {
    padding-top: 160px; /* 固定ヘッダーの高さ＋余白 */
    background-color: #fff;
}

/* --- イントロセクション --- */
.ihin-intro-section {
    text-align: center;
    margin-bottom: 80px;
}

.ihin-page-title {
    font-size: 34px;
    letter-spacing: 0.1em;
    color: #111;
    margin-bottom: 65px;
    text-align: center;
}

.ihin-intro-text {
    font-size: 16px;
    line-height: 2;
    color: #111;
    letter-spacing: 0.05em;
}

.ihin-intro-text .text-orange {
    color: #ff5a1e;
}

.ihin-intro-text .mt-4 {
    margin-top: 25px; /* 段落間の余白 */
}

/* --- 基本料金セクション --- */
.ihin-price-section {
    margin-bottom: 80px;
}

/* --- 基本料金に含まれるサービス --- */
.ihin-services-section {
    margin-bottom: 80px;
}

.ihin-section-title {
    text-align: center;
    font-size: 28px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 45px;
}

.ihin-services-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
    max-width: 900px;
    margin: 0 auto;
}

.ihin-service-card {
    flex: 1;
    max-width: 420px;
}

.ihin-service-card img {
    width: 100%;
    height: auto;
    margin-bottom: 20px;
    display: block;
}

.ihin-service-card h3 {
    text-align: center;
    font-size: 18px;
    color: #111;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}

.ihin-service-card p {
    font-size: 14px;
    line-height: 1.8;
    color: #333;
    letter-spacing: 0.05em;
    text-align: justify; /* テキストの両端を揃えて綺麗に見せる */
}

/* --- 回収できないもの --- */
.ihin-uncollectible-section {
    margin-bottom: 60px;
    text-align: center;
}

.ihin-uncollectible-text {
    font-size: 18px;
    color: #111;
    letter-spacing: 0.05em;
}

/* --- お問合せボタン配置 --- */
.ihin-contact-section {
    text-align: center;
    padding-bottom: 120px;
}

/* ========================================
   下層ページ：レスポンシブデザイン（スマホ用）
======================================== */
@media screen and (max-width: 768px) {
    .ihin-main {
        padding-top: 100px;
        padding-bottom: 60px;
    }

    .ihin-intro-section {
        margin-bottom: 60px;
    }

    .ihin-page-title {
        font-size: 26px;
        margin-bottom: 30px;
    }

    .ihin-intro-text {
        font-size: 14px;
        padding: 0 15px;
    }

    /* スマホではPC用の強制改行を無効にして自然に折り返す */
    .ihin-intro-text p br {
        display: none;
    }

    .ihin-price-section {
        margin-bottom: 60px;
    }

    .ihin-services-section {
        margin-bottom: 60px;
    }

    .ihin-section-title {
        font-size: 22px;
        margin-bottom: 35px;
    }

    .ihin-services-grid {
        flex-direction: column;
        align-items: center;
        gap: 35px;
        padding: 0 15px;
    }

    .ihin-service-card {
        width: 100%;
        max-width: 360px;
    }

    .ihin-service-card p {
        text-align: left; /* スマホでは左寄せの方が見やすい */
    }

    .ihin-uncollectible-section {
        margin-bottom: 50px;
        padding: 0 15px;
    }

    .ihin-uncollectible-text {
        font-size: 15px;
        line-height: 1.6;
    }
}


/* ========================================
   下層ページ：遺品整理 - 作業事例セクション追加分
======================================== */
.ihin-cases-section {
    margin-bottom: 80px;
}

.ihin-case-item {
    max-width: 900px;
    margin: 0 auto;
}

/* 4組の画像を並べるための間隔調整 */
.ihin-case-images {
    margin-bottom: 40px; /* 各画像セット間の余白 */
    align-items: center; /* 異なる高さの画像でも中央揃えで綺麗に配置 */
}

.ihin-case-images:last-of-type {
    margin-bottom: 40px; /* 画像とテキストエリアの間の余白 */
}

/* 説明文エリア */
.ihin-case-content {
    text-align: center;
    padding: 0 15px;
}

.ihin-case-content .case-desc {
    max-width: 800px;
    margin: 0 auto 40px;
    font-size: 15px;
    line-height: 1.8;
    text-align: justify; /* PC版では両端揃えで綺麗に箱型に見せる */
    letter-spacing: 0.05em;
    color: #111;
}

/* 情報表示のレイアウト調整 */
.ihin-case-content .case-info {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px; /* 各項目の間隔 */
    margin-bottom: 12px;
    flex-wrap: wrap;
    color: #111;
    font-size: 16px;
    letter-spacing: 0.05em;
}

/* 金額と（税込）を画像通りのオレンジ色に統一 */
.ihin-case-content .case-info .price,
.ihin-case-content .case-info .price .tax-status {
    color: #ff5a1e;
    font-size: 18px;
}

.ihin-case-content .case-info .price .num {
    font-size: 24px;
}

.ihin-case-content .case-client {
    font-size: 16px;
    letter-spacing: 0.1em;
    color: #111;
}

/* ========================================
   下層ページ：作業事例 レスポンシブデザイン（モバイル用）
======================================== */
@media screen and (max-width: 768px) {
    .ihin-cases-section {
        margin-bottom: 60px;
    }

    .ihin-case-images {
        margin-bottom: 30px;
    }

    .ihin-case-images:last-of-type {
        margin-bottom: 30px;
    }

    .ihin-case-content .case-desc {
        font-size: 14px;
        margin-bottom: 30px;
        text-align: left; /* モバイルでは読みやすいように左揃え */
    }

    /* モバイル時は情報がはみ出さないよう、index.htmlの事例と同様に縦並びに安全に配置 */
    .ihin-case-content .case-info {
        gap: 12px;
        font-size: 15px;
        flex-direction: column;
    }

    .ihin-case-content .case-client {
        font-size: 15px;
    }
}

/* ========================================
   作業事例：画像の高さ固定 ＆ 中央配置（比率維持）
======================================== */

/* 画像を囲むインナーボックスをフレックスボックスにして中央寄せにする */
.ihin-cases-section .img-inner {
    height: 260px; /* PC表示時の統一する高さ */
    display: flex;
    justify-content: center; /* 横方向の中央配置（真ん中） */
    align-items: center;     /* 縦方向の中央配置 */
    /* background-color: #f9f9f9; /* 万が一余白が出た場合の背景色 */ */
    overflow: hidden;
    border-radius: 4px;
    /* box-shadow: 0 2px 8px rgba(0,0,0,0.1); */
    margin-bottom: 8px;
}

/* 画像の縦サイズを固定し、横幅は比率を維持 */
.ihin-cases-section .img-inner img {
    height: 100%;
    width: auto;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
}

/* ========================================
   レスポンシブ（モバイル用）の高さ調整
======================================== */
@media screen and (max-width: 768px) {
    .ihin-cases-section .img-inner {
        height: 200px; /* スマホ表示時の統一する高さ */
    }
}


/* ========================================
   遺品整理関連の便利なサービスセクション
======================================== */
.ihin-convenient-services-section {
    background-color: #f2f1e8; /* 画像と一致する落ち着いたクリームグリーン系背景 */
    padding: 80px 0;
}

.convenient-services-title {
    text-align: center;
    font-size: 28px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 50px;
}

/* 3列グリッドレイアウト（10個のアイテムで4行目に「相続」が左配置） */
.convenient-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px 40px;
    max-width: 900px;
    margin: 0 auto 50px;
}

.convenient-service-item {
    /* background-color: #fff; */
    /* border-radius: 6px; */
    /* padding: 5px; */
    /* box-shadow: 0 2px 8px rgba(0,0,0,0.05); */
    display: flex;
    flex-direction: column;
    align-items: center;
}

.convenient-service-img {
    width: 100%;
    aspect-ratio: 4 / 3; /* 写真の縦横比を美しく統一 */
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 12px;
    background-color: #f9f9f9;
}

.convenient-service-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.convenient-service-name {
    font-size: 15px;
    color: #111;
    letter-spacing: 0.05em;
    text-align: center;
}

.convenient-services-banner {
    text-align: center;
}

/* ========================================
   レスポンシブデザイン（モバイル用）
======================================== */
@media screen and (max-width: 768px) {
    .ihin-convenient-services-section {
        padding: 60px 0 0 0;
    }

    .convenient-services-title {
        font-size: 22px;
        margin-bottom: 35px;
    }

    /* スマホ画面では2列に変更してカードが潰れないように最適化 */
    .convenient-services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 15px;
        max-width: 100%;
        margin-bottom: 40px;
        padding: 0 15px;
    }

    .convenient-service-item {
        padding: 0px;
    }

    .convenient-service-name {
        font-size: 13px;
    }
}


/* ========================================
   ゴミ屋敷整理ページ専用追加スタイル
======================================== */
.price-plus-sign {
    text-align: center;
    font-size: 32px;
    color: #111;
    margin: 30px 0 20px;
}

.additional-price-title {
    text-align: center;
    font-size: 20px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 20px;
}

.additional-table-wrapper {
    margin-bottom: 30px;
}

.additional-price-table td {
    padding: 18px 20px;
    text-align: center;
    background-color: #fff;
    color: #333;
    font-size: 15px;
}

/* ========================================
   レスポンシブデザイン（モバイル用）
======================================== */
@media screen and (max-width: 768px) {
    .price-plus-sign {
        font-size: 26px;
        margin: 25px 0 15px;
    }

    .additional-price-title {
        font-size: 18px;
        margin-bottom: 15px;
    }

    .additional-price-table td {
        font-size: 14px;
        padding: 14px 15px;
    }
}

/* ========================================
   特殊清掃ページ専用追加スタイル
======================================== */
.tokusyu-section {
    padding: 0 0 50px;
    background-color: #fff;
}

.tokusyu-intro-text {
    text-align: center;
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 10px;
}

.tokusyu-intro-text .text-orange {
    color: #e65c00;
}

.tokusyu-sub-intro {
    text-align: center;
    font-size: 15px;
    color: #333;
    margin-bottom: 45px;
}

.tokusyu-case-title {
    text-align: center;
    font-size: 26px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 35px;
}

.tokusyu-case-box {
    max-width: 800px;
    margin: 0 auto;
}

.tokusyu-compare-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 25px;
}

.tokusyu-image-card {
    flex: 1;
    max-width: 360px;
}

.tokusyu-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 4px;
    background-color: #f9f9f9;
    margin-bottom: 8px;
}

.tokusyu-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tokusyu-img-label {
    text-align: center;
    font-size: 16px;
    color: #111;
}

.tokusyu-arrow {
    color: #e65c00;
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 25px; /* ラベルの高さ分中央調整 */
}

.tokusyu-case-desc {
    font-size: 14.5px;
    line-height: 1.8;
    color: #333;
    margin-bottom: 30px;
}

.tokusyu-case-price {
    text-align: center;
    font-size: 22px;
    color: #111;
    margin-bottom: 50px;
}

.tokusyu-case-price .staff-count {
    margin-right: 15px;
}

.tokusyu-case-price .price-value {
    color: #e65c00;
    font-size: 26px;
    margin-right: 5px;
}

.tokusyu-case-price .tax-label {
    font-size: 15px;
    color: #333;
}

.tokusyu-bottom-line {
    width: 100%;
    height: 2px;
    background-color: #729c7b; /* 添付画像にある下部の緑の線 */
    max-width: 900px;
    margin: 0 auto;
}

/* ========================================
   レスポンシブデザイン（モバイル用）
======================================== */
@media screen and (max-width: 768px) {
    .tokusyu-section {
        padding: 0px 15px;
    }

    .tokusyu-intro-text {
        font-size: 15px;
    }

    .tokusyu-sub-intro {
        font-size: 13.5px;
        margin-bottom: 30px;
    }

    .tokusyu-case-title {
        font-size: 22px;
        margin-bottom: 25px;
    }

    .tokusyu-compare-wrapper {
        flex-direction: column;
        gap: 15px;
    }

    .tokusyu-arrow {
        transform: rotate(90deg);
        padding-bottom: 0;
        margin: 5px 0;
    }

    .tokusyu-image-card {
        max-width: 100%;
    }

    .tokusyu-case-desc {
        font-size: 13.5px;
        margin-bottom: 20px;
    }

    .tokusyu-case-price {
        font-size: 18px;
        margin-bottom: 35px;
    }

    .tokusyu-case-price .price-value {
        font-size: 22px;
    }
}

/* ========================================
   会社概要・代表ごあいさつページ専用追加スタイル
======================================== */
.about-section {
    padding: 0 0 80px;
    background-color: #fff;
}

.about-greeting-title {
    text-align: center;
    font-size: 26px;
    letter-spacing: 0.05em;
    color: #111;
    margin-bottom: 45px;
}

.about-text-block {
    max-width: 800px;
    margin: 0 auto 50px;
    font-size: 15px;
    line-height: 2.2; /* 長文が美しく読みやすくなるよう行間を調整 */
    color: #222;
}

.about-text-block p {
    margin-bottom: 0.4em; /* 段落ごとの適度な余白 */
}

.about-director-box {
    text-align: center;
    max-width: 300px;
    margin: 0 auto;
}

.director-img {
    width: 70%;
    /* aspect-ratio: 1 / 1; */
    overflow: hidden;
    border-radius: 4px;
    margin: 0 auto;
    /* background-color: #f9f9f9; */
}

.director-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.director-signature {
    font-family: 'Yuji Boku', serif; /* 画像の雰囲気に合わせた筆文字風フォント */
    font-size: 22px;
    letter-spacing: 0.15em;
    color: #111;
}

/* ========================================
   レスポンシブデザイン（モバイル用）
======================================== */
@media screen and (max-width: 768px) {
    .about-section {
        padding: 0px 15px 60px;
    }

    .about-greeting-title {
        font-size: 22px;
        margin-bottom: 30px;
    }

    .about-text-block {
        font-size: 14px;
        line-height: 2.0;
        margin-bottom: 40px;
        padding: 0 5px;
    }

    .about-director-box {
        max-width: 240px;
    }

    .director-signature {
        font-size: 19px;
    }
}


/* ========================================
   会社概要詳細テーブル・マップセクション
======================================== */
.company-profile-section {
    padding: 0 0 80px;
    background-color: #fff;
}

.company-table {
    max-width: 900px;
    margin: 0 auto 60px;
    border-top: 1px dashed #bbb;
}

.company-row {
    display: flex;
    padding: 22px 10px;
    border-bottom: 1px dashed #bbb;
    font-size: 15px;
    color: #222;
    letter-spacing: 0.05em;
    line-height: 1.8;
}

.company-row dt {
    width: 160px;
    flex-shrink: 0;
    font-weight: 400;
    color: #111;
}

.company-row dd {
    flex-grow: 1;
    font-weight: 400;
    color: #333;
}

/* Googleマップのレスポンシブ対応ラッパー（16:9維持） */
.company-map-wrap {
    max-width: 900px;
    margin: 0 auto;
    width: 100%;
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.company-map-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ========================================
   レスポンシブデザイン（モバイル用追加）
======================================== */
@media screen and (max-width: 768px) {
    .company-profile-section {
        padding: 0 0 50px;
    }

    .company-table {
        margin: 0 15px 40px;
    }

    .company-row {
        flex-direction: column;
        gap: 6px;
        padding: 16px 10px;
        font-size: 14px;
    }

    .company-row dt {
        width: 100%;
    }

    .company-map-wrap {
        margin: 0 15px;
        width: auto;
    }
}

/* ========================================
   プライバシーポリシー セクション
======================================== */
.privacy-section {
    padding: 80px 0 100px;
    background-color: #fff;
}

.privacy-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px;
}

.privacy-title {
    font-size: 34px;
    text-align: center;
    margin-bottom: 50px;
    /* letter-spacing: 0.05em; */
    color: #111;
}

.privacy-block {
    margin-bottom: 36px;
}

.privacy-block:last-child {
    margin-bottom: 0;
}

.privacy-heading {
    font-size: 16px;
    margin-bottom: 12px;
    color: #111;
    /* letter-spacing: 0.05em; */
}

.privacy-text {
    font-size: 15px;
    line-height: 1.8;
    color: #333;
    /* letter-spacing: 0.05em; */
    margin-bottom: 8px;
}

.privacy-text:last-child {
    margin-bottom: 0;
}

.privacy-contact-list {
    font-size: 15px;
    line-height: 1.8;
    color: #333;
    letter-spacing: 0.05em;
    margin-top: 8px;
}

.privacy-contact-list p {
    margin-bottom: 4px;
}

/* ========================================
   レスポンシブデザイン（モバイル用調整）
======================================== */
@media screen and (max-width: 768px) {
    .privacy-section {
        padding: 40px 0 60px;
    }

    .privacy-inner {
        padding: 0 25px;
    }

    .privacy-title {
        font-size: 22px;
        margin-bottom: 30px;
    }

    .privacy-heading {
        font-size: 15px;
        margin-bottom: 10px;
    }

    .privacy-text,
    .privacy-contact-list {
        font-size: 14px;
    }
}

/* ========================================
   フォントウェイト補助クラス（SemiBold追加）
======================================== */
.fw-semibold {
    font-weight: 600;
}

/* ========================================
   サイトマップ セクション
======================================== */
.sitemap-section {
    padding: 80px 0 100px;
    background-color: #fff;
}

.sitemap-inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.sitemap-title {
    font-size: 34px;
    text-align: center;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
    color: #111;
}

.sitemap-lead {
    font-size: 15px;
    text-align: center;
    margin-bottom: 40px;
    color: #555;
    letter-spacing: 0.05em;
}

.sitemap-list-wrap {
    background: #fafafa;
    border-radius: 8px;
    padding: 20px 40px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}

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

.sitemap-list li {
    border-bottom: 1px solid #eaeaea;
}

.sitemap-list li:last-child {
    border-bottom: none;
}

.sitemap-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 10px;
    color: #333;
    text-decoration: none;
    transition: background-color 0.2s ease, padding-left 0.2s ease, color 0.2s ease;
}

.sitemap-link:hover {
    color: #0066cc;
    background-color: rgba(0, 0, 0, 0.02);
    padding-left: 15px;
}

.sitemap-link-text {
    font-size: 16px;
    letter-spacing: 0.05em;
}

.sitemap-link-sub {
    font-size: 13px;
    color: #888;
    letter-spacing: 0.05em;
}

/* ========================================
   レスポンシブデザイン（モバイル用調整）
======================================== */
@media screen and (max-width: 768px) {
    .sitemap-section {
        padding: 20px 0 60px;
    }

    .sitemap-inner {
        padding: 0 15px;
    }

    .sitemap-title {
        font-size: 26px;
        margin-bottom: 12px;
    }

    .sitemap-lead {
        font-size: 14px;
        margin-bottom: 30px;
    }

    .sitemap-list-wrap {
        padding: 10px 15px;
    }

    .sitemap-link {
        padding: 14px 8px;
    }

    .sitemap-link-text {
        font-size: 15px;
    }

    .sitemap-link-sub {
        font-size: 12px;
    }

    .logo img {
      height: 38px;
    }
}


/* ========================================
   お問い合わせ セクション
======================================== */
.contact-page-section {
    padding: 80px 0 60px;
    background-color: #fff;
}

.contact-page-inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.contact-page-title {
    font-size: 34px;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
    color: #111;
}

.contact-page-lead {
    font-size: 15px;
    margin-bottom: 50px;
    color: #333;
    letter-spacing: 0.05em;
}

.contact-phone-box {
    margin-bottom: 50px;
}

.contact-phone-heading {
    font-size: 22px;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
    color: #111;
}

.contact-hours {
    font-size: 15px;
    margin-bottom: 16px;
    color: #333;
    letter-spacing: 0.05em;
}

.contact-tel-number a {
    font-size: 28px;
    color: #e65100; /* 画像のオレンジ色の電話番号表現に準拠 */
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.2s ease;
}

.contact-tel-number a:hover {
    opacity: 0.8;
}

.contact-divider {
    max-width: 700px;
    height: 1px;
    background-color: #ccc;
    margin: 0 auto;
}

/* ========================================
   レスポンシブデザイン（モバイル用調整）
======================================== */
@media screen and (max-width: 768px) {
    .contact-page-section {
        padding: 20px 0 60px;
    }

    .contact-page-inner {
        padding: 0 25px;
    }

    .contact-page-title {
        font-size: 26px;
        margin-bottom: 16px;
    }

    .contact-page-lead {
        font-size: 14px;
        margin-bottom: 35px;
        line-height: 1.6;
    }

    .contact-phone-heading {
        font-size: 18px;
        margin-bottom: 12px;
    }

    .contact-hours {
        font-size: 14px;
        margin-bottom: 12px;
    }

    .contact-tel-number a {
        font-size: 22px;
    }
}


/* ========================================
   メールフォーム セクション
======================================== */
.contact-form-area {
    max-width: 600px;
    margin: 0 auto 100px;
    text-align: left; /* フォーム内は左揃えベース */
}

.contact-form-title {
    font-size: 24px;
    text-align: center;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
    color: #111;
}

.contact-form-note {
    font-size: 13px;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
    color: #333;
}

.req {
    color: #ff7676; /* 画像の赤（ピンク寄り）を再現 */
    margin: 0 2px;
}

.contact-form {
    width: 100%;
}

.form-group {
    margin-bottom: 35px;
}

.form-label {
    display: block;
    font-size: 14px;
    margin-bottom: 10px;
    color: #111;
    letter-spacing: 0.05em;
}

.form-input {
    width: 100%;
    height: 42px;
    padding: 0 15px;
    border: 1px solid #b3b3b3;
    border-radius: 8px; /* 角丸を忠実に再現 */
    font-size: 15px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}

.form-input:focus,
.form-textarea:focus {
    outline: none;
    border-color: #555;
}

.form-textarea {
    width: 100%;
    height: 150px;
    padding: 15px;
    border: 1px solid #b3b3b3;
    border-radius: 8px;
    font-size: 15px;
    box-sizing: border-box;
    resize: vertical;
}

.form-hint {
    font-size: 11px;
    color: #777;
    text-align: right;
    margin-top: 6px;
    letter-spacing: 0.05em;
}

.form-error {
    font-size: 12px;
    color: #ff0000;
    margin-top: 5px;
    display: none;
}

/* ラジオボタンのレイアウト */
.radio-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding-left: 10px;
}

.radio-label {
    font-size: 14px;
    color: #333;
    display: flex;
    align-items: center;
    cursor: pointer;
    letter-spacing: 0.05em;
}

.radio-label input[type="radio"] {
    margin-right: 12px;
    transform: scale(1.2);
    cursor: pointer;
}

/* 送信ボタン */
.form-submit {
    text-align: center;
    margin-top: 50px;
}

.submit-btn {
    display: inline-block;
    padding: 8px 45px;
    font-size: 15px;
    color: #333;
    background-color: transparent;
    border: 1px solid #777;
    border-radius: 25px; /* 丸みのあるボタン */
    cursor: pointer;
    letter-spacing: 0.2em;
    transition: background-color 0.3s, color 0.3s;
}

.submit-btn:hover {
    background-color: #333;
    color: #fff;
}

/* ========================================
   レスポンシブデザイン（モバイル用調整）
======================================== */
@media screen and (max-width: 768px) {
    .contact-form-area {
        margin: 0 auto 80px;
        padding: 0 30px;
    }
    .form-input, .form-textarea, .form-hint {
        max-width: 100%;
    }
    .radio-group {
        padding-left: 0;
    }
    /* 1. 「Before」と「After」の画像セットの間に線を入れる */
    .ihin-case-images {
        border-bottom: 1px solid #818181; /* 線の太さと色（例: 薄いグレー） */
        padding-bottom: 30px;          /* 線と次の要素との余白 */
        margin-bottom: 40px;           /* 下の要素との余白 */
    }

    /* 2. 最後の画像セットの下にある余白の調整（必要に応じて） */
    .ihin-case-images:last-of-type {
        border-bottom: none;           /* 最後のセットの下線は消す場合 */
        padding-bottom: 0;
    }
    .footer-nav li a {
      font-size: 12px;
    }
    .footer-sub-nav li a {
      font-size: 11px;
    }
    .footer-copy {
      font-size: 11px;
    }
}

/* トップに戻るボタンの基本設定 */
.page-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 999;
    width: 60px; /* SVG画像のお好みのサイズに調整 */
    height: 60px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px); /* 最初は20px下に配置しておく */
    transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
    cursor: pointer;
}

/* 画像をボタン幅に合わせる */
.page-top img {
    width: 100%;
    height: auto;
}

/* スクロールして表示されるときに付与されるクラス */
.page-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0); /* 元の位置に戻ることで「浮き上がる」演出 */
}

/* スマホ表示時のサイズ・位置調整 */
@media screen and (max-width: 768px) {
    .page-top {
        right: 15px;
        bottom: 15px;
        width: 50px;
        height: 50px;
    }
}
