@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');

img:is([sizes=auto i], [sizes^="auto," i]) {
    contain-intrinsic-size: 3000px 1500px
}

/*# sourceURL=wp-img-auto-sizes-contain-inline-css */


/* Combined CSS from index.html */


:root {
    --wp-block-synced-color: #7a00df;
    --wp-block-synced-color--rgb: 122, 0, 223;
    --wp-bound-block-color: var(--wp-block-synced-color);
    --wp-editor-canvas-background: #ddd;
    --wp-admin-theme-color: #007cba;
    --wp-admin-theme-color--rgb: 0, 124, 186;
    --wp-admin-theme-color-darker-10: #006ba1;
    --wp-admin-theme-color-darker-10--rgb: 0, 107, 160.5;
    --wp-admin-theme-color-darker-20: #005a87;
    --wp-admin-theme-color-darker-20--rgb: 0, 90, 135;
    --wp-admin-border-width-focus: 2px
}

@media (min-resolution:192dpi) {
    :root {
        --wp-admin-border-width-focus: 1.5px
    }
}

.wp-element-button {
    cursor: pointer
}

:root .has-very-light-gray-background-color {
    background-color: #eee
}

:root .has-very-dark-gray-background-color {
    background-color: #313131
}

:root .has-very-light-gray-color {
    color: #eee
}

:root .has-very-dark-gray-color {
    color: #313131
}

:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background {
    background: linear-gradient(135deg, #00d084, #0693e3)
}

:root .has-purple-crush-gradient-background {
    background: linear-gradient(135deg, #34e2e4, #4721fb 50%, #ab1dfe)
}

:root .has-hazy-dawn-gradient-background {
    background: linear-gradient(135deg, #faaca8, #dad0ec)
}

:root .has-subdued-olive-gradient-background {
    background: linear-gradient(135deg, #fafae1, #67a671)
}

:root .has-atomic-cream-gradient-background {
    background: linear-gradient(135deg, #fdd79a, #004a59)
}

:root .has-nightshade-gradient-background {
    background: linear-gradient(135deg, #330968, #31cdcf)
}

:root .has-midnight-gradient-background {
    background: linear-gradient(135deg, #020381, #2874fc)
}

:root {
    --wp--preset--font-size--normal: 16px;
    --wp--preset--font-size--huge: 42px
}

.has-regular-font-size {
    font-size: 1em
}

.has-larger-font-size {
    font-size: 2.625em
}

.has-normal-font-size {
    font-size: var(--wp--preset--font-size--normal)
}

.has-huge-font-size {
    font-size: var(--wp--preset--font-size--huge)
}

.has-text-align-center {
    text-align: center
}

.has-text-align-left {
    text-align: left
}

.has-text-align-right {
    text-align: right
}

.has-fit-text {
    white-space: nowrap !important
}

#end-resizable-editor-section {
    display: none
}

.aligncenter {
    clear: both
}

.items-justified-left {
    justify-content: flex-start
}

.items-justified-center {
    justify-content: center
}

.items-justified-right {
    justify-content: flex-end
}

.items-justified-space-between {
    justify-content: space-between
}

.screen-reader-text {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important
}

.screen-reader-text:focus {
    background-color: #ddd;
    clip-path: none;
    color: #444;
    display: block;
    font-size: 1em;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000
}

html :where(.has-border-color) {
    border-style: solid
}

html :where([style*=border-top-color]) {
    border-top-style: solid
}

html :where([style*=border-right-color]) {
    border-right-style: solid
}

html :where([style*=border-bottom-color]) {
    border-bottom-style: solid
}

html :where([style*=border-left-color]) {
    border-left-style: solid
}

html :where([style*=border-width]) {
    border-style: solid
}

html :where([style*=border-top-width]) {
    border-top-style: solid
}

html :where([style*=border-right-width]) {
    border-right-style: solid
}

html :where([style*=border-bottom-width]) {
    border-bottom-style: solid
}

html :where([style*=border-left-width]) {
    border-left-style: solid
}

html :where(img[class*=wp-image-]) {
    height: auto;
    max-width: 100%
}

:where(figure) {
    margin: 0 0 1em
}

html :where(.is-position-sticky) {
    --wp-admin--admin-bar--position-offset: var(--wp-admin--admin-bar--height, 0px)
}

@media screen and (max-width:600px) {
    html :where(.is-position-sticky) {
        --wp-admin--admin-bar--position-offset: 0px
    }
}

/*# sourceURL=wp-block-library-inline-css */


/* Combined CSS from index.html */


:root {
    --tcd-font-type1: Arial, "Hiragino Sans", "Yu Gothic Medium", "Meiryo", sans-serif;
    --tcd-font-type2: "Noto Serif JP", "Times New Roman", Times, "Yu Mincho", "游明朝", "游明朝体", "Hiragino Mincho Pro", serif;
    --tcd-font-type3: Palatino, "Yu Kyokasho", "游教科書体", "UD デジタル 教科書体 N", "游明朝", "游明朝体", "Hiragino Mincho Pro", "Meiryo", serif;
    --tcd-font-type-logo: "Noto Sans JP", sans-serif;
}


/* Combined CSS from index.html */


@keyframes sliderContentAnimation1 {
    from {
        opacity: 0;
        text-shadow: 0 0 20px #ffffff
    }

    to {
        opacity: 1;
        text-shadow: 0 0 0 #ffffff
    }
}

@keyframes sliderContentAnimation2 {
    from {
        opacity: 0;
        text-shadow: 0 0 20px #ffffff
    }

    to {
        opacity: 1;
        text-shadow: 0 0 0 #ffffff
    }
}

@keyframes sliderContentAnimation3 {
    from {
        opacity: 0;
        text-shadow: 0 0 20px #ffffff
    }

    to {
        opacity: 1;
        text-shadow: 0 0 0 #ffffff
    }
}

.c-comment__form-submit:hover,
.c-pw__btn:hover,
.p-article01__cat:hover,
.p-article11__cat:hover,
.p-block02 .slick-arrow:hover,
.p-block03 .slick-arrow:hover,
.p-cb__item-btn a:hover,
.p-entry__cat:hover,
.p-entry__date,
.p-index-news__topic-pager-item.is-active a,
.p-index-news__topic-pager-item a:hover,
.p-nav02__item a:hover,
.p-readmore__btn:hover,
.p-page-links>span,
.p-pagetop a:hover,
.p-page-links a:hover,
.p-pager__item a:hover,
.p-pager__item span,
.p-post-list03 .slick-arrow:hover,
.p-recommended-plan__btn a:hover {
    background: #908d46
}

.p-article01__title a:hover,
.p-article02:hover .p-article02__title,
.p-article03:hover .p-article03__title,
.p-article06__title a:hover,
.p-article08:hover .p-article08__title,
.p-article10__title a:hover,
.p-breadcrumb a:hover,
.p-room-meta dt,
.p-section-nav__item:hover .p-section-nav__item-title,
.p-social-nav__item a:hover,
.p-spring-info dt,
.p-vertical {
    color: #908d46
}

.c-pw__btn,
.p-entry__cat,
.p-article01__cat,
.p-article11__cat,
.p-block02 .slick-arrow,
.p-block03 .slick-arrow,
.p-cb__item-btn a,
.p-copyright,
.p-headline,
.p-nav02__item a,
.p-readmore__btn,
.p-page-links a,
.p-pager__item a,
.p-post-list03 .slick-arrow,
.p-recommended-plan__btn a,
.p-widget__title,
.widget_block .wp-block-heading {
    background: #000000
}

.p-entry__body a,
.custom-html-widget a,
body.page-tcd-template .l-main a:not(.p-btn) {
    color: #908d46
}

body {
    font-family: var(--tcd-font-type2)
}

.rich_font_logo {
    font-family: var(--tcd-font-type-logo);
    font-weight: bold
}

.c-logo,
.p-entry__title,
.p-page-header__headline,
.p-index-blog__title,
.p-index-news__col-title,
.p-index-slider__item-title,
.p-page-header__title,
.p-archive-header__title,
.p-plan__title,
.p-recommended-plan__title,
.p-section-header__title,
.p-section-header__headline,
.p-vertical,
.p-vertical-block,
.p-visual__title {
    font-family: var(--tcd-font-type2)
}

.p-hover-effect--type1:hover img {
    -webkit-transform: scale(1.2);
    transform: scale(1.2)
}

.l-footer__logo {
    font-size: 25px
}

.l-header {
    background: rgba(0, 0, 0, 1)
}

.p-global-nav a {
    color: #ffffff
}

.p-global-nav a:hover {
    background: #660000;
    color: #ffffff
}

.p-global-nav .sub-menu a {
    background: #111111;
    color: #ffffff
}

.p-global-nav .sub-menu a:hover {
    background: #660000;
    color: #ffffff
}

.p-footer-slider {
    background: #f4f1ed
}

.p-info {
    color: #000000
}

.p-info__logo {
    font-size: 25px
}

.p-info__btn {
    background: #000000;
    color: #ffffff
}

.p-info__btn:hover {
    background: #908d46;
    color: #ffffff
}

.p-footer-nav {
    background: #660000;
    color: #ffffff
}

.p-footer-nav a {
    color: #ffffff
}

.p-footer-nav a:hover {
    color: #ffbfbf
}

.p-index-slider__arrow {
    color: #ffffff
}

.p-index-slider__nav-item a {
    font-size: 18px
}

.p-index-slider__nav-item:nth-child(1) a {
    background: #660000;
    color: #ffffff
}

.p-index-slider__nav-item:nth-child(1) a:hover {
    background: #520000;
    color: #ffffff
}

.p-index-slider__item:nth-child(1) {
    color: #ffffff
}

.p-index-slider__item:nth-child(1) .p-index-slider__item-title {
    font-size: 38px
}

.p-index-slider__item:nth-child(1).slick-active .p-index-slider__item-title {
    animation: sliderContentAnimation1 1.2s ease forwards 2s;
    transform: translateZ(0)
}

.p-index-slider__item:nth-child(1) .p-index-slider__item-desc {
    font-size: 16px
}

.p-index-slider__item:nth-child(1).slick-active .p-index-slider__item-desc {
    animation: sliderContentAnimation1 1.2s ease forwards 3s;
    transform: translateZ(0)
}

.p-index-slider__nav-item a {
    font-size: 18px
}

.p-index-slider__nav-item:nth-child(2) a {
    background: #204000;
    color: #ffffff
}

.p-index-slider__nav-item:nth-child(2) a:hover {
    background: #1a3300;
    color: #ffffff
}

.p-index-slider__item:nth-child(2) {
    color: #ffffff
}

.p-index-slider__item:nth-child(2) .p-index-slider__item-title {
    font-size: 40px
}

.p-index-slider__item:nth-child(2).slick-active .p-index-slider__item-title {
    animation: sliderContentAnimation2 1.2s ease forwards 2s;
    transform: translateZ(0)
}

.p-index-slider__item:nth-child(2) .p-index-slider__item-desc {
    font-size: 16px
}

.p-index-slider__item:nth-child(2).slick-active .p-index-slider__item-desc {
    animation: sliderContentAnimation2 1.2s ease forwards 3s;
    transform: translateZ(0)
}

.p-index-slider__nav-item a {
    font-size: 18px
}

.p-index-slider__nav-item:nth-child(3) a {
    background: #402000;
    color: #ffffff
}

.p-index-slider__nav-item:nth-child(3) a:hover {
    background: #331a00;
    color: #ffffff
}

.p-index-slider__item:nth-child(3) {
    color: #ffffff
}

.p-index-slider__item:nth-child(3) .p-index-slider__item-title {
    font-size: 40px
}

.p-index-slider__item:nth-child(3).slick-active .p-index-slider__item-title {
    animation: sliderContentAnimation3 1.2s ease forwards 2s;
    transform: translateZ(0)
}

.p-index-slider__item:nth-child(3) .p-index-slider__item-desc {
    font-size: 16px
}

.p-index-slider__item:nth-child(3).slick-active .p-index-slider__item-desc {
    animation: sliderContentAnimation3 1.2s ease forwards 3s;
    transform: translateZ(0)
}

#cb_1 .p-section-header__upper {
    background-image: url(../images/uploads/2023/11/img_access_06.jpg);
    color: #ffffff
}

#cb_1 .p-section-header__title {
    font-size: 38px;
    text-shadow: 0 0 20px #ffffff
}

#cb_1 .p-section-header__title.is-inview {
    text-shadow: 0 0 0 #ffffff
}

#cb_1 .p-section-header__headline {
    background: #660000;
    color: #ffffff;
    font-size: 26px
}

#cb_1 .p-block04__item-content {
    background: #ffffff;
    color: #353535
}

#cb_1 .p-block04__item-btn {
    background: #908e44;
    color: #ffffff
}

#cb_1 .p-block04__item-btn:hover {
    background: #8e8e8b;
    color: #ffffff
}

@media screen and (max-width: 991px) {
    .p-global-nav {
        background: rgba(0, 0, 0, 1)
    }

    .p-global-nav a,
    .p-global-nav a:hover,
    .p-global-nav .sub-menu a,
    .p-global-nav .sub-menu a:hover {
        color: #ffffff
    }

    .p-global-nav .menu-item-has-children>a>.sub-menu-toggle::before {
        border-color: #ffffff
    }
}

.single-news .l-secondary {
    display: none;
}

.single-news .l-primary {
    width: 100%;
}

.p-entry__img {
    display: none;
}

.p-info__text span {
    font-size: 30px;
}

.single-post .l-secondary {
    display: none;
}

.single-post .l-primary {
    width: 100%;
}

.menu-item-318 {
    font-size: 26px;
    pointer-events: none;
    background-color: #908d46;
}

.p-breadcrumb {
    height: 160px;
    padding-top: 100px;
    line-height: 60px;
}


/* Combined CSS from index.html */


@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

:root {
    --primary-green: #8dbb99;
    --accent-green: #d7e8d5;
    --text-dark: #3c5643;
    --bg-soft: #fafdfa;
}

body,
html,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span,
div {
    font-family: 'Zen Maru Gothic', sans-serif !important;
}

body {
    background-color: var(--bg-soft) !important;
    color: var(--text-dark) !important;
}

/* Override common WordPress / Theme colors */
.p-global-nav a:hover,
.p-info__btn,
.p-btn,
.p-article01__cat,
.p-article11__cat,
.p-cb__item-btn a,
.p-nav02__item a,
.p-readmore__btn,
.p-pager__item a,
.p-pager__item span,
.p-recommended-plan__btn a {
    background-color: var(--primary-green) !important;
    color: #fff !important;
}

.p-info__btn:hover,
.p-btn:hover,
.p-cb__item-btn a:hover {
    background-color: #7aa987 !important;
    /* Slightly darker */
}

.l-header,
.p-global-nav,
.p-footer-nav,
.p-copyright {
    background-color: var(--text-dark) !important;
}

.p-section-header__headline {
    background-color: var(--primary-green) !important;
}

.p-article10__title a,
.p-article12__title a {
    color: var(--text-dark) !important;
}

.p-article10__title a:hover,
.p-article12__title a:hover {
    color: var(--primary-green) !important;
}

/* Clean up headers and footers */
.l-header {
    border-bottom: 3px solid var(--primary-green);
}

/* Accessibility/Contrast fixes */
.p-global-nav a {
    color: #fff !important;
}


/* Combined CSS from index.html */



:root {
    --primary-green: #8dbb99;
    --accent-green: #d7e8d5;
    --text-dark: #3c5643;
    --bg-soft: #fafdfa;
}

body,
html,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span,
div {
    font-family: 'Zen Maru Gothic', sans-serif !important;
}

body {
    background-color: var(--bg-soft) !important;
    color: var(--text-dark) !important;
}

/* Override common WordPress / Theme colors */
.p-global-nav a:hover,
.p-info__btn,
.p-btn,
.p-article01__cat,
.p-article11__cat,
.p-cb__item-btn a,
.p-nav02__item a,
.p-readmore__btn,
.p-pager__item a,
.p-pager__item span,
.p-recommended-plan__btn a {
    background-color: var(--primary-green) !important;
    color: #fff !important;
}

.p-info__btn:hover,
.p-btn:hover,
.p-cb__item-btn a:hover {
    background-color: #7aa987 !important;
    /* Slightly darker */
}

.l-header,
.p-global-nav,
.p-footer-nav,
.p-copyright {
    background-color: var(--text-dark) !important;
}

.p-section-header__headline {
    background-color: var(--primary-green) !important;
}

.p-article10__title a,
.p-article12__title a {
    color: var(--text-dark) !important;
}

.p-article10__title a:hover,
.p-article12__title a:hover {
    color: var(--primary-green) !important;
}

/* Clean up headers and footers */
.l-header {
    border-bottom: 3px solid var(--primary-green);
}

/* Accessibility/Contrast fixes */
.p-global-nav a {
    color: #fff !important;
}

/* Dynamic news styles */
.p-index-news__list {
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: center;
    /* Center items horizontally */
}

.news-item-api {
    width: 100%;
    max-width: 600px;
    /* Limit width for better appearance when centered */
    border-bottom: 1px dotted var(--accent-green);
    padding-bottom: 15px;
    transition: transform 0.2s;
}

.news-item-api:last-child {
    border-bottom: none;
}

.news-item-api__row {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    justify-content: flex-start;
}

.news-item-api__thumb {
    width: 120px;
    height: 80px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.news-item-api__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.news-item-api__thumb:hover img {
    transform: scale(1.1);
}

.news-item-api__content {
    flex: 1;
}

.news-item-api__date {
    font-size: 13px;
    color: #888;
    display: block;
    margin-bottom: 5px;
}

.news-item-api__title a {
    font-size: 16px;
    color: var(--text-dark);
    text-decoration: none;
    font-weight: bold;
    line-height: 1.4;
}

.news-item-api__title a:hover {
    color: var(--primary-green);
}

@media (max-width: 600px) {
    .news-item-api__row {
        gap: 15px;
    }

    .news-item-api__thumb {
        width: 100px;
        height: 70px;
    }

    .news-item-api__title a {
        font-size: 14px;
    }
}

/* Modal & Lightbox Styles */
.modal-overlay,
.lightbox-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    display: none;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal-overlay.is-active,
.lightbox-overlay.is-active {
    display: flex;
    opacity: 1;
}

.modal-overlay {
    z-index: 1000;
}

.lightbox-overlay {
    z-index: 2000;
}

.modal-container {
    background: #fff;
    width: 90%;
    max-width: 800px;
    max-height: 85vh;
    border-radius: 8px;
    position: relative;
    padding: 40px 20px 20px;
    overflow-y: auto;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.3);
}

.modal-close,
.lightbox-close {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 30px;
    color: #333;
    cursor: pointer;
    z-index: 10;
    line-height: 1;
}

.lightbox-close {
    color: #fff;
    top: 20px;
    right: 20px;
}

.lightbox-img {
    max-width: 90%;
    max-height: 80vh;
    object-fit: contain;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

.lightbox-caption {
    position: absolute;
    bottom: 20px;
    color: #fff;
    text-align: center;
    width: 100%;
    padding: 0 20px;
    font-size: 16px;
}

/* Prevent background scroll when modal is open */
body.modal-open {
    overflow: hidden;
}

/* ヒーロー画像の設定 (サブページ用) */
.p-page-header__upper {
    background-size: cover !important;
    background-position: center !important;
    background-attachment: scroll !important;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 400px !important;
    position: relative;
    overflow: hidden;
}

/* テキストの視認性向上のためのオーバーレイ */
.p-page-header__upper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    z-index: 1;
}

.p-page-header__title {
    z-index: 2;
    position: relative;
    color: #ffffff !important;
    opacity: 1 !important;
    /* 表示を確実にする */
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

@media screen and (max-width: 767px) {
    .p-page-header__upper {
        height: 250px !important;
    }
}

/* ページごとの個別画像指定 */
/* 永代供養 (unkeitsuka) */
.page-id-164 .p-page-header__upper {
    background-image: url(../images/uploads/2023/11/mein_02.jpg);
}

/* 墓苑 (boen) */
.page-id-135 .p-page-header__upper {
    background-image: url(../images/uploads/2023/11/pc_main_boen.jpg);
}

/* 法事・供養 (memorial) */
.page-id-82 .p-page-header__upper {
    background-image: url(../images/uploads/2023/11/mein_03.jpg);
}

/* YouTube Hero Video Styles */
.p-index-slider__item-video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
}

.p-index-slider__item-video-container iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw;
    /* 16:9 aspect ratio */
    min-height: 100vh;
    min-width: 177.77vh;
    /* 16:9 aspect ratio */
    transform: translate(-50%, -50%);
    pointer-events: none;
}

@media (max-aspect-ratio: 16/9) {
    .p-index-slider__item-video-container iframe {
        width: 177.77vh;
        height: 100vh;
    }
}

@media (min-aspect-ratio: 16/9) {
    .p-index-slider__item-video-container iframe {
        width: 100vw;
        height: 56.25vw;
    }
}

/* ヒーローテキストの視認性向上（半透明の帯） */
.p-index-slider__item-content-inner {
    background: rgba(0, 0, 0, 0.4);
    padding: 60px 40px;
    border-radius: 8px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    display: inline-block !important;
}

@media screen and (max-width: 767px) {
    .p-index-slider__item-content-inner {
        padding: 40px 20px;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }
}

/* Global Font Overrides for Mincho (Noto Serif JP) */
h1,
h2,
h3,
h4,
h5,
h6,
.p-index-slider__item-title,
.p-index-slider__item-desc,
.p-page-header__title,
.p-section-header__headline-inner,
.p-section-header__title {
    font-family: var(--tcd-font-type2) !important;
}

/* 祈りと供養（セクションタイトル）の視認性向上 */
.p-section-header__title span {
    background: rgba(0, 0, 0, 0.4);
    padding: 60px 40px;
    border-radius: 8px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    display: inline-block !important;
    color: #fff !important;
    text-shadow: none !important;
}

@media screen and (max-width: 767px) {
    .p-section-header__title span {
        padding: 40px 20px;
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }
}

/* Boen Modal Styles */
.p-modal-boen {
    padding: 10px;
    color: #333;
}

.p-modal-boen__header {
    margin-bottom: 40px;
    text-align: center;
}

.p-modal-boen__title {
    font-size: 32px;
    margin: 0 auto 20px;
    writing-mode: vertical-rl;
    height: auto;
    max-height: 200px;
    display: inline-block;
    font-family: var(--tcd-font-type2);
    border-right: 2px solid #2f5c28;
    padding-right: 15px;
}

.p-modal-boen__vertical-text {
    writing-mode: vertical-rl;
    height: 350px;
    margin: 40px auto;
    font-size: 17px;
    line-height: 2.4;
    letter-spacing: 0.05em;
    font-family: var(--tcd-font-type2);
}

/* Tiled Gallery */
.p-modal-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 40px;
}

.p-modal-gallery__item {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    cursor: pointer;
    background: #f0f0f0;
}

.p-modal-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.p-modal-gallery__item:hover img {
    transform: scale(1.08);
}

.p-modal-gallery__item--large {
    grid-column: span 2;
    aspect-ratio: 16 / 9;
}

.p-modal-boen__footer {
    text-align: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

@media screen and (max-width: 767px) {
    .p-modal-gallery {
        grid-template-columns: 1fr;
    }
    .p-modal-gallery__item--large {
        grid-column: span 1;
    }
    .p-modal-boen__vertical-text {
        height: auto;
        writing-mode: horizontal-tb;
        border-left: 3px solid #2f5c28;
        padding-left: 15px;
        margin: 20px 0;
    }
    .p-modal-boen__title {
        writing-mode: horizontal-tb;
        max-height: none;
        border-right: none;
        border-bottom: 2px solid #2f5c28;
        padding-right: 0;
        padding-bottom: 5px;
    }
}