@charset "utf-8";
/* ========================================================
    hall.css => エリア (〇〇市) ページ用 CSS
======================================================== */

/* ========================================================
   市エリア MV セクション (designs/エリア一覧/1_MVセクション_*.svg) PC
======================================================== */
.area_mv {
    position: relative;
    width: 100%;
    padding: 0;
    box-sizing: border-box;
    overflow: hidden;
}

.area_mv_inner {
    position: relative;
}
.area_mv_head {
    position: absolute;
    top: 15.2%;
    left: 9.2%;
    color: var(--col_head_pink);
    line-height: 1;
}
.area_mv_area {
    font-size: 2.5vw;
    font-weight: 500;
    line-height: 1.1;
}
.area_mv_de {
    font-size: 1.6vw;
    font-weight: 500;
}

.area2_mv_head {
    position: absolute;
    top: 20.2%;
    left: 9.2%;
    color: var(--col_head_pink);
    line-height: 1;
}
.area_mv_img {
    width: 100%;
}
.area_mv_img img {
    width: 100%;
    height: auto;
}

@media screen and (max-width: 768px) {
    .area_mv_head {
        top: 7.8%;
        left: 12%;
    }
    .area_mv_area {
        font-size: 6.7vw;
    }
    .area_mv_de {
        font-size: 4.6vw;
    }
    .area2_mv_head {
        top: 10.8%;
        left: 12%;
    }
}

/* ========================================================
   市エリア MV セクション (designs/エリア一覧/1_MVセクション_*.svg) PC
======================================================== */
.city_mv {
    position: relative;
    width: 100%;
    background: var(--col_cream);             /* クリーム背景 */
    padding: 80px 40px 40px;
    box-sizing: border-box;
    overflow: hidden;
}
.city_mv_inner {
    margin: 0 auto;
    display: flex;
    gap: 40px;
    align-items: center;
    justify-content: center;
}

/* 左カラム: 県市名ピル + キャッチ + ロゴ */
.city_mv_head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

/* "栃木県宇都宮市 で" のピル + 助詞 */
.city_mv_lead {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap
}
.city_mv_area {
    display: inline-block;
    padding: 10px 24px;
    background: #fff;
    border-radius: 10px;
    color: var(--col_orange);
    font-size: 4.8rem;
    font-weight: 500;
    line-height: 1.2;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.city_mv_de {
    color: var(--col_brown);
    font-size: 2.0rem;
    font-weight: 500;
}

/* "葬儀・火葬するなら" */
.city_mv_catch {
    margin: 0;
    color: var(--col_brown);
    font-size: 3.2rem;
    font-weight: 500;
}
.city_mv_catch strong {
    font-size: 3.6rem;
    font-weight: 500;
}

/* ロゴ画像 (logo.svg) */
.city_mv_logo {
    margin: 0;
    line-height: 0;
    width: 100%;
}
.city_mv_logo img {
    width: 100%;
    max-width: 400px;
    height: auto;
    display: block;
}

/* 右カラム: メイン画像 (最大幅 1200px) */
.city_mv_img {
    width: 100%;
    max-width: 1200px;
    line-height: 0;
}
.city_mv_img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 24px;
}

@media screen and (max-width: 1080px) {
    .city_mv_inner {
	    flex-flow: row wrap;
    }
}

/* ========================================================
   エリア MV セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .city_mv {
        padding: 40px 16px;
    }
    .city_mv_inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 24px;
        text-align: center;
    }
    .city_mv_head {
        align-items: center;
        gap: 14px;
    }
    .city_mv_area {
        padding: 8px 18px;
        font-size: 2.4rem;
        border-radius: 8px;
    }
    .city_mv_de {
        font-size: 1.6rem;
    }
    .city_mv_catch {
        font-size: 1.6rem;
    }
    .city_mv_catch strong {
        font-size: 2rem;
    }

    .city_mv_logo img {
        max-width: 250px;
        margin: 0 auto;
    }
    .city_mv_img {
        max-width: 420px;
        margin: 0 auto;
    }
    .city_mv_img img {
        border-radius: 16px;
    }
}

/* お問い合わせボタンセクション (.area_cta) は他ページでも使うため template.css に移動 */

/* ========================================================
   MAP セクション (designs/エリア一覧/3_MAPセクション_*.svg) PC
======================================================== */
.map_sec {
    position: relative;
    width: 100%;
    background: var(--col_l_beige);
    padding: 80px 20px 100px;
    box-sizing: border-box;
}
.map_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

/* キャプション "\ お住まいの近くに続々展開中 /" — saving_caption と同パターン */
.map_sec_caption {
    margin: 0 0 12px;
    color: var(--col_brown);
    font-size: 2.4rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    justify-content: center;
}
.map_sec_caption_slash { display: block; }
.map_sec_caption_slash_inner { display: inline-block; font-weight: 700; color: var(--col_brown); }
.map_sec_caption_slash_inner::before {
    content: "";
    width: 2px; height: 22px;
    margin: 0 16px -2px 0;
    background: var(--col_brown);
    transform: rotate(-20deg);
    display: inline-block;
}
.map_sec_caption_slash_inner::after {
    content: "";
    width: 2px; height: 22px;
    margin: 0 0 -2px 16px;
    background: var(--col_brown);
    transform: rotate(20deg);
    display: inline-block;
}

/* タイトル */
.map_sec_title {
    margin: 0 0 40px;
    font-size: 4.0rem;            /* h2 ._sec_title 統一 */
    font-weight: 700;
    line-height: 1.4;
}

/* MAP コンテナ (Google Maps API) */
.map_sec_map {
    width: 100%;
    margin: 0 auto 32px;
    aspect-ratio: 1100 / 585;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #c0c0c0;
}
.map_sec_map_inner {
    width: 100%;
    height: 100%;
}

/* 斎場一覧マップ マーカー吹き出し (designs/Googlemap吹き出し.png) — .ken_hall_sec_map にも適用 */
/* Google標準の閉じるボタンは非表示にして独自ボタンに差し替えるため、
   吹き出しの overflow を解除して外枠右上に半分はみ出せるようにする */
.gm-ui-hover-effect {
    display: none !important;
}
.gm-style-iw-c,
.gm-style-iw-d {
    overflow: visible !important;
}
.map_info_window {
    position: relative;
    font-family: inherit;
    min-width: 220px;
    text-align: left;
}
.map_info_window_close {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #000;
    color: #fff;
    font-size: 1.8rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1;
}
.map_info_window_name {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    color: #2065AD;
    text-decoration: underline;
    text-align: left;
    margin: 0;
    padding-bottom: 10px;
}
.map_info_window_name:hover {
    color: var(--col_orange);
}
.map_info_window_row {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 400;
    color: #333;
    line-height: 1.6;
    text-align: left;
}
.gm-style-iw-ch {
    padding-top: 0 !important;
}
.gm-style-iw {
    padding: 10px !important;
}

/* 説明文 */
.map_sec_desc {
    position: relative;
    text-align: left;
}
.map_sec_desc_text {
    font-size: 1.6rem;
    line-height: 1.9;
}
.map_sec_desc_text p {
    margin: 0 0 12px;
}
.map_sec_desc_text p:last-child { margin-bottom: 0; }

/* 「続きを見る」ボタン (PC では非表示 — 全文表示) */
.map_sec_desc_more {
    display: none;
    margin: 16px auto 0;
    padding: 0;
    background: none;
    border: 0;
    color: #2673c3;
    font-size: 1.5rem;
    text-decoration: underline;
    cursor: pointer;
}

/* ========================================================
   MAP セクション SP (≤768px)
   - 説明文は 4 行で省略、上に #F6F1EA グラデーション
   - 「続きを見る」クリックで全文展開
======================================================== */
@media screen and (max-width: 768px) {
    .map_sec {
        padding: 50px 16px 60px;
    }
    .map_sec_caption { font-size: 1.8rem; gap: 10px; }
    .map_sec_caption_slash_inner::before,
    .map_sec_caption_slash_inner::after { height: 18px; }
    .map_sec_title {
        font-size: 2.7rem;
        line-height: 1.4;
        margin-bottom: 28px;
    }
    .map_sec_map {
        aspect-ratio: 4 / 5;       /* SP: 縦長 */
        margin-bottom: 24px;
    }
    .map_sec_desc_text {
        position: relative;
        max-height: calc(1.9em * 4);   /* 4 行 (line-height: 1.9) */
        overflow: hidden;
        transition: max-height 0.3s ease;
        font-size: 1.5rem;
    }
    /* 下端に #F6F1EA グラデーション (上 0% transparent → 下 100% 不透明) */
    .map_sec_desc_text::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 70%;
        background: linear-gradient(to bottom, rgba(246, 241, 234, 0) 0%, var(--col_l_beige) 100%);
        pointer-events: none;
        transition: opacity 0.3s ease;
    }
    .map_sec_desc_more {
        display: block;
        margin: 16px auto 0;
        text-align: center;
    }
    /* 開いた状態: 全文表示・グラデーションとボタン非表示 */
    .map_sec_desc.is-open .map_sec_desc_text {
        max-height: none;
    }
    .map_sec_desc.is-open .map_sec_desc_text::after {
        opacity: 0;
    }
    .map_sec_desc.is-open .map_sec_desc_more {
        display: none;
    }
}

/* ========================================================
   斎場一覧セクション (designs/エリア一覧/4_一覧セクション_*.svg) PC
======================================================== */
.hall_list_sec {
    width: 100%;
    background: var(--col_cream);
    padding: 40px 20px 80px;
    box-sizing: border-box;
}
.hall_list_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}
.hall_list_sec_inner + .hall_list_sec_inner {
    margin-top: 70px;
}
.hall_list_sec_title {
    margin: 0 0 50px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
}
.hall_list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    text-align: left;
    gap: 24px;
}

/* カード */
.hall_card {
    background: #fff;
    border-radius: 12px;
    padding: 28px 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    box-sizing: border-box;
}

/* カード上部: タイトル + (バッジ + 評価) */
.hall_card_head {
    margin-bottom: 18px;
}
.hall_card_title {
    margin: 0 0 8px;
    font-size: 2.9rem;
    font-weight: 600;
    line-height: 1.4;
}
.hall_card_title_link {
    color: inherit;
    text-decoration: none;
}
.hall_card_title_link:hover {
    text-decoration: underline;
}
.hall_card_meta {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
/* "直営式場" バッジ — 薄ピンク背景・赤文字のピル (borderless) */
.hall_card_badge {
    display: inline-block;
    padding: 4px 16px;
    border-radius: 999px;
    background: #F6F1EA;
    font-size: 1.6rem;
    line-height: 1.5;
}

/* 星評価 */
.hall_card_rate {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.hall_card_stars {
    display: inline-flex;
    gap: 2px;
}
.hall_card_star {
    width: 18px;
    height: 18px;
    background: #d4d4d4;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 7 7.6.6-5.8 5 1.8 7.4L12 18l-6.5 4 1.8-7.4L1.5 9.6 9.1 9z'/></svg>") no-repeat center / contain;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 7 7.6.6-5.8 5 1.8 7.4L12 18l-6.5 4 1.8-7.4L1.5 9.6 9.1 9z'/></svg>") no-repeat center / contain;
}
.hall_card_star_on { background: #f5b400; }
.hall_card_star_half { background: linear-gradient(to right, #f5b400 50%, #d4d4d4 50%); }
.hall_card_rate_num {
    color: #E0AC00;
    font-family: 'Roboto', sans-serif;
    font-size: 2.4rem;
    font-weight: 500;
}

/* カード本体: PC は画像 + 情報の 2 カラム */
.hall_card_body {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 28px;
}
.hall_card_img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    overflow: hidden;
}
.hall_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hall_card_info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* アクセス・住所 (アイコン + テキスト) */
.hall_card_access,
.hall_card_addr {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.8rem;
    line-height: 1.5;
}
.hall_card_ico {
    flex: 0 0 auto;
    display: inline-block;
    width: 18px;
    height: 18px;
    background: var(--col_orange);
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
}
.hall_card_ico_train {
    -webkit-mask-image: url("../images/module/hall/ico_train.svg");
            mask-image: url("../images/module/hall/ico_train.svg");
}
.hall_card_ico_pin {
    -webkit-mask-image: url("../images/module/hall/ico_access.svg");
            mask-image: url("../images/module/hall/ico_access.svg");
}

/* 説明文 */
.hall_card_desc {
    margin: 4px 0;
    font-size: 1.8rem;
    line-height: 1.7;
}

/* 設備タグ */
.hall_card_facilities {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.hall_card_facilities li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 8px;
    border: 1px solid #d4d4d4;
    border-radius: 6px;
    color: #999;
    font-size: 1.6rem;
    background: #fff;
}
.hall_card_facilities li.is-active {
    border-color: var(--col_orange);
    color: var(--col_orange)
}

/* 設備アイコン (SVG mask で文字色と同じ色に染める)
   active でない場合はグレー (#999)、active 時は赤 (#EA868C) */
.hall_card_fac_ico {
    flex: 0 0 auto;
    display: inline-block;
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
}
.hall_card_fac_ico_car {
    -webkit-mask-image: url("../images/module/hall/ico_car.svg");
    mask-image: url("../images/module/hall/ico_car.svg");
}
.hall_card_fac_ico_lodg {
    -webkit-mask-image: url("../images/module/hall/ico_Lodg.svg");
    mask-image: url("../images/module/hall/ico_Lodg.svg");
}
.hall_card_fac_ico_waiting {
    -webkit-mask-image: url("../images/module/hall/ico_waiting.svg");
    mask-image: url("../images/module/hall/ico_waiting.svg");
}
.hall_card_fac_ico_bath {
    -webkit-mask-image: url("../images/module/hall/ico_bath.svg");
    mask-image: url("../images/module/hall/ico_bath.svg");
}
.hall_card_fac_ico_attend {
    -webkit-mask-image: url("../images/module/hall/ico_attend.svg");
    mask-image: url("../images/module/hall/ico_attend.svg");
}
.hall_card_fac_ico_meal {
    -webkit-mask-image: url("../images/module/hall/ico_meal.svg");
    mask-image: url("../images/module/hall/ico_meal.svg");
}

/* 電話 CTA バー */
.hall_card_tel {
    display: flex;
    align-items: stretch;
    margin-top: 12px;
    border: 1px solid var(--col_orange);
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    transition: opacity 0.2s;
}
.hall_card_tel:hover { opacity: 0.88; }
.hall_card_tel_label {
    flex: 1;
    background: var(--col_orange);
    color: #fff;
    font-size: 2rem;
    font-weight: 500;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hall_card_tel_num {
    flex: 1;
    color: var(--col_orange);
    font-family: 'Roboto', sans-serif;
    font-size: 3.2rem;
    font-weight: 500;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: #fff;
}
.hall_card_tel_ico {
    width: 20px;
    height: 22px;
    background: var(--col_orange);
    -webkit-mask: url("../images/module/ico_phone.svg") no-repeat center / contain;
    mask: url("../images/module/ico_phone.svg") no-repeat center / contain;
}
.hall_card_tel_num_calltext {
    display: none;
}

/* "詳しく見る" リンク (右下) */
.hall_card_more {
    margin: 12px 0 0;
    text-align: right;
}
/* .hall_card_more_link / .hall_card_more_btn は
   template.css の .sec_more_link / .sec_more_arrow に統一 */

/* "もっと見る" 全カード展開ボタン (中央下) */
/* 「もっと見る」ボタンは template.css の .list_more / .list_more_btn / .list_more_arrow に統一 */

/* ========================================================
   斎場一覧セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .hall_list_sec {
        padding: 30px 16px 60px;
    }
    .hall_list_sec_title {
        font-size: 2.7rem;
        font-weight: 700;
        margin-bottom: 20px;
    }
    .hall_card {
        padding: 20px;
        border-radius: 10px;
    }
    .hall_card_title {
        font-size: 2.2rem;
        font-weight: 600;
    }
    .hall_card_badge {
        font-size: 1.5rem;
    }
    .hall_card_rate_num {
        font-size: 1.8rem;
    }
    /* SP: 画像 (大) → 情報 の縦並び */
    .hall_card_body {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .hall_card_img {
        width: 100%;
        aspect-ratio: inherit;
        border-radius: 8px;
        overflow: hidden;
    }
    .hall_card_img img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }
    .hall_card_access,
    .hall_card_addr {
        font-size: 1.6rem;
    }
    .hall_card_desc {
        font-size: 1.6rem;
    }
    .hall_card_facilities li {
        font-size: 1.5rem;
        padding: 4px 10px;
    }
    /* 電話 CTA は SP では縦並び (赤ラベル上、番号下) */
    .hall_card_tel {
        flex-direction: column;
    }
    .hall_card_tel_label {
        padding: 8px 12px;
        font-size: 1.6rem;
    }
    .hall_card_tel_num {
        font-size: 2.8rem;
        font-weight: 600;
        padding: 10px 12px;
    }
    /* .hall_list_more_btn は template.css の .list_more_btn に統一 */

    /* エリア一覧 (県・市区町村・斎場詳細の近くの斎場) のみ: SP時は番号を出さず「電話をかける」表示にする
       (リンク自体は変わらず tel: へダイヤルする) */
    .hall_list_sec_ken .hall_card_tel_num_digits,
    .hall_list_sec_shi .hall_card_tel_num_digits,
    .hall_list_sec_detail .hall_card_tel_num_digits {
        display: none;
    }
    .hall_list_sec_ken .hall_card_tel_num_calltext,
    .hall_list_sec_shi .hall_card_tel_num_calltext,
    .hall_list_sec_detail .hall_card_tel_num_calltext {
        display: inline;
    }
}


/* ========================================================
   公営の火葬場セクション (designs/エリア一覧/5_火葬場セクション_*.svg) PC
======================================================== */
.crematory_sec {
    position: relative;
    width: 100%;
    background: var(--col_l_beige);
    padding: 200px 20px 100px;
    box-sizing: border-box;
    overflow: hidden;
}
/* 上端の波形 — index.php の .support_sec::before と同 css 構成 */
.crematory_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--crematory-wave-pc, url("../images/module/bg_wave_top_pc.webp")) no-repeat top center / 100% auto;
    transform-origin: center top;
    z-index: 0;
}
.crematory_sec_inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

/* キャプション "\ 愛知県で火葬できる /" */
.crematory_sec_caption {
    margin: 0 0 12px;
    color: var(--col_brown);
    font-size: 2.4rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    justify-content: center;
}
.crematory_sec_caption_slash { display: block; }
.crematory_sec_caption_slash_inner { display: inline-block; font-weight: 700; color: var(--col_brown); }
.crematory_sec_caption_slash_inner::before {
    content: "";
    width: 2px; height: 22px;
    margin: 0 16px -2px 0;
    background: var(--col_brown);
    transform: rotate(-20deg);
    display: inline-block;
}
.crematory_sec_caption_slash_inner::after {
    content: "";
    width: 2px; height: 22px;
    margin: 0 0 -2px 16px;
    background: var(--col_brown);
    transform: rotate(20deg);
    display: inline-block;
}

/* タイトル */
.crematory_sec_title {
    margin: 0 0 50px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
}

/* カードリスト: 2×2 グリッド (PC) */
.crematory_list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    text-align: left;
}
.crematory_card {
    background: #fff;
    border-radius: 12px;
    padding: 28px 28px 20px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
}

/* カード上部: 画像 (左) + (タイトル + 説明文) */
.crematory_card_top {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 20px;
    margin-bottom: 20px;
}
.crematory_card_img {
    display: block;
    width: 160px;
    aspect-ratio: 4 / 3;
    background: #999;
    border-radius: 8px;
    overflow: hidden;
}
.crematory_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.crematory_card_head {
    min-width: 0;
}
.crematory_card_title {
    margin: 0 0 10px;
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 1.4;
}
.crematory_card_title_link {
    color: inherit;
    text-decoration: none;
}
.crematory_card_title_link:hover {
    text-decoration: underline;
}
.crematory_card_desc {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* メタ情報 (住所 / アクセス / 料金) */
.crematory_card_meta {
    margin: 0;
    flex: 1 1 auto;
}
.crematory_card_row {
    display: grid;
    grid-template-columns: 6em 1fr;
    gap: 12px;
    padding: 8px 0;
    font-size: 1.6rem;
    line-height: 1.6;
}
.crematory_card_row dt {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 500;
}
.crematory_card_row dd {
    margin: 0;
}

/* メタ情報内の SVG アイコン (currentColor 利用なし、赤固定) */
.crematory_ico {
    flex: 0 0 auto;
    display: inline-block;
    width: 16px;
    height: 16px;
    background: var(--col_orange);
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
}
.crematory_ico_pin {
    -webkit-mask-image: url("../images/module/hall/ico_access.svg");
    mask-image: url("../images/module/hall/ico_access.svg");
}
.crematory_ico_train {
    -webkit-mask-image: url("../images/module/hall/ico_train.svg");
    mask-image: url("../images/module/hall/ico_train.svg");
}
.crematory_ico_price {
    -webkit-mask-image: url("../images/module/ico_price.svg");
    mask-image: url("../images/module/ico_price.svg");
}

/* 料金行は dd 内に table が入るので alignment を上端寄せに */
.crematory_card_row_price { align-items: flex-start; }
.crematory_card_row_price dt { padding-top: 8px; }

/* 料金テーブル */
.crematory_price_table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.6rem;
}
.crematory_price_table th,
.crematory_price_table td {
    padding: 6px 8px;
    text-align: center;
    border-bottom: 1px solid #eee;
}
.crematory_price_table thead th {
    font-weight: normal;
}
.crematory_price_table tbody th {
    font-weight: normal;
}
.crematory_price_table tbody td {
    color: var(--col_orange);
    font-weight: 400;
}
.crematory_price_table tbody tr:last-child th,
.crematory_price_table tbody tr:last-child td {
    border-bottom: none;
}

/* "詳しく見る" は右寄せ */
.crematory_card_more {
    margin: 12px 0 0;
    text-align: right;
}

/* ========================================================
   公営の火葬場セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .crematory_sec {
        padding: 100px 16px 60px;
    }
    .crematory_sec::before {
        height: 60px;
        background-image: var(--crematory-wave-pc, url("../images/module/bg_wave_top_sp.webp"));
    }
    .crematory_sec_caption { font-size: 1.8rem; gap: 10px; }
    .crematory_sec_caption_slash_inner::before,
    .crematory_sec_caption_slash_inner::after { height: 18px; }
    .crematory_sec_title {
        font-size: 2.7rem;
        margin-bottom: 28px;
    }
    /* 1 カラム */
    .crematory_list {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .crematory_card {
        padding: 20px;
    }
    /* SP: 画像 (フル幅) → タイトル + 説明文 の縦並び */
    .crematory_card_top {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .crematory_card_img {
        width: 100%;
        aspect-ratio: 4 / 3;
    }
    .crematory_card_title {
        font-size: 2.1rem;
    }
    .crematory_card_desc {
        font-size: 1.5rem;
    }
    .crematory_card_row {
        grid-template-columns: 6em 1fr;
        font-size: 1.5rem;
        align-items: self-start;
    }
    .crematory_card_row_price {
        display: block;
    }
    .crematory_price_table {
        font-size: 1.5rem;
    }
}

/* ========================================================
   エリアページ お問い合わせセクション (Area Contact) PC
   (designs/エリア一覧/7_お問い合わせセクション_*.svg)
======================================================== */
.area_contact_sec {
    position: relative;
    width: 100%;
    background: #FFE6DD;                  /* 薄ピンク */
    padding: 200px 20px 100px;
    box-sizing: border-box;
    overflow: hidden;
}
/* 上端の波形 — index.php の wave と同 css 構成 */
.area_contact_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--area-contact-wave-pc, url("../images/module/bg_wave_top_7_pc.webp")) no-repeat top center / 100% auto;
    transform-origin: center top;
    z-index: 0;
}
/* 背面の "CONTACT" ウォーターマーク (contact_contact_*.svg) */
.area_contact_sec_bg_text {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 1200px;
    z-index: 0;
    pointer-events: none;
    line-height: 0;
}
.area_contact_sec_bg_text img {
    width: 100%;
    height: auto;
    display: block;
}
.area_contact_sec_inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

/* 上部: 写真 (左) + (タイトル + リード, 右) */
.area_contact_sec_top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
.area_contact_sec_photo {
    line-height: 0;
}
.area_contact_sec_photo img {
    width: 100%;
    max-width: 480px;
    height: auto;
    display: block;
}
.area_contact_sec_head {
    text-align: left;
    margin-bottom: 50px;
}
.area_contact_sec_title {
    margin: 0 0 16px;
    font-size: 4.0rem;
    font-weight: 700;
    color: #333;
    line-height: 1.4;
}
.area_contact_sec_lead {
    margin: 0;
    font-size: 1.8rem;
    line-height: 1.8;
    color: #333;
}
/* 時間帯別メッセージ (common-time-notice-msgs.php) を area_lead 内で表示
   .tel_section_notice ラッパー (白背景) は使用せず、文字サイズだけ親に合わせる */
.area_contact_sec_lead .tel_section_notice_msg {
    font-size: inherit;
    line-height: inherit;
}
.area_contact_sec_lead .tel_section_notice_time {
    color: var(--col_orange);
    font-weight: 700;
    margin-right: 2px;
}
.area_contact_sec_time {
    color: var(--col_orange);
    font-weight: 500;
    margin-right: 2px;
}

/* カードレイアウト (PC: 2 列 / SP: 1 列) */
.area_contact_sec_cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: stretch;
    position: relative;
    z-index: 1;
}
.area_contact_sec_card {
    background: #fff;
    border-radius: 14px;
    padding: 32px 36px;
    box-sizing: border-box;
    box-shadow: 0 4px 16px rgba(0,0,0,0.04);
    text-align: center;
    /* 縦並び flex でボタンを下端に押し付ける (2 カードでボタン位置を揃える) */
    display: flex;
    flex-direction: column;
}
.area_contact_sec_card_title {
    margin: 0 0 20px;
    text-align: center;
    font-size: 2.4rem;
    font-weight: 500;
    color: #333;
}

/* 電話 + QR の横並び */
.area_contact_sec_tel_row {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-bottom: 12px;
}
.area_contact_sec_tel {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Roboto', sans-serif;
    font-size: 4.8rem;
    font-weight: 500;
    color: var(--col_orange);
    padding-bottom: 16px;
    text-decoration: none;
    line-height: 1;
}
.area_contact_sec_tel_ico {
    width: 20px;
    height: 22px;
    background: var(--col_orange);
    -webkit-mask: url("../images/module/ico_phone.svg") no-repeat center / contain;
    mask: url("../images/module/ico_phone.svg") no-repeat center / contain;
}
.area_contact_sec_tel_img {
    display: none;
}
.area_contact_sec_qr {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    line-height: 0;
}
.area_contact_sec_qr img {
    width: 79px;
    height: 79px;
    display: block;
    border: 1px solid #000000;
}
.area_contact_sec_qr_note {
    font-size: 1.6rem;
    font-weight: 500;
    margin-top: 5px;
    line-height: 1.2;
    display: block;
}

/* "メールでも郵送でも..." 説明 + ボタン */
.area_contact_sec_card_label {
    margin: 16px auto 14px;
    text-align: center;
    font-size: 1.6rem;
    font-weight: 500;
    border-bottom: 1px dashed #864A00;
    padding-bottom: 8px;
    display: inline-block;
}
.area_contact_sec_card_btn {
    display: block;
    margin-top: auto;                      /* カード下端へ押し付け (2 カードで縦位置統一) */
    line-height: 0;
    transition: opacity 0.2s;
}
.area_contact_sec_card_btn:hover { opacity: 0.85; }
.area_contact_sec_card_btn img {
    width: 100%;
    height: auto;
    display: block;
}

/* 会員登録メリットリスト */
.area_contact_sec_benefits {
    margin: 20px 0 35px;
    padding: 0 0 0 1.6em;
    list-style: decimal;
    text-align: left;
}
.area_contact_sec_benefits li {
    margin-bottom: 6px;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.8;
}
.area_contact_sec_benefits li:last-child { margin-bottom: 0; }
.area_contact_sec_benefits_em {
    color: var(--col_orange);
    font-weight: 500;
}

/* ========================================================
   エリアページ お問い合わせセクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .area_contact_sec {
        padding: 100px 16px 60px;
    }
    .area_contact_sec::before {
        height: 60px;
        background: var(--area-contact-wave-sp, url(../images/module/bg_wave_top_7_sp.webp)) no-repeat top center / 100% auto;
    }
    .area_contact_sec_bg_text {
        top: 26%;
        width: 100%;
    }
    /* SP: タイトル + リード (上) → 写真 (下) → カードの縦並び
       HTML 順 (photo → head) を反転するため column-reverse を使用 */
    .area_contact_sec_top {
        display: flex;
        flex-direction: column-reverse;
        gap: 18px;
    }
    .area_contact_sec_head {
        margin-bottom: 0;
    }
    .area_contact_sec_title {
        font-size: 3rem;
        text-align: center;
    }
    .area_contact_sec_lead {
        font-size: 1.6rem;
        line-height: 1.7;
    }
    .area_contact_sec_photo img {
        max-width: 280px;
        margin: 0 auto;
    }
    .area_contact_sec_cards {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .area_contact_sec_card {
        padding: 22px 20px;
    }
    .area_contact_sec_card_title {
        font-size: 1.8rem;
        margin-bottom: 14px;
    }
    .area_contact_sec_tel_row {
        gap: 12px;
    }
    .area_contact_sec_tel {
        display: block;
        width: 100%;
        font-size: 3.6rem;
        padding-bottom: 0;
    }
    .area_contact_sec_tel_ico,
    .area_contact_sec_tel_num {
        display: none;
    }
    .area_contact_sec_tel_img {
        display: block;
        width: 100%;
        height: auto;
    }
    .area_contact_sec_qr {
        display: none;
    }
    .area_contact_sec_card_label {
        margin: 0 auto 14px;
        font-size: 1.5rem;
    }
    .area_contact_sec_benefits {
        margin: 0 0 20px;
    }
    .area_contact_sec_benefits li {
        font-size: 1.5rem;
    }
}

/* ========================================================
   葬祭費補助金制度セクション (designs/エリア一覧/10_補助金セクション_*.svg) PC
======================================================== */
.subsidy_sec {
    width: 100%;
    background: #fff;
}

/* 上部: ミントグリーン背景 + (テキストカード + 写真) */
.subsidy_sec_head {
    width: 100%;
    background: #d6eceb;
    box-sizing: border-box;
}
.subsidy_sec_head_inner {
    margin: 0 auto;
    padding-left: 20px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* 白カード (左) */
.subsidy_sec_card {
    max-width: 704px;
    background: #fff;
    border-radius: 12px;
    margin: 20px 0;
    padding: 40px 44px;
    box-sizing: border-box;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.subsidy_sec_caption {
    margin: 0 0 14px;
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--col_brown);
}
.subsidy_sec_title {
    margin: 0 0 24px;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.4;
}
.subsidy_sec_desc {
    margin: 0 0 16px;
    font-size: 1.8rem;
    line-height: 1.9;
}
.subsidy_sec_desc:last-child { margin-bottom: 0; }

/* 写真 (右) */
.subsidy_sec_photo {
    line-height: 0;
}
.subsidy_sec_photo img {
    width: 100%;
    height: auto;
    display: block;
}

/* 下部: 補助金額テーブル */
.subsidy_sec_table_wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
    box-sizing: border-box;
}
.subsidy_sec_table {
    width: 100%;
    border-collapse: collapse;
    line-height: 1.5;
    border: 1px solid #ddd;
}
.subsidy_sec_table th,
.subsidy_sec_table td {
    padding: 18px 24px;
    text-align: left;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
}
.subsidy_sec_table th:last-child,
.subsidy_sec_table td:last-child { border-right: 0; }
.subsidy_sec_table tbody tr:last-child th,
.subsidy_sec_table tbody tr:last-child td { border-bottom: 0; }
.subsidy_sec_table thead th {
    background: var(--col_l_beige);
    font-weight: 500;
    color: #333;
    font-size: 2rem;
}
.subsidy_sec_table tbody th {
    font-size: 1.8rem;
    font-weight: normal;
    color: #333;
    width: 55%;
}
.subsidy_sec_table_em {
    color: var(--col_orange);
    font-weight: 500;
    font-size: 2.4rem;
}

/* ========================================================
   葬祭費補助金制度セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .subsidy_sec_head {
        padding: 30px 16px 0;          /* 下端は写真がフル幅で続く想定 */
    }
    .subsidy_sec_head_inner {
        display: grid;
        grid-template-columns: 1fr;
        padding-left: 0;
    }
    .subsidy_sec_card {
        margin: 0 0;
        padding: 24px 22px;
    }
    .subsidy_sec_caption {
        font-size: 1.8rem;
    }
    .subsidy_sec_title {
        font-size: 3rem;
    }
    .subsidy_sec_desc {
        font-size: 1.6rem;
    }
    /* SP: 写真はミント背景の幅いっぱい (margin で打ち消し) */
    .subsidy_sec_photo {
        margin: 0 -16px;
    }
    .subsidy_sec_table_wrap {
        padding: 30px 16px 60px;
    }
    .subsidy_sec_table {
        font-size: 1.4rem;
    }
    .subsidy_sec_table thead th {
        font-size: 1.6rem;
    }
    .subsidy_sec_table th,
    .subsidy_sec_table td {
        font-size: 1.6rem;
        padding: 12px 14px;
    }
    .subsidy_sec_table_em {
        font-size: 1.8rem;
    }
}

/* ========================================================
   ご葬儀・家族葬の流れセクション
======================================================== */
.process_sec {
    padding: 100px 20px 120px;
    background: var(--col_cream);
}
.process_sec_inner {
    max-width: 1000px;
    margin: 0 auto;
}
.process_sec_title {
    font-size: 4.0rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 20px;
}
.process_sec_lead {
    text-align: center;
    font-size: 1.8rem;
    margin-bottom: 60px;
}
.process_sec_list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.process_sec_item {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 40px;
    align-items: start;
    position: relative;
    padding-bottom: 60px;
}
.process_sec_item:last-child {
    padding-bottom: 0;
}
/* PC: ステップ間の矢印 (赤の下向き三角) */
.process_sec_item:not(:last-child)::after {
    content: "";
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 25px solid transparent;
    border-right: 25px solid transparent;
    border-top: 20px solid var(--col_orange);
}
.process_sec_left {
    text-align: center;
}
.process_sec_step {
    color: var(--col_orange);
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: .05em;
    margin-bottom: 14px;
    text-align: left;
    padding-left: 10px;
}
.process_sec_step span {
    font-size: 3.2rem;
    margin-left: 4px;
}
.process_sec_photo {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto;
    background: #d9d9d9;
}
.process_sec_photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.process_sec_text {
    padding-top: 62px;
}
.process_sec_item_title {
    font-size: 2.8rem;
    font-weight: 500;
    margin-bottom: 16px;
}
.process_sec_desc {
    font-size: 1.8rem;
    line-height: 1.8;
}

/* ========================================================
   ご葬儀・家族葬の流れセクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .process_sec {
        padding: 60px 20px 80px;
    }
    .process_sec_title {
        font-size: 2.7rem;
        margin-bottom: 14px;
    }
    .process_sec_lead {
        font-size: 1.6rem;
        text-align: left;
        margin-bottom: 30px;
    }
    .process_sec_item {
        grid-template-columns: 110px 1fr;
        grid-template-areas:
            "step  step"
            "photo text";
        gap: 0 16px;
        padding-bottom: 40px;
    }
    /* SP: 子要素を grid item に昇格させて STEP を全幅に */
    .process_sec_left {
        display: contents;
    }
    .process_sec_item:not(:last-child)::after {
        bottom: 4px;
        border-left-width: 12px;
        border-right-width: 12px;
        border-top-width: 14px;
    }
    .process_sec_step {
        grid-area: step;
        text-align: left;
        padding-left: 0;
        font-size: 1.6rem;
        margin-bottom: 10px;
    }
    .process_sec_step span {
        font-size: 2.4rem;
    }
    .process_sec_photo {
        width: 110px;
        height: 110px;
        grid-area: photo;
    }
    .process_sec_text {
        padding-top: 0;
        grid-area: text;
    }
    .process_sec_item_title {
        font-size: 2.1rem;
        margin-bottom: 10px;
    }
    .process_sec_desc {
        font-size: 1.6rem;
        line-height: 1.75;
    }
}

/* ========================================================
   宗教者セクション PC
======================================================== */
.religion_sec {
    padding: 60px 20px 100px;
    background-color: #F6F1EA;
}
.religion_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* 上段: 左テキスト + 右画像 */
.religion_sec_head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    padding: 40px 0 80px;
}
.religion_sec_head_text {
    padding-left: 40px;
}
.religion_sec_title {
    font-size: 4.0rem;
    font-weight: 700;
    margin-bottom: 20px;
}
.religion_sec_desc {
    font-size: 1.8rem;
    line-height: 1.8;
    margin-bottom: 30px;
}
/* .religion_sec_more: テキスト列内に左寄せで配置 (.list_more の中央寄せを上書き) */
.religion_sec_more {
    margin: 0;
    text-align: left;
}
.religion_sec_more .list_more_btn {
    font-size: 1.8rem;
    padding: 16px 30px;
}
.religion_sec_head_img {
    line-height: 0;
}
.religion_sec_head_img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

/* 下段: 全宗派対応 */
.religion_sec_all {
    text-align: center;
}
.religion_sec_all_title {
    font-size: 4.0rem;
    font-weight: 500;
    margin-bottom: 16px;
}
.religion_sec_all_lead {
    font-size: 1.8rem;
    line-height: 1.8;
    margin-bottom: 40px;
}
.religion_sec_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
.religion_sec_card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
    text-align: center;
}
.religion_sec_card_title {
    font-size: 2.4rem;
    font-weight: 700;
    margin-bottom: 16px;
}
.religion_sec_card_img {
    line-height: 0;
    border-radius: 4px;
    overflow: hidden;
    background: #d9d9d9;
    aspect-ratio: 16 / 10;
}
.religion_sec_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ========================================================
   宗教者セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .religion_sec {
        padding: 40px 20px 60px;
    }
    .religion_sec_head {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 20px 0 50px;
    }
    .religion_sec_head_text {
        padding-left: 0;
    }
    .religion_sec_title {
        font-size: 2.7rem;
        margin-bottom: 14px;
    }
    .religion_sec_desc {
        font-size: 1.6rem;
        margin-bottom: 20px;
    }
    .religion_sec_more .list_more_btn {
        font-size: 1.5rem;
    }
    .religion_sec_all_title {
        font-size: 2.7rem;
    }
    .religion_sec_all_lead {
        font-size: 1.6rem;
        text-align: center;
        margin-bottom: 24px;
    }
    .religion_sec_list {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .religion_sec_card {
        padding: 18px;
    }
    .religion_sec_card_title {
        font-size: 1.8rem;
        margin-bottom: 12px;
    }
}


/* FAQ wave 無効化ラッパー (.faq_no_wave) は template.css に移動 (共通モジュール化) */


/* ========================================================
   解説セクション (.explanation_sec) PC
   - 他社との違いを写真で解説 (designs/エリア一覧/14_解説セクション_X_*.png)
   - 上端の波形 + 薄ベージュ背景の上に白い角丸カードを 4 つ + 結論ブロック
======================================================== */
.explanation_sec {
    position: relative;
    width: 100%;
    background: #fbf8f5;
    margin-top: -1px;
    padding: 200px 20px 0;
    box-sizing: border-box;
    overflow: hidden;
}
/* 上端の波形 (--explanation-wave-pc / --explanation-wave-sp で差替可) */
.explanation_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--explanation-wave-pc, url("../images/module/bg_wave_top_11_pc.webp")) no-repeat top center / 100% auto;
    transform-origin: center top;
    z-index: 0;
}
.explanation_sec_inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

/* ヘッダー */
.explanation_sec_header {
    text-align: center;
    margin-bottom: 50px;
}
.explanation_sec_caption {
    margin: 0 0 14px;
    color: var(--col_brown);
    font-size: 2.0rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    justify-content: center;
}
.explanation_sec_caption_slash { display: block; }
.explanation_sec_caption_slash_inner { display: inline-block; font-weight: 700; color: var(--col_brown); }
.explanation_sec_caption_slash_inner::before {
    content: "";
    width: 2px; height: 20px;
    margin: 0 16px -2px 0;
    background: var(--col_brown);
    transform: rotate(-20deg);
    display: inline-block;
}
.explanation_sec_caption_slash_inner::after {
    content: "";
    width: 2px; height: 20px;
    margin: 0 0 -2px 16px;
    background: var(--col_brown);
    transform: rotate(20deg);
    display: inline-block;
}
.explanation_sec_title {
    margin: 0 0 24px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
}
.explanation_sec_lead {
    max-width: 720px;
    margin: 0 auto;
    font-size: 1.8rem;
    line-height: 1.9;
    text-align: left;
    display: inline-block;
}

/* カード共通 */
.explanation_sec_card {
    background: #fff;
    border-radius: 20px;
    padding: 50px 60px 60px;
    margin: 0 0 32px;
    text-align: center;
}
.explanation_sec_card:last-of-type { margin-bottom: 40px; }
.explanation_sec_card_title {
    margin: 0 0 18px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.3;
}
.explanation_sec_card_desc {
    max-width: 720px;
    margin: 0 auto 40px;
    font-size: 1.8rem;
    line-height: 1.9;
    text-align: left;
    display: inline-block;
}

/* 比較 (左: 昔ながらの葬儀社 / 右: 家族葬のタクセル) */
.explanation_sec_compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}
.explanation_sec_compare_item {
    position: relative;
    padding-top: 55px;
    text-align: center;
}
/* バッジ (吹き出し風) */
.explanation_sec_badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px 14px;
    border-radius: 999px;
    color: #fff;
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    z-index: 2;
}
.explanation_sec_badge::after {
    content: "";
    position: absolute;
    bottom: -7px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
}
.explanation_sec_badge_old {
    background: #737373;
}
.explanation_sec_badge_old::after {
    border-top: 8px solid #737373;
}
.explanation_sec_badge_new {
    background: var(--col_orange);
}
.explanation_sec_badge_new::after {
    border-top: 8px solid var(--col_orange);
}
.explanation_sec_compare_img {
    margin: 14px 0 14px;
    aspect-ratio: 3 / 2;
    border-radius: 10px;
    overflow: hidden;
}
.explanation_sec_compare_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.explanation_sec_compare_caption {
    margin: 0;
    font-size: 1.8rem;
    line-height: 1.6;
}

/* 結論ブロック (テキスト左 + 画像右) */
.explanation_sec_conclusion {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
    padding: 0 8px;
    margin-top: 20px;
}
.explanation_sec_conclusion_text {
    margin: 0;
    background: #fff;
    border-radius: 12px;
    padding: 30px 36px;
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.9;
}
.explanation_sec_conclusion_img {
    width: 320px;
    aspect-ratio: 4 / 5;
    border-radius: 4px;
    overflow: hidden;
}
.explanation_sec_conclusion_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ========================================================
   解説セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .explanation_sec {
        padding: 100px 16px 0;
    }
    .explanation_sec::before {
        height: 60px;
        background-image: var(--explanation-wave-sp, url("../images/module/bg_wave_top_11_sp.webp"));
    }
    .explanation_sec_header {
        margin-bottom: 32px;
    }
    .explanation_sec_caption { font-size: 1.8rem; gap: 10px; }
    .explanation_sec_caption_slash_inner::before,
    .explanation_sec_caption_slash_inner::after { height: 16px; }
    .explanation_sec_title {
        font-size: 2.7rem;
        margin-bottom: 18px;
    }
    .explanation_sec_lead {
        font-size: 1.6rem;
        line-height: 1.8;
    }

    .explanation_sec_card {
        padding: 30px 20px 36px;
        border-radius: 14px;
        margin-bottom: 20px;
    }
    .explanation_sec_card_title {
        font-size: 2.4rem;
        margin-bottom: 14px;
    }
    .explanation_sec_card_desc {
        font-size: 1.6rem;
        margin-bottom: 28px;
        text-align: left;
        display: block;
    }
    .explanation_sec_compare {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .explanation_sec_compare_item {
        padding-top: 60px;
    }
    .explanation_sec_badge {
        font-size: 1.8rem;
        font-weight: 700;
        padding: 18px 30px 19px;
    }
    .explanation_sec_compare_caption {
        font-size: 1.6rem;
    }

    .explanation_sec_conclusion {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0;
    }
    .explanation_sec_conclusion_text {
        padding: 20px 22px;
        font-size: 1.8rem;
    }
    .explanation_sec_conclusion_img {
        width: 100%;
        max-width: 240px;
        margin: 0 auto;
        aspect-ratio: 4 / 5;
    }
}


/* ========================================================
   スタッフ紹介セクション (.staff_sec) PC
   - 4 名のスタッフを 4 カラムで横並び
   - 各カードは縦長ポートレート写真 + 肩書 + バッジ円 (4 個)
======================================================== */
.staff_sec {
    width: 100%;
    background: #fff;
    padding: 80px 20px 100px;
    box-sizing: border-box;
}
.staff_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.staff_sec_title {
    margin: 0 0 30px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}
.staff_sec_title_area {
    color: var(--col_brown);        /* 市名のみ茶色でハイライト */
}
.staff_sec_lead {
    margin: 0 auto 50px;
    font-size: 1.8rem;
    line-height: 1.9;
    text-align: center;
    max-width: 720px;
}
.staff_sec_list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}
.staff_sec_card {
    text-align: center;
}
.staff_sec_card_photo {
    margin: 0 0 16px;
}
.staff_sec_card_photo img {
    width: 100%;
    height: auto;
    display: block;
}
.staff_sec_card_label {
    font-size: 1.4rem;
    font-weight: 500;
}
.staff_sec_card_badges {
    font-size: 2.4rem;
    font-weight: 500;
}

/* ========================================================
   スタッフ紹介セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .staff_sec {
        padding: 50px 16px 60px;
    }
    .staff_sec_title {
        font-size: 2.7rem;
        margin-bottom: 18px;
    }
    .staff_sec_lead {
        font-size: 1.4rem;
        text-align: left;
        margin-bottom: 28px;
    }
    .staff_sec_list {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 40px;
        display: grid;
        padding: 0 20px;
    }
    .staff_sec_card_photo {
        margin-bottom: 12px;
    }
    .staff_sec_card_label {
        font-size: 1.2rem;
    }
    .staff_sec_card_badges {
        font-size: 1.8rem;
    }
}



/* ========================================================
   地域選択セクション (.region_sec) PC
   - 上段: タイトル + リード + 地図 (common-search-map)
   - 下段: 県別の白カードに市町村ピル (緑) を並べる
   - 名古屋市/静岡市/浜松市 等は区を入れ子の薄緑ボックスで表示
======================================================== */
.region_sec {
    width: 100%;
    background: var(--col_cream);
    padding: 80px 20px 100px;
    box-sizing: border-box;
}
.region_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* 上段: タイトル/リード/地図 */
.region_sec_top {
    text-align: center;
    margin-bottom: 60px;
}
.region_sec_title {
    margin: 0 0 50px;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.5;
}
.region_sec_lead {
    margin: 0 auto 70px;
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.9;
    max-width: 900px;
}
.region_sec_top .search_sec_map {
    margin: 0 auto;          /* common-search-map 共通スタイルを継承 */
}

/* ------------------------------------------------------------
   下段: 県別カードリスト
------------------------------------------------------------ */
.region_sec_list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.region_sec_pref {
    background: #fff;
    border-radius: 8px;
    padding: 24px 32px;
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 16px 28px;
    align-items: start;
}
.region_sec_pref_title {
    margin: 6px 0 0;
    font-size: 1.8rem;
    font-weight: 500;
    color: inherit;
}
.region_sec_pref_title a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.region_sec_pref_title a:hover { color: var(--col_orange); }

/* 市町村リスト (緑ピル) */
.region_sec_cities {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
}
.region_sec_cities > li {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.region_sec_city {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #67a954;          /* 緑 */
    color: #fff;
    text-decoration: none;
    padding: 10px 24px;
    border-radius: 6px;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.2;
    transition: opacity 0.15s, transform 0.15s;
}
.region_sec_city:hover {
    opacity: 0.85;
    transform: translateY(-1px);
}

/* 区 (政令市の中) — 薄緑インナーボックスに白い区ピル */
.region_sec_wards {
    list-style: none;
    margin: 0;
    padding: 10px 14px;
    background: #ddebc8;          /* 薄緑 */
    border-radius: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-self: stretch;
}
.region_sec_ward {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: inherit;
    text-decoration: none;
    padding: 8px 18px;
    border-radius: 6px;
    font-size: 1.8rem;
    line-height: 1.2;
    transition: background 0.15s, color 0.15s;
}
.region_sec_ward:hover {
    background: #67a954;
    color: #fff;
}

/* ========================================================
   地域選択セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .region_sec {
        padding: 50px 16px 60px;
    }
    .region_sec_lead_br_pc { display: none; }
    .region_sec_top {
        margin-bottom: 40px;
    }
    .region_sec_title {
        font-size: 2.4rem;
        margin-bottom: 18px;
    }
    .region_sec_lead {
        font-size: 1.6rem;
        text-align: left;
        margin-bottom: 28px;
    }
    .region_sec_list {
        gap: 14px;
    }
    .region_sec_pref {
        grid-template-columns: 1fr;          /* 県名を上に積む */
        gap: 12px;
        padding: 18px 18px 22px;
    }
    .region_sec_pref_title {
        font-size: 1.6rem;
        padding-bottom: 8px;
        border-bottom: 1px solid #e5e5e5;
        margin: 0;
    }
    .region_sec_cities {
        gap: 8px;
    }
    .region_sec_city {
        font-size: 1.6rem;
        padding: 8px 16px;
        border-radius: 4px;
    }
    .region_sec_wards {
        padding: 8px 10px;
        gap: 6px 8px;
    }
    .region_sec_ward {
        font-size: 1.6rem;
        padding: 6px 12px;
    }
}


/* 最近見たホール セクション (.recent_hall_sec) は他ページでも使うため template.css に移動 */


/* ========================================================
   県のホールセクション (.ken_hall_sec) PC
   - area-ken.php (都道府県ランディング) で使用
   - タイトル + Google Map + 県カード (region_sec_pref を流用)
======================================================== */
.ken_hall_sec {
    width: 100%;
    background: var(--col_cream);
    padding: 80px 20px 100px;
    box-sizing: border-box;
}
.ken_hall_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.ken_hall_sec_title {
    margin: 0 0 40px;
    font-size: 4.0rem;            /* h2 ._sec_title 統一 */
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}
/* Google Map コンテナ */
.ken_hall_sec_map {
    width: 100%;
    margin: 0 auto 40px;
    aspect-ratio: 1100 / 700;
    overflow: hidden;
    border: 1px solid #c0c0c0;
}
.ken_hall_sec_map_inner {
    width: 100%;
    height: 100%;
}
/* リスト領域 (region_sec_pref を内包) */
.ken_hall_sec_list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ========================================================
   県のホールセクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .ken_hall_sec {
        padding: 50px 16px 60px;
    }
    .ken_hall_sec_title {
        font-size: 2.7rem;
        line-height: 1.4;
        margin-bottom: 28px;
    }
    .ken_hall_sec_map {
        aspect-ratio: 4 / 5;       /* SP: 縦長 */
        margin-bottom: 28px;
    }
}


/* ========================================================
   県の斎場一覧 modifier (.hall_list_sec_ken)
   - area-ken.php で使用、hall_list_sec の中身をそのまま流用
   - 上端に波形、背景色を変更 (cream → l_beige)
   - 波形画像は --ken-hall-list-wave-pc / --ken-hall-list-wave-sp で差替可
======================================================== */
.hall_list_sec.hall_list_sec_ken {
    position: relative;
    background: var(--col_l_beige);
    padding: 200px 20px 80px;
    overflow: hidden;
}
.hall_list_sec.hall_list_sec_ken::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--ken-hall-list-wave-pc, url("../images/module/bg_wave_top_4_pc.webp")) no-repeat top center / 100% auto;
    z-index: 0;
}
.hall_list_sec.hall_list_sec_ken .hall_list_sec_inner {
    position: relative;
    z-index: 1;
}
/* 小見出し (市名等) — 中央寄せの大きな太字 (._sec_title と同スタイル) */
.hall_list_sec_subtitle {
    margin: 0 0 40px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
    color: inherit;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .hall_list_sec.hall_list_sec_ken {
        padding: 100px 16px 60px;
    }
    .hall_list_sec.hall_list_sec_ken::before {
        height: 60px;
        background-image: var(--ken-hall-list-wave-sp, url("../images/module/bg_wave_top_4_sp.webp"));
    }
    .hall_list_sec_subtitle {
        font-size: 2.7rem;
        margin-bottom: 28px;
    }
}


/* ========================================================
   斎場一覧 (.hall_list_sec) — area-detail.php 用 wave バリアント
   - top に wave (bg_wave_top_12_*.webp)
======================================================== */
.hall_list_sec.hall_list_sec_detail {
    --detail-hall-list-wave-pc: url("../images/module/bg_wave_top_4_pc.webp");
    --detail-hall-list-wave-sp: url("../images/module/bg_wave_top_4_sp.webp");
    position: relative;
    background: var(--col_l_beige);
    padding: 200px 20px 80px;
    overflow: hidden;
}
.hall_list_sec.hall_list_sec_detail::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--detail-hall-list-wave-pc) no-repeat top center / 100% auto;
    z-index: 0;
}
.hall_list_sec.hall_list_sec_detail .hall_list_sec_inner {
    position: relative;
    z-index: 1;
}

@media screen and (max-width: 768px) {
    .hall_list_sec.hall_list_sec_detail {
        padding: 100px 16px 60px;
    }
    .hall_list_sec.hall_list_sec_detail::before {
        height: 60px;
        background-image: var(--detail-hall-list-wave-sp);
    }
}


/* ========================================================
   斎場詳細 MV セクション (.detail_mv) PC
   - designs/斎場詳細/1_MV_pc.svg
   - パンくず + 直営バッジ + ホール名 + 公式説明 + 評価
   - 背景: クリーム (var(--col_cream))
======================================================== */
.detail_mv {
    width: 100%;
    background: var(--col_cream);
    padding: 24px 20px 40px;
    box-sizing: border-box;
}
.detail_mv_inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* パンくず (.breadcrumb 共通 CSS を上書き) */
.detail_mv_breadcrumb {
    padding: 0 0 50px;
}
.detail_mv_breadcrumb .breadcrumb_list {
    max-width: none;
    margin: 0;
}

/* ホールタイトル領域 */
.detail_mv_head {
    padding: 0 4px;
}
.detail_mv_badge {
    margin: 0 0 18px;
}
.detail_mv_badge_label {
    display: inline-block;
    background: var(--col_orange);
    color: #fff;
    padding: 5px 20px 6px;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1;
    border-radius: 2px;
}
.detail_mv_title {
    margin: 0 0 14px;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.4;
    color: inherit;
}
.detail_mv_title_sub {
    font-size: 2.4rem;
    font-weight: 700;
}
.detail_mv_subtitle {
    margin: 0 0 14px;
    font-size: 2.4rem;
    font-weight: 700;
}
.detail_mv_lead {
    margin: 0 0 18px;
    font-size: 1.6rem;
    line-height: 1.7;
}

/* 評価 (星 + 数値 + レビュー件数リンク) */
.detail_mv_rate {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1;
}
.detail_mv_stars {
    display: inline-flex;
    gap: 2px;
}
.detail_mv_star {
    width: 20px;
    height: 20px;
    background: #d4d4d4;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 7 7.6.6-5.8 5 1.8 7.4L12 18l-6.5 4 1.8-7.4L1.5 9.6 9.1 9z'/></svg>") no-repeat center / contain;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 7 7.6.6-5.8 5 1.8 7.4L12 18l-6.5 4 1.8-7.4L1.5 9.6 9.1 9z'/></svg>") no-repeat center / contain;
}
.detail_mv_star_on { background: #f5b400; }
.detail_mv_star_half {
    background: linear-gradient(to right, #f5b400 50%, #d4d4d4 50%);
}
.detail_mv_rate_num {
    font-family: 'Roboto', sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--col_orange);
}
.detail_mv_rate_review {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: inherit;
    text-decoration: underline;
    font-size: 1.4rem;
    text-underline-offset: 3px;
}
.detail_mv_rate_review_ico {
    width: 16px;
    height: 16px;
    display: inline-block;
    background-color: #737373;
    -webkit-mask: url("../images/module/ico_review.svg") no-repeat center / contain;
            mask: url("../images/module/ico_review.svg") no-repeat center / contain;
}

/* ========================================================
   斎場詳細 MV セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .detail_mv {
        padding: 16px 16px 40px;
    }
    .detail_mv_breadcrumb {
        padding: 0 0 24px;
    }
    .detail_mv_breadcrumb .breadcrumb_list {
        font-size: 1.2rem;
        flex-wrap: nowrap;          /* SP: 折り返さず 1 行表示 */
        white-space: nowrap;
        gap: 4px 6px;
        overflow-x: auto;
    }
    .detail_mv_badge {
        margin-bottom: 14px;
    }
    .detail_mv_badge_label {
        font-size: 1.2rem;
        padding: 5px 14px;
    }
    .detail_mv_title {
        font-size: 2.8rem;
        margin-bottom: 12px;
    }
    .detail_mv_title_sub {
        display: block;
        font-size: 1.8rem;
        margin-top: 4px;
    }
    .detail_mv_subtitle {
        font-size: 1.8rem;
        margin-bottom: 10px;
    }
    .detail_mv_lead {
        font-size: 1.5rem;
        margin-bottom: 14px;
    }
    .detail_mv_star {
        width: 16px;
        height: 16px;
    }
    .detail_mv_rate_num {
        font-size: 2rem;
    }
    .detail_mv_rate_review {
        font-size: 1.4rem;
    }
    .detail_mv_rate_review_ico {
        width: 14px;
        height: 14px;
    }
}


/* ========================================================
   斎場詳細 インフォセクション (.detail_info_sec) PC
   - designs/斎場詳細/2._インフォ_pc.svg
   - オレンジヘッダー + 薄ピンク本文の囲みカード
   - サービス一覧 + ディレクター3人 + 電話ボタン + QR
======================================================== */
.detail_info_sec {
    --info-wave-pc: url("../images/module/bg_wave_top_10_pc.webp");
    --info-wave-sp: url("../images/module/bg_wave_top_10_sp.webp");
    position: relative;
    width: 100%;
    background: #fff;
    padding: 160px 20px 80px;
    box-sizing: border-box;
    overflow: hidden;
}

.detail_mv + .detail_info_sec {
    padding-top: 50px;
}
.detail_info_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100px;
    background: var(--info-wave-pc) no-repeat top center / 100% auto;
    transform-origin: center top;
    z-index: 0;
}
.detail_info_sec_inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
    background: #FFE6DD;
}

/* オレンジ帯のタイトル */
.detail_info_sec_title {
    margin: 0;
    background: var(--col_orange);
    color: #fff;
    text-align: center;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.4;
    padding: 18px 24px;
}

.detail_info_sec_body {
    padding: 40px 60px 0;
}

/* 上段: サービス一覧 (左) + ディレクター (右) */
.detail_info_sec_top {
    display: flex;
    align-items: start;
    justify-content: center;
    margin-bottom: 30px;
    padding-bottom: 0;
    position: relative;
}

/* サービス一覧 */
.detail_info_sec_list {
    list-style: none;
    margin: 0;
    padding: 0 50px 0 0;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    border-right: 1px dashed #e08a85;
}
.detail_info_sec_list li {
    position: relative;
    padding: 4px 0 4px 24px;
    margin-bottom: 18px;
}
.detail_info_sec_list li:last-child { margin-bottom: 0; }
/* ピンクの丸ドット */
.detail_info_sec_list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    background: var(--col_orange);
    border-radius: 50%;
}

/* ディレクター */
.detail_info_sec_directors {
    /* 縦点線の右側に少し余白 */
    padding-left: 50px;
}
.detail_info_sec_directors_label {
    position: relative;
    margin: 0 0 14px;
    font-size: 1.6rem;
    font-weight: 500;
    border-bottom: 1px solid #e08a85;
    padding-bottom: 8px;
}

.detail_info_sec_directors_label::before {
    content: "";
    position: absolute;
    left: calc(50% - 14px);
    bottom: -11px;
    width: 0;
    height: 12px;
    border-right: 1px solid var(--col_orange);
    rotate: 45deg;
}
.detail_info_sec_directors_label::after {
    content: "";
    position: absolute;
    left: calc(50% - 20px);
    bottom: -1px;
    width: 10px;
    height: 1px;
    background-color: #FFE6DD;
    display: block;
}


.detail_info_sec_directors_time {
    color: var(--col_orange);
    font-weight: 700;
    margin-right: 8px;
}
.detail_info_sec_directors_card {
    background: #fff;
    border-radius: 8px;
    padding: 7px 18px 7px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.detail_info_sec_director {
    text-align: center;
}
.detail_info_sec_director_photo {
    width: 68px;
    height: 68px;
    margin: 0 auto 0;
    border-radius: 50%;
    overflow: hidden;
}
.detail_info_sec_director_photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.detail_info_sec_director_name {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 500;
}

/* 下段: 電話ボタン (左) + QR (右) */
.detail_info_sec_bottom {
    display: flex;
    grid-template-columns: 1fr auto;
    gap: 60px;
    justify-content: center;
    align-items: flex-end;
}
.detail_info_sec_tel_btn_area {
    max-width: 546px;
    width: 100%;
    padding-bottom: 15px;
    justify-self: stretch;
}
.detail_info_sec_tel_btn {
    /* .area_cta_btn の既存スタイルを継承 */
    max-width: 546px;
    width: 100%;
    justify-self: stretch;
}

/* QR コード + 吹き出し */
.detail_info_sec_qr {
    display: flex;
    align-items: center;
    gap: 14px;
    position: relative;
}
.detail_info_sec_qr_bg {
    position: relative;
    width: 182px;
    height: 152px;
    flex: 0 0 182px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.detail_info_sec_qr_bg > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom;
    display: block;
}

.detail_info_sec_qr_img {
    position: absolute;
    bottom: 10px;
    left: calc((100% - 100px) / 2);
    width: 100px;
    height: 100px;
    flex: 0 0 182px;
}
.detail_info_sec_qr_img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
/* オレンジ吹き出しの注釈 */
.detail_info_sec_qr_note {
    position: relative;
    margin: 0 0 50px;
    background: var(--col_orange);
    color: #fff;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 1.3rem;
    line-height: 1.5;
    font-weight: 500;
    white-space: nowrap;
    z-index: 1;
}
.detail_info_sec_qr_note::before {
    content: "";
    position: absolute;
    left: 10px;
    bottom: -14px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 23px solid var(--col_orange);
    border-bottom: 27px solid transparent;
    border-right: 7px solid transparent;
    -moz-transform: rotate(18deg);
    -webkit-transform: rotate(18deg);
    -o-transform: rotate(18deg);
    -ms-transform: rotate(18deg);
    transform: rotate(18deg);
    z-index: -1;
}

/* ========================================================
   斎場詳細 インフォセクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .detail_info_sec {
        padding: 80px 16px 40px;
    }
    .detail_info_sec::before {
        height: 60px;
        background-image: var(--info-wave-sp);
    }
    .detail_info_sec_title {
        font-size: 2.2rem;
        padding: 14px 18px;
    }
    .detail_info_sec_body {
        padding: 24px 20px 28px;
    }

    /* 上段: 縦積みに */
    .detail_info_sec_top {
        display: grid;
        grid-template-columns: 1fr;
        gap: 22px;
        margin-bottom: 22px;
    }
    .detail_info_sec_top::after {
        /* 縦点線を横点線に */
        top: auto;
        bottom: auto;
        left: 0;
        right: 0;
        transform: none;
        border-left: 0;
        height: 0;
        position: static;
        display: block;
        margin: 0;
    }
    .detail_info_sec_list {
        font-size: 1.8rem;
        border-right: none;
        margin: 0 auto;
        padding: 0;
    }
    .detail_info_sec_list li {
        margin: 0 0 12px;
        padding-left: 20px;
    }
    .detail_info_sec_list li::before {
        width: 14px;
        height: 14px;
    }
    .detail_info_sec_directors {
        padding-left: 0;
        padding-top: 0;
    }
    .detail_info_sec_directors_label {
        font-size: 1.6rem;
    }
    .detail_info_sec_directors_card {
        padding: 14px 12px;
        gap: 10px;
        max-width: 300px;
        margin: 0 auto;
    }
    .detail_info_sec_director_photo {
        width: 60px;
        height: 60px;
    }
    .detail_info_sec_director_name {
        font-size: 1.2rem;
    }

    /* 下段: 縦積みに */
    .detail_info_sec_bottom {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .detail_info_sec_tel_btn_area {
        padding-bottom: 0;
    }
    .detail_info_sec_qr {
        display: none;
    }
}


/* ========================================================
   斎場詳細 店舗情報セクション (.detail_store_sec) PC
   - designs/斎場詳細/3_店舗情報セクション_pc.svg
   - メイン写真 + サムネ slick / 住所 / アクセス / 設備カード
======================================================== */
.detail_store_sec {
    width: 100%;
    background: #fff;
    padding: 40px 20px 60px;
    box-sizing: border-box;
}
.detail_store_sec_inner {
    max-width: 900px;
    margin: 0 auto;
}

/* ------------------------------------------------------------
   写真ギャラリー (slick.js + asNavFor)
------------------------------------------------------------ */
.detail_store_sec_gallery {
    margin-bottom: 28px;
}
.detail_store_sec_gallery_main {
    margin-bottom: 14px;
}
.detail_store_sec_gallery_slide {
    aspect-ratio: 4 / 2.5;
}
.detail_store_sec_gallery_slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.detail_store_sec_gallery_thumbs {
    position: relative;
}
.detail_store_sec_gallery_thumb {
    padding: 0 5px;
    box-sizing: border-box;
    cursor: pointer;
    aspect-ratio: 4 / 2.5;
}
.detail_store_sec_gallery_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.detail_store_sec_gallery_thumb.slick-current img,
.detail_store_sec_gallery_thumb:hover img {
    opacity: 1;
}

/* slick 矢印 (オレンジ丸 + 白シェブロン) */
.detail_store_sec_gallery_thumbs .slick-prev,
.detail_store_sec_gallery_thumbs .slick-next {
    top: calc(50% - 32px);
    width: 64px;
    height: 64px;
    margin: 0;
    background: var(--col_orange);
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
    z-index: 2;
}
.detail_store_sec_gallery_thumbs .slick-prev { left: -69px; }
.detail_store_sec_gallery_thumbs .slick-next { right: -69px; }
.detail_store_sec_gallery_thumbs .slick-prev::before,
.detail_store_sec_gallery_thumbs .slick-next::before {
    content: "";
    display: inline-block;
    width: 9px;
    height: 9px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    opacity: 1;
}
.detail_store_sec_gallery_thumbs .slick-prev::before {
    transform: rotate(-135deg);
    margin-left: 4px;
}
.detail_store_sec_gallery_thumbs .slick-next::before {
    transform: rotate(45deg);
    margin-right: 4px;
}

/* ------------------------------------------------------------
   住所 / アクセス
------------------------------------------------------------ */
.detail_store_sec_info {
    margin-bottom: 30px;
}
.detail_store_sec_addr,
.detail_store_sec_access {
    margin: 0 0 10px;
    font-size: 1.8rem;
    line-height: 1.7;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.detail_store_sec_ico {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    display: inline-block;
    background-color: var(--col_orange);
    -webkit-mask: no-repeat center / contain;
            mask: no-repeat center / contain;
}
.detail_store_sec_ico_pin {
    -webkit-mask-image: url("../images/module/hall/ico_access.svg");
            mask-image: url("../images/module/hall/ico_access.svg");
}
.detail_store_sec_ico_train {
    -webkit-mask-image: url("../images/module/hall/ico_train.svg");
            mask-image: url("../images/module/hall/ico_train.svg");
}
.detail_store_sec_map_link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--col_orange);
    color: #fff;
    padding: 5px 14px;
    border-radius: 4px;
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
    line-height: 1.2;
    transition: opacity 0.15s;
}
.detail_store_sec_map_link:hover { opacity: 0.88; }
.detail_store_sec_map_link_arrow {
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(135deg);
    margin-bottom: 3px;
}

/* ------------------------------------------------------------
   設備カード
------------------------------------------------------------ */
.detail_store_sec_facilities {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}
.detail_store_sec_facility {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.detail_store_sec_facility_ico {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.detail_store_sec_facility_ico img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.detail_store_sec_facility_label {
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--col_orange);
}
.detail_store_sec_facility_sub {
    display: block;
    font-size: 1.1rem;
    font-weight: 500;
    margin-top: 2px;
}

/* ========================================================
   斎場詳細 店舗情報セクション SP (≤768px)
======================================================== */
@media screen and (max-width: 768px) {
    .detail_store_sec {
        padding: 20px 0 40px;
    }
    .detail_store_sec_inner {
        max-width: none;
    }

    .detail_store_sec_gallery_thumbs {
        padding: 0;
    }
    .detail_store_sec_gallery_thumbs .slick-prev,
    .detail_store_sec_gallery_thumbs .slick-next {
        top: calc(50% - 20px);
        width: 40px;
        height: 40px;
    }
    .detail_store_sec_gallery_thumbs .slick-prev { left: 10px; }
    .detail_store_sec_gallery_thumbs .slick-next { right: 10px; }
    .detail_store_sec_gallery_thumbs .slick-prev::before,
    .detail_store_sec_gallery_thumbs .slick-next::before {
        width: 7px;
        height: 7px;
    }

    .detail_store_sec_info {
        margin: 0 16px 30px;
    }
    .detail_store_sec_addr,
    .detail_store_sec_access {
        font-size: 1.6rem;
        gap: 6px;
    }
    .detail_store_sec_map_link {
        font-size: 1.5rem;
    }
    .detail_store_sec_ico {
        flex: 0 0 18px;
        width: 18px;
        height: 18px;
    }
    .detail_store_sec_addr {
        flex-wrap: wrap;
    }
    .detail_store_sec_addr_text {
        padding-left: 26px;
        margin-left: -26px;
    }
    /* SP: 「地図を見る」を住所の下に */
    .detail_store_sec_map_link {
        margin-left: 26px;
    }

    /* 設備カード: SP は 3 カラム */
    .detail_store_sec_facilities {
        margin: 0 16px;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
    .detail_store_sec_facility {
        padding: 0;
    }
}


/* ============================================================
   斎場詳細: 360度カメラセクション (.detail_camera_sec)
   - タイトル下に 360° ビュー iframe を表示
   - iframe はレスポンシブで親幅にフィット (aspect-ratio で高さ確保)
============================================================ */
.detail_camera_sec {
    background: var(--col_cream);
    padding: 80px 0 100px;
}
.detail_camera_sec_inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
}
.detail_camera_sec_title {
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    margin: 0 0 50px;
}
.detail_camera_sec_frame {
    max-width: 1200px;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 1200 / 715;
}
.detail_camera_sec_frame .ricoh-theta-tour-image {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 1200 / 715;
}
.detail_camera_sec_frame iframe {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    display: block;
    border: 0;
}
@media (max-width: 768px) {
    .detail_camera_sec {
        padding: 50px 0 60px;
    }
    .detail_camera_sec_inner {
        padding: 0 16px;
    }
    .detail_camera_sec_title {
        font-size: 2.7rem;
        margin: 0 0 30px;
    }
    .detail_camera_sec_frame {
        aspect-ratio: 343 / 305;
        border-radius: 8px;
    }
}


/* ============================================================
   斎場詳細: 施設情報セクション (.detail_facility_sec)
   - 7 行の情報テーブル (PC: 2 カラム / SP: ラベル/値を縦積み)
   - 長文説明 + アクセスボタン + Google Map + 駅アクセス
============================================================ */
.detail_facility_sec {
    background: var(--col_l_beige);
    padding: 80px 0;
}
.detail_facility_sec_inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.detail_facility_sec_title {
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    margin: 0 0 40px;
}

/* テーブル */
.detail_facility_sec_table {
    width: 100%;
    max-width: 1200px;
    margin: 0;
    border: 1px solid #d4d4d4;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.detail_facility_sec_row {
    display: flex;
    border-top: 1px solid #d4d4d4;
}
.detail_facility_sec_row:first-child {
    border-top: 0;
}
.detail_facility_sec_label {
    flex: 0 0 240px;
    padding: 16px 24px;
    background: #fbf8f5;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.75;
    border-right: 1px solid #d4d4d4;
    margin: 0;
}
.detail_facility_sec_value {
    flex: 1;
    padding: 16px 24px;
    background: #fff;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1.75;
    color: #333;
    margin: 0;
}

/* 長文 */
.detail_facility_sec_desc {
    width: 100%;
    max-width: 1200px;
    margin: 32px 0 0;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.73;
}

/* アクセスボタン */
.detail_facility_sec_more {
    margin: 32px 0 0;
    text-align: center;
}
.detail_facility_sec_more_link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 32px;
    background: #fff;
    border-radius: 6px;
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.2),
        inset 0 1px 4px rgba(255, 255, 255, 0.15),
        inset 0 -2px 4px rgba(0, 0, 0, 0.1);
    font-size: 1.8rem;
    font-weight: 500;
    text-decoration: none;
    transition: opacity 0.2s ease;
}
.detail_facility_sec_more_link:hover {
    opacity: 0.85;
}
.detail_facility_sec_more_arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--col_orange);
    border-right: 2px solid var(--col_orange);
    transform: rotate(45deg);
    flex-shrink: 0;
}

/* Google Map */
.detail_facility_sec_map {
    width: 100%;
    max-width: 1200px;
    margin: 32px 0 0;
    aspect-ratio: 1200 / 500;
    overflow: hidden;
    border-radius: 4px;
}
.detail_facility_sec_map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* 駅アクセス */
.detail_facility_sec_access {
    width: 100%;
    max-width: 1200px;
    margin: 14px 0 0;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.8rem;
    line-height: 1.75;
}
.detail_facility_sec_access_ico {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: var(--col_orange);
    -webkit-mask: url("../images/module/hall/ico_train.svg") no-repeat center / contain;
            mask: url("../images/module/hall/ico_train.svg") no-repeat center / contain;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .detail_facility_sec {
        background: var(--col_l_beige);
        padding: 40px 0;
    }
    .detail_facility_sec_inner {
        padding: 0 16px;
    }
    .detail_facility_sec_title {
        font-size: 2.7rem;
        line-height: 1.48;
        margin: 0 0 24px;
    }

    /* テーブル: ラベル/値を縦積み */
    .detail_facility_sec_row {
        flex-direction: column;
    }
    .detail_facility_sec_label {
        flex: none;
        width: 100%;
        padding: 12px 18px;
        border-right: 0;
        font-size: 1.6rem;
        border-bottom: 1px solid #d4d4d4
    }
    .detail_facility_sec_value {
        padding: 12px 18px;
        font-size: 1.6rem;
    }

    .detail_facility_sec_desc {
        font-size: 1.5rem;
    }

    /* SP では「アクセス情報を詳しく見る」をマップ・駅アクセスの下に */
    .detail_facility_sec_more {
        order: 1;
        margin-top: 24px;
    }
    .detail_facility_sec_map {
        margin-top: 24px;
        aspect-ratio: 340 / 460;
    }
    .detail_facility_sec_access {
        margin-top: 12px;
        font-size: 1.6rem;
    }
}


/* ============================================================
   斎場詳細: 近くの火葬場セクション (.detail_crem_sec)
   - top に wave (bg_wave_top_12_*.webp)
   - PC: 左 Google Map / 右 火葬場情報カード
   - SP: タイトル → マップ → 名称 → 情報テーブル
============================================================ */
.detail_crem_sec {
    --crem-wave-pc: url("../images/module/bg_wave_top_12_pc.webp");
    --crem-wave-sp: url("../images/module/bg_wave_top_12_sp.webp");
    position: relative;
    width: 100%;
    background: var(--col_l_beige);
    padding: 160px 20px 100px;
    box-sizing: border-box;
    overflow: hidden;
}
.detail_crem_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100px;
    background: var(--crem-wave-pc) no-repeat top center / 100% auto;
    transform-origin: center top;
    z-index: 0;
}
.detail_crem_sec_inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}
.detail_crem_sec_title {
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    margin: 0 0 40px;
}

/* 本体: 左マップ / 右情報 */
.detail_crem_sec_body {
    display: grid;
    grid-template-columns: 560px 1fr;
    gap: 80px;
    align-items: start;
}
.detail_crem_sec_body_1col {
    grid-template-columns: 1fr;
}
.detail_crem_sec_body + .detail_crem_sec_body,
.detail_crem_sec_body_1col + .detail_crem_sec_body_1col {
    margin-top: 100px;
}
.detail_crem_sec_map {
    aspect-ratio: 500 / 400;
    overflow: hidden;
    border-radius: 4px;
}
.detail_crem_sec_map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* 右側 情報カード */
.detail_crem_sec_info {
    padding-top: 40px;
}
/* 見出し (.sec_title_bar / .sec_title_bar_lg) は template.css に統合 */
.detail_crem_sec_table {
    margin: 0;
    border: 1px solid #d4d4d4;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.detail_crem_sec_row {
    display: flex;
    border-top: 1px solid #d4d4d4;
}
.detail_crem_sec_row:first-child {
    border-top: 0;
}
.detail_crem_sec_label {
    flex: 0 0 110px;
    margin: 0;
    padding: 16px 20px;
    background: #fbf8f5;
    border-right: 1px solid #d4d4d4;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.75;
    color: #333;
}
.detail_crem_sec_value {
    flex: 1;
    margin: 0;
    padding: 16px 20px;
    background: #fff;
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1.75;
    color: #333;
}
.detail_crem_sec_fee_group {
    margin: 0;
}
.detail_crem_sec_fee_group + .detail_crem_sec_fee_group {
    margin-top: 4px;
}
.detail_crem_sec_fee_line {
    display: inline-block;
    padding-left: 1em;
}
.detail_crem_sec_fee_group strong {
    font-weight: 700;
}

@media (max-width: 768px) {
    .detail_crem_sec {
        padding: 80px 16px 50px;
    }
    .detail_crem_sec::before {
        height: 60px;
        background-image: var(--crem-wave-sp);
    }
    .detail_crem_sec_title {
        font-size: 2.7rem;
        line-height: 1.48;
        margin: 0 0 24px;
    }

    /* SP は縦積み: マップ → 名称 → テーブル */
    .detail_crem_sec_body {
        display: block;
    }
    .detail_crem_sec_body + .detail_crem_sec_body,
    .detail_crem_sec_body_1col + .detail_crem_sec_body_1col {
        margin-top: 80px;
    }
    .detail_crem_sec_map {
        aspect-ratio: 343 / 280;
        margin-bottom: 24px;
    }
    .detail_crem_sec_info {
        padding-top: 0;
    }
    .sec_title_bar_lg {
        margin-bottom: 8px;
    }
    /* SP は label / value を縦積み */
    .detail_crem_sec_row {
        flex-direction: column;
    }
    .detail_crem_sec_label {
        flex: none;
        padding: 10px 16px;
        border-right: 0;
        font-size: 1.6rem;
        border-bottom: 1px solid #D4D4D4;
    }
    .detail_crem_sec_value {
        padding: 12px 16px;
        font-size: 1.6rem;
    }
}


/* ============================================================
   斎場詳細: 空き状況・予約セクション (.detail_avail_sec)
   - オレンジ枠カード内にタイトル + 電話ボタン + QR
   - 中身レイアウトは .detail_info_sec_bottom の CSS をそのまま再利用
============================================================ */
.detail_avail_sec {
    background: var(--col_l_beige);
    padding: 0 20px 80px;
    box-sizing: border-box;
}
.detail_avail_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 40px 0;
    background: var(--col_cream);
    border: 2px solid var(--col_orange);
    border-radius: 12px;
    -moz-box-sizing: border-box;
	box-sizing: border-box;
}
.detail_avail_sec_title {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    margin: 0 0 24px;
}

@media (max-width: 768px) {
    .detail_avail_sec {
        padding: 24px 16px 40px;
    }
    .detail_avail_sec_inner {
        padding: 20px 16px 20px;
        border-radius: 10px;
    }
    .detail_avail_sec_title {
        font-size: 2.2rem;
        line-height: 1.5;
        margin: 0 0 16px;
    }
}


/* ============================================================
   斎場詳細: 口コミ・評判セクション (.detail_review_sec)
   - top に wave (bg_wave_top_9_*.webp)
   - 総合評価カード + slick スライダー (voice_sec と同仕様)
============================================================ */
.detail_review_sec {
    --review-wave-pc: url("../images/module/bg_wave_top_9_pc.webp");
    --review-wave-sp: url("../images/module/bg_wave_top_9_sp.webp");
    position: relative;
    width: 100%;
    background: var(--col_cream);
    padding: 180px 0 80px;
    box-sizing: border-box;
    overflow: hidden;
}
.detail_review_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--review-wave-pc) no-repeat top center / 100% auto;
    transform-origin: center top;
    z-index: 0;
}
.detail_review_sec_head {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto 40px;
    padding: 0 20px;
    text-align: center;
}
.detail_review_sec_title {
    margin: 0 0 32px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
}

/* 総合評価カード */
.detail_review_sec_summary {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
    padding: 24px 40px;
    min-width: 600px;
    justify-content: center;
}
.detail_review_sec_summary_badge {
    display: inline-block;
    border: 1px solid var(--col_orange);
    border-radius: 4px;
    color: var(--col_orange);
    font-size: 1.6rem;
    font-weight: 700;
    padding: 4px 10px;
    white-space: nowrap;
}
.detail_review_sec_summary_stars {
    display: inline-flex;
    gap: 2px;
}
.detail_review_sec_summary_star {
    width: 28px;
    height: 28px;
    background: #d4d4d4;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 7 7.6.6-5.8 5 1.8 7.4L12 18l-6.5 4 1.8-7.4L1.5 9.6 9.1 9z'/></svg>") no-repeat center / contain;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 7 7.6.6-5.8 5 1.8 7.4L12 18l-6.5 4 1.8-7.4L1.5 9.6 9.1 9z'/></svg>") no-repeat center / contain;
}
.detail_review_sec_summary_star_on { background: #f5b400; }
.detail_review_sec_summary_star_half {
    background: linear-gradient(to right, #f5b400 50%, #d4d4d4 50%);
}
.detail_review_sec_summary_num {
    font-family: 'Roboto', sans-serif;
    font-size: 4rem;
    font-weight: 700;
    color: var(--col_orange);
    line-height: 1;
}
.detail_review_sec_summary_count {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #2563eb;
    text-decoration: underline;
    font-size: 1.6rem;
    text-underline-offset: 3px;
}
.detail_review_sec_summary_count_ico {
    width: 16px;
    height: 16px;
    display: inline-block;
    background-color: #737373;
    -webkit-mask: url("../images/module/ico_review.svg") no-repeat center / contain;
            mask: url("../images/module/ico_review.svg") no-repeat center / contain;
}

/* スライダー (voice_sec と同 slick config) */
/* スライダー本体・カード・矢印/dots は .review_card_slider / .voice_sec_card 系 (template.css) を共通利用 */

/* 「お客様の声をもっと見る」 */
.detail_review_sec_more {
    position: relative;
    z-index: 1;
    margin-top: 60px;
    text-align: center;
}

/* 口コミ0件時のメッセージ */
.detail_review_sec_empty {
    margin: 0;
    padding: 40px 20px;
    text-align: center;
    font-size: 1.8rem;
}

@media (max-width: 768px) {
    .detail_review_sec {
        padding: 80px 0 60px;
    }
    .detail_review_sec::before {
        height: 80px;
        background-image: var(--review-wave-sp);
    }
    .detail_review_sec_head {
        margin-bottom: 24px;
        padding: 0 16px;
    }
    .detail_review_sec_title {
        font-size: 2.7rem;
        line-height: 1.48;
        margin-bottom: 24px;
    }
    .detail_review_sec_summary {
        display: grid;
        grid-template-columns: auto auto auto;
        column-gap: 12px;
        row-gap: 8px;
        justify-content: center;
        align-items: center;
        padding: 16px 20px;
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }
    .detail_review_sec_summary_badge {
        grid-column: 1 / -1;     /* 1 行目を独占 */
        justify-self: center;    /* 文字数で可変・中央寄せ */
    }
    .detail_review_sec_summary_star {
        width: 22px;
        height: 22px;
    }
    .detail_review_sec_summary_num {
        font-size: 3.2rem;
    }
    .detail_review_sec_more {
        margin-top: 50px;
    }
}


/* ============================================================
   斎場詳細: イベント情報セクション (.detail_event_sec)
   - top に wave (bg_wave_top_2_*.webp)
   - PC: 3 カードを横並び (slick: arrows/dots なし)
   - SP: 1 カード中央 + 両脇チラ見え + 矢印 + dots
============================================================ */
.detail_event_sec {
    --event-wave-pc: url("../images/module/bg_wave_top_3_pc.webp");
    --event-wave-sp: url("../images/module/bg_wave_top_3_sp.webp");
    position: relative;
    width: 100%;
    background: var(--col_cream);
    padding: 180px 20px 80px;
    box-sizing: border-box;
    overflow: hidden;
}
.detail_event_sec::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 160px;
    background: var(--event-wave-pc) no-repeat top center / 100% auto;
    z-index: 0;
    pointer-events: none;
}
.detail_event_sec_inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}
.detail_event_sec_title {
    margin: 0 0 40px;
    font-size: 4.0rem;
    font-weight: 700;
    line-height: 1.4;
}

/* スライダー */
.detail_event_sec_slider {
    margin: 0 auto 40px;
}
/* イベントが1件のみの場合は slick を初期化せず中央寄せ表示 (initSlickResponsive) */
.detail_event_sec_slider.is-single {
    display: flex;
    justify-content: center;
}
.detail_event_sec_slider.is-single .detail_event_sec_slide {
    width: 33.3333%;
}
@media screen and (max-width: 768px) {
    .detail_event_sec_slider.is-single .detail_event_sec_slide {
        width: 84%;
    }
}
.detail_event_sec_slide {
    padding: 12px;
    box-sizing: border-box;
}

/* カード */
.detail_event_sec_card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
    color: inherit;
    text-decoration: none;
    text-align: left;
    transition: box-shadow 0.2s, transform 0.2s;
}
.detail_event_sec_card:hover {
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
    color: inherit;
}
.detail_event_sec_card:hover .detail_event_sec_card_title {
    color: var(--col_orange);
}
.detail_event_sec_card_img {
    width: 100%;
    aspect-ratio: 4 / 3;
    background: #999;
    overflow: hidden;
}
.detail_event_sec_card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.detail_event_sec_card_body {
    padding: 16px 18px 20px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.detail_event_sec_card_date {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.4;
    font-family: 'Roboto', sans-serif;
    color: #555555;
}
.detail_event_sec_card_title {
    margin: 0 0 0px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s;
}
.detail_event_sec_card_meta {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.detail_event_sec_card_held {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.4;
}
.detail_event_sec_card_badge {
    display: inline-block;
    padding: 4px 16px;
    background: var(--col_l_beige);
    border-radius: 999px;
    font-size: 1.6rem;
    font-weight: 700;
    white-space: nowrap;
}
.news_detail_sec_event {
	color: var(--col_orange);
	font-size: 1.6rem;
	font-weight: 500;
}
@media screen and (max-width: 768px) {
    .news_detail_sec_event {
        font-size: 1.5rem;
    }
}

/* slick — SP の矢印 (中央下白丸 + オレンジシェブロン) */
.detail_event_sec_slider .slick-prev,
.detail_event_sec_slider .slick-next {
    top: auto;
    bottom: -56px;
    width: 44px;
    height: 44px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    z-index: 2;
    transform: none;
}
.detail_event_sec_slider .slick-prev { left: calc(50% - 100px); }
.detail_event_sec_slider .slick-next { right: calc(50% - 100px); }
.detail_event_sec_slider .slick-prev::before,
.detail_event_sec_slider .slick-next::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--col_orange);
    border-right: 2px solid var(--col_orange);
    opacity: 1;
}
.detail_event_sec_slider .slick-prev::before {
    transform: rotate(-135deg);
    margin-left: 4px;
}
.detail_event_sec_slider .slick-next::before {
    transform: rotate(45deg);
    margin-right: 4px;
}
.detail_event_sec_slider .slick-dots {
    bottom: -44px;
}
.detail_event_sec_slider .slick-dots li button::before {
    color: #d4d4d4;
    opacity: 1;
    font-size: 8px;
}
.detail_event_sec_slider .slick-dots li.slick-active button::before {
    color: var(--col_orange);
}

/* 「イベント情報をすべて見る」リンク (オレンジ丸 + 矢印) */
.detail_event_sec_more {
    margin: 60px 0 0;
}
.detail_event_sec_more .sec_more_link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: underline;
    font-size: 2rem;
    text-underline-offset: 3px;
}
.detail_event_sec_more .sec_more_arrow {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--col_orange);
    position: relative;
    display: inline-block;
}
.detail_event_sec_more .sec_more_arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(-65%, -50%) rotate(45deg);
}

@media (max-width: 768px) {
    .detail_event_sec {
        padding: 80px 0 100px;
    }
    .detail_event_sec::before {
        height: 60px;
        background-image: var(--event-wave-sp);
    }
    .detail_event_sec_inner {
        padding: 0 0;
    }
    .detail_event_sec_title {
        font-size: 2.7rem;
        line-height: 1.48;
        margin: 0 16px 24px;
    }
    .detail_event_sec_slider {
        margin-bottom: 80px;     /* 矢印・dots 用の余白 */
    }
    .detail_event_sec_card_date {
        font-size: 1.5rem;
    }
    .detail_event_sec_card_title {
        font-size: 1.6rem;
    }
    .detail_event_sec_card_held {
        font-size: 1.5rem;
    }
    .detail_event_sec_more {
        margin-top: 90px;
        padding: 0 16px;
    }
    .detail_event_sec_more .sec_more_link {
        font-size: 1.8rem;
    }
}


/* ========================================================
   斎場情報セクション (.map_info_sec) — /hall/area-detail-map.php
======================================================== */
.map_info_sec {
    width: 100%;
    background: #fff;
    padding: 60px 20px;
    box-sizing: border-box;
}
.map_info_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.map_info_sec_top {
    display: flex;
    align-items: flex-start;
    gap: 78px;
    margin: 0 0 40px;
}
.map_info_sec_street {
    flex: 0 0 53%;
    aspect-ratio: 640 / 400;
    border-radius: 4px;
    overflow: hidden;
}
.map_info_sec_street iframe,
.map_info_sec_street img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.map_info_sec_side {
    flex: 1 1 auto;
    min-width: 0;
}
.map_info_sec_list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
}
.map_info_sec_item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 4px 0;
    border-bottom: 1px solid #eee;
    font-size: 1.8rem;
    font-weight: 400;
    text-align: left;
}
.map_info_sec_body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.map_info_sec_item:first-child {
    padding-top: 0;
}
.map_info_sec_ico {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.3em;
}
.map_info_sec_ico_pin,
.map_info_sec_ico_train,
.map_info_sec_ico_bus,
.map_info_sec_ico_walk,
.map_info_sec_ico_car {
    background-color: var(--col_orange);
    -webkit-mask: no-repeat center / contain;
            mask: no-repeat center / contain;
}
.map_info_sec_ico_pin {
    -webkit-mask-image: url("../images/module/hall/ico_access.svg");
            mask-image: url("../images/module/hall/ico_access.svg");
}
.map_info_sec_ico_train {
    -webkit-mask-image: url("../images/module/hall/ico_train.svg");
            mask-image: url("../images/module/hall/ico_train.svg");
}
.map_info_sec_ico_bus {
    -webkit-mask-image: url("../images/module/hall/ico_bus.svg");
            mask-image: url("../images/module/hall/ico_bus.svg");
}
.map_info_sec_ico_walk {
    -webkit-mask-image: url("../images/module/hall/ico_walk.svg");
            mask-image: url("../images/module/hall/ico_walk.svg");
}
.map_info_sec_ico_car {
    -webkit-mask-image: url("../images/module/hall/ico_car2.svg");
            mask-image: url("../images/module/hall/ico_car2.svg");
}
.map_info_sec_ico_parking {
    border-radius: 4px;
    background: var(--col_orange);
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
}
.map_info_sec_text {
    flex: 1 1 auto;
    min-width: 200px;
}
.map_info_sec_link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--col_orange);
    color: #fff;
    padding: 6px 16px;
    border-radius: 4px;
    font-size: 1.5rem;
    font-weight: 500;
    text-decoration: none;
    transition: opacity 0.2s;
}
.map_info_sec_link:hover {
    opacity: 0.88;
}
.map_info_sec_link_arrow {
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(135deg);
    margin-bottom: 3px;
}

.map_info_sec_flower {
    display: flex;
    align-items: center;
    background: rgba(78, 172, 164, 0.12);
    border-radius: 4px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.2s;
}
.map_info_sec_flower:hover {
    opacity: 0.88;
}
.map_info_sec_flower_img {
    flex: 0 0 35%;
    aspect-ratio: 4 / 3;
}
.map_info_sec_flower_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.map_info_sec_flower_text {
    flex: 1 1 auto;
    padding: 0 0 0 30px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
}
.map_info_sec_flower_arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: 8px;
    border-top: 2px solid var(--col_orange);
    border-right: 2px solid var(--col_orange);
    transform: rotate(45deg);
}

.map_info_sec_nav {
    list-style: none;
    margin: 0;
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    background: #FFF3F3;
    border-radius: 8px;
}
.map_info_sec_nav_link {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border-radius: 6px;
    padding: 14px 16px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    transition: opacity 0.2s;
}
.map_info_sec_nav_link:hover {
    opacity: 0.8;
}
.map_info_sec_nav_ico {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: inline-flex;
}
.map_info_sec_nav_ico img {
    width: 100%;
    height: 100%;
    display: block;
}
.map_info_sec_nav_text {
    flex: 1 1 auto;
    font-size: 2rem;
    font-weight: 500;
}
.map_info_sec_nav_chevron {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-bottom: 2px solid var(--col_orange);
    border-right: 2px solid var(--col_orange);
    transform: rotate(45deg);
    margin-top: -4px;
}

/* 斎場ページへの導線ボタン (アクセスページ → 斎場ページ / single-hall-access.php) */
.map_info_sec_more {
    margin: 32px 0 0;
    text-align: center;
}
.map_info_sec_more_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    max-width: 100%;
    box-sizing: border-box;
    padding: 20px 40px;
    background: var(--col_orange);
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.2s ease;
}
.map_info_sec_more_link:hover {
    opacity: 0.88;
}
.map_info_sec_more_arrow {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
}

/* ------------------------------------------------------------
   SP (≤768px)
------------------------------------------------------------ */
@media screen and (max-width: 768px) {
    .map_info_sec {
        padding: 40px 16px;
    }
    .map_info_sec_top {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 24px;
    }
    .map_info_sec_street {
        flex: 0 0 auto;
        width: 100%;
    }
    .map_info_sec_item {
        font-size: 1.8rem;
    }
    .map_info_sec_link {
        width: 100%;
        justify-content: center;
        margin-top: 4px;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }
    .map_info_sec_flower_text {
        font-size: 1.5rem;
        padding: 0 12px;
    }
    .map_info_sec_nav {
        grid-template-columns: repeat(1, 1fr);
        gap: 10px;
        padding: 16px;
    }
    .map_info_sec_nav_link {
        padding: 12px;
    }
    .map_info_sec_nav_text {
        font-size: 1.8rem;
    }
    .map_info_sec_more {
        margin-top: 24px;
    }
    .map_info_sec_more_link {
        width: 100%;
        gap: 10px;
        padding: 16px 20px;
        font-size: 1.7rem;
    }
}


/* ========================================================
   地図セクション (.map_sec) — /hall/area-detail-map.php
======================================================== */
.map_sec {
    width: 100%;
    background: var(--col_l_beige);
    padding: 60px 20px;
    box-sizing: border-box;
}
.map_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.map_sec_title {
    margin: 0 0 30px;
    font-size: 4rem;
    font-weight: 700;
    text-align: center;
}
.map_sec_frame {
    width: 100%;
    aspect-ratio: 1200 / 460;
    border-radius: 4px;
    overflow: hidden;
    background: #666;
}
.map_sec_frame iframe {
    width: 100%;
    height: 100%;
    display: block;
}
.map_sec_info {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
}
.map_sec_info_item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 4px 0;
    font-size: 1.8rem;
    font-weight: 400;
    text-align: left;
}
.map_sec_info_ico {
    flex: 0 0 18px;
    width: 18px;
    height: 19px;
    display: inline-block;
    background-color: var(--col_orange);
    -webkit-mask: no-repeat center / contain;
            mask: no-repeat center / contain;
    margin-top: 0.5rem;
}
.map_sec_info_ico_pin {
    -webkit-mask-image: url("../images/module/hall/ico_access.svg");
            mask-image: url("../images/module/hall/ico_access.svg");
}
.map_sec_info_ico_train {
    -webkit-mask-image: url("../images/module/hall/ico_train.svg");
            mask-image: url("../images/module/hall/ico_train.svg");
}

/* ------------------------------------------------------------
   SP (≤768px)
------------------------------------------------------------ */
@media screen and (max-width: 768px) {
    .map_sec {
        padding: 40px 16px;
    }
    .map_sec_title {
        font-size: 2.7rem;
        margin-bottom: 20px;
    }
    .map_sec_frame {
        aspect-ratio: 4 / 3;
    }
    .map_sec_info_item {
        font-size: 1.6rem;
    }
}


/* ========================================================
   ルートセクション (.route_sec) — /hall/area-detail-map.php
======================================================== */
.route_sec {
    width: 100%;
    background: var(--col_cream);
    padding: 80px 20px 20px;
    box-sizing: border-box;
}
.route_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.route_sec_title {
    margin: 0 0 30px;
    font-size: 4rem;
    font-weight: 700;
    text-align: center;
}

.route_sec_navi {
    background: #fff;
    border-radius: 8px;
    padding: 30px 40px;
    margin: 0 0 80px;
}
.route_sec_navi_title {
    margin: 0 0 20px;
    color: var(--col_brown);
    font-size: 2.8rem;
    font-weight: 700;
    text-align: center;
}
.route_sec_navi_list {
    margin: 0;
}
.route_sec_navi_row {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 10px 0;
}
.route_sec_navi_label {
    flex: 0 0 200px;
    text-align: center;
    background: #fa916c;
    color: #fff;
    border-radius: 999px;
    padding: 6px 0;
    font-size: 1.8rem;
    font-weight: 700;
}
.route_sec_navi_value {
    flex: 1 1 auto;
    margin: 0;
    font-size: 1.8rem;
    line-height: 1.7;
}

.route_sec_block {
    margin: 0 0 80px;
}
.route_sec_block_title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 20px;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.3;
}
.route_sec_block_title_ico {
    flex: 0 0 35px;
    width: 35px;
    height: 35px;
    display: inline-block;
    background-color: var(--col_orange);
    -webkit-mask: no-repeat center / contain;
            mask: no-repeat center / contain;
}
.route_sec_block_title_ico.map_info_sec_ico_train {
    -webkit-mask-image: url("../images/module/hall/ico_train.svg");
            mask-image: url("../images/module/hall/ico_train.svg");
}
.route_sec_block_title_ico.map_info_sec_ico_bus {
    -webkit-mask-image: url("../images/module/hall/ico_bus.svg");
            mask-image: url("../images/module/hall/ico_bus.svg");
}
.route_sec_block_title_ico.map_info_sec_ico_walk {
    -webkit-mask-image: url("../images/module/hall/ico_walk.svg");
            mask-image: url("../images/module/hall/ico_walk.svg");
}
.route_sec_block_title_ico.map_info_sec_ico_car {
    -webkit-mask-image: url("../images/module/hall/ico_car2.svg");
            mask-image: url("../images/module/hall/ico_car2.svg");
}
.route_sec_steps {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    counter-reset: route-step;
}
.route_sec_step {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 0;
}
.route_sec_step_num {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fa916c;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    font-weight: 700;
    font-family: 'Roboto', sans-serif;
}
.route_sec_step_text {
    flex: 1 1 auto;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.8;
}
.route_sec_block_note {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.6;
}

/* ------------------------------------------------------------
   SP (≤768px)
------------------------------------------------------------ */
@media screen and (max-width: 768px) {
    .route_sec {
        padding: 60px 16px 0;
    }
    .route_sec_title {
        font-size: 2.7rem;
        margin-bottom: 20px;
    }
    .route_sec_navi {
        padding: 20px;
    }
    .route_sec_navi_title {
        font-size: 2.4rem;
        margin: 0 0 10px;
    }
    .route_sec_block {
        margin: 0 0 60px;
    }
    .route_sec_navi_row {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .route_sec_step {
        align-items: flex-start;
    }
    .route_sec_step_num {
        flex: 0 0 32px;
        width: 32px;
        height: 32px;
        font-size: 2rem;
    }
    .route_sec_navi_label {
        flex: 0 0 auto;
        display: inline-block;
        padding: 4px 16px;
    }
    .route_sec_block_title {
        font-size: 2rem;
    }
    .route_sec_navi_value {
        font-size: 1.6rem;
    }
    .route_sec_step_text {
        font-size: 1.6rem;
    }
}


/* ========================================================
   駐車場セクション (.parking_sec) — /hall/area-detail-map.php
======================================================== */
.parking_sec {
    width: 100%;
    background: var(--col_l_beige);
    padding: 80px 20px;
    box-sizing: border-box;
}
.parking_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.parking_sec_title {
    margin: 0 0 30px;
    font-size: 3.2rem;
    font-weight: 700;
    text-align: center;
}
.parking_sec_body {
    display: flex;
    align-items: flex-start;
    gap: 80px;
}
.parking_sec_street {
    flex: 0 0 41.7%;
    aspect-ratio: 500 / 300;
    border-radius: 8px;
    overflow: hidden;
    background: #999;
}
.parking_sec_street iframe,
.parking_sec_street img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.parking_sec_table {
    flex: 1 1 auto;
    margin: 0;
    background: #fff;
    border-radius: 8px;
    border: 1px solid #D4D4D4;
    overflow: hidden;
}
.parking_sec_row {
    display: flex;
}
.parking_sec_row + .parking_sec_row {
    border-top: 1px solid #D4D4D4;
}
.parking_sec_label {
    flex: 0 0 120px;
    padding: 18px 16px;
    background: #FAF7F3;
    border-right: 1px solid #D4D4D4;
    font-size: 1.8rem;
    font-weight: 700;
    align-items: center;
    display: flex;
    -moz-box-sizing: border-box;
	box-sizing: border-box;
}
.parking_sec_value {
    flex: 1 1 auto;
    margin: 0;
    padding: 18px 24px;
    font-size: 1.8rem;
    line-height: 1.8;
}

/* ------------------------------------------------------------
   SP (≤768px)
------------------------------------------------------------ */
@media screen and (max-width: 768px) {
    .parking_sec {
        padding: 40px 16px 40px;
    }
    .parking_sec_title {
        font-size: 2.7rem;
        margin-bottom: 20px;
    }
    .parking_sec_body {
        flex-direction: column;
        gap: 16px;
    }
    .parking_sec_street {
        flex: 0 0 auto;
        width: 100%;
        aspect-ratio: 4 / 3;
    }
    .parking_sec_label {
        flex: 0 0 110px;
        font-size: 1.6rem;
        padding: 14px 12px;
    }
    .parking_sec_value {
        font-size: 1.6rem;
        padding: 14px 16px;
    }
}


/* ========================================================
   ご参列セクション (.attend_sec) — /hall/area-detail-map.php
======================================================== */
.attend_sec {
    width: 100%;
    background: var(--col_cream);
    padding: 80px 20px 60px;
    box-sizing: border-box;
}
.attend_sec_inner {
    max-width: 1200px;
    margin: 0 auto;
}
.attend_sec_title {
    margin: 0 0 30px;
    font-size: 4rem;
    font-weight: 700;
    text-align: center;
}
.attend_sec_flower {
    max-width: 590px;
    margin: 0 auto 40px;
}
.attend_sec_flower .map_info_sec_flower_img {
    flex: 0 0 30.5%;
    aspect-ratio: 6 / 5;
}
.attend_sec_list {
    list-style: none;
    margin: 40px 0 24px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.attend_sec_item_link {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    background: #fff;
    border-radius: 8px;
    padding: 16px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    transition: opacity 0.2s;
}
.attend_sec_item_link:hover {
    opacity: 0.88;
}
.attend_sec_item_img {
    display: block;
    flex: 0 0 100%;
    aspect-ratio: 121 / 81;
    border-radius: 8px;
    overflow: hidden;
    margin: 0 0 14px;
}
.attend_sec_item_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.attend_sec_item_text {
    display: block;
    flex: 1 1 auto;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.6;
}
.attend_sec_item_arrow {
    flex: 0 0 auto;
    align-self: center;
    width: 7px;
    height: 7px;
    margin-left: 6px;
    border-top: 2px solid var(--col_orange);
    border-right: 2px solid var(--col_orange);
    transform: rotate(45deg);
}
.attend_sec_note {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.8;
}

/* ------------------------------------------------------------
   SP (≤768px)
------------------------------------------------------------ */
@media screen and (max-width: 768px) {
    .attend_sec {
        padding: 40px 16px 40px;
    }
    .attend_sec_title {
        font-size: 2.7rem;
        margin-bottom: 20px;
    }
    .attend_sec_flower {
        max-width: none;
        margin-bottom: 24px;
    }
    .attend_sec_list {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
        margin-bottom: 16px;
    }
    .attend_sec_item_link {
        padding: 12px;
    }
    .attend_sec_item_text {
        font-size: 1.6rem;
    }
    .attend_sec_item_arrow {
        margin-left: auto;
    }
    .attend_sec_note {
        font-size: 1.5rem;
    }
}

/* ============================================
   斎場マップ 凡例（.ken_hall_sec_map / .map_sec_map 共通）
   ============================================ */
.hall_map_legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px 32px;
    margin: 0 auto 40px;
    padding: 0;
    list-style: none;
}
.hall_map_legend_item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
    color: #333;
}
.hall_map_legend_icon {
    width: 26px;
    height: 30px;
    flex-shrink: 0;
    object-fit: contain;
}
/* 凡例が続くときだけマップ下の余白を詰める（16px） */
.ken_hall_sec_map:has(+ .hall_map_legend),
.map_sec_map:has(+ .hall_map_legend) {
    margin-bottom: 16px;
}

@media screen and (max-width: 768px) {
    .hall_map_legend { gap: 10px 20px; margin-bottom: 28px; }
    .hall_map_legend_item { font-size: 1.3rem; gap: 6px; }
    .hall_map_legend_icon { width: 22px; height: 25px; }
    .ken_hall_sec_map:has(+ .hall_map_legend),
    .map_sec_map:has(+ .hall_map_legend) { margin-bottom: 12px; }
}
