/*----------------------------------------------------------
 nippaku
-----------------------------------------------------------*/

/*setting
------------------------------------*/

html,
body {
    min-height: 100vh;
}

html {
    font-size: 62.5%;
}

body {
    display: flex;
    flex-direction: column;
    position: relative;
    overflow-x: hidden;
    background-color: #ffffff;
    font-family: メイリオ, Meiryo, sans-serif;
    font-size: 1.6rem;
    color: #444444;
    line-height: 1.7;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

@media (min-width: 768px) {
    body {
        line-height: 1.8;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

ol,
ul,
dl {
    margin: 0;
}

ol li,
ul li {
    list-style-type: none;
}

p {
    padding: 0;
}

a:not([href]):not([class]), a:not([href]):not([class]):hover {
    color: inherit;
    text-decoration: none;
}

a:hover img {
    opacity: 0.7;
}

/* buttonのデフォルトスタイルをリセット */
button {
    cursor: pointer;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    color: inherit;
    line-height: inherit;
    text-align: inherit;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

/* Content Link Color
--------------------------------*/
#content a:link {
    color: #134A1D;
    text-decoration: underline;
}

#content a:visited {
    color: #134A1D;
    text-decoration: underline;
}

#content a:hover {
    color: #FF6633;
    text-decoration: underline;
}

#content a:active {
    color: #FF6633;
}


/*outline
------------------------------------*/
#outline {
    position: relative;
    min-height: 100%;
}

body > #outline {
    height: auto;
}

.global-wrapper {
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    padding: 15px 0 50px;
    min-height: 100vh;
}

.global-wrapper-mv {
    padding-top: 0;
}

@media (min-width: 576px) {
    .global-wrapper {
        padding: 40px 0 80px;
    }

    .global-wrapper-mv {
        padding-top: 0;
    }
}

@media (min-width: 1200px) {
    .global-wrapper {
        padding: 50px 0 80px;
    }

    .global-wrapper-mv {
        padding-top: 0;
    }
}

.global-inner {
    padding: 0 15px;
}

@media (min-width: 768px) {
    .global-inner {
        padding: 0 30px;
        max-width: 1050px;

    }
}

@media (min-width: 1200px) {
    .global-inner {
        margin: 0 auto;
        padding: 0 60px;
        width: 100%;
        max-width: calc(1050px + 60px * 2);
    }
}


/*header
------------------------------------*/
.header {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    background-color: #ECF5E4;
}

/* スマホメニューが開いたときに背景のスクロールを防ぐ */
body.is-fixed,
body.is-open-nav {
    position: fixed;
    overflow: hidden;
    width: 100%;
}

.is-open-nav .header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 200;
    width: 100%;
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 60px;
}

.header-text {
    display: none;
}

.header-inner .cta {
    display: none;
}

.menu .cta {
    display: none;
}

.cta-tel {
    line-height: 1.3;
}

.cta-tel-text {
    padding-left: 40px;
    font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
    font-size: 14px;
    color: #0B7B43;
}

.cta-tel-number {
    display: flex;
    align-items: center;
    font-family: "Open Sans", "Noto Sans JP", sans-serif;
    font-size: 34px;
    font-weight: 700;
    color: #011225;
    text-decoration: none;
}

.cta-tel-number::before {
    content: "\f3f2";
    font-family: "Material Design Icons";
    font-size: 120%;
    font-weight: normal;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* SP用メニューOPEN時 */
.is-open-nav .menu .cta {
    display: block;
    background-color: #ECF5E4;
}

.is-open-nav .menu .cta-inner {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    padding: 15px;
    max-width: 370px;
    row-gap: 15px;
}

.is-open-nav .menu .cta-btn {
    justify-content: center;
}

.is-open-nav .menu .cta-btn-item {
    flex-grow: 1;
}

/* 固定cta・SP用メニュー内の電話番号ボタン */
.cta-tel-white {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 8px;
    border-radius: 5px;
    background-color: #FFF;
}

.cta-tel-white .cta-tel-text {
    margin: 0 auto;
    padding-left: 0;
}

.cta-tel-white .cta-tel-number {
    justify-content: center;
}


@media (min-width: 1200px) {
    .is-open-nav .header {
        position: static;
    }

    .header-inner {
        margin: 0 auto;
        padding: 30px 0;
        width: 1050px;
        height: 100px;
    }

    .header-title {
        display: flex;
        align-items: center;
        column-gap: 16px;
    }

    .header-text {
        display: block;
        margin: 0;
        padding-top: 6px;
        font-size: 12px;
        font-weight: normal;
        line-height: 1.4;
    }

    /* 広い幅ではSPメニュー内のctaは常に表示しない */
    .is-open-nav .menu .cta,
    .menu .cta {
        display: none;
    }

    .header-inner .cta {
        display: block;
    }

    .header-inner .cta-inner {
        display: flex;
        align-items: center;
        column-gap: 15px;
    }
}

/*logo
------------------------------------*/
.logo {
    display: block;
}

.logo img {
    width: 100%;
    height: auto;
}

.header .logo {
    padding: 0 8px;
    width: 140px;
    height: 42px;
}

.footer .logo {
    margin-bottom: 20px;
    width: 200px;
    height: 60px;
}

@media (min-width: 576px) {
    .header .logo {
        width: 160px;
        height: 48px;
    }

}
@media (min-width: 1200px) {
    .header .logo {
        width: 200px;
        height: 60px;
    }

    .footer .logo {
        margin-bottom: 25px;
        width: 180px;
        height: 54px;
    }
}

/*cta-btn（供花のご依頼・お問い合わせボタン）
------------------------------------*/
.cta-btn {
    display: flex;
    column-gap: 10px;
}

.cta-btn a {
    text-decoration: none;
}

/* Bootstrap代替: btn基本スタイル */
.btn {
    cursor: pointer;
    padding: 12px 14px;
    border-width: 2px;
    border-style: solid;
    border-radius: 0.375rem;
    min-width: 155px;
    font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    user-select: none;
}

.btn:hover {
    text-decoration: none;
}

.btn:focus {
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(11, 123, 67, 0.25);
}
.btn:disabled {
    cursor: default;
    opacity: 0.5;
}

/* サイズバリエーション */
.btn-sm {
    padding: 8px 10px;
    border-width: 2px;
    min-width: auto;
    font-size: 14px;
    font-weight: 500;
}
/* 色バリエーション */
.btn-outline-green {
    border-color: #0B7B43;
    background-color: #FFF;
    color: #0B7B43;
}

.btn-outline-green:hover,
.btn-outline-green:active {
    border-color: #0B7B43;
    background-color: #f8f9fa;
    color: #0B7B43;
}

.btn-outline-green:focus {
    box-shadow: 0 0 0 0.25rem rgba(11, 123, 67, 0.5);
}

.btn-green {
    border-color: #0B7B43;
    background-color: #0B7B43;
    color: #fff;
}

.btn-green:hover,
.btn-green:active {
    border-color: #086536;
    background-color: #086536;
    color: #fff;
}

.btn-green:focus {
    box-shadow: 0 0 0 0.25rem rgba(11, 123, 67, 0.5);
}

.btn-remove {
    border-color: #ecf0f4;
    background-color: #ecf0f4;
}

.btn-remove:hover,
.btn-remove:active {
    border-color: #d0d8e0;
    background-color: #d0d8e0;
}

.btn-remove:focus {
    box-shadow: 0 0 0 0.05rem rgba(176, 190, 197, 0.5);
}

/* アイコン修飾（flex レイアウト + ::before アイコン） */
.btn-flower-order,
.btn-contact,
.btn-add,
.btn-remove,
.btn-venue-search {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 4px;
}

.btn-venue-search {
    margin-bottom: 15px;
    margin-left: auto;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 13px;
}

@media (min-width: 768px) {
    .btn-venue-search {
        display: none;
    }
}

.btn-flower-order::before {
    content: "";
    width: 24px;
    height: 24px;
    background-image: url('/images/icon-flower-order.png');
    background-repeat: no-repeat;
    background-size: contain;
}

.btn-contact::before {
    content: "\f1f0";
    padding-top: 4px;
    font-family: "Material Design Icons";
    font-size: 120%;
    font-weight: normal;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.btn-add::before,
.btn-remove::before,
.btn-venue-search::before {
    font-family: "Material Design Icons";
    font-size: 120%;
    font-weight: normal;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.btn-add::before {
    content: "\f415";
}

.btn-remove::before {
    content: "\f1c0";
}

.btn-venue-search::before {
    content: "\f349";
}

.btn-footer {
    display: flex;
    justify-content: center;
    margin-top: 24px;
    gap: 10px;
}

.pagination {
    display: flex;
    justify-content: center;
    margin-top: 40px;
    gap: 10px;
}

.pagination-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 0 12px;
    border: 1px solid #0B7B43;
    min-width: 40px;
    height: 40px;
    background-color: #fff;
    font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
    color: #0B7B43;
    gap: 2px;
}

.pagination-btn.active {
    background-color: #0B7B43;
    color: #fff !important;
}

.pagination-btn:not(.active):hover {
    background-color: #f8f9fa;
}

.pagination-btn.active {
    cursor: default;
}

.pagination-btn.disabled {
    cursor: default;
    opacity: 0.4;
    pointer-events: none;
}

.pagination-btn-prev {
    padding: 0 12px 0 4px;
}

.pagination-btn-next {
    padding: 0 4px 0 12px;
}

.pagination-btn-prev::before,
.pagination-btn-next::after {
    margin-top: 4px;
    font-family: "Material Design Icons";
    font-size: 20px;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.pagination-btn-prev::before {
    content: "\f141";
}

.pagination-btn-next::after {
    content: "\f142";
}

/* link 擬似クラスの上書き（#content a:link 等に負けないよう ID を含める） */
#content .pagination a:link,
#content .pagination a:visited,
#content .pagination a:hover,
#content .pagination a:active {
    color: #0B7B43;
    text-decoration: none;
}

@media (min-width: 768px) {
    .pagination {
        margin-top: 60px;
    }
}


/*menu
------------------------------------*/
.menu {
    display: none;
    position: fixed;
    top: 60px;
    left: 0;
    z-index: 200;
    overflow-y: auto;
    width: 100%;
    height: calc(100% - 60px);
    background-color: #ECF5E4;
    transition: opacity 0.3s ease;
}

.nav {
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
    font-weight: 600;
}

.nav-item {
    background-color: #FFF;
    font-size: 15px;
}

.nav-item + .nav-item {
    border-top: 1px solid #C3DFC6;
}

.nav-item-quick {
    order: -1;
    background-color: #F75E4A;
}

.nav-link {
    display: flex;
    align-items: center;
    padding: 15px;
    width: 100%;
    color: #444444;
    text-decoration: none;
}

.nav-link:hover,
.nav-link:focus {
    color: #444444;
}

.nav-link::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    margin-right: 8px;
    margin-left: 8px;
    border-radius: 50%;
    width: 5px;
    height: 5px;
    background-color: transparent;
}

.nav-item.active > .nav-link::before {
    background-color: #0B7B43;
}

.nav-item-quick.active > .nav-link::before {
    background-color: #af0000;
}

.nav-link::after {
    content: "\f142";
    margin-left: auto;
    font-family: "Material Design Icons";
    font-size: 150%;
    font-weight: 500;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.nav-item-quick .nav-link {
    color: #FFF;
}

.nav-item-quick .nav-link:hover,
.nav-item-quick .nav-link:focus {
    color: #FFF;
}

/* Bootstrap代替: ドロップダウン */
.dropdown {
    position: relative;
}

/* 共通のドロップダウントグルスタイル + ::before/::after でインジケーター表示 */
.dropdown-toggle {}

.dropdown-toggle::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    margin-right: 8px;
    margin-left: 8px;
    border-radius: 50%;
    width: 5px;
    height: 5px;
    background-color: transparent;
}

.nav-item.active .dropdown-toggle::before {
    background-color: #0B7B43;
}

.nav-item-quick.active .dropdown-toggle::before {
    background-color: #af0000;
}

.dropdown-toggle::after {
    content: "\f415";
    margin-left: auto;
    border: none;
    font-family: "Material Design Icons";
    font-size: 150%;
    font-weight: 500;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.dropdown:has(.dropdown-menu.show) .dropdown-toggle::after {
    content: "\f374";
}

.dropdown-menu {
    opacity: 0;
    list-style: none;
    position: static;
    overflow: hidden;
    margin: 0;
    border-bottom: 1px solid #C3DFC6;
    max-height: 0;
    background-color: #FFF;
    transition: max-height 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
}

.dropdown-menu.show {
    opacity: 1;
    max-height: 500px;
    pointer-events: auto;
}

.dropdown-menu li {
    border-top: 1px solid #C3DFC6;
}

.dropdown-item {
    display: flex;
    align-items: center;
    padding: 15px 15px 15px 40px;
    border: 0;
    width: 100%;
    background-color: transparent;
    font-weight: 600;
    color: #444444;
    text-decoration: none;
    text-align: inherit;
}

.dropdown-item::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    margin-right: 8px;
    border-radius: 50%;
    width: 5px;
    height: 5px;
    background-color: transparent;
}

.dropdown-item.active::before {
    background-color: #0B7B43;
}

.dropdown-item::after {
    content: "\f142";
    margin-left: auto;
    font-family: "Material Design Icons";
    font-size: 150%;
    font-weight: 500;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.menu-btn {
    display: flex;
    flex: none;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 8px;
    border: none;
    width: 60px;
    height: 60px;
    background-color: #0B7B43;
    font-size: 1rem;
    color: #FFF;
    line-height: 1;
    letter-spacing: .05em;
}

.menu-btn-line {
    position: relative;
    width: 26px;
    height: 3px;
    background-color: #FFF;
    transition: background-color .3s;
}

.menu-btn-line::before,
.menu-btn-line::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #FFF;
    transition: transform .3s;
}

.menu-btn-line::before {
    transform: translateY(-9px);
}

.menu-btn-line::after {
    transform: translateY(9px);
}

/* SP用メニューOPEN時 */
.is-open-nav .menu-btn-line {
    background-color: transparent;
}

.is-open-nav .menu-btn-line::before {
    transform: rotate(-45deg);
}

.is-open-nav .menu-btn-line::after {
    transform: rotate(45deg);
}

.menu-btn-text {
    margin-top: 17px;
}

@media (min-width: 1200px) {
    /* PC幅ではスマホメニューの固定を解除 */
    body.is-fixed,
    body.is-open-nav {
        position: static !important;
        overflow: visible !important;
        width: auto !important;
    }

    .menu {
        display: block !important;
        position: static;
        overflow-y: visible;
        height: auto;
        background-color: #ECF5E4;
    }

    .menu.fixed {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 1000;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    }

    .nav {
        display: flex;
        flex-direction: row;
        justify-content: center;
        margin: 0 auto;
        max-width: 1050px;
        height: 44px;
        white-space: nowrap;
        transition: all 0.3s ease;
    }

    .nav-item {
        position: relative;
        height: 100%;
        background-color: #ECF5E4;
    }

    .nav-item + .nav-item {
        border-top: none;
    }

    .nav-item::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        transform: scaleX(0);
        transform-origin: left;
        width: 100%;
        height: 2px;
        background-color: #0B7B43;
        transition: transform 0.3s ease;
    }

    .nav-item:hover::after,
    .nav-item:focus::after,
    .nav-item.active::after {
        transform: scaleX(1);
    }

    .nav-item + .nav-item::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        width: 1px;
        height: 20px;
        background-color: #C1DEC4;
    }

    .nav-item-quick {
        order: 0;
        background-color: #F75E4A;
    }

    .nav-item.nav-item-quick::before {
        display: none;
    }

    .nav-item-quick::after {
        background-color: #af0000;
    }

    .nav-link {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        padding: 5px 16px;
        height: 100%;
        font-size: 15px;
    }

    .nav-item > .nav-link::before {
        display: none;
    }

    .nav-item > .nav-link::after {
        display: none;
    }

    .nav-item .dropdown-toggle::before {
        display: none;
    }

    /* PC用ドロップダウン */
    .nav-item .dropdown {
        margin: 0;
        height: 100%;
    }

    .nav-item .dropdown-toggle {
        padding: 5px 16px;
        height: 100%;
    }

    .dropdown-toggle::after {
        content: "\f140";
        margin-left: 0.5em;
        font-family: "Material Design Icons";
        font-size: 120%;
        font-weight: normal;
        line-height: 1;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
    .dropdown:has(.dropdown-menu.show) .dropdown-toggle::after {
        content: "\f143";
    }

    .nav-item .dropdown-menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        z-index: 1000;
        box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.12);
        margin-top: 0;
        padding: 0;
        border: none;
        border-radius: 0;
        min-width: 200px;
        background-color: #FFF;
    }

    .nav-item .dropdown-menu.show {
        display: block;
    }

    .nav-item .dropdown-item {
        display: flex;
        align-items: center;
        padding: 11px 10px 11px 15px;
        font-size: 15px;
        color: #444444;
    }

    .nav-item .dropdown-item:hover {
        background-color: #f8f9fa;
        color: #444444;
    }

    .nav-item .dropdown-item::after {
        content: "\f142";
        margin-left: auto;
        padding-top: 4px;
        font-family: "Material Design Icons";
        font-size: 150%;
        font-weight: 500;
        line-height: 1;
        text-rendering: auto;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

    .menu-btn {
        display: none;
    }
}


/*content
------------------------------------*/
#content {
    display: flex;
    flex-direction: column;
}

@media (min-width: 768px) {
    #content {
        flex-direction: row;
        justify-content: space-between;
        column-gap: 40px;
    }
}

/*mv（メインビジュアル）
------------------------------------*/
.mv {
    display: flex;
    position: relative;
    margin-bottom: 40px;
    width: 100%;
    height: 350px;
    background-image: url('/images/home/mv-sp.jpg');
    background-repeat: no-repeat;
    background-position: 100% 85%;
    background-size: cover;
}

@media (min-width: 768px) {
    .mv {
        margin-bottom: 45px;
        height: 500px;
        background-image: url('/images/home/mv-pc.jpg');
    }
}

@media (min-width: 1200px) {
    .mv {
        background-position: 100% 80%;
    }
}

.mv-content {
    display: flex;
    flex-direction: column;
    padding: 35px 30px 30px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 700;
    color: #011225;
    text-align: left;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.9),
                 0 0 20px rgba(255, 255, 255, 0.7),
                 0 0 30px rgba(255, 255, 255, 0.5);
}

@media (min-width: 768px) {
    .mv-content {
        padding: 60px 30px 0;
        max-width: 1050px;
    }
}

@media (min-width: 1200px) {
    .mv-content {
        margin: 0 auto;
        padding: 130px 60px 0;
        width: 100%;
        max-width: calc(1050px + 60px * 2);
    }
}

.mv-title {
    margin: 0 0 5px;
    font-size: 28px;
    line-height: 1.6;
}

@media (min-width: 768px) {
    .mv-title {
        margin-bottom: 25px;
        font-size: 42px;
    }
}

.mv-subtitle {
    margin: 0;
    font-size: 14px;
    line-height: 1.8;
}

@media (min-width: 768px) {
    .mv-subtitle {
        font-size: 20px;
    }
}

/*main_content
------------------------------------*/
#main_content {
    container-type: inline-size;
}

#main_content h2 img {
    max-width: 100%;
    zoom: 1.2;
}
#main_content .cost-title-link {
    transition: opacity 0.2s ease;
}

#main_content .cost-title-link:link,
#main_content .cost-title-link:visited,
#main_content .cost-title-link:hover,
#main_content .cost-title-link:active {
    color: #444444;
    text-decoration: none;
}
#main_content .cost-title-link:hover {
    opacity: 0.7;
}

#main_content .cost-title {
    display: flex;
    align-items: center;
    padding-left: 110px;
    border: 1px solid #d2d2d2;
    border-radius: 10px;
    height: 45px;
    background: url('/images/title/img-cost-title-bg.png') no-repeat left center / auto 45px,
    linear-gradient(-10deg, #d7ffa6 0%, #eeffd6 100%);
    font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
    font-size: 15px;
    font-weight: 400;
}

@media (min-width: 768px) {
    #main_content {
        width: calc(100% - 240px);
    }
    #main_content .cost-title {
        padding-left: 130px;
        font-size: 22px;
    }
}

.section-title {
    display: flex;
    align-items: center;
    margin-top: 18px;
    padding: 6px 12px;
    border: 1px solid #cccccc;
    border-radius: 6px;
    background-image: linear-gradient(0deg, #D8D8D8 0%, #F3F3F3 30%, #F3F3F3 70%, #D8D8D8 100%);
    font-size: 18px;
    line-height: 1.5;
}

#main_content .flow-title {
    cursor: pointer;
}

.section-title::before {
    content: "";
    display: inline-block;
    margin-right: 8px;
    width: 30px;
    height: 30px;
    background: url('/images/title/icon-section-title.png') no-repeat top center / contain;
}

.cube-title {
    margin: 0 0 10px;
    padding: 0 0 0 30px;
    border-bottom: 1px dashed #cccccc;
    background: url('/images/bg_h4.gif') no-repeat 2px 3px;
    font-size: 18px;
    color: #FF6600;
    line-height: 1.5;
}


.faq-title {
    margin-bottom: 10px;
    padding: 6px 10px;
    border-bottom: 1px solid #cccccc;
    background: #f5f5f5;
    font-size: 18px;
    color: #444444;
}

/*side_content
------------------------------------*/
#side_content {
    margin: 40px auto 0;
    width: 200px;
    font-size: 1.2rem;
}

.side-banner {
    display: block;
    margin-bottom: 10px;
}

#side_content > a:last-child .side-banner {
    margin-bottom: 0;
}

@media (min-width: 768px) {
    #side_content {
        flex-shrink: 0;
        margin: 0;
        padding: 0;
        width: 200px;
    }
}

/*side_menu
-------------------*/
ul.side_menu {
    margin: 0;
    margin-bottom: 10px;
    padding: 0;
    width: 200px;
}

ul.side_menu li {
    list-style-type: none;
    margin: -1px 0 0;
    padding: 0;
    border: 1px solid #cccccc;
    border-left: 4px solid #E8B313;
    background: url('/images/menu/bg_side_001.gif') bottom;
    font-weight: bold;
}

ul.side_menu li.sub {
    border-left: 1px solid #ccc;
    background-color: #fff;
    background-image: none;
}

ul.side_menu li.sub.active {
    background-color: #fff3d3;
}

ul.side_menu li a {
    display: block;
    margin: 0;
    padding: 5px;
    color: #444444;
    text-decoration: none;
}

ul.side_menu li a:hover {
    background: url('/images/menu/bg_side_001.gif') top;
}

#content ul.side_menu li a,
#content ul.side_menu li a:link,
#content ul.side_menu li a:visited {
    color: #444;
    text-decoration: none;
}

/*info_box
-------------------*/
div.info_box {
    margin-bottom: 10px;
    padding: 10px;
    border: 1px solid #cccccc;
    background: #F1E7C9;
}

div.info_box span {
    font-weight: bold;
    color: #FF6600;
}

/*text_menu
-------------------*/
div.text_menu ul {
    margin: 0;
    margin-bottom: 10px;
    padding: 0;
}

div.text_menu ul li {
    list-style-type: none;
}

/*toppage_box
-------------------*/
.info-boxes {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
}

@media (min-width: 768px) {
    .info-boxes {
        flex-direction: row;
        justify-content: space-between;
        column-gap: 20px;
    }

    #box_voice {
        flex: 1;
        min-width: 0;
    }
}
.bg-box {
    padding: 10px;
    border: 1px solid #cccccc;
    background: #fffbec;
}

@media (min-width: 768px) {
    #box_faq {
        flex: 1;
        min-width: 0;
    }
}

@media (min-width: 1200px) {
    #box_voice {
        max-width: 400px;
    }

    #box_faq {
        flex-shrink: 0;
        max-width: 375px;
    }
}

#box_faq img {
    margin-bottom: 5px;
}


div.box_side {
    margin-bottom: 10px;
    padding: 8px;
    width: 200px;
    background: url('/images/bg_box.gif') repeat;
}

div.box_side_inner {
    padding: 5px;
    width: 184px;
    background: #ffffff;
}

.page-title {
    display: flex;
    align-items: center;
    position: relative;
    margin: 0 0 15px;
    padding: 10px 10px 10px 30px;
    border: 1px solid #d2d2d2;
    background-image: url('/images/title/page-title-bg.jpg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    font-family: "Noto Serif JP", serif;
    font-size: 18px;
    font-weight: 700;
    color: #011225;
}

@media (min-width: 1200px) {
    .page-title {
        margin: 0 0 40px;
        height: 120px;
        font-size: 21px;
    }
}

.page-title-icon {
    margin-right: 0.75rem;
}

.flower-title {
    display: flex;
    align-items: center;
    margin-top: 0;
    line-height: 1.3;
}

* + .flower-title {
    margin-top: 52px;
}

.flower-title:before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    margin-right: 6px;
    width: 32px;
    height: 32px;
    background-image: url('/images/title/icon-title-flower.png');
    background-repeat: no-repeat;
    background-size: contain;
}

/*kind
-------------------*/
table.kind {
    width: 100%;
}

table.kind td {
    border: 1px solid #666666;
}

table.kind th {
    border: 1px solid #666666;
    background: #66B149;
    font-weight: bold;
    color: #ffffff;
}

table.kind td.kotei {
    background: #FBF1C4;
    font-weight: bold;
    text-align: center;
}

table.kind td.hendo {
    background: #FCE3C2;
    font-weight: bold;
    text-align: center;
}

table.kind th:first-child,
table.kind td:first-child {
    width: 20%;
}

table.kind th:nth-child(2),
table.kind td:nth-child(2) {
    width: 20%;
}

table.kind th:last-child,
table.kind td:last-child {
    width: 60%;
}


/*list
-------------------*/
table.list {
    margin: 0 0 40px;
    width: 100%;
}

table.list tr,
table.list th,
table.list td {
    display: block;
    min-height: 28px;
    vertical-align: middle;
}

table.list td {
    padding: 3px;
    border: 1px solid #aaaaaa;
    border-top: none;
}

table.list tr:first-child td:first-child {
    border-top: 1px solid #aaaaaa;
}

table.list tr:last-child td:last-child {
    border-bottom: 1px solid #aaaaaa;
}

td.midashi {
    background: #EBE0CF;
    font-weight: bold;
    color: #664F2B;
    text-align: center;
}

table.list td.total {
    background: #B0DFA8;
    font-weight: bold;
    color: #000000;
    text-align: center;
}

table.list td.total_cost {
    background: #E6F4E3;
    font-size: 16px;
    font-weight: bold;
    color: #000000;
    text-align: center;
}

/* 横スクロール用ラッパー */
.table-scroll-wrapper table.list tr:last-child td.kara {
    border: 0;
}

@container (min-width: 576px) {
    table.list td.midashi {
        width: 8em;
    }

    table.list tr {
        display: table-row;
    }

    table.list th,
    table.list td {
        display: table-cell;
    }

    table.list td {
        border-top: 1px solid #aaaaaa;
    }

    /* 葬儀場一覧の列幅指定 */
    table.list.table-venue tr.table-col-6 td.midashi {
        width: 14%;
    }

    table.list.table-venue tr.table-col-6 td:not(.midashi) {
        width: calc(100% / 3 - 14%);
    }
}

/*staff
-------------------*/
table.staff {}

table.staff th {
    padding-top: 15px;
    border: none;
    border-bottom: 1px dashed #aaaaaa;
    width: 130px;
    font-weight: bold;
    color: #339933;
}

table.staff td {
    padding-top: 15px;
    border: none;
    border-bottom: 1px dashed #aaaaaa;
}

.staff-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
.staff-img {
    width: 100%;
    max-width: 100px;
}
.staff-img img {
    width: 100%;
    height: auto;
}
.staff-content {}

@container (min-width: 576px) {
    .staff-info {
        flex-direction: row;
        align-items: flex-start;
        gap: 40px;
    }

    .staff-section:not(:last-child) {
        margin-bottom: 30px;
    }

    .staff-img {
        max-width: 170px;
    }
}

@container (max-width: 480px) {
    table.staff,
    table.staff tbody,
    table.staff tr {
        display: block;
        width: 100%;
    }

    table.staff th,
    table.staff td {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border-bottom: none;
    }

    table.staff th {
        padding-top: 10px;
        padding-bottom: 0;
    }

    table.staff td {
        padding-top: 4px;
        border-bottom: 1px dashed #aaaaaa;
    }
}

/*form
------------------------------------*/
input[type=text],
input[type=email],
input[type=tel],
textarea,
select {
    padding: 6px 12px;
}
input:placeholder-shown {
    color: rgba(51,51,51,.5);
}
input[type=text],
input[type=email],
input[type=tel],
textarea,
select {
    border: 1px solid #dcdee0;
    width: 100%;
    min-height: 42px;
}
input[type=text]:not(:disabled):active,
input[type=email]:not(:disabled):active,
input[type=tel]:not(:disabled):active,
textarea:not(:disabled):active,
select:not(:disabled):active,
input[type=text]:not(:disabled):focus,
input[type=email]:not(:disabled):focus,
input[type=tel]:not(:disabled):focus,
textarea:not(:disabled):focus,
select:not(:disabled):focus {
    box-shadow: 0 0 0 3px rgba(11,123,67,.1);
    border-color: #0B7B43;
}
input[type=text]:hover,
input[type=email]:hover,
input[type=tel]:hover,
textarea:hover,
select:hover,
input[type=text]:active,
input[type=email]:active,
input[type=tel]:active,
textarea:active,
select:active,
input[type=text]:focus,
input[type=email]:focus,
input[type=tel]:focus,
textarea:focus,
select:focus {
    outline: none;
}

input[type=text]:disabled,
input[type=email]:disabled,
input[type=tel]:disabled,
textarea:disabled,
select:disabled {
    background-color: #E9ECEF;
}
@media (min-width: 768px) {
    select {
        background-color: #fff;
    }
    option {
        background-color: #f9f9f9;
    }
}

.form-check-input {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%);
    border: 1px solid #cccccc;
    width: 18px;
    height: 18px;
    background-color: #fff;
    appearance: none;
    webkit-appearance: none;
}
.form-check-input:checked {
    border-color: #0B7B43;
}
.form-check-input[type=checkbox]:checked {
    background-color: #0B7B43;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3 8l3.5 3.5L13 4'/%3E%3C/svg%3E");
    background-size: 80%;
    background-position: center;
    background-repeat: no-repeat;
}
.form-check-input[type=radio]:checked {
    background-image: radial-gradient(circle, #0B7B43 35%, transparent 40%);
}
.form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(11,123,67,.1);
}

.form-check-input[type=radio] {
    border-radius: 50%;
}
.form-check-label {
    cursor: pointer;
    position: relative;
    padding-left: 25px;
}
.errmsg {
    margin-top: 5px;
    margin-bottom: 0;
    font-size: 14px;
    color: #F75E4A;
}

.form-title {
    display: flex;
    align-items: center;
    min-height: 42px;
    line-height: 1.4;
    column-gap: 5px;
}

.form-confirm .form-title {
    color: #87898d
}

.form-group {
    display: flex;
    align-items: center;
    min-height: 42px;
}

.form-group > span {
    white-space: nowrap
}

.form-group > span + * {
    margin-left: .5em
}
.form-group > label + *:not(.img-radio) {
    margin-left: .5em;
}
.form-group > input + * {
    margin-left: 5px;
}

.form-group * + span:not(.img-radio-label) {
    margin-left: .5em
}

.form-group .btn {
    min-width: auto
}

.form-group-total {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 5px;
}
.form-group-total .form-group {
    width: 100%;
}
.form-group-total > .flower-total {
    flex: 1;
}

.form-group-col2-md,
.form-group-col2-sm {
    flex-wrap: wrap;
    gap: 10px;
}
.form-group-col2-md > *,
.form-group-col2-sm > * {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 42px;
    gap: 5px;
}
.form-group.form-group-col2-md > label + *,
.form-group.form-group-col2-sm > label + * {
    margin-left: 0;
}

.form-group-list {
   display: flex;
    flex-direction: column;
    row-gap: 8px;
}

.form-note {
    margin-top: .5em;
    font-size: 1.4rem;
    margin-bottom: 0;
}

.form-note-right {
    text-align: right;
}

.note-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 14px;
}
.note-list > li {
    position: relative;
    padding-left: 1.5em;
}
.note-list > li::before {
    content: "※";
    position: absolute;
    left: 0;
}

.form-size-xs {
    max-width: 5em
}

.form-size-sm {
    max-width: 6em
}

.form-size-md {
    max-width: 15em
}

.form-size-lg {
    max-width: 20em
}
.form-size-xs.form-size-sp100,
.form-size-sm.form-size-sp100,
.form-size-md.form-size-sp100,
.form-size-lg.form-size-sp100 {
    width: 100%;
    max-width: none;
}
.form-inner {
    margin-top: 10px;
    padding: 10px;
    background-color: #F3F3F3;
}
#wake_flg_1_inner {
    opacity: 0;
    overflow: hidden;
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
    max-height: 0;
    transition: max-height 0.35s ease, opacity 0.3s ease, margin-top 0.35s ease, padding-top 0.35s ease, padding-bottom 0.35s ease;
}
#wake_flg_1_inner.is-open {
    opacity: 1;
    margin-top: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
    max-height: 400px;
}
.form-inner-item {}
.form-inner-item:not(:first-child) {
    margin-top: 10px;
}
.form-inner .form-title {
    justify-content: flex-start;
}

@media (min-width: 768px) {
    .form-size-xs.form-size-sp100,
    .form-size-sm.form-size-sp100,
    .form-size-md.form-size-sp100,
    .form-size-lg.form-size-sp100 {
        width: auto;
    }
}

@media (min-width: 1200px) {
    .form-title {
        justify-content: end;
    }

    .form-col2 .form-item {
        display: flex;
        justify-content: space-between;
        align-items: flex-start
    }

    .form-col2 .form-title {
        justify-content: flex-end;
        margin-bottom: 0;
        width: 200px;
        min-height: 42px;
        text-align: right
    }

    .form-confirm .form-title {
        min-height: auto;
        line-height: 1.8
    }

    .form-col2 .form-title-lg {
        width: 280px
    }

    .form-col2 .form-detail {
        width: calc(100% - 220px)
    }

    .form-col2 .form-detail-lg {
        width: calc(100% - 300px)
    }

}
/*生花注文フォーム
------------------------------------*/

.form-group-img {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
/* 画像付きラジオボタン */
.img-radio {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
    border: 1px solid #cccccc;
    transition: all .2s ease-in-out;
    gap: 10px;
}
.img-radio:hover,
.img-radio:focus {
    border-color: #0B7B43;
    background-color: #ECF5E4;
}
.img-radio:has(.form-check-input:checked) {
    border-color: #0B7B43;
    background-color: #ECF5E4;
}
.img-radio .form-check-label {
    padding-left: 0;
}
.img-radio .form-check-input {
    position: static;
    transform: none;
}
.img-radio img {
    border-radius: 4px;
    max-width: 110px;
    height: auto;
}
.img-radio-label {
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
    align-items: center;
}
.img-radio-price {
    font-size: 20px;
    font-weight: 700;
    white-space: nowrap;
}
.img-radio-unit {
    font-size: 14px;
}
/* 合計金額 */
.flower-total {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    column-gap: 5px;
}
.flower-total-item {
    display: flex;
    align-items: center;
}
.flower-total-price {
    margin-left: auto;
    min-width: 120px;
    font-size: 24px;
    font-weight: 700;
    text-align: right;
}
.flower-total-unit {}
@media (max-width: 767px) {
    .flower-total > .flower-total-item:last-child {
        margin-left: auto;
    }
}
@media (min-width: 576px) {
    .form-group-col2-sm > * {
        width: calc(50% - 5px);
    }
}
@media (min-width: 768px) {
    .form-group-total .form-group {
        width: auto;
    }
    .form-group-col2-md > * {
        width: calc(50% - 5px);
    }
}
@media (min-width: 1200px) {
    .form-group-img {
        flex-direction: row;
    }
    .img-radio {
        flex-direction: column;
        padding: 15px;
    }
    .img-radio img {
        width: 100%;
        max-width: 100%;
    }
    .img-radio-label {
        justify-content: center;
    }
    .flower-total {}
    .flower-total-label {}
    .flower-total-price {}
    .flower-total-unit {}
}

/*------------ご芳名入力方法リンク--------------*/

.honor-name-guide-icon {
    margin-right: 3px;
    vertical-align: middle;
}

/*------------モーダル--------------*/

.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    overflow-y: auto;
    width: 100%;
    height: 100%;
}

.modal.is-open {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 30px 15px;
}

.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
}

.modal-dialog {
    position: relative;
    width: 100%;
    max-width: 600px;
    border-radius: 4px;
    background-color: #ffffff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #dee2e6;
}

.modal-title {
    margin: 0;
    font-size: 20px;
}

.modal-btn-close {
    padding: 0;
    border: none;
    background: none;
    font-size: 24px;
    line-height: 1;
    color: #444;
    cursor: pointer;
}

.modal-btn-close:hover {
    color: #000000;
}

.modal-body {
    padding: 16px;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    padding: 12px 20px;
    border-top: 1px solid #dee2e6;
}

.modal-guide-item {
    margin-top: 16px;
    line-height: 1.6;
}

.modal-guide-item:first-child {
    margin-top: 0;
}

.modal-guide-col + .modal-guide-col {
    margin-top: 15px;
}

.modal-guide-list p {
    margin: 0;
}

.modal-guide-list .modal-guide-title {
    margin: 0;
    font-size: 18px;
    font-weight: bold;
}

.modal-guide-list .modal-guide-img {
    max-width: 400px;
    width: 100%;
    height: auto;
    border: 1px solid #ccc;
}

@media (min-width: 768px) {
    #honor-name-guide-modal .modal-dialog {
        max-width: 760px;
    }
    #honor-name-guide-modal .modal-guide-list {
        display: flex;
        gap: 30px;
    }
    #honor-name-guide-modal .modal-guide-col {
        flex: 0 0 345px;
        width: 345px;
    }
    #honor-name-guide-modal .modal-guide-col + .modal-guide-col {
        margin-top: 0;
    }
    #honor-name-guide-modal .modal-guide-list img {
        max-width: 100%;
    }
}

/*------------ご芳名入力方法アンカーリスト--------------*/
.honor-guide-anchor-list {
    margin-bottom: 20px;
}

.honor-guide-anchor-list li + li {
    margin-top: 6px;
}

@media (min-width: 768px) {
    .honor-guide-anchor-list {
        display: none;
    }
}

/*------------ご芳名区切り線--------------*/

.honor-divider {
    border: none;
    border-top: 1px solid #cccccc;
}

/*------------ご芳名コピーチェックボックス--------------*/

.honor-copy-above-wrap {
    margin-bottom: 8px;
}

.honor-copy-active input[readonly] {
    background-color: #E9ECEF;
    color: #000000;
    cursor: default;
}

/*label
------------------------------------*/
.label {
    padding: 2px 5px;
    border: 1px solid;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.4;
}
.label-any {
    border-color: #cccccc;
    background-color: #ffffff;
    color: #444444;
}
.label-need {
    border-color: #F75E4A;
    background-color: #F75E4A;
    color: #ffffff;
}
.honor-copy-label {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: normal;
    line-height: 1.4;
    background-color: #F3B429;
    color: #000000;
}
.honor-copy-label-secondary {
    background-color: #82D0F4;
}
.honor-copy-above-wrap .form-check-input[type=checkbox]:disabled {
    background-color: #dddddd;
    border-color: #cccccc;
}
.honor-copy-above-wrap .form-check-label.is-disabled {
    color: #aaaaaa;
    cursor: default;
}

@media (min-width: 767px) {
    #content a:link.tel-link {
        pointer-events: auto;
        color: #444;
        text-decoration: none;
    }
}

/*footer
------------------------------------*/
.footer {
    padding: 40px 0 80px;
    background-color: #ECF5E4;
}

.footer-head {
    padding-bottom: 20px;
}

.footer-company {
    margin-bottom: 30px;
    font-size: 1.4rem;
}

.footer .cta-btn {
    margin-bottom: 20px;
    max-width: 370px;
}

.footer .cta-btn-item {
    flex-grow: 1;
}

.footer-foot {
    padding: 20px 0 10px;
    border-top: 1px solid #c1dec4;
    font-size: 1.4rem;
}

.footer-foot a {
    color: #444444;
    text-decoration: none;
}

.footer-foot a:hover,
.footer-foot a:focus {
    color: #0B7B43;
}

.footer-menu a {
    color: #444444;
}

.footer-menu a:hover,
.footer-menu a:focus {
    color: #0B7B43;
}

.footer-menu-group {
    display: flex;
    column-gap: 25px;
}

.footer-menu-group-item {
    width: 100%;
}

.footer-menu-group-item a {
    text-decoration: none;
}

.footer-menu-group-item > ul > li:not(:first-child) {
    margin-top: 0.75em;
}

.footer-info-list {
    display: flex;
    margin-bottom: 30px;
    column-gap: 45px;
}

.footer-info-list-item {
    width: 100%;
}

.copyright {
    font-size: 12px;
}

@media (min-width: 768px) {
    .footer-head {
        display: flex;
        justify-content: space-between;
        padding-bottom: 30px;
    }

    .footer-menu-group {
        margin: 20px;
        column-gap: 65px;
    }

    .footer-menu-group-item {
        margin: 0 15px;
        width: auto;
    }

    .footer-foot {
        display: flex;
        justify-content: space-between;
        padding: 20px 0;
    }
    .footer-info-list {
        margin-bottom: 0;
    }

    .footer-info-list-item {
        width: auto;
    }
    .copyright {
        font-size: 14px;
    }
}

@media (min-width: 1200px) {
    .footer-company,
    .footer-menu {
        width: calc(50% - 15px);
    }

    .footer-company {
        margin-bottom: 0;
    }

    .footer-menu-group-item {
        width: calc(50% - 30px);
    }

    .footer .cta-btn-item {
        flex-grow: 0;
    }
}

.fixed-cta {
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    padding: 10px 0;
    height: 80px;
    background-color: #CCE9C7;
    transition: opacity 0.3s;
    pointer-events: none;
    column-gap: 15px;
}

.fixed-cta.is-show {
    opacity: 1;
    pointer-events: auto;
}

.fixed-cta-text {
    display: none;
}

.fixed-cta .cta-tel-white {
    padding: 6px 10px;
}

.fixed-cta .cta-tel-text {
    font-size: 12px;
}

.fixed-cta .cta-tel-number {
    font-size: 30px;
    line-height: 1.2;
    letter-spacing: 1px;
}

@media (min-width: 1200px) {
    .fixed-cta-text {
        display: block;
        font-family: 'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
        color: #011225;
        line-height: 1.5;
        text-align: center;
    }

    .fixed-cta-text-main {
        font-size: 20px;
        font-weight: 700;
    }

    .fixed-cta-text-sub {
        font-size: 13px;
    }
}


/*page-top
------------------------------------*/
.page-top {
    opacity: 0;
    position: fixed;
    right: 15px;
    bottom: 95px;
    z-index: 100;
    margin-bottom: 0;
    line-height: 1.2;
    transition: opacity .3s;
    pointer-events: none;
}

.page-top.is-show {
    opacity: 1;
    pointer-events: auto;
}

.page-top-link {
    display: block;
    position: relative;
    box-shadow: 0 0 10px rgba(11, 123, 67, .1);
    padding: 25px 4px 4px;
    border-radius: 5px;
    width: 50px;
    height: 50px;
    background-color: #CCE9C7;
    font-size: 14px;
    font-weight: 600;
    color: #0B7B43;
    text-decoration: none;
    text-align: center;
    transition: box-shadow .3s;
}

.page-top-link::before {
    content: "\f143";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    font-family: "Material Design Icons";
    font-size: 180%;
    font-weight: 500;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.page-top-link:hover,
.page-top-link:focus {
    box-shadow: 0 0 10px rgba(11, 123, 67, .2);
}


/*common
------------------------------------*/
img.img_right {
    float: right;
    margin: 0 15px 10px 10px;
}

img.zu_right {
    float: right;
    margin: 0 0 0 10px;
}

.funeral-img-right,
.funeral-img-left {
    display: block;
    margin: 0 auto 15px;
    max-width: 100%;
}

@media (min-width: 768px) {
    .funeral-img-right {
        float: right;
        margin: 0 15px 10px 10px;
    }

    .funeral-img-left {
        float: left;
        margin: 0 10px 10px 15px;
    }
}

img.photo {
    padding: 3px;
    border: 1px solid #cccccc;
    background: #ffffff;
}

p.clear {
    clear: both;
}

.text_right {
    margin: 7px 15px 10px 0;
    text-align: right;
}


strong {
    font-weight: normal;
}

span.yellow {
    margin-bottom: 5px;
    padding: 5px;
    border: 1px solid #cccccc;
    background: #FFCC00;
    font-size: 10px;
}

b.red {
    color: #F00000;
}

p.right {
    text-align: right;
}

#plan_basic dt {
    padding-right: 25px;
    width: 290px;
    background: url('/images/bg_produce_index_dt.gif') top right no-repeat;
    font-weight: bold;
    text-align: right;
}

#plan_basic dd {
    margin-top: -20px;
    margin-bottom: 15px;
    margin-left: 320px;
    padding: 8px;
    border-left: 5px solid #FEBE94;
    background: url('/images/bg_gra_yellow.gif') top left no-repeat;
}

#design_policy {
    margin: 10px 20px 10px 20px;
    padding: 10px;
    border: 1px solid #aaaaaa;
    background: url('/images/bg_gra_yellow.gif') top left no-repeat;
}

#design_policy ul {
    margin-top: 0;
    margin-bottom: 0;
}

#design_policy ul li {
    list-style-type: square;
    color: #CC0000;
}

table.gpx_case {
    width: 100%;
}

table.gpx_case td {
    padding: 2px;
    border: none;
    text-align: center;
}


div.dan {
    float: left;
    margin: 0 15px 0 15px;
    width: 275px;
}

div.dan ul li {
    list-style-type: square;
}

ol.privacy {
    padding: 0 30px 0 30px;
}

#info_link {
    padding: 15px;
    border: 1px solid #EEDEC6;
    background: url('/images/bg_gra_yellow.gif') top left no-repeat;
}

#info_link ul {
    margin: 0;
    margin-left: 20px;
    padding: 0;
}

#info_link ul li {
    list-style-type: square;
    color: #FF9900;
}

/*------------汎用ユーティリティ--------------*/

.img-fluid {
    max-width: 100%;
    height: auto;
}
.d-none {
    display: none !important;
}
@media (min-width: 576px) {
    .d-sm-none {
        display: none !important;
    }

    .d-sm-block {
        display: block !important;
    }
}

@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }

    .d-md-block {
        display: block !important;
    }
}

@media (min-width: 1200px) {
    .d-xl-none {
        display: none !important;
    }

    .d-xl-block {
        display: block !important;
    }
}

/*cost-detail-table
------------------------------------*/
table.cost-detail-table {
    margin: 0 0 40px;
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

table.cost-detail-table tr {
    display: table-row;
}

table.cost-detail-table th,
table.cost-detail-table td {
    display: table-cell;
    padding: 3px;
    border: 1px solid #aaaaaa;
    min-height: 28px;
    vertical-align: middle;
}

table.cost-detail-table tr:last-child td {
    border-bottom: 1px solid #aaaaaa;
}

table.cost-detail-table td.total {
    background: #B0DFA8;
    font-weight: bold;
    color: #000000;
    text-align: center;
    white-space: nowrap;
}

table.cost-detail-table td.total_cost {
    background: #E6F4E3;
    font-size: 16px;
    font-weight: bold;
    color: #000000;
    text-align: center;
}

table.cost-detail-table td.kara {
    border: 0;
}

table.cost-detail-table tr:last-child td.kara {
    border: 0;
}

/*table-scroll-wrapper
------------------------------------*/
.table-scroll-wrapper {
    overflow-x: auto;
    margin-bottom: 20px;
    padding-bottom: 10px;
    -webkit-overflow-scrolling: touch;
}
.table-scroll-wrapper table {
    margin-bottom: 0;
    min-width: 600px;
}

@media (min-width: 768px) {
    .table-scroll-wrapper table {
        min-width: 0;
    }
}

/* table-scroll-wrapper内のtable.listは常に通常のテーブル表示 */
.table-scroll-wrapper table.list tr {
    display: table-row;
}

.table-scroll-wrapper table.list th,
.table-scroll-wrapper table.list td {
    display: table-cell;
    min-height: 28px;
    vertical-align: middle;
}

/* table-scroll-wrapper内のボーダー設定（上書き） */
.table-scroll-wrapper table.list tr td {
    border-bottom: none;
}

.table-scroll-wrapper table.list tr:last-child td {
    border-bottom: 1px solid #aaaaaa;
}

/*リスト
------------------------------------*/
.list-disc {
    margin: 0;
    padding-left: 20px;
}

.list-disc li {
    list-style-type: disc;
    margin-bottom: 5px;
}

.list-disc li:last-child {
    margin-bottom: 0;
}

/*mail-contact-btn
------------------------------------*/
.mail-contact-btn {
    margin: 40px auto 30px;
    text-align: center;
}

/*sitemap
------------------------------------*/
.sitemap-table {
    width: 100%;
}

.sitemap-table tr {
    display: flex;
    flex-direction: column;
}

.sitemap-table td {
    border-style: none;
    width: 100% !important;
    vertical-align: top;
}

@media (min-width: 1080px) {
    .sitemap-table tr {
        display: table-row;
    }

    .sitemap-table td {
        display: table-cell;
        width: 290px !important;
    }
}
/*accordion
-------------------*/
.accordion {
    margin-bottom: 5px;
}

.accordion-header {
    margin: 0;
    padding: 0;
}

.accordion-button {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px;
    border: 1px solid #cccccc;
    border-left: 4px solid #E8B313;
    width: 100%;
    background: url('/images/menu/bg_side_001.gif') bottom;
    font-size: 14px;
    font-weight: bold;
}

.accordion-button:hover {
    background: url('/images/menu/bg_side_001.gif') top;
}

.accordion-button::after {
    content: '\f415';
    flex-shrink: 0;
    margin-left: 10px;
    font-family: 'Material Design Icons';
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}

.accordion-button.active::after {
    content: '\F374';
}

.accordion-collapse {
    display: grid;
    transition: grid-template-rows 0.3s ease;
    grid-template-rows: 0fr;
}

.accordion-collapse.show {
    grid-template-rows: 1fr;
}

.accordion-body {
    overflow: hidden;
}

#side_content .accordion {
    display: none;
}

@media (min-width: 768px) {
    #side_content .accordion {
        display: block;
    }
}

.list-venue {
    display: grid;
    list-style: none;
    margin: 0;
    padding: 0;
    grid-template-columns: 1fr 1fr;
}

.list-venue-item {
    border: 1px solid #cccccc;
    border-top: none;
    background-color: #fff;
    font-size: 14px;
}

.list-venue-item:nth-child(even) {
    border-left: none;
}

.list-venue-item:last-child:nth-child(odd) {
    position: relative;
    grid-column: span 2;
}

.list-venue-item:last-child:nth-child(odd)::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    border-left: 1px solid #cccccc;
    width: calc(50% + 1px);
    background-color: #F3F3F3;
}

@media (min-width: 768px) {
    .list-venue {
        grid-template-columns: 1fr;
    }

    .list-venue-item:nth-child(even) {
        border-left: 1px solid #cccccc;
    }

    .list-venue-item:last-child {
        margin-bottom: 1px; /*  最後の下線が消えるのを防止 */
    }

    .list-venue-item:last-child:nth-child(odd) {
        position: static;
        grid-column: auto;
    }

    .list-venue-item:last-child:nth-child(odd)::after {
        display: none;
    }
}

#list .list-venue-item a,
#list .list-venue-item a:link,
#list .list-venue-item a:visited {
    display: block;
    padding: 5px;
    font-weight: 700;
    color: #444;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.list-venue-item a:hover,
.list-venue-item a:focus,
.list-venue-item a:active,
.list-venue-item a.active {
    background-color: #fff3d3;
    color: #444;
    text-decoration: none;
}

/*venue-modal
--------------------*/
.venue-modal {
    display: none;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    overflow: hidden;
    width: 100%;
    height: 100%;
    background: #fff;
}

.venue-modal.is-open {
    display: flex;
}

.venue-modal-content {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 100%;
}

.venue-modal-header {
    display: flex;
    flex-shrink: 0;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #dee2e6;
}

.venue-modal-title {
    font-size: 20px;
}

.venue-modal-close {
    cursor: pointer;
    padding: 0;
    border: none;
    background: none;
    font-size: 24px;
    color: #444;
    line-height: 1;
}

.venue-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
}

@media (min-width: 768px) {
    .venue-modal {
        display: none !important;
    }
}

.voice-article:not(:last-child) {
    margin-bottom: 30px;
}

.voice-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.voice-content p {
    margin-bottom: 0;
}

.voice-img {
    display: none;
}

@media (min-width: 768px) {
    .voice-article:not(:last-child) {
        margin-bottom: 40px;
    }

    .voice-content {
        flex-direction: row;
    }

    .voice-img {
        display: block;
        width: 96px;
        height: auto;
    }
}

